图书信息
图书目录

编译程序的设计与实现(附光盘)



  编译程序是计算机系统不可缺少的部分,是程序设计者的必备工具。学习并掌握编译程序的构造原理和实现技术,能够增强对程序设计语言的理解,提高程序设计、尤其是大型软件的设计能力。
  本教材以一个简单的具有嵌套过程定义的过程式语言SNL作为教学语言,详细介绍了该语言编译程序的设计和实现方法,并对已经实现的编译程序的源代码分阶段进行了详细的分析,尤其是对编译程序的组成、实现算法、所用数据结构以及各功能部分所采用的编译技术都做了详细的介绍,并配有相应的框图说明。学生在学习“编译原理”课程的同时,可以配合本教材中编译实例的分析,进一步理解和掌握编译程序的构造原理和实现方法。此外,随书发行的光盘中含有SNLC(SNL编译程序)的安装程序、SNLC的源代码以及SNL源程序实例。学生可阅读其中的编译程序源代码,并根据需要对源代码进行改进,从而达到加深对编译原理的理解、提高程序设计能力的目的。
  本教材是一本非常实用的编译程序实例分析和教学辅导教材,可作为高等院校计算机及相关专业的本科教材,也可供相关技术人员参考。


作者:
刘磊、金英等

定价:
29.00元

出版时间:
2004-06-30

ISBN:
978-7-04-014620-2

物料号:
14620-00

读者对象:
高等教育

一级分类:
计算机/教育技术类

二级分类:
计算机类专业核心课程

三级分类:
编译原理

重点项目:
暂无

版面字数:
380.000千字

开本:
16开

全书页数:
326页

装帧形式:
平装
  • 第一章 编译原理概述
    • 1.1 高级程序设计语言的实现
    • 1.2 编译程序的组成
    • 1.3 编译程序的实现
    • 1.4 其他相关程序
  • 第二章 SNL介绍
    • 2.1 SNL的特点
    • 2.2 SNL的词法
      • 2.2.1 语言的字符表
      • 2.2.2 单词的巴科斯范式
    • 2.3 SNL的语法
      • 2.3.1 语法的非形式说明
      • 2.3.2 语法的形式定义
    • 2.4 SNL的语义
    • 习题二
  • 第三章 SNL编译程序简介
    • 3.1 SNL编译程序功能结构
    • 3.2 SNL编译程序的开发环境
    • 3.3 SNL编译程序包
    • 3.4 SNL编译程序的主程序说明
  • 第四章 SNL的词法分析
    • 4.1 词法分析简介
      • 4.1.1 单词的分类
      • 4.1.2 单词的TOKEN表示
      • 4.1.3 词法分析程序和语法分析程序的接口
    • 4.2 DFA的构造和实现
      • 4.2.1 状态转换图
      • 4.2.2 状态转换图的实现
    • 4.3 词法分析程序的实现
      • 4.3.1 词法分析程序的输入/输出
      • 4.3.2 实现词法分析程序的注意事项
      • 4.3.3 词法分析程序的实现框图
    • 4.4 词法分析程序的自动生成器
      • 4.4.1 LEX/FLEX简介
      • 4.4.2 LEX运行与应用过程
      • 4.4.3 LEX源程序结构
      • 4.4.4 应用LEX构造词法分析程序
    • 习题四
  • 第五章 SNL的语法分析
    • 5.1 语法分析概述
      • 5.1.1 上下文无关文法
      • 5.1.2 语法分析方法的分类
      • 5.1.3 3个重要集合
      • 5.1.4 SNL的Predict集
    • 5.2 语法分析程序的实现
      • 5.2.1 语法分析程序的输入/输出
      • 5.2.2 语法树节点的数据结构
    • 5.3 递归下降法的实现
      • 5.3.1 递归下降法基本原理
      • 5.3.2 递归下降法应满足的条件
      • 5.3.3 递归下降法的语法分析程序框图
    • 5.4 LL(1)语法分析方法的实现
      • 5.4.1 LL(1)语法分析方法的基本原理
      • 5.4.2 SNL的LL(1)语法分析概述
      • 5.4.3 LL(1)语法分析程序框图
    • 5.5 语法分析程序的自动生成器
      • 5.5.1 YACC/Bison
      • 5.5.2 ACCENT
    • 习题五
  • 第六章 符号表管理与语义分析
    • 6.1 语义分析概述
    • 6.2 符号表管理
      • 6.2.1 符号表的内容
      • 6.2.2 符号表的组织
      • 6.2.3 符号表的操作
      • 6.2.4 符号表的实现
    • 6.3 语义分析实现
      • 6.3.1 输入/输出
      • 6.3.2 算法框图
    • 习题六
  • 第七章 中间代码生成
    • 7.1 中间代码简介
      • 7.1.1 中间代码的表示形式
      • 7.1.2 中间代码的生成方法
    • 7.2 SNL的中间语言
    • 7.3 SNL的中间代码生成
      • 7.3.1 输入/输出
      • 7.3.2 中间代码的构造方法
      • 7.3.3 从语法树生成四元式
      • 7.3.4 相关的应用函数
      • 7.3.5 中间代码生成程序说明
    • 习题七
  • 第八章 中间代码优化
    • 8.1 中间代码优化简介
      • 8.1.1 优化种类介绍
      • 8.1.2 基本块的划分
    • 8.2 常量表达式优化
      • 8.2.1 常量表达式优化的原理
      • 8.2.2 常量表达式节省的实现
    • 8.3 公共表达式节省方法
      • 8.3.1 公共表达式优化原理
      • 8.3.2 公共表达式节省的实现
    • 8.4 循环不变式外提
      • 8.4.1 循环不变式外提的原理
      • 8.4.2 循环外提的实现
    • 习题八
  • 第九章 SNL的目标代码生成
    • 9.1 虚拟目标机TM
      • 9.1.1 TM的寄存器和存储器
      • 9.1.2 TM的地址模式和指令集
    • 9.2 编译程序中运行时存储空间管理
      • 9.2.1 存储空间结构
      • 9.2.2 过程活动记录
      • 9.2.3 动态链
    • 9.3 语法树到目标代码的生成
      • 9.3.1 原理
      • 9.3.2 框图
    • 9.4 四元式到目标代码的生成
      • 9.4.1 原理
      • 9.4.2 四元式到目标代码生成中的关键问题
      • 9.4.3 程序框图
    • 习题九
  • 第十章 虚拟目标代码的解释程序
    • 10.1 解释程序
    • 10.2 虚拟目标机TM的可执行命令
    • 10.3 解释程序的实现
    • 习题十
  • 第十一章 实践课题
    • 11.1 语言的扩充和实现
    • 11.2 实现方法的扩充
    • 11.3 应用自动生成工具
    • 11.4 实现语言
  • 第十二章 SNLC软件使用指南
    • 12.1 SNLC概述
      • 12.1.1 SNLC的特色
      • 12.1.2 SNLC的运行环境
      • 12.1.3 SNLC的安装和卸载
      • 12.1.4 SNLC的启动和退出
    • 12.2 SNLC的使用
      • 12.2.1 SNL文件的操作
      • 12.2.2 SNL程序的词法分析
      • 12.2.3 SNL程序的语法分析
      • 12.2.4 SNL程序的语义分析
      • 12.2.5 SNL程序的中间代码生成
      • 12.2.6 SNL程序的优化
      • 12.2.7 SNL程序的目标代码生成
      • 12.2.8 SNL程序的虚拟执行
    • 12.3 有关问题的说明
      • 12.3.1 SNLC的维护和出错处理
      • 12.3.2 SNLC的帮助功能
  • 参考文献
1