编译原理与技术

分類: 图书,计算机/网络,程序设计,其他,
作者: 李文生 编著
出 版 社: 清华大学出版社
出版时间: 2009-1-1字数: 533000版次: 1页数: 397印刷时间: 2009/01/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787302191711包装: 平装内容简介
本书系统地介绍了编译程序的设计原理和基本实现技术,主要内容包括词法分析、语法分析、语义分析、中间代码生成、代码生成和代码优化等,还重点介绍了用于实现语义分析和中间代码生成的语法制导翻译技术,以及程序运行时存储空间的组织与管理。
在介绍基本理论和方法的同时,注重实际应用,介绍了LEX和YACC的使用方法及原理,剖析了PL/0语言的编译程序,讨论了GCC编译程序的基本结构。配合理论教学,给出了一些实践题目,旨在培养学生分析和解决问题的能力。
本书内容充实、图文并茂、各章节内容循序渐进,并注意理论与实践的结合。
本书可作为高等学校计算机科学与技术专业的本科生教材或参考书,也可供其他专业的学生或从事计算机工作的工程技术人员阅读参考。
目录
第1章编译概述
1.1翻译和解释
1.1.1程序设计语言
1.1.2翻译程序
1.2编译的阶段和任务
1.2.1分析阶段
1.2.2综合阶段
1.2.3符号表管理
1.2.4错误处理
1.3编译有关的其他概念
1.3.1前端和后端
1.3.2“遍”的概念
1.4编译程序的伙伴工具
1.4.1预处理器
1.4.2汇编程序
1.4.3连接装配程序
1.5编译原理的应用
习题1
第2章形式语言与自动机基础
2.1语言和文法
2.1.1字母表和符号串
2.1.2语言
2.1.3文法及其形式定义
2.1.4推导和短语
2.1.5分析树及二义性
2.1.6文法变换
2.2有限自动机
2.2.1确定的有限自动机
2.2.2非确定的有限自动机
2.2.3具有转移的非确定的有限自动机
2.2.4DFA的化简
2.3正规文法与有限自动机的等价性
2.4正规表达式与有限自动机的等价性
2.5正规表达式与正规文法的等价性
2.5.1正规定义式
2.5.2表示的缩写
2.5.3正规表达式转换为等价的正规文法
习题2
第3章词法分析
3.1词法分析程序与语法分析程序的关系
3.2词法分析程序的输入与输出
3.2.1输入缓冲区
3.2.2词法分析程序的输出
3.3记号的描述和识别
3.3.1词法与正规文法
3.3.2记号的文法
3.3.3状态转换图与记号的识别
3.4词法分析程序的设计与实现
3.4.1文法及状态转换图
3.4.2词法分析程序的构造
3.4.3词法分析程序的实现
3.5软件工具LEX
3.5.1LEX源程序
3.5.2LEX的工作原理
习题3
程序设计1
第4章语法分析
第5章语法制导翻译技术
第6章语义分析
第7章运行环境
第8章中间代码生成
第9章代码生成
第10章代码优化
第11章编译程序的实现
参考文献
书摘插图
第1章编译概述
众所周知,用高级语言书写的源程序是不能直接在机器上运行的(起码现有的机器不支持),要想运行它并得到预期的结果,首先必须把源程序转换成等价的目标程序,这个过程就是所谓的编译。编译程序是现代计算机系统的基本组成部分之一。
编译原理与技术是计算机工作者所必须具备的专业基础知识。编译程序的设计涉及到程序设计语言、形式语言与自动机理论、计算机体系结构、数据结构、算法分析与设计、操作系统,以及软件工程等各个方面。
本章通过描述程序设计语言、编译程序的组成,及编译程序的工作环境来介绍编译程序相关的基本概念,以便大家了解本课程的主要内容。
1.1翻译和解释
1.1.1 程序设计语言
正如语言是人们进行交流的媒介和手段一样,在计算机应用领域,程序设计语言充当了人与问题,以及协助解决问题的计算机之间的通信工具。一种高效的程序设计语言应该能够提高计算机程序的开发效率,具有较好的问题表达能力,并在人们通常的非结构化的思维方式与计算机执行所要求的精确性之间架起桥梁。程序设计语言同时也是人与人之问的交流工具,在许多大型软件项目中,项目成功的关键在于程序员是否能读懂别人写的程序代码。
……