当前位置:主页 > 课后答案 > 编译原理习题答案
编译原理及实践教程

《编译原理及实践教程》课后习题答案

  • 更新:2021-08-21
  • 大小:4.84 MB
  • 类别:编译原理
  • 作者:黄贤英、王柯柯
  • 出版:清华大学出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

本书以一个编译器的设计实现案例贯穿全书,以Sample语言为代表,利用软件工程的思想,采取自顶向下分析设计、逐步求精的方法,从词法分析开始,随着教学的深入逐步对编译程序及相关部分进行分析、设计,直至完成整个编译器的设计。

本书以提高学生的软件开发能力为目标,除了介绍与编译有关的基础知识外,更注重介绍设计、开发编译程序的过程、方法和技术。本书强调理论和实践相结合,主要从实用性和可操作性的角度把握; 内容丰富,文字精练,重点突出,不求大而全,但求简而精。本书面向普通高校计算机专业的本科学生,也可作为自学考试教材及读者自学的参考书。

目录

  • 第1章概述
  • 1.1程序设计语言与翻译程序
  • 1.2编译过程和编译程序的结构
  • 1.2.1编译过程概述
  • 1.2.2编译程序的结构
  • 1.2.3编译阶段的组合
  • 1.3编译程序的构造
  • 1.3.1编译程序的构造与生成
  • 1.3.2Sample语言编译程序的设计
  • 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.3语法树和文法的二义性
  • 2.3.1语法分析树
  • 2.3.2文法的二义性
  • 2.4文法的分类
  • 2.5类Pascal语言Sample的简单介绍
  • 2.5.1Sample语言字符集的定义
  • 2.5.2Sample语言单词的定义
  • 2.5.3Sample语言数据类型的定义
  • 2.5.4Sample语言表达式的定义
  • 2.5.5Sample语言语句的定义
  • 2.5.6Sample语言程序的定义
  • 2.5.7符合Sample语言定义的源程序举例
  • 2.6小结
  • 2.7习题
  • 第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.1Lex的概述
  • 3.4.2Lex源文件的格式
  • 3.4.3Lex源文件中正规式的约定
  • 3.4.4Lex源文件的翻译规则
  • 3.4.5Lex源程序设计举例
  • 3.4.6Lex使用中的一些注意事项
  • 3.4.7使用Lex自动生成Sample语言的词法分析器
  • 3.5小结
  • 3.6习题
  • 第4章语法分析
  • 4.1语法分析概述
  • 4.2自上而下分析面临的问题及其解决方法
  • 4.2.1确定的自上而下分析面临的两个问题
  • 4.2.2左递归的消除
  • 4.2.3回溯的消除
  • 4.2.4LL(1)文法
  • 4.3确定的自上而下的分析方法
  • 4.3.1递归下降分析法
  • 4.3.2预测分析法
  • 4.4Sample语言自上而下语法分析程序的设计
  • 4.5自下而上语法分析的思想
  • 4.5.1“移进归约”分析方法
  • 4.5.2规范归约与句柄
  • 4.6算符优先分析
  • 4.6.1算符优先文法
  • 4.6.2算符优先表的构造
  • 4.6.3算符优先分析方法
  • *4.6.4算符优先函数
  • 4.7LR分析法
  • 4.7.1LR分析概述
  • 4.7.2LR(0)分析
  • 4.7.3SLR(1)分析
  • *4.7.4LR(1)分析
  • *4.7.5LALR(1)分析
  • *4.7.6二义文法在LR分析中的应用
  • 4.8语法分析器的自动生成工具Yacc
  • 4.8.1Yacc概述
  • 4.8.2Yacc源文件的格式
  • 4.8.3Yacc的翻译规则
  • 4.8.4Yacc的辅助程序
  • 4.9语法分析程序中的错误处理
  • 4.9.1语法分析中的错误处理的一般原则
  • 4.9.2自上而下语法分析的错误处理
  • 4.9.3自下而上语法分析的错误处理
  • 4.10小结
  • 4.11习题
  • 第5章语义分析和中间代码生成
  • 5.1静态语义检查
  • 5.2中间代码的形式
  • 5.2.1逆波兰式
  • 5.2.2三地址代码
  • 5.3属性文法和语法制导的翻译
  • 5.3.1属性文法
  • 5.3.2综合属性
  • 5.3.3继承属性
  • 5.3.4语法制导的翻译方法
  • 5.4常见语句的语法制导的翻译
  • 5.4.1常量说明语句的翻译
  • 5.4.2变量说明语句的翻译
  • 5.4.3简单算术表达式和赋值语句的翻译
  • 5.4.4布尔表达式的翻译
  • 5.4.5IF语句的翻译
  • 5.4.6REPEAT语句的翻译
  • 5.4.7FOR语句的翻译
  • 5.5Sample语言语法制导的翻译程序的设计
  • 5.6小结
  • 5.7习题
  • 第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.6小结
  • 6.7习题
  • 第7章代码优化
  • 7.1概述
  • 7.1.1代码优化器的结构及所处的地位
  • 7.1.2优化的原则
  • 7.1.3优化的主要种类
  • 7.1.4基本块的概念及流图
  • 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.5Sample语言代码优化及目标代码生成器的设计
  • 8.6小结
  • 8.7习题
  • 参考文献

资源下载

资源下载地址1:https://pan.baidu.com/s/1zHTdq5noIzaclus0moDIqw

相关资源

网友留言