编译原理实践教程2010

2019-03-15 18:40

序言 .......................................................................................................................................................... 1 第一部分 PL/0语言及其编译器 ........................................................................................................... 2 1. PL/0语言介绍 ................................................................................................................................. 2 1.1 PL/0语言的语法图 ................................................................................................................. 3 2. PL/0语言编译器 ............................................................................................................................. 6 2.1 词法分析 .................................................................................................................................. 7 2.2 语法分析 ................................................................................................................................... 7 2.3 语义分析 ................................................................................................................................. 10

2.4 代码生成 ................................................................................................................................ 10 2.5 代码执行 ................................................................................................................................. 11 2.6 错误诊断处理 ......................................................................................................................... 14 2.7 符号表管理 ............................................................................................................................. 16 2.8 其他 ........................................................................................................................................ 16

第二部分 上机实践要求 ...................................................................................................................... 17 第三部分 PL/0语言编译器源程序 ..................................................................................................... 17 1.一个例子 ...................................................................................................................................... 17 1.1 PL/0语言源程序 .................................................................................................................... 17 1.2 生成的代码(片段) ............................................................................................................ 19 2. PL/0语言编译器源程序 ............................................................................................................... 19

编译原理实践教程

序言

《编译原理和技术》的课程实践至少有两种可能的安排。其一,为配合编译课程教学,而安排多次小型实践,分别支持编译程序的各个阶段。其二,针对某一规模适中的语言来设计和实现一个相对完整、独立编译器。

《编译原理实践教程》作为《编译原理和技术》课程的延伸,其目的是让大家动手设计和实现某一规模适中的语言的编译器,该编译器不仅涉及编译程序的各个阶段,而且也强调了编译的总体设计、各个阶段的接口安排等等。

通过上机实践,来设计这个相对完整的编译器,一方面可以使学生增加对编译程序的整体认识和了解——巩固《编译原理和技术》课程所学知识,另一方面,通过上机练习,学生也可以学到很多程序调试技巧和设计大型程序一般的原则,如模块接口的协调,数据结构的合理选择等等。

为了使学生能尽早动手实践,我们建议把实践分成三部分,首先阅读本教程第一部分,在这部分就PL/0语言的语法及其编译程序的各个阶段作了简单介绍,以便对PL/0编译程序有个初步的印象。其次要认真阅读理解第三部分所给出的PL/0编译器源程序,使上一阶段的初步印象得以加深、具体化。最后按照第二部分的实验要求扩充PL/0语言的功能并加以实现。

1

第一部分 PL/0语言及其编译器

1. PL/0语言介绍

PL/0程序设计语言是一个较简单的语言,它以赋值语句为基础,构造概念有顺序、条件和重复(循环)三种。PL/0有子程序概念,包括过程定义(可以嵌套)与调用且有局部变量说明。PL/0中唯一的数据类型是整型,可以用来说明该类型的常量和变量。当然PL/0也具有通常的算术运算和关系运算。具体的PL/0语法图如下。

2

1.1 PL/0语言的语法图

程序

程序体

语句序列 程序体 . const , ; var , ident = number ident ; procedure ident ; ; 程序体 语句 语句 ; 3

语句 条件 表达式 ident := 表达式 call ident begin 语句序列 end if 条件 then 语句 while 条件 do 语句 odd 表达式 表达式 = <> < > <= >= 表达式 + 项 - + - 项 4


编译原理实践教程2010.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:数据结构与算法实验题答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: