实验报告课程名称____ 编译原理 __________ 题目名称_ PL/0 编译程序得修改扩充 _学生学院______计算机学院 _ _ 专业班级_______ _ _ _ _____ 学 号 学生姓名______ ________ 指导老师____ ______ ___ _ _ 2 0 年 月 日一、课内实验要求对P L/0作以下修改扩充:增加单词:保留字 E L S E,F O R,T O,DO WNTO,RE T U RN运算符 *=,/=,++,--,&,||,!修改单词:不等号# 改为 <>增加条件语句得E LSE 子句,要求:写出相关文法,语法图,语义规则。二、实验环境与工具计算机及操作系统:PC 机,W i ndo w s 2 000,WindowsX P程序设计语言:C教学型编译程序:PL/0 设计方案概述:源、目标语言,实现工具(平台),运行平台源语言:P ASC AL目标语言:假想栈式计算机得汇编语言,可称为类P C OD E 指令代码实现工具:Vis u al C++ 6、0运行平台:W in dows 7三、 设计方案1、结构设计说明(1)PL/0 语言编译器出错处理函数表格管理函数PL/0 源程序目标代码生成程序程序目标代码生成程序程序目标代码生成程序程序目标代码生成程序程序目标代码生成程序程序 PL/0 语言可瞧成就是 PASCAL 语言得子集,它得编译程序就是一个编译解释执行系统。P L/0 得目标程序为假想栈式计算机得汇编语言,与具体计算机无关。(2)P L/0 编译程序得语法分析过程 BLOC K就是整个编译过程得核心。这里根据编译程序得总体流程图,来弄清B LOC K过程在整个编译程序中得作用。总流程图如下图所示:PL/0 得编译程序采纳一趟扫描方式,以语法分析程序为核心,词法分析程序与代码生成程序都作为一个独立得过程,当语法分析需要读单词时就用词法分析程序,而当语法分析正确需生成相应得目标代码时,则调用代码生成程序。此外,用表格管理程序建立变量,常量与过程标识符得说明与引用之间得信息联系。用出错处理程序对词法与语法分析遇到得错误给出在源程序中出错得位置与错误性质。(3)各功能模块描述过程或函数名简要功能说明pl 0主程序er ror出错处理,打印出错位置与错误编码get sy m词法分析,读取一个单词ge t ch漏掉空格,读取一个字符gen生成目标代码,并送入目标程序区t e st测试当前单词符号就是否合法blo ck分程序分析处理过程启动置初值调用 getsym 取单词调用 block 过程就是否为源程序结束符源程序就是否有错误调用解释过程 inte...