编译原理及实践
分類: 图书,计算机/网络,计算机理论,
作者: (美)劳顿 著,冯博琴等 译
出 版 社: 机械工业出版社
出版时间: 2004-2-1字数:版次: 1页数: 427印刷时间: 2004/02/01开本:印次:纸张: 胶版纸I S B N : 9787111077039包装: 平装编辑推荐
本书结合对现代编译器设计理论的详细研究,完整描述了一个可运行的小规模语方编译器(包括源代码)。本书反映了作者的这样一些观点:不掌握理论就不会理解实际的编译器设计;而对大学生来说,看不到理论在实际中的应用就不会真正地理解理论。把本书讨论的概念统一起来,就是一个完整的可运行的编译器,它使用每一章所讨论的技术进行开发,用C语方写成。每章最后有大量的练习,使学生的注意力集中在编程问题上。
内容简介
本书系统介绍了经典的编译理论和技术,同时也包含了面向对象语言等当前较新语言的编译技术。本书更可贵之处在于提供了较完整的适用于教学实践的样例语言,是一本理论和实践内容相结合的、不可多得的好书。本书可用作大专院校教材、教师参考书以及编译器研究人员的参考资料。
作者简介
Kenneth C.Louden,加拿大麦吉尔大学获得博士学位之后,曾在多所大学任教。他的主要研究领域是统和统译器,涉及范畴论及其编程、形式语义、编译器优化与自动化技术等。1985年在美国圣何塞州立大学任教至今。所撰写的教材还有Programming Languages、Programming Languages Text和 Compiler Constuction Text等。
目录
译者序
前言
第1章 概论1
1.1 为什么要用编译器2
1.2 与编译器相关的程序3
1.3 翻译步骤5
1.4 编译器中的主要数据结构8
1.5 编译器结构中的其他问题10
1.6 自举与移植12
1.7 TINY样本语言与编译器14
1.8 C-Minus:编译器项目的一种语言18
练习19
注意与参考20
第2章 词法分析21
2.1 扫描处理21
2.2 正则表达式23
2.3 有穷自动机32
2.4 从正则表达式到DFA45
2.5 TINY扫描程序的实现52
2.6 利用Lex 自动生成扫描程序57
练习65
编程练习67
注意与参考67
第3章 上下文无关文法及分析69
3.1 分析过程69
3.2 上下文无关文法70
3.3 分析树与抽象语法树77
3.4 二义性83
3.5 扩展的表示法:EBNF和语法图89
3.6 上下文无关语言的形式特性93
3.7 TINY语言的语法97
练习101
注意与参考104
第4章 自顶向下的分析105
4.1 使用递归下降分析算法进行自顶向下的分析105
4.2 LL(1)分析113
4.3 First集合和Follow集合125
4.4 TINY语言的递归下降分析程序136
4.5 自顶向下分析程序中的错误校正137
练习143
编程练习146
注意与参考148
第5章 自底向上的分析150
5.1 自底向上分析概览151
5.2 LR(0)项的有穷自动机与LR(0)分析153
5.3 SLR(1)分析160
5.4 一般的LR(1)和LALR(1)分析166
5.5 Yacc:一个LALR(1)分析程序的生成器173
5.6 使用Yacc生成TINY分析程序186
5.7 自底向上分析程序中的错误校正188
练习192
编程练习195
注意与参考197
第6章 语义分析198
第7章 运行时环境266
第8章 代码生成305
附录A 编译器设计方案373
附录B 小型编译器列表381
附录C Tiny Machine模拟器列表417
媒体评论