编译原理

谌志群

目录

  • 1 第一章 编译概述
    • 1.1 课程总体介绍
    • 1.2 语言处理程序
    • 1.3 编译的基本过程和逻辑结构
    • 1.4 编译程序的组织
    • 1.5 编译程序的生成
    • 1.6 编译技术发展简史
  • 2 第二章 程序语言理论基础
    • 2.1 符号串和语言
    • 2.2 文法和语言
    • 2.3 分析树和二义性
    • 2.4 形式语言概观
    • 2.5 小结
  • 3 第三章 词法分析
    • 3.1 词法分析程序的设计
    • 3.2 单词的描述(正规表达式)
    • 3.3 有限自动机
      • 3.3.1 非确定性有限自动机NFA
      • 3.3.2 确定性有限自动机DFA
      • 3.3.3 NFA到DFA的转换(子集法)
      • 3.3.4 DFA的最小化(求同法和求异法)
    • 3.4 正规式和有限自动机的等价性
    • 3.5 词法分析程序的自动构造(LEX)
    • 3.6 小结
  • 4 第四章 语法分析
    • 4.1 语法分析程序的构造
    • 4.2 自顶向下的分析方法
      • 4.2.1 递归下降子程序法
      • 4.2.2 预测分析法_LL(1)
    • 4.3 自底向上的分析方法
      • 4.3.1 移进-归约策略
      • 4.3.2 LR分析方法
        • 4.3.2.1 LR(0)
        • 4.3.2.2 SLR(1)
        • 4.3.2.3 LR(1)
    • 4.4 小结
  • 5 第五章 语法制导翻译
    • 5.1 语义分析概述
    • 5.2 语法制导定义
      • 5.2.1 属性的定义
      • 5.2.2 属性的计算
    • 5.3 S-属性定义及其自底向上的计算顺序
    • 5.4 L-属性定义及其自顶向下的计算顺序
      • 5.4.1 翻译模式
      • 5.4.2 深度优先遍历算法
    • 5.5 小结
  • 6 第六章 中间代码生成
    • 6.1 中间语言
      • 6.1.1 抽象语法树
      • 6.1.2 有向非循环图
      • 6.1.3 三地址代码
    • 6.2 类型检查
    • 6.3 常用语句的三地址代码生成
      • 6.3.1 说明语句的翻译
      • 6.3.2 赋值语句的翻译
      • 6.3.3 布尔表达式与控制流语句翻译
      • 6.3.4 回填技术
    • 6.4 小结
  • 7 第七章 运行时刻管理和符号表
    • 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 DISPLAY表
    • 7.6 符号表
    • 7.7 小结
  • 8 第八章 代码生成
    • 8.1 代码生成器
    • 8.2 运行时刻管理
    • 8.3 基本块和流图
      • 8.3.1 基本块概念及其切分算法
      • 8.3.2 程序流图的构建及其作用
    • 8.4 下次引用信息
    • 8.5 简单代码生成算法
  • 9 第九章 代码优化
    • 9.1 代码优化概述
    • 9.2 基本块与局部优化
    • 9.3 控制流分析
    • 9.4 数据流分析
语法分析程序的构造