- 9
- 0
- 约3.84万字
- 约 60页
- 2017-02-08 发布于重庆
- 举报
编译原理课程实验指导书-PL0语言及其编译器
《编译原理》课程实验指导书
(Compiler Principle)
目录
序言 1
一、实验安排 2
第一阶段:编译器的词法分析 2
第二阶段:编译器的语法分析 2
第三阶段:编译器的代码生成 3
二、考核方式及评定标准 4
三、参考资料与编译器分析 4
第一部分 PL语言及其编译器 4
1. PL语言介绍 4
1.1 PL语言的语法图 5
2. PL语言编译器 8
2.1 词法分析 9
2.2 语法分析 9
2.3 语义分析 11
2.4 代码生成 11
2.5 代码执行 13
2.6 错误诊断处理 15
2.7 符号表管理 17
2.8 其他 18
第二部分 上机实验要求 19
第三部分 PL语言编译器源程序与示例 21
1.示例与结果表示 21
1.1 PL语言源程序 21
1.2 生成的代码(片段) 23
2. PL语言编译器源程序 23
序言
本《编译原理》实验,其目的是让大家动手设计和实现一个规模适中的语言的编译器,该编译器不仅涉及编译程序的各个阶段,而且也强调了编译的总体设计、各个阶段的接口安排等等。
通过上机实践,来设计这个相对完整的编译器,一方面可以使同学们增加对编译程序的整体认识和了解——巩固《编译原理》课程所学知识,另一方面,通过上机练习,学生也可以学到很多程序调试技巧和设计大型程序一般的原则,如模块接口的协调,数据结构的合理选择等等。
为了使学生能尽早动手实践,我们建议把实践分成三部分,首先阅读本教程第一部分,在这部分就PL语言的语法及其编译程序的各个阶段作了简单介绍,以便对PL编译程序有个初步的印象。其次要认真阅读理解第三部分所给出的PL编译器源程序及示例,使上一阶段的初步印象得以加深、具体化。最后按照第二部分的实验要求扩充PL语言的功能并加以实现。
具体操作时分成三个阶段:词法分析、语法分析及代码生成。最后再统一组装成一个完整的PL编译器,并适当进行改进、补充。
一、实验安排
第一阶段:编译器的词法分析
学时:2
(一)、L的语法图,设计、编制并调试一个PL词法分析程序,加深对词法分析原理的理解。
(二)、PL的词法分析器将要完成以下工作:
跳过分隔符(如空格,回车,制表符);
识别诸如begin,end,ifwhile等保留字;
识别非保留字的一般标识符,此标识符值(字符序列)赋给全局量id,而全局量sym赋值为SYM_IDENTIFIER。
识别数字序列,当前值赋给全局量NUM,sym则置为SYM_NUMBER;
识别:=,=,=之类的特殊符号,全局量sym则分别被赋值为SYM_BECOMES,SYM_LEQ,SYM_GEQ等。
相关过程(函数)有getsym(),getch(),其中getch()为获取单个字符的过程,除此之外,它还完成:
识别且跳过行结束符;
将输入源文件复写到输出文件;
产生一份程序列表,输出相应行号或指令计数器的值。
第二阶段:编译器的语法分析
学时:4
(一)、、
表示另一个图A的图:
表示终结符的单元图:
相关过程有:
block(), constdeclaration(), vardeclaration(), statement(), condition(), expression(), term(), factor()等。
并画出它们之间依赖关系图,并在此基础上实现程序的编制。
并适当进行语义分析的相关检查:
是否存在标识符先引用未声明的情况;
是否存在己声明的标识符的错误引用;
是否存在一般标识符的多重声明。
第三阶段:编译器的代码生成
学时:2
(一)、、 /* 将常数置于栈顶 */
(2)LOD /* 将变量值置于栈顶 */
(3)STO /* 将栈顶的值赋与某变量 */
(4)CAL /* 用于过程调用的指令 */
(5)INT /* 在数据栈中分配存贮空间 */
(6)JMP, JPC /* 用于if, while语句的条件或无条件控制转移指令 */
(7)OPR /* 一组算术或逻辑运算指令 */
上述指令的格式由三部分组成:
F L A 其中,f, l, a的含义见下表:
F L a INT ——— 常 量 LIT ——— 常 量 LOD 层次差 数据地址 STO 层次差 数据地址 CAL 层次差 程序地址 JMP ——— 程序地址 JPC ——— 程序地址 OPR ——— 运算类别
您可能关注的文档
最近下载
- 石竹山签谱详解100.doc VIP
- 中医临床诊疗术语标准及应用.docx VIP
- 2025年湘西土家族苗族自治州民族中医院医护人员招聘备考试题及答案解析.docx VIP
- 石竹山签谱全100签详解.pdf VIP
- 2023年高考历史真题:2023年高考山东历史真题及答案.pdf VIP
- 2025-2026学年人教版八年级数学上册期末考试试卷.pdf VIP
- 2023年高考历史真题试卷(新课标卷)(含答案及详细解析) .pdf VIP
- 2026中考英语复习《主谓一致》课件.pptx
- 2024年湘西土家族苗族自治州民族中医院医护人员招聘备考试题及答案解析.docx VIP
- 2025-2026学年小学科学六年级上册青岛版(六三制2024)教学设计合集.docx
原创力文档

文档评论(0)