顶部
收藏

编译原理——包含代数方法的新编译方法


作者:
苏运霖 颜松远
定价:
49.00 元
版面字数:
500.000千字
开本:
16开
装帧形式:
平装
版次:
1
最新版次
印刷时间:
2011-01-23
ISBN:
978-7-04-033047-2
物料号:
33047-00
出版时间:
2011-08-19
读者对象:
学术著作
一级分类:
自然科学
二级分类:
计算机科学与工程
三级分类:
计算理论与算法

本书通过把编程语言的编译同人类对自然语言的理解过程进行类比来阐述编译程序的思想,采用标记法来创建源语言、中间语言和目标语言符号,生动地描述了多层次编译程序的编译过程;详细介绍了LL(1)和LR(1)的分析方法,不仅可以帮助读者了解如何做,还使他们知道为什么这样做;介绍了编译程序的设计方法,并重点介绍代数形式化方法。

本书适合计算机和电子专业本科生和研究生作为教材,也可供相关学科研究人员参考。

  • 前辅文
  • 第1章 概论
    • 1.1 语言和人类
    • 1.2 语言和计算机
    • 1.3 程序设计语言的编译
    • 1.4 编译程序的扫描
    • 1.5 一个语句的编译例子
    • 1.6 本书的组织
    • 思考题
    • 参考文献
  • 第2章 文法和语言
    • 2.1 本章动机
    • 2.2 预备知识
    • 2.3 文法
    • 2.4 语言
    • 2.5 由文法生成的语言
    • 2.6 图灵机
    • 2.7 关于文法和语言的问题
    • 思考题
    • 参考文献
  • 第3章 有限状态自动机和正则语言
    • 3.1 本章动机
    • 3.2 语言、文法和自动机
    • 3.3 确定有限自动机
    • 3.4 非确定有限自动机(NFA)
    • 3.5 正则表达式
    • 3.6 正则文法
    • 3.7 克林和摩尔定理
    • 3.8 抽吸引理及正则语言的封闭性
    • 3.9 有限自动机的应用
    • 3.10 有限自动机的变形
      • 3.10.1 随机自动机
      • 3.10.2 模糊自动机
      • 3.10.3 蜂窝式自动机
    • 思考题
    • 参考文献
  • 第4章 词法分析
    • 4.1 本章动机
    • 4.2 词法分析的作用
      • 4.2.1 标识符分析
      • 4.2.2 常数处理
      • 4.2.3 词法分析程序结构
    • 4.3 词法分析程序的输出
    • 4.4 出错处理
    • 思考题
    • 参考文献
  • 第5章 下推自动机和上下文无关语言
    • 5.1 本章动机
    • 5.2 下推自动机
    • 5.3 上下文无关语言
    • 5.4 上下文无关语言的抽吸定理
    • 5.5 下推自动机和上下文无关语言
    • 5.6 上下文无关语言的应用
    • 5.7 图灵机
    • 5.8 接受语言的图灵机
    • 5.9 各种图灵机的等价性
    • 5.10 递归可枚举语言(LRE)
    • 5.11 上下文有关语言LCS
    • 5.12 机器的层次、文法和语言
      • 5.12.1 机器的层次
      • 5.12.2 文法和语言的层次
    • 5.13 机器、语言和文法的关系
    • 思考题
    • 参考文献
  • 第6章 上下文无关文法
    • 6.1 本章动机
    • 6.2 上下文无关文法的定义
    • 6.3 上下文无关文法的特性
    • 思考题
    • 参考文献
  • 第7章 语法分析
    • 7.1 本章动机
    • 7.2 语法分析在编译程序中的作用
    • 7.3 语法分析方法
      • 7.3.1 自顶向下的分析方法
      • 7.3.2 由底向上的分析方法
    • 思考题
    • 参考文献
  • 第8章 属性文法和对它们的分析
    • 8.1 本章动机
    • 8.2 属性文法
    • 8.3 依赖图和属性的计算
      • 8.3.1 动态属性计算
      • 8.3.2 循环处理
    • 8.4 L属性文法和S属性文法
    • 思考题
    • 参考文献
  • 第9章 编译程序设计的代数方法
    • 9.1 本章动机
    • 9.2 源语言
    • 9.3 代数基础和推理语言
      • 9.3.1 代数基础
      • 9.3.2 推理语言
    • 9.4 一个简单的编译程序
      • 9.4.1 规范形式
      • 9.4.2 规范形式的归结
      • 9.4.3 目标机器
    • 思考题
    • 参考文献
  • 第10章 中间代码生成
    • 10.1 本章动机
    • 10.2 中间代码语言
      • 10.2.1 图形表示
      • 10.2.2 后缀表示
    • 思考题
    • 参考文献
  • 第11章 调试和优化
    • 11.1 本章动机
    • 11.2 错误的检测和恢复
    • 11.3 语法错误的调试
      • 11.3.1 LL(1)的错误检查
      • 11.3.2 LR(1)的错误处理
    • 11.4 语义错误检查
    • 11.5 程序的优化
    • 11.6 优化的主要方法
    • 思考题
    • 参考文献
  • 第12章 存储管理
    • 12.1 本章动机
    • 12.2 全局分配策略
    • 12.3 存储分配算法
      • 12.3.1 栈分配算法
      • 12.3.2 堆分配的算法
    • 12.4 垃圾空间的回收
      • 12.4.1 基本的垃圾收集算法
      • 12.4.2 编译程序对于垃圾收集程序的支持
      • 12.4.3 访问计数
      • 12.4.4 标识和扫描
      • 12.4.5 双空间复写
      • 12.4.6 压缩
    • 12.5 参数传送
      • 12.5.1 赋值调用
      • 12.5.2 访问调用
      • 12.5.3 复写-恢复调用
      • 12.5.4 换名调用
    • 思考题
    • 参考文献
  • 第13章 目标代码的生成
    • 13.1 本章动机
    • 13.2 目标代码的设计
      • 13.2.1 代码生成程序的输入
      • 13.2.2 目标程序
      • 13.2.3 存储管理
      • 13.2.4 指令的选择
      • 13.2.5 寄存器的分配
      • 13.2.6 计算顺序的选择
      • 13.2.7 代码生成方法
    • 13.3 目标机器MMIX
    • 13.4 MMIX的汇编语言
    • 13.5 MMIX目标代码的生成
      • 13.5.1 逆波兰形式下表达式的翻译
      • 13.5.2 三元组的翻译
      • 13.5.3 表达式四元组的翻译
      • 13.5.4 表达式的翻译
      • 13.5.5 表达式的语法树形式的翻译
      • 13.5.6 其他语句的翻译
    • 思考题
    • 参考文献
  • 第14章 面向对象语言的编译
    • 14.1 本章动机
    • 14.2 对象及其编译
    • 14.3 对象的特征
    • 思考题
    • 参考文献
  • 第15章 并行语言的编译
    • 15.1 本章动机
    • 15.2 并行计算机和并行计算的兴起
    • 15.3 并行程序设计
      • 15.3.1 共享变量和管理
      • 15.3.2 消息传输模型
    • 15.4 面向对象的语言
    • 15.5 Linda元组空间
    • 15.6 数据并行语言
    • 15.7 隐式并行程序的代码生成
      • 15.7.1 区域的类型
      • 15.7.2 区域的形成
      • 15.7.3 区域的几个调度算法
    • 思考题
    • 参考文献
  • 第16章 网格计算的编译
    • 16.1 本章动机
    • 16.2 网格计算的兴起
    • 16.3 网格计算的模型
      • 16.3.1 分组路由
      • 16.3.2 在线性阵列中的路由
    • 16.4 网格计算的编译
    • 思考题
    • 参考文献
  • 版权