本课程设计为广工大计算机专业09级学生必修环节,旨在通过实践提升学生对编译原理的理解与应用能力,涵盖词法分析、语法分析及代码生成等核心内容。
09级编译原理课内试验及课程设计要求如下:
1. 课内实验(考试前交报告)
对PL/0进行以下修改与扩充:
- 增加保留字:ELSE,FOR,STEP,UNTIL,RETURN;
- 运算符增加:+=, -=, ++, --, ∧, ∨, ┓;
- 不等号# 改为 <>。
要求包括编写相关文法、语法图及语义规则。
2. 课程设计基本内容(成绩范围:“中”、“及格”或“不及格”)
- 扩充赋值运算:+= 和 -=
- Pascal的FOR语句扩充:
FOR <变量>:=<表达式> STEP <表达式>
UNTIL <表达式> DO <语句>
- 增加运算符++和--
选做内容(成绩评定范围扩大到:“优”和“良”)
1. 增加字符类型及实数类型;
2. 扩充函数:包括有返回值的函数与带参数的函数;
3. 引入一维数组类型并增加相关指令;
4. 实现其他典型语言设施。
要求说明:
(1)放假前提交课程设计报告和光盘,每人的目录名格式为xx姓名(其中xx是学号末2位),全班共用一张光盘。
(2)程序运行界面需显示:设计者的班级、学号和姓名;开始调试时间和完成调试时间。
(3)实验报告应包括:
1) 概述: 包括源语言与目标语言,实现工具(平台),以及运行环境的描述;
2) 结构设计说明:各功能模块概述;
3) 主要成分描述:① 符号表;② 运行时存储组织和管理;③ 语法分析方法;④ 中间代码表示。
4)测试用例
5)开发过程与完成情况说明
(4)光盘内容需包含:
- 扩充后的PL0编译程序的源文件及可执行文件;
- 测试用例的PL/0语言源码和运行结果;
- 课程设计报告文档,同时提交一份打印版。
(5)成绩分为五个等级:优、良、中、及格和不及格。根据完成情况评定分数。仅满足基本要求者最高评“中”分。鼓励额外任务的完成,可获得加分至“良”,甚至达到“优”。若出现以下情形,则依据严重程度扣减相应分数直至不及格:
- 提交文件含有病毒或无法正常读取;
- 程序及文档抄袭他人作品;
- 未能按时提交报告和光盘。