出版时间:2009-6 出版社:科学出版社 作者:王磊,胡元义 主编 页数:281
内容概要
本书系统地介绍了编译程序的设计原理及实现技术。在内容的组织上,本书强调知识的实用性,将编译的基本理论与具体的实现技术有机地结合起来,既注重了理论的完整性,化繁为简,又将理论融于具体的实例中,化难为易,以达到准确、清楚地阐述相关概念和原理的目的。除各章节对理论阐述的条理性外,书中给出的例子也具有实用性与连贯性,使读者对编译的各个阶段能有一个全面、直观的认识。本书采用的算法全部由C语言描述,各章均附有习题。 本书可作为计算机专业的本科教材,也可作为计算机软件工程人员的参考资料。
书籍目录
前言第1章 绪论 1.1 程序设计语言和编译程序 1.2 编译程序的历史及发展 1.3 编译过程和编译程序结构 1.4 编译程序的开发 1.5 构造编译程序所应具备的知识内容 习题一第2章 词法分析 2.1 词法分析器的设计方法 2.1.1 单词符号的分类与输出形式 2.1.2 状态转换图 2.2 一个简单的词法分析器示例 2.2.1 C语言子集的单词符号表示 2.2.2 C语言子集对应的状态转换图 2.2.3 状态转换图的实现 2.3 正规表达式与有限自动机简介 2.3.1 正规表达式与正规集 2.3.2 有限自动机 2.4 正规表达式到有限自动机的构造 2.4.1 由正规表达式构造等价的非确定有限自动机(NFA) 2.4.2 NFA的确定化 2.4.3 确定有限自动机(DFA)的化简 2.4.4 正规表达式到有限自动机构造示例 2.5 词法分析器的自动生成 习题二第3章 语法分析 3.1 文法和语言 3.1.1 文法和语言的基本概念 3.1.2 形式语言分类 3.1.3 正规表达式与上下文无关文法 3.2 推导与语法树 3.2.1 推导与短语 3.2.2 语法树与二义性 3.3 自顶向下的语法分析 3.3.1 递归下降分析法 3.3.2 LL(1)分析法 3.4 自底向上的语法分析 3.4.1 自底向上分析原理 3.4.2 算符优先分析法 3.5 规范归约的自底向上语法分析方法 3.5.1 LR分析器的工作原理 3.5.2 LR(0)分析器 3.5.3 SLR(1)分析器 3.5.4 LR(1)分析器 3.5.5 LALR分析器 3.5.6 二义文法的应用 3.5.7 LR分析器应用与拓展 习题三第4章 语义分析和中间代码生成 4.1 概述 4.1.1 语义分析的概念 4.1.2 语法制导翻译方法 4.2 属性文法 4.2.1 文法的属性 4.2.2 属性文法 4.3 几种常见的中间语言 4.3.1 抽象语法树 4.3.2 逆波兰表示法 4.3.3 三地址代码 4.4 表达式及赋值语句的翻译 4.4.1 简单算术表达式和赋值语句的翻译 4.4.2 布尔表达式的翻译 ……第5章 代码优化第6章 目标程序运行时存储空间的组织第7章 目标代码生成第8章 符号表与错误处理第9章 并行编译技术简介参考文献附录1 8086/8088指令码汇总表附录2 8086/8088指令编码空间表
章节摘录
第1章 绪论 计算机的诞生是科学发展史上的一个里程碑。经过半个多世纪的发展,计算机已经改变了人类生活、工作的各个方面,成为人类不可缺少的工具。计算机之所以能够如此广泛地被应用,应当归功于高级程序设计语言。计算机语言之所以能由最初单一的机器语言发展到现今数千种高级语言,就是因为有了编译程序。没有高级语言,计算机的推广应用是难以实现的;而没有编译程序,高级语言就无法使用。编译理论与技术也是计算机科学中发展得最迅速、最成熟的一个分支,它集中体现了计算机发展的成果与精华。 1.1 程序设计语言和编译程序 为了处理和解决实际问题,每一种计算机都具有其特定的功能,而这些功能是通过计算机执行一系列相应的操作来实现的。计算机所能执行的每一种操作称为一条指令,计算机能够执行的全部指令集合就是该计算机的指令系统。由于计算机硬件的器件特性,决定了计算机本身只能直接接受由0和1编码的二进制指令和数据,这种二进制形式的指令集和称为该计算机的机器语言,它是计算机唯一能够直接识别并接受的语言。 用机器语言编写程序很不方便且容易出错,编写出来的程序也难以调试、阅读和交流。为此,出现了用助记符代替机器语言二进制编码的另一种语言,这就是汇编语言。汇编语言是建立在机器语言之上的,因为它是机器语言的符号化形式,所以较机器语言直观;但是计算机并不能直接识别这种符号化语言,用汇编语言编写的程序必须翻译成机器语言之后才能执行,这种“翻译”是通过专门的软件——汇编程序实现的。
图书封面
评论、评分、阅读与下载