编译原理与技术·第2版/计算机系列教材

编译原理与技术·第2版/计算机系列教材
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2016-09
版次: 1
ISBN: 9787302441410
定价: 49.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 415页
字数: 659千字
正文语种: 简体中文
146人买过
  •   本书系统地介绍了编译程序的设计原理和基本实现技术。主要内容包括词法分析、语法分析、语义分析、中间代码生成、代码生成和代码优化等,还重点介绍了用于实现语义分析和中间代码生成的语法制导翻译技术,以及程序运行时存储空间的组织与管理。
      本书在介绍基本理论和方法的同时,也注重实际应用,介绍了LEX和YACC的使用方法及原理,剖析了PL/0语言的编译程序,介绍了GCC编译程序的基本结构。配合理论教学,给出了一些实践题目,旨在培养学生分析和解决问题的能力。
      本书内容充实、图文并茂、各章节内容循序渐进,并注重理论与实践的结合。
      本书可作为高等学校计算机科学与技术专业的本科生教材或参考书,也可供其他专业的学生或从事计算机工作的工程技术人员阅读参考。本书封面贴有清华大学出版社防伪标签,无标签者不得销售。

    李文生,北京邮电大学计算机学院副教授。1990年毕业于天津大学计算机系,获硕士学位。自1990年3月以来,一直在北京邮电大学计算机学院任教,主讲计算机专业本科“编译原理与技术”、“操作系统”等课程,长期站在教学第一线,有着丰富的教学实践经验:出版《编译原理与技术》、《编译程序设计原理与技术》等多部教材。 

    第1章编译概述/1
    1.1翻译和解释/1
    1.1.1程序设计语言/1
    1.1.2翻译程序/2
    1.2编译的阶段和任务/4
    1.2.1分析阶段/4
    1.2.2综合阶段/7
    1.2.3符号表管理/10
    1.2.4错误处理/10
    1.3和编译有关的其他概念/11
    1.3.1编译的前端和后端/11
    1.3.2“遍”的概念/11
    1.4编译程序的伙伴工具/13
    1.4.1预处理器/14
    1.4.2汇编程序/14
    1.4.3连接装配程序/16
    1.5编译原理的应用/16
    习题1/18第2章形式语言与自动机基础/19
    2.1语言和文法/19
    2.1.1字母表和符号串/19
    2.1.2语言/20
    2.1.3文法及其形式定义/21
    2.1.4推导和短语/23
    2.1.5分析树及二义性/25
    2.1.6文法变换/27
    2.2有限自动机/31
    2.2.1确定的有限自动机/32
    2.2.2非确定的有限自动机/342.2.3具有ε转移的非确定的有限自动机/36
    2.2.4DFA的化简/40
    2.3正规文法与有限自动机的等价性/42
    2.4正规表达式与有限自动机的等价性/45
    2.5正规表达式与正规文法的等价性/48
    2.5.1正规定义式/48
    2.5.2表示的缩写/49
    2.5.3正规表达式转换为等价的正规文法/50
    习题2/51第3章词法分析/53
    3.1词法分析程序与语法分析程序的关系/53
    3.2词法分析程序的输入与输出/54
    3.2.1输入缓冲区/54
    3.2.2词法分析程序的输出/56
    3.3记号的描述和识别/57
    3.3.1词法与正规文法/58
    3.3.2记号的文法/58
    3.3.3状态转换图与记号的识别/61
    3.4词法分析程序的设计与实现/62
    3.4.1文法及状态转换图/63
    3.4.2词法分析程序的构造/65
    3.4.3词法分析程序的实现/65
    3.5LEX简介/71
    3.5.1LEX源程序的结构/71
    3.5.2LEX源程序举例/74
    习题3/76
    程序设计1/77第4章语法分析/78
    4.1语法分析简介/78
    4.1.1语法分析程序的地位/78
    4.1.2常用的语法分析方法/78
    4.1.3语法错误的处理/79
    4.2自顶向下分析方法/80
    4.2.1递归下降分析/81
    4.2.2递归调用预测分析/82
    4.2.3非递归预测分析/88
    4.3自底向上分析方法/95
    4.3.1规范归约/97
    4.3.2“移进归约”方法的实现/98
    4.4LR分析方法/100
    4.4.1LR分析程序的模型及工作过程/100
    4.4.2SLR(1)分析表的构造/104
    4.4.3LR(1)分析表的构造/112
    4.4.4LALR(1)分析表的构造/119
    4.4.5LR分析方法对二义文法的应用/124
    4.4.6LR分析的错误处理与恢复/129
    4.5软件工具YACC/131
    4.5.1YACC源程序/132
    4.5.2YACC对二义文法的处理/134
    4.5.3用LEX建立YACC的词法分析程序/136
    习题4/137
    程序设计2/141第5章语法制导翻译技术/142
    5.1语法制导定义及翻译方案/143
    5.1.1语法制导定义/143
    5.1.2依赖图/146
    5.1.3计算次序/147
    5.1.4S属性定义及L属性定义/148
    5.1.5翻译方案/149
    5.2S属性定义的自底向上翻译/151
    5.2.1为表达式构造语法树的语法制导
    定义/151
    5.2.2S属性定义的自底向上翻译/155
    5.3L属性定义的自顶向下翻译/158
    5.3.1消除翻译方案中的左递归/158
    5.3.2预测翻译程序的设计/162
    5.4L属性定义的自底向上翻译/165
    5.4.1移走翻译方案中嵌入的语义规则/166
    5.4.2直接使用分析栈中的继承属性/166
    5.4.3变换继承属性的计算规则/169
    5.4.4改写语法制导定义为S属性定义/172
    5.5通用的语法制导翻译方法/173
    习题5/176第6章语义分析/180
    6.1语义分析概述/180
    6.1.1语义分析的任务/180
    6.1.2语义分析程序的位置/181
    6.1.3错误处理/181
    6.2符号表/182
    6.2.1符号表的建立和访问时机/182
    6.2.2符号表内容/184
    6.2.3符号表操作/187
    6.2.4符号表组织/189
    6.3类型检查/193
    6.3.1类型表达式/194
    6.3.2类型等价/197
    6.4一个简单的类型检查程序/204
    6.4.1语言说明/204
    6.4.2符号表的建立/205
    6.4.3表达式的类型检查/210
    6.4.4语句的类型检查/213
    6.4.5类型转换/214
    6.5类型检查有关的其他主题/216
    6.5.1函数和运算符的重载/216
    6.5.2多态函数/217
    习题6/220
    程序设计3/223第7章运行环境/225
    7.1程序运行时的存储组织/225
    7.1.1程序运行空间的划分/226
    7.1.2活动记录与控制栈/227
    7.1.3名字的作用域及名字绑定/230
    7.2存储分配策略/231
    7.2.1静态存储分配/231
    7.2.2栈式存储分配/233
    7.2.3堆式存储分配/237
    7.3非局部名字的访问/239
    7.3.1程序块/239
    7.3.2静态作用域规则下非局部名字的
    访问/241
    7.3.3动态作用域规则下非局部名字的
    访问/248
    7.4参数传递机制/250
    7.4.1传值调用/250
    7.4.2引用调用/252
    7.4.3复制恢复/253
    7.4.4传名调用/255
    习题7/255第8章中间代码生成/259
    8.1中间代码形式/259
    8.1.1图形表示/259
    8.1.2三地址代码/260
    8.2赋值语句的翻译/265
    8.2.1仅涉及简单变量的赋值语句的
    翻译/265
    8.2.2涉及数组元素的赋值语句/268
    8.2.3记录结构中域的访问/273
    8.3布尔表达式的翻译/274
    8.3.1翻译布尔表达式的方法/274
    8.3.2数值表示法/275
    8.3.3控制流表示法及回填技术/276
    8.4控制语句的翻译/282
    8.5goto语句的翻译/287
    8.6CASE语句的翻译/289
    8.7过程调用语句的翻译/292
    习题8/294第9章目标代码生成/297
    9.1目标代码生成概述/297
    9.1.1代码生成程序的位置/297
    9.1.2代码生成程序设计的相关问题/298
    9.2基本块和流图/300
    9.3下次引用信息/302
    9.4一个简单的代码生成程序/305
    9.4.1目标机器描述/305
    9.4.2代码生成算法/307
    9.4.3其他常用语句的代码生成/312
    习题9/315第10章代码优化/317
    10.1代码优化概述/317
    10.1.1代码优化程序的功能和位置/317
    10.1.2代码优化的主要种类/317
    10.2基本块优化/318
    10.2.1常数合并及常数传播/318
    10.2.2删除公共表达式/320
    10.2.3复制传播/321
    10.2.4削弱计算强度/321
    10.2.5改变计算次序/321
    10.3dag在基本块优化中的应用/322
    10.3.1基本块的dag表示/322
    10.3.2基本块的dag构造算法/323
    10.3.3dag的应用/327
    10.3.4dag构造算法的进一步讨论/330
    10.4循环优化/333
    10.4.1循环展开/333
    10.4.2代码外提/334
    10.4.3削弱计算强度/334
    10.4.4删除归纳变量/335
    10.5窥孔优化/337
    10.5.1删除冗余的传送指令/337
    10.5.2删除死代码/337
    10.5.3控制流优化/338
    10.5.4削弱计算强度及代数化简/338
    习题10/339第11章面向对象的编译方法/341
    11.1面向对象语言的基本概念/341
    11.1.1类和对象/341
    11.1.2继承/343
    11.1.3信息封装/346
    11.1.4多态性/347
    11.2方法的编译/350
    11.2.1静态方法/350
    11.2.2动态方法/351
    11.3继承的编译/354
    11.3.1单一继承的编译/354
    11.3.2多继承的编译/355
    11.4程序运行环境/358
    习题11/359第12章编译程序构造实践/360
    12.1编译程序的表示及实现方法/360
    12.1.1表示方法/360
    12.1.2实现语言/360
    12.1.3自展法/361
    12.1.4移植法/362
    12.2PL/0语言及其编译程序介绍/364
    12.2.1PL/0语言/365
    12.2.2PL/0编译程序的结构/368
    12.2.3PL/0编译程序的词法分析/369
    12.2.4PL/0编译程序的语法分析/371
    12.2.5PL/0编译程序的出错处理/373
    12.2.6PL/0编译程序的执行环境及
    代码生成/375
    12.2.7PL/0程序编译和运行示例/379
    12.3GCC编译程序/381
    12.3.1GCC简介/382
    12.3.2GCC编译程序的结构与处理
    流程/383
    12.3.3GCC的分析程序/384
    12.3.4GCC的中间语言及中间代码
    生成/385
    12.3.5GCC的代码优化/389
    12.3.6GCC的代码生成/391
    12.4编译实践/392
    12.4.1PascalS语言说明/392
    12.4.2课程设计要求及说明/398
    12.4.3编译程序的测试/400附录PL/0编译程序源程序/402参考文献/416

  • 内容简介:
      本书系统地介绍了编译程序的设计原理和基本实现技术。主要内容包括词法分析、语法分析、语义分析、中间代码生成、代码生成和代码优化等,还重点介绍了用于实现语义分析和中间代码生成的语法制导翻译技术,以及程序运行时存储空间的组织与管理。
      本书在介绍基本理论和方法的同时,也注重实际应用,介绍了LEX和YACC的使用方法及原理,剖析了PL/0语言的编译程序,介绍了GCC编译程序的基本结构。配合理论教学,给出了一些实践题目,旨在培养学生分析和解决问题的能力。
      本书内容充实、图文并茂、各章节内容循序渐进,并注重理论与实践的结合。
      本书可作为高等学校计算机科学与技术专业的本科生教材或参考书,也可供其他专业的学生或从事计算机工作的工程技术人员阅读参考。本书封面贴有清华大学出版社防伪标签,无标签者不得销售。

  • 作者简介:
    李文生,北京邮电大学计算机学院副教授。1990年毕业于天津大学计算机系,获硕士学位。自1990年3月以来,一直在北京邮电大学计算机学院任教,主讲计算机专业本科“编译原理与技术”、“操作系统”等课程,长期站在教学第一线,有着丰富的教学实践经验:出版《编译原理与技术》、《编译程序设计原理与技术》等多部教材。 

  • 目录:
    第1章编译概述/1
    1.1翻译和解释/1
    1.1.1程序设计语言/1
    1.1.2翻译程序/2
    1.2编译的阶段和任务/4
    1.2.1分析阶段/4
    1.2.2综合阶段/7
    1.2.3符号表管理/10
    1.2.4错误处理/10
    1.3和编译有关的其他概念/11
    1.3.1编译的前端和后端/11
    1.3.2“遍”的概念/11
    1.4编译程序的伙伴工具/13
    1.4.1预处理器/14
    1.4.2汇编程序/14
    1.4.3连接装配程序/16
    1.5编译原理的应用/16
    习题1/18第2章形式语言与自动机基础/19
    2.1语言和文法/19
    2.1.1字母表和符号串/19
    2.1.2语言/20
    2.1.3文法及其形式定义/21
    2.1.4推导和短语/23
    2.1.5分析树及二义性/25
    2.1.6文法变换/27
    2.2有限自动机/31
    2.2.1确定的有限自动机/32
    2.2.2非确定的有限自动机/342.2.3具有ε转移的非确定的有限自动机/36
    2.2.4DFA的化简/40
    2.3正规文法与有限自动机的等价性/42
    2.4正规表达式与有限自动机的等价性/45
    2.5正规表达式与正规文法的等价性/48
    2.5.1正规定义式/48
    2.5.2表示的缩写/49
    2.5.3正规表达式转换为等价的正规文法/50
    习题2/51第3章词法分析/53
    3.1词法分析程序与语法分析程序的关系/53
    3.2词法分析程序的输入与输出/54
    3.2.1输入缓冲区/54
    3.2.2词法分析程序的输出/56
    3.3记号的描述和识别/57
    3.3.1词法与正规文法/58
    3.3.2记号的文法/58
    3.3.3状态转换图与记号的识别/61
    3.4词法分析程序的设计与实现/62
    3.4.1文法及状态转换图/63
    3.4.2词法分析程序的构造/65
    3.4.3词法分析程序的实现/65
    3.5LEX简介/71
    3.5.1LEX源程序的结构/71
    3.5.2LEX源程序举例/74
    习题3/76
    程序设计1/77第4章语法分析/78
    4.1语法分析简介/78
    4.1.1语法分析程序的地位/78
    4.1.2常用的语法分析方法/78
    4.1.3语法错误的处理/79
    4.2自顶向下分析方法/80
    4.2.1递归下降分析/81
    4.2.2递归调用预测分析/82
    4.2.3非递归预测分析/88
    4.3自底向上分析方法/95
    4.3.1规范归约/97
    4.3.2“移进归约”方法的实现/98
    4.4LR分析方法/100
    4.4.1LR分析程序的模型及工作过程/100
    4.4.2SLR(1)分析表的构造/104
    4.4.3LR(1)分析表的构造/112
    4.4.4LALR(1)分析表的构造/119
    4.4.5LR分析方法对二义文法的应用/124
    4.4.6LR分析的错误处理与恢复/129
    4.5软件工具YACC/131
    4.5.1YACC源程序/132
    4.5.2YACC对二义文法的处理/134
    4.5.3用LEX建立YACC的词法分析程序/136
    习题4/137
    程序设计2/141第5章语法制导翻译技术/142
    5.1语法制导定义及翻译方案/143
    5.1.1语法制导定义/143
    5.1.2依赖图/146
    5.1.3计算次序/147
    5.1.4S属性定义及L属性定义/148
    5.1.5翻译方案/149
    5.2S属性定义的自底向上翻译/151
    5.2.1为表达式构造语法树的语法制导
    定义/151
    5.2.2S属性定义的自底向上翻译/155
    5.3L属性定义的自顶向下翻译/158
    5.3.1消除翻译方案中的左递归/158
    5.3.2预测翻译程序的设计/162
    5.4L属性定义的自底向上翻译/165
    5.4.1移走翻译方案中嵌入的语义规则/166
    5.4.2直接使用分析栈中的继承属性/166
    5.4.3变换继承属性的计算规则/169
    5.4.4改写语法制导定义为S属性定义/172
    5.5通用的语法制导翻译方法/173
    习题5/176第6章语义分析/180
    6.1语义分析概述/180
    6.1.1语义分析的任务/180
    6.1.2语义分析程序的位置/181
    6.1.3错误处理/181
    6.2符号表/182
    6.2.1符号表的建立和访问时机/182
    6.2.2符号表内容/184
    6.2.3符号表操作/187
    6.2.4符号表组织/189
    6.3类型检查/193
    6.3.1类型表达式/194
    6.3.2类型等价/197
    6.4一个简单的类型检查程序/204
    6.4.1语言说明/204
    6.4.2符号表的建立/205
    6.4.3表达式的类型检查/210
    6.4.4语句的类型检查/213
    6.4.5类型转换/214
    6.5类型检查有关的其他主题/216
    6.5.1函数和运算符的重载/216
    6.5.2多态函数/217
    习题6/220
    程序设计3/223第7章运行环境/225
    7.1程序运行时的存储组织/225
    7.1.1程序运行空间的划分/226
    7.1.2活动记录与控制栈/227
    7.1.3名字的作用域及名字绑定/230
    7.2存储分配策略/231
    7.2.1静态存储分配/231
    7.2.2栈式存储分配/233
    7.2.3堆式存储分配/237
    7.3非局部名字的访问/239
    7.3.1程序块/239
    7.3.2静态作用域规则下非局部名字的
    访问/241
    7.3.3动态作用域规则下非局部名字的
    访问/248
    7.4参数传递机制/250
    7.4.1传值调用/250
    7.4.2引用调用/252
    7.4.3复制恢复/253
    7.4.4传名调用/255
    习题7/255第8章中间代码生成/259
    8.1中间代码形式/259
    8.1.1图形表示/259
    8.1.2三地址代码/260
    8.2赋值语句的翻译/265
    8.2.1仅涉及简单变量的赋值语句的
    翻译/265
    8.2.2涉及数组元素的赋值语句/268
    8.2.3记录结构中域的访问/273
    8.3布尔表达式的翻译/274
    8.3.1翻译布尔表达式的方法/274
    8.3.2数值表示法/275
    8.3.3控制流表示法及回填技术/276
    8.4控制语句的翻译/282
    8.5goto语句的翻译/287
    8.6CASE语句的翻译/289
    8.7过程调用语句的翻译/292
    习题8/294第9章目标代码生成/297
    9.1目标代码生成概述/297
    9.1.1代码生成程序的位置/297
    9.1.2代码生成程序设计的相关问题/298
    9.2基本块和流图/300
    9.3下次引用信息/302
    9.4一个简单的代码生成程序/305
    9.4.1目标机器描述/305
    9.4.2代码生成算法/307
    9.4.3其他常用语句的代码生成/312
    习题9/315第10章代码优化/317
    10.1代码优化概述/317
    10.1.1代码优化程序的功能和位置/317
    10.1.2代码优化的主要种类/317
    10.2基本块优化/318
    10.2.1常数合并及常数传播/318
    10.2.2删除公共表达式/320
    10.2.3复制传播/321
    10.2.4削弱计算强度/321
    10.2.5改变计算次序/321
    10.3dag在基本块优化中的应用/322
    10.3.1基本块的dag表示/322
    10.3.2基本块的dag构造算法/323
    10.3.3dag的应用/327
    10.3.4dag构造算法的进一步讨论/330
    10.4循环优化/333
    10.4.1循环展开/333
    10.4.2代码外提/334
    10.4.3削弱计算强度/334
    10.4.4删除归纳变量/335
    10.5窥孔优化/337
    10.5.1删除冗余的传送指令/337
    10.5.2删除死代码/337
    10.5.3控制流优化/338
    10.5.4削弱计算强度及代数化简/338
    习题10/339第11章面向对象的编译方法/341
    11.1面向对象语言的基本概念/341
    11.1.1类和对象/341
    11.1.2继承/343
    11.1.3信息封装/346
    11.1.4多态性/347
    11.2方法的编译/350
    11.2.1静态方法/350
    11.2.2动态方法/351
    11.3继承的编译/354
    11.3.1单一继承的编译/354
    11.3.2多继承的编译/355
    11.4程序运行环境/358
    习题11/359第12章编译程序构造实践/360
    12.1编译程序的表示及实现方法/360
    12.1.1表示方法/360
    12.1.2实现语言/360
    12.1.3自展法/361
    12.1.4移植法/362
    12.2PL/0语言及其编译程序介绍/364
    12.2.1PL/0语言/365
    12.2.2PL/0编译程序的结构/368
    12.2.3PL/0编译程序的词法分析/369
    12.2.4PL/0编译程序的语法分析/371
    12.2.5PL/0编译程序的出错处理/373
    12.2.6PL/0编译程序的执行环境及
    代码生成/375
    12.2.7PL/0程序编译和运行示例/379
    12.3GCC编译程序/381
    12.3.1GCC简介/382
    12.3.2GCC编译程序的结构与处理
    流程/383
    12.3.3GCC的分析程序/384
    12.3.4GCC的中间语言及中间代码
    生成/385
    12.3.5GCC的代码优化/389
    12.3.6GCC的代码生成/391
    12.4编译实践/392
    12.4.1PascalS语言说明/392
    12.4.2课程设计要求及说明/398
    12.4.3编译程序的测试/400附录PL/0编译程序源程序/402参考文献/416

查看详情
12
相关图书 / 更多
编译原理与技术·第2版/计算机系列教材
编译原理与实践
鲁斌
编译原理与技术·第2版/计算机系列教材
编译器设计原理
谌志群 著
编译原理与技术·第2版/计算机系列教材
编译方法导论
史涯晴 贺汛
编译原理与技术·第2版/计算机系列教材
编译原理及编译程序构造(第3版)/普通高校计算机专业精品教材系列
云挺、秦振松、薛联凤 著
编译原理与技术·第2版/计算机系列教材
编译技术与应用(微课视频版·题库版)
杨金民 陈果 黎文伟
编译原理与技术·第2版/计算机系列教材
编译原理简明教程
费蓉
编译原理与技术·第2版/计算机系列教材
编译原理
刘茂福、黄革新、胡慧君 编
编译原理与技术·第2版/计算机系列教材
编译原理及实现(第2版)
姜淑娟;谢红侠;张辰;刘兵
编译原理与技术·第2版/计算机系列教材
编译原理教程(第五版)
李玉军 著
编译原理与技术·第2版/计算机系列教材
编译原理
李维华;岳昆;周小兵
编译原理与技术·第2版/计算机系列教材
编译原理(英文版)
雷向东、龙军、雷振阳 编
编译原理与技术·第2版/计算机系列教材
编译原理及编译程序构造
薛联凤
您可能感兴趣 / 更多
编译原理与技术·第2版/计算机系列教材
“一带一路”乡村生活污水一体化处理与经典案例
李文生 著
编译原理与技术·第2版/计算机系列教材
大学生体育教程
李文生 编
编译原理与技术·第2版/计算机系列教材
体育与健康/“十三五”高职高专规划教材
李文生 编
编译原理与技术·第2版/计算机系列教材
编译原理与技术(第2版)学习指导与习题解析(计算机系列教材)
李文生 著
编译原理与技术·第2版/计算机系列教材
国家检察官学院全国预备检察官培训系列教材(5):反渎职侵权业务教程
李文生、胡卫列 编
编译原理与技术·第2版/计算机系列教材
儿子的心意
李文生 编译;[韩]佚名 著
编译原理与技术·第2版/计算机系列教材
编译原理与技术
李文生 编
编译原理与技术·第2版/计算机系列教材
巧思妙解·初中物理
李文生 主编
编译原理与技术·第2版/计算机系列教材
大学计算机基础
李文生、修佳鹏、侯斌 编著
编译原理与技术·第2版/计算机系列教材
爱因斯坦号/智慧大师考考你
李文生 编选
编译原理与技术·第2版/计算机系列教材
编译程序设计原理与技术
李文生 编著
编译原理与技术·第2版/计算机系列教材
长白山概览
李文生