本课程为广工大09级学生开设,旨在通过实践加深对编译原理的理解。内容涵盖词法分析、语法分析等关键技术,培养学生的软件开发能力。
09级编译原理课内试验与课程设计要求
一、 课内实验(考试前提交报告)
对PL/0进行以下修改并扩充:
1. 增加保留字:ELSE,FOR,STEP,UNTIL,RETURN;
2. 扩充运算符:+=,-=,++,--,∧,∨和┓;
3. 修改不等号# 为 <>。
4. 添加条件语句的 ELSE 子句,并提供相关文法、语法图以及语义规则。
二、课程设计基本内容(成绩范围:“中”、“及格”或“不及格”)
1. 扩充赋值运算:+= 和 -=;
2. 增加Pascal FOR 语句:
FOR <变量>:=<表达式> STEP <表达式>
UNTIL <表达式> DO
<语句>
3. 添加运算符 ++ 和 --。
选做内容(成绩评定范围扩大至:“优”和“良”)
1. 增加类型:字符类型、实数类型;
2. 扩充函数:
- 有返回值的函数及其对应的返回语句
- 包含参数的函数定义
3. 引入一维数组类型的使用(可能需要添加新的指令)。
4. 实现其他典型语言设施。
三、要求和说明
1. 在放假前完成,提交课程设计报告及光盘。各班级需统一制作一张光盘,每个人的文件夹命名为:xx姓名(其中“xx”代表学号后两位数字);
2. 程序运行界面应显示以下信息:
- 设计者所属的班级、学号和姓名
- 开始调试的时间点
- 完成调试的时间点。
3. 实验报告内容包括但不限于以下几个方面:
1) 概述:源语言,目标语言;实现工具(平台)及运行平台;
2) 结构设计说明:各功能模块的详细描述;
3) 主要成分描述:
- 符号表
- 运行时存储组织和管理方法
- 语法分析策略
- 中间代码表示方式。
4)测试用例的设计与执行结果记录;
5)开发过程及完成情况的总结。
四、光盘内容包含但不限于以下文件:
1. 扩充后的PL/0编译程序源码和可执行版本;
2. 测试案例的原始PL/0代码及其运行输出对比;
3. 课程设计报告文档(需提交一份打印版)。
五、成绩评定标准分为五个等级:优,良,中,及格与不及格。根据完成度以及报告质量来确定最终分数。仅完成基础内容者最高评分为“中”。鼓励尝试选做任务以争取更高评分:“良”至“优”。存在以下情况之一可能导致成绩下降甚至不及格:
- 光盘内含有病毒或者无法正常读取;
- 程序或文档有抄袭、复制他人作品的行为;
- 未能按时提交报告和相关文件。