《编译原理》实验指导书
实验目的和内?/p>
编译原理实验的目的是使学生将编译理论运用到实际当中,实现一个简单语言?/p>
的词法、语法和语义分析程序,验证实际编译系统的实现方法,并加深对编译技术的
认识?/p>
实验内容共需实现编译器的词法、语法和语义分析程序三个组成部分。要求学?/p>
必须完成每个实验的基本题目要求,有余力的同学可尝试实验的扩展要求部分?/p>
实验报告
每人
(组?/p>
针对所完成的实验内容上交一份实验报告,
其中主要包括三方面内容:
1
?/p>
实验设计?/p>
实验采用的实现方法和依据
(如描述语言的文法及其机内表示,
词法?/p>
析的单词分类码表?/p>
状态转换图或状态矩阵等?/p>
语法分析中用到的分析表或优先?/p>
阵等?/p>
语法制导翻译中文法的拆分和语义动作的设计编写等)
?/p>
具体的设计结?/p>
(应
包括整体设计思想和实现算法,
程序结构的描述,
各部分主要功能的说明?/p>
以及所
用数据结构的介绍等)
?/p>
2
?/p>
程序代码?/p>
实验实现的源程序清单?/p>
要求符合一般的程序书写风格?/p>
有详细的注释?/p>
3
?/p>
实验结果分析?/p>
自行编写若干源程序作为测试用例,
对所生成的编译程序进行测?/p>
(编译程序的输入与输出以文件的形式给出)
;运行结果分析(至少包括一个正?/p>
和一个错误单词或语句的运行结果)
;以及改进设想等?/p>
注意事项
1
、电子版实验报告和源程序在最后一次机时后的一周内上交?/p>
(每人(组)上交一?/p>
压缩文件,其命名格式为“学?/p>
_
姓名
.rar
?/p>
?/p>
“组长学?/p>
_
姓名
.rar
?/p>
?/p>
,内含实验报?/p>
和一个命名为“源程序”的文件夹。注意提交的源程序应是经过调试、测试成功的
较为通用的程序,并应有相应的注释、运行环境和使用方法简介?/p>
?/p>
2
?/p>
不接受不完整的实验报告和没有说明注释的源程序?/p>
或者说明与程序?/p>
运行结果?/p>
符合的作业?/p>
特别鼓励:扩展题?/p>
1
?/p>
小组合作?/p>
为亲身经历一个小型编译器的开发全过程?/p>
触摸一下与实际编译器开?/p>
相关的工作,大家可以自由组成
3
人左右的小组?/p>
推举组长?/p>
模拟一个团队分工协
作开发大型软件的实战环境?/p>
融入软件工程的思想规范和一般理论方法,
初步体验
从系统分析设计?/p>
编码测试到交付维护的一个完整编译器软件的开发过程?/p>
要求?/p>
长为每个小组成员分配主要负责的任务,
完成相应的分析设计员?/p>
程序员和测试?/p>
等角色的工作?/p>
并以小组为单位提交一份实验报告和源程序,
在报告封面上写明?/p>
个同学主要完成和负责的部分。要求以组为单位完成的实验内容至少必须整合词
法、语法和语义三个部分的实验,对于选定的适当规模的文法(?/p>
C
语言的一?/p>
大小适宜的子集)
,进行系统的总体设计、功能分析、编码测试等工作。完成一?/p>
从对源程序的词法分析开始,
到中间代码生成的完整的编译器前端的开发,
使所?/p>
及到的编译系统的各个组成模块有机地衔接在一起,
提交一份完整的实验报告和源
程序?/p>
2
?/p>
自拟题目?/p>
根据自己的研究兴趣自主选择或自定实验题目?/p>
要求先提交一份申请文
档,说明所选题目?/p>
实现方案和技术路线;然后当面与教师就题目的难易程度和?/p>
作量等具体讨论调整,细化课程设计内容,最终确定要完成的主要工作;在得到?/p>
师的认可之后方可继续进行?/p>