1、 编译原理实验报告编译原理实验报告 题题 目目 PLO 编译器的修改编译器的修改 学学 院院 计算机学院计算机学院 专专 业业 计算机科学与技术计算机科学与技术 2011 年 1 月 11 日 一、课程题目一、课程题目 1、 对 PL/0 编译器作以下修改扩充: (1)增加单词:保留字 ELSE,FOR,TO,DOWNTO,RETURN 运算符 +=,=,+, 其中 FOR,TO,DOWNTO,RETURN 属于选做内容。 (2)修改单词:不等号# 改为 (3)增加条件语句的 ELSE 子句 2、我在本次实验中实现了以下内容: (1)增加单词:保留字 ELSE,FOR,TO,DOWNTO, 运
2、算符 +=,=,+, (2)修改单词:不等号# 改为 (3)增加条件语句的 ELSE 子句 二、测试方案的设计二、测试方案的设计(30%) 1、不等号改为、不等号改为的测试方案的测试方案 通过的方案: PROGRAM EX01; VAR A,B,C; BEGIN A:=8; C:=10; READ(B); IF B1 THEN C:=A+B*(3+B); WRITE(C); END. 不能通过的方案: PROGRAM EX01; VAR A,B,C; BEGIN A:=8; C:=10; READ(B); IF B1 THEN C:=A+B*(3+B); WRITE(C); END. 2、增加
3、运算符、增加运算符 +=,=,+,的测试方案:,的测试方案: 通过的方案 1: PROGRAM EX01; VAR a,b,c; BEGIN a:=8; b:=4; a+=2*b; WRITE(a); a+; WRITE(a); +b; WRITE(b); END. 通过的方案 2: PROGRAM EX01; VAR a,b,c; BEGIN a:=8; b:=4; a-=b; WRITE(a); a-; WRITE(a); -b; WRITE(b); END. 不通过的方案 1: PROGRAM EX01; VAR a,b; BEGIN a:=2; +a+; WRITE(a); 4+; E
4、ND. 不通过的方案 2: PROGRAM EX01; VAR a,b; BEGIN a:=2; -a-; WRITE(a); 4-; END. 3、增加条件语句的、增加条件语句的 ELSE 子句的测试方案:子句的测试方案: 通过的方案: PROGRAM EX01; VAR A,B,C; BEGIN A:=8; READ(B); IF B1 THEN C:=A+B*(3+B); ELSE C:=A+10; WRITE(C); END. 不能通过的方案: PROGRAM EX01; VAR A,B,C; BEGIN A:=8; READ(B); WHILE B1 DO C:=A+B*(3+B); ELSE C:=A+10; WRITE(C); END. 4、FORTODOWNTO 的测试方案:的测试方案: 通过的方案 1: PROGRAM EX01; VAR a,B,C; BEGIN a:=1; B:=2; FOR C:=1 TO 3 DO BEGIN a+=B*(3+B)