北京大学编译原理实习MiniJava 实验报告.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:45 大小:1.3MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

北京大学编译原理实习MiniJava 实验报告.pdf

北京大学编译原理实习MiniJava实验报告.pdf

预览

免费试读已结束,剩余 35 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

编译原理实习报告张弛,00848231December13,2010Contents1类类类型型型检检检查查查31.1符号表.................................41.1.1符号表结构..........................41.1.2变量类型............................61.2重定义错误和循环继承........................81.2.1符号表功能实现........................81.2.2构造符号表..........................101.3未定义错误和类型不匹配.......................111.3.1具体的检查项目........................121.3.2表达式节点的分析......................121.3.3未定义错误..........................141.3.4类型匹配错误.........................151.4未初始化变量和未使用变量.....................162Piglet中中中间间间代代代码码码172.1Piglet简介...............................172.1.1文法BNF............................172.1.2语言细节............................182.2数组的表示...............................192.3类结构表示...............................202.3.1数据和过程分离........................202.3.2过程的转换..........................212.3.3处理继承............................222.3.4实现细节............................232.4翻译模式................................251编译原理实习报告张弛,008482312.4.1读变量和写变量........................262.4.2多于20个参数.........................282.4.3布尔表达式..........................282.4.4其他..............................293Spiglet中中中间间间代代代码码码304Kanga中中中间间间代代代码码码314.1Kanga简介...............................314.1.1文法BNF............................314.1.2语言特性............................324.2构造流图................................334.2.1流图的定义..........................344.2.2基本块的划分和流图的构造方法..............344.2.3实现细节............................344.3活性分析................................374.3.1算法概述............................374.3.2具体实现............................384.4寄存器分配...............................404.4.1干涉图.............................404.4.2图染色算法..........................404.4.3具体实现............................404.5代码翻译................................425MIPS目目目标标标代代代码码码435.1MIPS栈规范..............................435.2难点总结................................442Chapter1类型检查在类型检查之前,我们假设对MiniJava源代码的词法分析已经做完.此时词法分析器向我们提供了MiniJava程序的抽象语法树(AST