- 1 -
编译原理实验报告
一、上机实验检查(总计 70 分):
(1) 分离解释和编译器( 20 分):
将解释器从已有代码中分离出来,形成一个独立的解释器,对于中间代码文件,可
以执行并输出相应的结果。
(2) 注释处理( 10):
增加对注释的支持,注释由 (* 和 * )包含,不允许嵌套。
(3) 布尔数据处理( 10 分):
增加对于布尔类型的支持,其产生式见《编译原理实践教程》 。
(4) 布尔表达式的短路处理( 10 分):
在上面工作的基础上,对 and 和 or 采取短路计算。
(5)for 语句处理( 20 分):
参照C语言,增加对于 for 语句处理。
二、完成情况( 15 分):
1. 修改后的 PL/0 词法(正规式)
下面是本设计用到的正规式, bool 类型的常量与变量都是通过保留字来体现的,
number 只是用于识别整型变量与常量。
空白
w-> ’’; //空格
n->; //回车
t->Tab; //制表
blank -> (w | n | t)+;
保留字
begin ->begin; // 保留字
end -> end;
if -> if;
then -> then;
while -> while;
do -> do;
call->call;
const -> const;
var -> var;
procedure -> procedure;
boolean ->boolean;
bool ->true|false;// 布尔常量