目 录
序言............................................................................................................................................................2
第一部分 PL/0 语言及其编译器..............................................................................................................3
1. PL/0 语言介绍...................................................................................................................................3
1.1 PL/0
语言的语法图
.....................................................................................................................3
2. PL/0 语言编译器...............................................................................................................................6
2.1
词法分析
.....................................................................................................................................7
2.2
语法分析
.....................................................................................................................................8
2.3
语义分析
...................................................................................................................................10
2.4
代码生成
...................................................................................................................................10
2.5
代码执行
...................................................................................................................................12
2.6
错误诊断处理
...........................................................................................................................14
2.7
符号表管理
...............................................................................................................................16
2.8
其他
...........................................................................................................................................16
第二部分 上机实践要求.........................................................................................................................17
第三部分 PL/0 语言编译器源程序........................................................................................................19
1.一个例子........................................................................................................................................19
1.1 PL/0
语言源程序
.......................................................................................................................19
1.2
生成的代码(片段)
...............................................................................................................21
2. PL/0 语言编译器源程序.................................................................................................................22
附录 编译课程设计报告编写规范.........................................................................................................54
一、设计报告的构成..........................................................................................................................54
二、PL/0 编译器技术文档.................................................................................................................54
2.1
自定义数据类型
.......................................................................................................................54
2.2
全局变量
...................................................................................................................................55
2.3
函数
...........................................................................................................................................55
三、扩充或修改后的 PL/0 语言的文法............................................................................................56
3.1 PL/0
的词法
...............................................................................................................................56
3.2 PL/0
的语法
...............................................................................................................................56
四、PL/0 编译器的扩充和修改.........................................................................................................56
4.1
扩充和修改项目
.......................................................................................................................56
4.2
扩充和修改的具体实现
...........................................................................................................56
4.2.1
注释
........................................................................................................................................57
4.2.2 ….............................................................................................................................................58
4.2.3 ….............................................................................................................................................58
五、PL/0 编译器的扩充和修改后的测试.........................................................................................59
5.1 PL/0
语言源程序
.......................................................................................................................59
5.2
目标程序
...................................................................................................................................59
六、总结..............................................................................................................................................59