欢迎来到天天文库
浏览记录
ID:15636768
大小:688.79 KB
页数:16页
时间:2018-08-04
《广工编译原理实验报告(参考格式)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验报告课程名称编译原理学生学院计算机学院专业班级2010级计算机科学与技术四班学号3110006015学生姓名张法光指导教师李杨2013年1月07日目录一、实验概述.............................................51、实验目的...........................................52、实验内容...........................................53、实验概述..................................
2、.........5二、结构设计说明.........................................51、PL/0语言编译器....................................62、总流程图...........................................63、各功能模块描述.....................................7三、主要成分描述.........................................7①符号表..........
3、.................................7②运行时存储组织和管理.............................7③语法分析方法.....................................8④中间代码表示.....................................8四、测试用例.............................................91、关于IFELSE功能的测试.............................102、关于不等
4、号“#”替换为“<>”的测试..................10五、开发过程和完成情况...................................11六、心得体会............................................16一、实验概述:源、目标语言,实现工具(平台),运行平台1、实验目的在分析理解一个教学型编译程序(如PL/0)的基础上,对其词法分析程序、语法分析程序和语义处理程序进行部分修改扩充。达到进一步了解程序编译过程的基本原理和基本实现方法的目的。2、课内实验内容对PL/0作以下
5、修改扩充:(1)增加单词:保留字ELSE,FOR,TO,DOWNTO,RETURN运算符*=,/=,&,
6、
7、,!(2)修改单词:不等号#改为<>(3)增加条件语句的ELSE子句,要求:写出相关文法,语法图,语义规则。3、实验概述1、源语言:PL/0语言,PL/0语言是PASCAL语言的子集,它的编译程序是一个编译解析执行系统,后缀名为.PL0;2、目标语言:生成文件后缀为*.COD的目标代码3、实现平台:BorlandC++Builder64、运行平台:Windows7SP1二、结构设计说明(1)PL/0语言编译器PL/0语言可看成
8、是PASCAL语言的子集,它的编译程序是一个编译解释执行系统。PL/0的目标程序为假想栈式计算机的汇编语言,与具体计算机无关。出错处理函数表格管理函数PL/0源程序目标代码生成程序程序目标代码生成程序程序目标代码生成程序程序目标代码生成程序程序目标代码生成程序程序(2)PL/0编译程序的语法分析过程BLOCK是整个编译过程的核心。这里根据编译程序的总体流程图,来弄清BLOCK过程在整个编译程序中的作用。总流程图如下图所示:(3)各功能模块描述过程或函数名简要功能说明pl0主程序error出错处理,打印出错位置和错误编码getsym词
9、法分析,读取一个单词getch漏掉空格,读取一个字符gen生成目标代码,并送入目标程序区test测试当前单词符号是否合法block分程序分析处理过程enter登录名字表position(函数)查找标识符在名字表中的位置constdeclaration常量定义处理vardeclaration变量说明处理listode列出目标代码清单statement语句处理expression表达式处理term项处理factor因子处理condition条件处理interpret对目标代码的解释执行程序base(函数)通过静态链求出数据区的基地址三、
10、主要成分描述符号表为了组成一条指令,编译程序必须知道其操作码及其参数(数或地址)。这些值是由编译程序本身联系到相应标识符上去的。这种联系是在处理常数、变量和过程说明完成的。为此,标识符表应包含每一标识符所联系的属性;如果标识符被说明为
此文档下载收益归作者所有