顶部
收藏

编译原理(第2版)


作者:
徐国定
定价:
20.60元
ISBN:
978-7-04-021401-7
版面字数:
360.000千字
开本:
16开
全书页数:
249页
装帧形式:
平装
重点项目:
暂无
出版时间:
2007-06-20
读者对象:
高等教育
一级分类:
计算机/教育技术类
二级分类:
计算机类专业核心课程
三级分类:
编译原理

编译原理是高等学校计算机专业的一门专业基础课程。本书系统地介绍程序语言编译程序的构造方法,内容涉及词法分析、句法分析、语义分析、目标代码生成、代码优化和出错处理。为了让读者深刻理解编译程序的工作过程,本书以自动机理论为模型叙述经典的词法分析和句法语义分析的方法。此外,还给出了编译程序编写工具的原理和代码生成的详细过程。本书力图使读者对编译程序的工作原理有一个完整的了解,并具有设计编译程序及其编写工具的基本能力。

本书可以作为高等学校计算机专业、软件学院“编译原理”课程教材或参考书,也可作为相关从业人员的参考读物。

  • 第一章 概论
    • 1.1 程序语言和语言处理程序
      • 1.1.1 程序语言
      • 1.1.2 语言处理程序
    • 1.2 编译程序组成
      • 1.2.1 词法分析
      • 1.2.2 句法分析和语义分析
      • 1.2.3 代码优化和代码生成
      • 1.2.4 表格管理和出错恢复
    • 习题
  • 第二章 词法分析
    • 2.1 正则表达式
      • 2.1.1 字母表的概念
      • 2.1.2 正则表达式的概念
    • 2.2 有限状态自动机
      • 2.2.1 有限状态自动机及其表示
      • 2.2.2 正则表达式到有限状态自动机的转换
      • 2.2.3 有限状态自动机的最小化
    • 2.3 词法分析的实现
    • 习题
  • 第三章 LL和LR句法分析法
    • 3.1 上下文无关文法和下推自动机
      • 3.1.1 上下文无关文法
      • 3.1.2 下推自动机
      • 3.1.3 上下文无关文法和下推自动机的关系
    • 3.2 自顶向下句法分析
      • 3.2.1 LL(1)文法的概念
      • 3.2.2 LL(1)文法的句法分析
      • 3.2.3 非LL(1)文法问题
    • 3.3 产生式选择集合的计算
      • 3.3.1 关系和关系运算
      • 3.3.2 产生式选择集合的计算
    • 3.4 自底向上句法分析
      • 3.4.1 概论
      • 3.4.2 LR(0)句法分析
      • 3.4.3 LR(1)文法
      • 3.4.4 SLR(1)文法和LALR(1)文法
      • 3.4.5 LR句法分析控制表的安排
    • 习题
  • 第四章 其他句法分析法
    • 4.1 简单优先关系和简单优先文法
      • 4.1.1 简单优先关系
      • 4.1.2 简单优先文法
    • 4.2 弱优先文法和简单混合策略优先文法
      • 4.2.1 弱优先文法
      • 4.2.2 简单混合策略优先文法
    • 4.3 运算符优先文法
    • 习题
  • 第五章 语义处理
    • 5.1 中间代码表示法
      • 5.1.1 中间代码概论
      • 5.1.2 后缀表示形式和解释程序
      • 5.1.3 多元组表示
      • 5.1.4 树
    • 5.2 句法制导翻译
      • 5.2.1 句法制导和翻译文法
      • 5.2.2 属性文法和属性翻译文法
    • 习题
  • 第六章 符号表管理
    • 6.1 符号表内容
    • 6.2 符号表的数据结构
      • 6.2.1 线性表
      • 6.2.2 二叉树
      • 6.2.3 散列法
    • 6.3 块结构语言的符号表构造
    • 习题
  • 第七章 运行时刻存储管理
    • 7.1 引言
      • 7.2 过程调用记录
      • 7.3 块结构语言的非局部量的访问
    • 7.4 数组和下标变量
      • 7.4.1 数组
      • 7.4.2 下标变量
    • 7.5 形式参数和实在参数
      • 7.5.1 按访问调用
      • 7.5.2 按值调用
      • 7.5.3 数组
      • 7.5.4 过程
      • 7.5.5 标号
    • 7.6 过程调用和返回
      • 7.6.1 过程调用和返回任务的划分
      • 7.6.2 过程调用和返回语句的翻译
    • 习题
  • 第八章 常见程序结构的翻译
    • 8.1 算术表达式的翻译
    • 8.2 布尔表达式的优化翻译
    • 8.3 顺序控制结构的翻译
      • 8.3.1 if语句的翻译
      • 8.3.2 for语句的翻译
      • 8.3.3 go to语句的翻译
    • 习题
  • 第九章 代码生成和代码优化
    • 9.1 概述
    • 9.2 寄存器和临时变量的管理
      • 9.2.1 寄存器管理
      • 9.2.2 基地址寄存器的加载
      • 9.2.3 临时变量管理
    • 9.3 算术表达式的代码生成
      • 9.3.1 寄存器分配子程序
      • 9.3.2 保存寄存器的值
      • 9.3.3 寄存器加载
      • 9.3.4 取变量子程序
      • 9.3.5 关于加法四元组的代码生成的描述
    • 9.4 代码生成的进一步讨论
      • 9.4.1 与转向有关的中间代码的目标代码生成
      • 9.4.2 过程调用中间代码的目标代码生成
      • 9.4.3 过程说明入口处的处理简介
    • 9.5 与机器无关的代码优化概述
      • 9.5.1 基本块和基本块的值
      • 9.5.2 数据流分析简介
    • 习题
  • 第十章 出错恢复
    • 10.1 引言
    • 10.2 词法分析的出错恢复
    • 10.3 LR和LL句法分析的出错恢复
    • 习题
  • 参考文献

相关图书