注册 登录 进入教材巡展
#

出版时间:2014年8月

出版社:清华大学出版社

以下为《编译原理及实践教程(第2版)》的配套数字资源,这些资源在您购买图书后将免费附送给您:
  • 清华大学出版社
  • 9787302277439
  • 2-3
  • 77242
  • 16开
  • 2014年8月
  • 工学
  • 软件工程
  • TP314
  • 计算机
  • 本专科、高职高专
内容简介

   《21世纪高等学校规划教材·计算机科学与技术:编译原理及实践教程(第2版)》系统地介绍了编译程序的设计与构造以及各组成部分的软件技术和实用方法。全书共8章,主要包括编译程序概述、高级语言设计基础、词法分析、语法分析、语义分析和中间代码生成、运行时存储空间的组织、代码优化以及目标代码生成。《21世纪高等学校规划教材·计算机科学与技术:编译原理及实践教程(第2版)》的目标是使学习者建立一个较为完整的编译系统的模型,掌握各个阶段的基本算法、常用的编译技术和方法,为今后从事系统软件和应用软件的开发打下理论和实践基础。为此,《21世纪高等学校规划教材·计算机科学与技术:编译原理及实践教程(第2版)》力求讲清基本概念、基本原理和实现方法;书中引入了丰富的典型例题,配以大量的习题;《21世纪高等学校规划教材·计算机科学与技术:编译原理及实践教程(第2版)》以Sample语言为例来贯穿各章内容,介绍了其编译程序的具体实现技术和构造方法。

   《21世纪高等学校规划教材·计算机科学与技术:编译原理及实践教程(第2版)》可供高等学校计算机科学与技术及相关专业本科教学使用,也可供计算机系统软件和应用软件开发人员自学和参考。

目录
第1章 概述1.1 程序设计语言与编译程序1.1.1 程序设计语言1.1.2 翻译程序1.1.3 编译程序和解释程序1.1.4 编译程序的伙伴1.2 编译过程和编译程序的结构1.2.1 编译过程概述1.2.2 编译程序的结构1.2.3 编译阶段的组合1.3 编译程序的设计1.3.1 编译程序的构造方式1.3.2 Sample语言编译程序的设计1.4 编译程序的发展及应用1.4.1 编译程序的发展1.4.2 为什么要学习编译原理及其构造技术1.4.3 编译技术的应用1.5 小结1.6 习题 第2章 高级语言设计基础2.1 符号和符号串2.2 文法与语言2.2.1 文法的定义2.2.2 文法产生的语言2.2.3 文法的二义性2.2.4 文法的分类2.3 高级语言的设计2.3.1 程序语言的定义2.3.2 冯·诺依曼体系结构与高级语言2.3.3 数据类型2.3.4 语句和控制结构2.3.5 语言设计的步骤2.4 语言设计实例2.4.1 Sample语言字符集的定义2.4.2 Sample语言单词的定义2.4.3 Sample语言数据类型的定义2.4.4 Sample语言表达式的定义2.4.5 Sample语言语句的定义2.4.6 Sample语言程序体和程序的定义2.4.7 符合Sample语言定义的源程序举例2.5 小结2.6 习题 第3章 词法分析3.1 词法分析的任务和功能3.1.1 词法分析的功能3.1.2 单词的类型和种别码3.2 词法分析器的设计3.2.1 词法分析程序的接口3.2.2 词法分析程序的总体设计3.2.3 词法分析程序的详细设计3.2.4 单词的识别和状态转换图3.2.5 符号表及其操作3.2.6 词法分析阶段的错误处理3.3 正规文法、正规式与有穷自动机3.3.1 正规文法3.3.2 正规式3.3.3 有穷自动机3.3.4 正规文法与有穷自动机的等价性3.3.5 正规式与有穷自动机的等价性3.4 词法分析程序的自动生成3.4.1 LEX的概述3.4.2 LEX源文件的书写3.4.3 LEX的工作原理3.4.4 LEX使用中的一些注意事项3.4.5 使用LEX自动生成Sample语言的词法分析程序3.5 小结3.6 习题 第4章 语法分析4.1 语法分析概述4.2 自上而下的语法分析4.2.1 自上而下分析方法中的问题探究4.2.2 递归下降分析方法4.2.3 预测分析方法4.2.4 Sample语言自上而下语法分析程序的设计4.3 自下而上的语法分析4.3.1 自下而上分析方法概述4.3.2 算符优先分析法4.3.3 LR分析法4.4 语法分析器的自动生成工具YACC4.4.1 YACC概述4.4.2 YACC源文件的格式4.4.3 YACC的翻译规则4.4.4 YACC的辅助程序4.5 语法分析程序中的错误处理4.5.1 语法分析中的错误处理的一般原则4.5.2 自上而下语法分析的错误处理4.5.3 自下而上语法分析的错误处理4.6 小结4.7 习题 第5章 语义分析和中间代码生成5.1 概述5.1.1 语义分析和中间代码生成的功能和任务5.1.2 静态语义检查5.1.3 语义处理5.2 属性文法和语法制导的翻译5.2.1 属性文法的定义5.2.2 综合属性的计算5.2.3 继承属性的计算5.2.4 语法制导的翻译方法5.3 常见语句的语法制导的翻译5.3.1 语义变量和语义函数5.3.2 常量说明语句的语义处理5.3.3 变量说明语句的语义处理5.3.4 算术表达式和简单赋值语句的翻译5.3.5 布尔表达式的翻译5.3.6 if语句的翻译5.3.7 do…while语句的翻译5.3.8 for语句的翻译5.4 Sample语言语法制导的翻译程序的设计5.5 小结5.6 习题 第6章 运行时存储空间的组织6.1 程序执行时的活动6.1.1 源程序中的过程6.1.2 过程执行时的活动6.1.3 名字的作用域6.1.4 参数的传递6.1.5 名字的绑定6.2 程序执行时的存储器组织6.2.1 程序执行时存储器的划分6.2.2 活动记录6.2.3 存储分配策略6.3 静态存储分配6.3.1 静态存储分配的性质6.3.2 静态存储分配的实现6.3.3 临时变量的地址分配6.4 栈式存储分配策略6.5 堆式存储分配6.5.1 堆式存储分配的主要问题6.5.2 堆式动态存储分配的实现6.5.3 存储回收6.6 小结6.7 习题 第7章 代码优化7.1 概述7.1.1 代码优化的地位7.1.2 基本块的概念及流图7.2 局部优化7.2.1 删除公共子表达式7.2.2 复写传播7.2.3 删除无用代码7.2.4 对程序进行代数恒等变换7.2.5 基本块的DAG表示及优化7.3 循环优化7.3.1 循环的定义7.3.2 代码外提7.3.3 强度削弱7.3.4 删除归纳变量7.4 小结7.5 习题 第8章 目标代码生成8.1 概述8.2 目标机器8.3 简单的代码生成算法8.3.1 中间代码的简单翻译方法8.3.2 引用信息和活跃信息8.3.3 寄存器描述和地址描述8.3.4 基本块的代码生成算法8.4 从DAG生成目标代码8.5 Sample代码优化及目标代码生成器的设计8.6 小结8.7 习题参考文献