图书介绍
编译原理实验教程【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

- 张昱,陈意云主编 著
- 出版社: 北京:高等教育出版社
- ISBN:9787040261509
- 出版时间:2009
- 标注页数:348页
- 文件大小:25MB
- 文件页数:359页
- 主题词:编译程序-程序设计-高等学校-教材
PDF下载
下载说明
编译原理实验教程PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 概述1
1.1 本书的研制背景与目标1
1.2 本书课程实验的构成2
1.2.1 要实现的源语言2
1.2.2 目标机的选择3
1.2.3 中间表示4
1.2.4 汇编代码的内部表示5
1.2.5 编译器组件及本书的课程实验概览6
1.3 开发环境与工具8
1.3.1 开发环境与工具简介8
1.3.2 环境变量设置10
1.3.3 Eclipse的安装和使用12
1.3.4 XML与Ant简介21
1.4 实验软件包25
1.5 课程实验开展建议27
1.5.1 测试环境27
1.5.2 课程设计提交要求28
1.5.3 过程管理与控制29
第2章 一个简单的程序解释器30
2.1 SimpleMiniJOOL语言30
2.2 课程设计1:一个简单的程序解释器32
2.3 实验运行平台33
2.3.1 实验平台接口34
2.3.2 实验运行平台的工作机制37
2.3.3 实验运行平台的使用39
2.4 Eclipse AST46
2.4.1 AST节点类47
2.4.2 AST类48
2.4.3 ASTVisitor类48
2.4.4 SimpleMiniJOOL语言涉及的AST节点类50
2.4.5 Eclipse AST使用示例56
2.5 AST的图形化显示包——ASTView57
2.5.1 ASTView包中的类57
2.5.2 AST节点的输出属性及其定制59
2.5.3 在ASTViewer中显示节点对应的低级中间表示60
2.6 设计模式60
2.6.1 工厂方法模式61
2.6.2 访问者模式61
2.7 课程设计1开发和测试指南63
2.7.1 主要开发任务63
2.7.2 实现InterpVisitor类的一些指导64
2.7.3 在Eclipse下开发65
2.7.4 在控制台下编译和运行67
2.7.5 测试要求70
第3章 词法分析71
3.1 本章课程设计概述71
3.2 MiniJOOL语言的词法73
3.3 课程设计2-1:用JFlex为MiniJOOL语言生成一个词法分析器74
3.3.1 示例74
3.3.2 MiniJOOL语言的词法分析器构造81
3.4 课程设计2-2:手工编写一个简单的词法分析器82
3.4.1 Block语言的词法82
3.4.2 示例82
3.4.3 课程设计任务85
3.4.4 编译和运行指南86
3.5 课程设计2-3:编写一个NFA生成器88
3.5.1 MLex词法规范描述语言89
3.5.2 课程设计指导90
3.5.3 课程设计任务95
3.6 课程设计2-4:编写一个词法分析器的生成器96
3.6.1 LexerCodeGenerator的输入和输出示例96
3.6.2 课程设计指导98
3.7 JFlex词法规范99
3.7.1 用户代码99
3.7.2 选项和声明99
3.7.3 词法规则102
3.7.4 如何匹配输入流106
第4章 语法分析107
4.1 SkipOOMiniJOOL语言的语法107
4.1.1 类型、常量和变量107
4.1.2 语句113
4.1.3 表达式114
4.1.4 SkipOOMiniJOOL程序的总体结构116
4.1.5 一个SkipOOMiniJOOL程序示例117
4.2 本章课程设计概述119
4.3 课程设计3-1:手工编写一个语法分析器121
4.3.1 SimpleBlock语言121
4.3.2 如何引用课程设计2-2的词法分析器类122
4.3.3 课程设计指导123
4.3.4 课程设计任务127
4.4 课程设计3-2:用CUP生成一个能分析合法程序的语法分析器127
4.4.1 示例1:SimpleBlock语言的语法分析器128
4.4.2 SkipOOMiniJOOL语言涉及的AST节点类141
4.4.3 示例2:Block语言的语法分析器145
4.4.4 课程设计任务150
4.5 课程设计3-3:用JavaCC生成一个语法分析器151
4.5.1 示例:Block语言及其子语言的分析器151
4.5.2 课程设计任务162
4.6 课程设计3-4:用CUP生成一个有错误处理能力的语法分析器162
4.6.1 错误类型与错误信息管理163
4.6.2 错误恢复与处理机制166
4.6.3 示例168
4.6.4 课程设计任务169
4.7 课程设计3-5:用JavaCC生成一个有错误处理能力的语法分析器169
4.7.1 JavaCC的错误恢复机制170
4.7.2 错误恢复与处理示例171
4.7.3 课程设计任务173
4.8 CUP与YACC174
4.8.1 YACC简介174
4.8.2 CUP与YACC的文法规范描述文件的结构175
4.8.3 文法符号175
4.8.4 一个简单的例子177
4.8.5 错误恢复178
第5章 语义分析179
5.1 SkipOOMiniJOOL语言的静态语义179
5.1.1 非形式描述部分179
5.1.2 形式描述部分:类型系统184
5.2 本章课程设计概述194
5.3 课程设计4-1至课程设计4-3特征概述195
5.4 课程设计4-1:为源程序对应的AST构造符号表197
5.4.1 Block语言的语义特征197
5.4.2 示例:为Block程序对应的AST构造符号表198
5.4.3 课程设计指导和任务202
5.5 课程设计4-2:利用AST及其符号表信息开展语义检查204
5.5.1 示例:利用Block程序对应的AST及其符号表信息开展语义检查204
5.5.2 课程设计指导与任务207
5.6 课程设计4-3:对源程序关联的AST进行语义检查208
5.6.1 示例:对Block程序对应的AST进行语义检查208
5.6.2 课程设计注意事项210
5.7 课程设计4-4:在语法分析的同时构造符号表210
5.7.1 课程设计4-4和课程设计4-5关联的文件210
5.7.2 示例:带符号表构造的Block语言分析器211
5.7.3 课程设计任务214
5.8 课程设计4-5:在语法分析的同时开展语义检查214
5.8.1 示例:带语义检查的Block语言分析器214
5.8.2 课程设计要点216
第6章 中间表示的转换217
6.1 本章课程设计概述217
6.2 低级中间表示LIR218
6.2.1 LIR设计特点简介220
6.2.2 LIR类型225
6.2.3 LIR操作数227
6.2.4 LIR语句231
6.3 课程设计5-1:SkipOOMiniJOOL语言的AST到LIR的转换器233
6.3.1 课程设计指导233
6.3.2 课程设计任务237
6.4 课程设计5-2和课程设计5-3238
第7章 汇编语言及汇编代码的内部表示239
7.1 汇编语言简介239
7.2 MIPS汇编语言240
7.2.1 五阶段流水以及流水可见性240
7.2.2 数据表示与对齐241
7.2.3 寄存器242
7.2.4 地址空间242
7.2.5 寻址方式243
7.2.6 过程调用约定243
7.2.7 伪指令245
7.2.8 常用MIPS汇编指令246
7.3 x86汇编语言250
7.3.1 处理器执行周期和数据表示250
7.3.2 寄存器251
7.3.3 地址空间253
7.3.4 寻址方式254
7.3.5 过程调用255
7.3.6 AT&T汇编语法与Intel汇编语法的区别258
7.3.7 伪指令259
7.3.8 常用x86汇编指令260
7.4 汇编代码的内部表示264
7.4.1 AIR库的组成及设计特点265
7.4.2 使用AIR库编程的步骤266
7.4.3 配置文件格式及示例267
7.4.4 符号编码类的代码生成269
7.4.5 汇编代码的表示、创建与输出270
第8章 汇编代码生成275
8.1 本章课程设计概述275
8.2 汇编代码生成器设计中的问题276
8.3 汇编代码生成器的开发步骤278
8.4 edu.ustc.cs.compile.lir.opt包及其使用280
8.4.1 edu.ustc.cs.compile.opt.base包:抽象层280
8.4.2 edu.ustc.cs.compile.opt.lir包:LIR实现层288
8.5 寄存器分配290
8.5.1 线性扫描寄存器分配算法291
8.5.2 实验软件包中的寄存器分配器291
8.6 汇编代码生成的代码框架293
8.6.1 基于LIR流图结构的汇编代码生成293
8.6.2 AST到汇编代码的生成295
8.7 MIPS汇编代码的生成与执行295
8.7.1 MIPS汇编语言与SkipOOMiniJOOL语言中部分结构的对应关系295
8.7.2 利用SPIM解释执行MIPS汇编代码298
8.8 x86汇编代码的生成与执行299
8.8.1 LIR语句的转换299
8.8.2 x86汇编代码的生成300
第9章 面向对象语言的编译302
9.1 MiniJOOL语言特征303
9.1.1 一个MiniJOOL程序示例303
9.1.2 MiniJOOL程序的总体结构304
9.1.3 类类型及其使用308
9.2 本章课程设计概述310
9.3 课程设计8-1:构造MiniJOOL语言的词法语法分析器312
9.4 课程设计8-2:构造MiniJOOL语言的语义检查器313
9.5 面向MiniJOOL语言的LIR314
9.5.1 对面向对象特征及其处理的设计考虑314
9.5.2 LIR中的类对象存储布局和类的类型信息表示316
9.5.3 LIR中虚方法表结构以及运行时类型判断320
9.6 课程设计8-3:构造MiniJOOL-Ⅰ语言的AST到LIR的转换器321
9.6.1 课程设计指导321
9.6.2 课程设计任务323
9.7 课程设计8-4:构造MiniJOOL-Ⅱ语言的AST到LIR的转换器323
9.8 课程设计8-5:构造MiniJOOL-Ⅲ语言的AST到LIR的转换器324
9.9 课程设计8-6:构造MiniJOOL语言的AST到LIR的转换器325
9.10 课程设计8-7:构造MiniJOOL语言的汇编代码生成器326
9.10.1 课程设计指导326
9.10.2 课程设计任务327
第10章 综合性课程设计328
10.1 课程设计内容328
10.1.1 可选的编译器组件328
10.1.2 各编译器组件的组合方式331
10.2 课程设计实施方法332
10.3 答辩与考评要求333
附录335
附录1 MiniJOOL语言的词法记号类型及标识335
附录2 运算符的优先级与结合性336
附录3 MLex词法规范语言的EBNF表示336
附录4 SimpleMiniJOOL语言语法的EBNF表示337
附录5 SkipOOMiniJOOL语言语法的EBNF表示338
附录6 MiniJOOL语言语法的EBNF表示339
附录7 与本书有关的Eclipse AST节点类及其含义341
附录8 MIPS-SPIM汇编语言的EBNF定义343
附录9 采用AT&T语法的x86汇编语言的EBNF定义344
附录10 实验软件包提供的可用编译器组件345
参考文献346
热门推荐
- 2582369.html
- 2171566.html
- 649145.html
- 2902506.html
- 888323.html
- 2964545.html
- 2718939.html
- 1586034.html
- 3148784.html
- 1501124.html
- http://www.ickdjs.cc/book_1090026.html
- http://www.ickdjs.cc/book_3843785.html
- http://www.ickdjs.cc/book_1690166.html
- http://www.ickdjs.cc/book_3380327.html
- http://www.ickdjs.cc/book_101081.html
- http://www.ickdjs.cc/book_765730.html
- http://www.ickdjs.cc/book_801671.html
- http://www.ickdjs.cc/book_2520491.html
- http://www.ickdjs.cc/book_746275.html
- http://www.ickdjs.cc/book_590593.html