课程设计
课程名称题目名称学生学院
编译原理编译原理课程设计计算机学院
专业班级2011级计算机科学与技术7班学号3111006002谢佳旭
学生姓名
2013年1月08日
f目录一、课程设计目的5二、课程设计要求51、设计内容5三、课程设计环境与工具6四、结构设计说明51、PL0语言编译器52、总流程图63、各功能模块描述6五、主要成分描述7六、测试用例91、测试和的运算功能92、测试FOR语句功能9七、开发过程和完成情况91、扩充赋值运算:和92、扩充FOR语句(Pascal)103、添加单行注释12八、心得体会14
f一、课程设计目的
在分析理解一个教学型编译程序(如PL0)的基础上,对其词法分析程序、语法分析程序和语义处理程序进行部分修改扩充。达到进一步了解程序编译过程的基本原理和基本实现方法的目的。
二、课程设计要求
1.课程设计基本内容(成绩范围:“中”“及格”或“不及格”、)
(1)扩充赋值运算:和扩充语句(Pascal的FOR语句)
FOR变量表达式STEP表达式UNTIL表达式Do语句选做内容(成绩评定范围扩大到:“优”和“良”)
(1)增加类型:①字符类型;②实数类型。
2增加注释注释由和包含;
(3)扩充函数:①有返回值和返回语句;②有参数函数。(4)增加一维数组类型(可增加指令)。(5)其他典型语言设施。
三、课程设计环境与工具
(1)运行平台:WIN7旗舰SP1(2)实现工具:CBuilder60(3)教学型编译程序:PL0
四、结构设计说明和各功能模块描述
(1)PL0语言编译器
PL0语言可看成是PASCAL语言的子集,它的编译程序是一个编译解释执行系统。PL0的目标程序为假想栈式计算机的汇编语言,与具体计算机无关。
PL0
源程序
表格管
目标代码生成程序程序目标代码生成程序程序目标代码生成程序
出错处
f(2)PL0编译程序的过程或函数的功能表
1、voidErrori
t
:错误处理打印出错位置和错误编码2、voidGetCh:漏掉空格读取一个字r