编译器设计(国外经典教材·计算机科学与技术)
分類: 图书,计算机/网络,程序设计,其他,
作者: (印)查托帕答雅(Chattopabhyay,S.)著,徐骁栋,王海涛译
出 版 社: 清华大学出版社
出版时间: 2009-1-1字数: 273000版次: 1页数: 196印刷时间: 2009/01/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787302188650包装: 平装内容简介
本书是作者多年来在编译器领域中钻研、教学的成果,并以在该学科领域与学生的交流以及他们的反馈和研究作为依据。本书全面介绍了编译器设计中的原理和技术,阐述了编译领域中的难点,并详细描述了编译器设计的各个阶段。
因为编译器的设计过程是将自动机理论、数据结构、算法、计算机体系结构和操作系统等领域知识进行综合韵过程,所以编译器设计者必须要有较好的计算机科学理论的背景。本书详细描述了各种类型的解柝器,从最简单的递归下降和LR解析器到复杂的LR、规范LR和LALR解析器,尤其强调了LR解析器。
作者简介
Santanu Chattopabhayay拥有计算机科学与工程专业博士学位,目前是IEEE(USA)会员,IITKharagpur工学院的电子和电子通信工程系的副教授,曾担任过Guwahati学院的计算机科学与工程系的副教授。
目录
第1章引言
1.1编译器的定义
1.2编译器应用
1.3编译器的各个阶段
1.4编译器设计的难点
1.5编译过程——示例
1.6小结
练习
第2章词法分析
2.1词法分析器的任务
2.2记号的规范
2.3 记号识别
2.3.1不确定的有限自动机
2.3.2确定的有限自动机
2.3.3NFA到DFA的转换
2.4NFA的正则表达式
2.5词法分析的工具——Lex
2.6 小结
练习
第3章语法分析
3.1解析器的功能
3.2错误处理
3.3 文法
3.3.1符号约定
3.3.2推导
3.3.3二义性
3.3.4左递归
3.4 自上而下的分析
3.4.1递归下降分析
3.4.2递归的预测分析
3.4.3非递归的预测分析——LL(k)分析
3.5 自下而上的分析
3.5.1算符优先的分析
3.5.2建立优先关系
3.5.3错误恢复
3.6LR分析
3.6.1LR分析方法
3.6.2LR分析算法
3.6.3构造LR分析表
3.6.4处理LR分析的二义性
3.6.5LR分析中的错误恢复
3.7LALR解析器的生成器——yacc
3.8语法制导翻译
3.9 小结
练习
第4章类型检查
4.1静态和动态检查的比较
……
第5章符号表
第6章运行时环境管理
第7章中间代码生成
第8章目标代码生成
第9章代码优化
书摘插图
第一章引言
编译器已成为现代计算机系统中不可或缺的一部分。它们负责将用户的计算需求转变成一段程序,从而让底层机器理解。因此,这些工具可以作为两种不同领域的实体——人类和计算机之间的接口。该转换的实际过程其实很复杂,其理论基础是自动机理论讲座中经常涉及到的语言的正式定义和识别程序。这为我们能在编译器设计的各个阶段设计出不同类型的自动化工具提供了坚实的基础。这些工具将在后面章节详细介绍。另一方面,随着计算机体系结构的发展,内存管理和新的操作系统为编译器的设计者生成优化的代码提供了大量的选择。在该方向的持续研究和努力反映了该现状。编译器设计课程主要用于解决所有这些问题,从理论基础到自动化工具的体系结构。本章将介绍编译工作及其应用领域、编译器的各个阶段以及编译器设计者需要处理的难点。最后以一个示例来演示这一过程。
……