1、 课程设计说明书 课程名称: 编译原理 实验名称:实现对 FOR 语句处理的功能 实验性质: 综合性实验 院 (部) : 计算机科学与技术学院 班 级: 姓 名: 学 号: 指导教师: 完成日期: 2011/11/03 2 目录目录 课程设计任务书 3 结构设计说明 4 一一、对 pl/0 语言的相关描述 . 4 1 PlO 所有子程序. 4 2 PL/0 语言的语法图. 4 3 PL/0 语言编译器. 5 4 代码执行 6 5 错误诊断处理 8 二二、对 For 语句的相关描述 8 1 增加 for 语句 . 8 设计思想 . 8 设计思路. 8 2 扩充代码 9 三、实验测试程序 . 11
2、 程序测试结果 . 11 四、课程设计实验心得 12 五、参考文献 12 山东建筑大学计算机科学与技术学院山东建筑大学计算机科学与技术学院 3 课程设计任务书课程设计任务书 指导教师(签字) : 教研室主任(签字) : 结构设计说明:结构设计说明: 设计题目 对 PL/0 语言及其编译器进行扩充和修改 实现对 FOR 语句进行处理的功能 已知技术参 数和设计要 求 PL/0 程序设计语言是一个较简单的语言,它以赋值语句为基础,构造 概念有顺序、条件和重复(循环)三种。PL/0 有子程序概念,包括过程定 义(可以嵌套)与调用且有局部变量说明。PL/0 中唯一的数据类型是整型, 可以用来说明该类型
3、的常量和变量。当然 PL/0 也具有通常的算术运算和关 系运算。 通过读懂源程序,全面掌握编译原理的基本实现过程。对现存的 PL/0 编译程序做一些修改或扩充。 设计内容 与步骤 通过读懂源程序,全面掌握编译原理的基本实现过程。 扩充 PL/0 实现对 for 语句进行处理的功能。语法参照 Pascal 或 C 语言, for 循环语句中一般为三个表达式,第一个代表初始值,第二个代表范围,第三 个代表循环方式/修正的方式。 设计工作计 划与进度安 排 1-4:进行完整的编译程序全过程的理解 5-12:根据源程序,理解整个编译器的编写中涉及到的全局变量及基本函数 的意义。 13-20:在读懂全程
4、序的基础上,进行扩充修改,并测试。 21-24:撰写课程设计报告书。 设计考核要 求 设计考核方法: 课程设计总成绩=算法实现(30%)+课程设计说明书(50%)+平时考 勤(20%) 。 设计考核要求: (1) 规范的课程设计说明书 (2) 所设计的算法源代码 4 一、对一、对 pl/0 语言的相关描述:语言的相关描述: 1、PlO 所有子程序如下: 过程或函数名过程或函数名 简要功能说明简要功能说明 mainmain 初始化编译环境,建立关键字表,调用分程序 Block 对源文件进行 编译,当编译正确时,自动调用解释执行程序,对目标代码进行解 释执行。 e errorrror 出错处理,打印出错位置和错误性质编号。并在信息栏输出错误信 息。 getchgetch 过滤空格,读取一个字符 getsymgetsym 词法分析,读取一个单词 gengen 生成目标代码(类 pcode 代码) ,并