编译原理

当前位置:首页 > 教材 > 研究生/本专科 > 编译原理

出版社:电子工业
出版日期:2011-3
ISBN:9787121129384
作者:刘铭//徐兰芳//骆婷
页数:254页

作者简介

《编译原理(第3版)》根据高等学校“编译原理”课程教学基本要求编写。全书系统介绍了编译程序的一般构造原理、基本设计方法和主要实现技术。内容包括:文法和语言基本知识、词法分析程序的设计原理与构造方法、各种语法分析技术、语法制导翻译技术与中间代码生成、符号表的组织和管理、代码优化、运行时存储空间的组织与管理、目标代码生成、并行编译技术基本常识等。
《编译原理(第3版)》系统性强,概念清晰,内容简明通俗,每章配有本章学习导读、本章小结、自测练习题和习题。附录给出了自测练习题与习题参考答案及编译程序实验,《编译原理(第3版)》还免费提供电子课件和实验源代码。
读者对象:《编译原理(第3版)》可作为高等学校计算机专业本科生教材,也可作为成人教育本科和专升本学生的教材,对相关工程技术人员也有参考价值。

书籍目录

第1章   编译概述  1.1   翻译程序与编译程序  1.2   编译过程和编译程序的基本结构  1.3   编译程序的生成方法  1.4   编译技术在软件开发中的应用  本章小结  扩展阅读  自测练习题1  习题1第2章   文法和语言的基本知识  2.1   概述  2.2   字母表和符号串的基本概念    2.2.1   字母表和符号串    2.2.2   符号串的运算  2.3   文法和语言的形式定义    2.3.1   形式语言    2.3.2   文法的形式定义    2.3.3   语言的形式定义    2.3.4   规范推导和规范归约    2.3.5   递归规则与文法的递归性  2.4   短语、直接短语和句柄    2.4.1   短语和直接短语    2.4.2   句柄  2.5   语法树与文法的二义性    2.5.1   推导和语法树    2.5.2   文法的二义性    2.5.3   文法二义性的消除  2.6   文法和语言的分类  2.7   有关文法的实用限制和变换  本章小结  扩展阅读  自测练习题2  习题2第3章   词法分析与有穷自动机  3.1   词法分析程序的功能  3.2   单词符号及输出单词的形式    3.2.1   语言的单词符号    3.2.2   词法分析程序输出单词的形式  3.3   语言单词符号的两种定义方式    3.3.1   正规式与正规集    3.3.2   正规文法与正规式  3.4   正规式与有穷自动机    3.4.1   确定有穷自动机(DFA)    3.4.2   非确定有穷自动机(NFA)    3.4.3   由正规表达式R构造NFA    3.4.4   NFA确定化为DFA的方法    3.4.5   DFA的化简    3.4.6   有穷自动机到正规式的转换  3.5   正规文法与有穷自动机    3.5.1   右线性正规文法到有穷自动机的转换方法    3.5.2   左线性正规文法到有穷自动机的转换方法    3.5.3   有穷自动机到正规文法的转换方法  3.6   词法分析程序的编写方法  本章小结  扩展阅读  自测练习题3  习题3第4章   语法分析  4.1   语法分析程序的功能  4.2   自上而下分析法    4.2.1   非确定的自上而下分析法的思想    4.2.2   文法的左递归性和回溯的消除    4.2.3   某些非LL(1)文法到LL(1)文法的改写    4.2.4   递归下降分析法    4.2.5   预测分析法与预测分析表的构造  4.3   自下而上分析法的一般原理  4.4   算符优先分析法    4.4.1   方法概述    4.4.2   算符优先文法的定义    4.4.3   算符优先关系表的构造    4.4.4   算符优先分析算法的设计    4.4.5   优先函数的构造    4.4.6   算符优先分析法的局限性  4.5   LR分析法    4.5.1   LR分析器的工作原理和过程    4.5.2   LR(0)分析法    4.5.3   SLR(1)分析法    4.5.4   LR(1)分析法    4.5.5   LALR(1)分析法    4.5.6   LR分析法对二义性文法的应用    4.5.7   LR语法分析中的错误恢复技术  本章小结  扩展阅读  自测练习题4  习题4第5章   语法制导翻译技术和中间代码生成  5.1   概述  5.2   属性文法  5.3   语法制导翻译概述  5.4   中间语言    5.4.1   逆波兰式    5.4.2   三元式和树形表示    5.4.3   四元式和三地址代码  5.5   自下而上语法制导翻译    5.5.1   简单算术表达式和赋值语句的翻译    5.5.2   布尔表达式的翻译    5.5.3   控制语句的翻译    5.5.4   循环语句的翻译    5.5.5   简单说明语句的翻译    5.5.6   含数组元素的赋值语句的翻译    5.5.7   过程和函数调用语句的翻译  5.6   递归下降语法制导的翻译  本章小结  扩展阅读  自测练习题5  习题5第6章   符号表的组织与管理  6.1   符号表的作用  6.2   符号表的组织  6.3   符号表的建立和查找  本章小结  扩展阅读  自测练习题   6  习题6第7章   代码优化  7.1   优化概述  7.2   局部优化    7.2.1   划分基本块的方法    7.2.2   基本块的DAG表示    7.2.3   利用DAG进行基本块的优化处理  7.3   循环优化    7.3.1   程序流图与循环    7.3.2   循环查找    7.3.3   循环优化  7.4   窥孔优化  本章小结  扩展阅读  自测练习题   7  习题7第8章   运行时的存储组织与管理  8.1   概述  8.2   静态存储分配  8.3   栈式存储分配    8.3.1   简单栈式存储分配    8.3.2   嵌套过程的栈式存储分配  8.4   堆式存储分配  8.5   临时变量的存储分配  本章小结  扩展阅读  自测练习题   8  习题8第9章   目标代码生成  9.1   概述  9.2   假想的计算机模型  9.3   简单代码生成器    9.3.1   待用信息与活跃信息    9.3.2   代码生成算法    9.3.3   寄存器的分配  9.4   代码生成器的自动生成技术  本章小结  扩展阅读  自测练习题   9  习题9第10章   并行编译技术基本常识  10.1   并行编译技术的引入  10.2   并行编译系统的功能和结构    10.2.1   并行编译系统的功能    10.2.2   并行编译系统的结构  10.3   向量语言编译技术    10.3.1   向量语法处理    10.3.2   向量结构优化  10.4   共享存储器并行机并行编译技术    10.4.1   预编译    10.4.2   可再入的目标代码  本章小结  习题10附录A   词法分析程序生成器  A.1   词法分析程序生成器LEX简介  A.2   LEX输入文件的格式  A.3   正规表达式的LEX约定  A.4  LEX源程序中的规则部分  A.5   FLEX的命令选项  A.6   LEX程序示例附录B   语法分析程序生成器YACC  B.1   语法分析程序YACC简介  B.2   YACC输入文件的格式  B.3   YACC各部分的书写格式B.3.1   定义部分B.3.2   规则部分B.3.3   辅助程序部分  B.4   YACC的内置名称和定义机制  B.5   YACC源程序示例附录C   编译程序实验  C.1   词法分析    C.1.1   实验目的    C.1.2   实验要求    C.1.3   词法分析程序的算法思想    C.1.4   词法分析程序的C语言程序框架  C.2   语法分析    C.2.1   实验目的    C.2.2   实验要求    C.2.3   语法分析程序的算法思想    C.2.4   语法分析程序的C语言程序框架  C.3   语义分析    C.3.1   实验目的    C.3.2   实验要求    C.3.3   语义分析程序的C语言程序框架  C.4   算符优先分析法  C.5   实验实例  C.6   正规式转换成自动机的图形表示    C.6.1   实验目的    C.6.2   实验要求    C.6.3   参考设计思路    C.6.4   参考算法  附录D   自测练习题与习题参考答案参考文献

章节摘录

  编译程序的重要功能之一,是记录源程序中所使用的变量的名字,并且收集与名字属性相关的各种信息。名字属性包括一个名字的存储分配、类型、作用域等信息。如果名字是一个函数名,还会包括其参数数量、类型、参数的传递方式以及返回类型等信息。符号表数据结构可以为变量名字创建记录条目,来登记源程序中所提供的或在编译过程中所产生的这些信息,编译程序在工作过程的各个阶段需要构造、查找、修改或存取有关表格中的信息,因此在编译程序中必须有一组管理各种表格的程序。  如果编译程序只处理正确的程序,那么它的设计和实现将会大大简化。但是程序设计人员还期望编译程序能够帮助定位和跟踪错误。无论程序员如何努力,程序中难免总会有错误出现。虽然错误很常见,但很少有语言在设计的时候就考虑到错误处理问题。大部分程序设计语言的规范没有规定编译程序应该如何处理错误;错误处理方法由编译程序的设计者决定。因此,从一开始就计划好如何进行错误处理,不仅可以简化编译程序的结构,还可以改进错误处理方法。一个好的编译程序在编译过程中,应具有广泛的程序查错能力,并能准确地报告错误的种类及出错位置,以便用户查找和纠正,因此在编译程序中还必须有一个出错处理程序。  编译过程的这5个阶段的任务分别由5个程序完成,这5个程序分别称为词法分析程序、语法分析程序、语义分析及中间代码生成程序、代码优化程序和目标代码生成程序,另外再加上表格管理程序和出错处理程序。这些程序便是编译程序的主要组成部分,一个典型的编译程序结构如图1.5所示。  需要注意的是,图中所给出的各个阶段之间的关系是指它们之间的逻辑关系,不一定是执行时间上的先后关系。实际上,可按不同的执行流程来组织上述各阶段的工作,这在很大程度上依赖于编译过程中对源程序扫描的遍数以及如何划分各遍扫描所进行的工作。此处所说的“遍”,是指对源程序或其等价的中间语言程序从头到尾扫描一遍,并完成规定加工处理工作的过程。例如,可以将前述5个阶段的工作结合在一起,对源程序从头到尾扫描一遍来完成编译的各项工作,这种编译程序称为一遍扫描的编译程序。 ……

图书封面


 编译原理下载



发布书评

 
 


精彩短评 (总计23条)

  •     大量章节讲文法词法小量章节讲语法语义丁点章节讲符号表编译优化。于是课程安排也基本一致,花了10周讲词法2周讲语法2节讲符号表没有讲后端
  •     还没看啊,一本是专业书,一本是送给妈妈的养生书,哈哈,希望她喜欢。
  •     教材啊,完全的教材
  •     编译原理
  •     包装不错的书,而且印刷很好,赞一个哈
  •     学校要订的教材,比学校订便宜。
  •     给别人买的,人家说很好
  •     认识到了计算机底层编译的功能
  •     还行,纸质也还行。。。
  •     刚开始学,比较精辟
  •     内容还没来得急看,应该会不错吧
  •     这本书还可以,我学校就用这个教材!
  •     建议学编译的可以看看这本书,内容比较浅显易懂!
  •     快递速度很快; 书包装还可以; 字迹很清晰, 内容还没看;
  •     好书啊
  •     希望下次快递快点。
  •     发货快,服务好。可以购买
  •     感觉比学校 便宜
  •     大家公认的编译原理这门课难,开始的时候我也是这样认为的。一次不经意的动作,在当当网买了一本书,就是编译原理,就报着看不懂去读的,但是我看了之后是越来越感兴趣,在别人都是不懂的情况下我给顺利的看完了,理解了百分之七十左右,让我对自己的学习有了更大的信心。这本书不错
  •     有点儿软了。。页有点儿薄。。不喜欢这种质感的书
  •     学校要求的教程,内容挺简单的
  •     多亏这本书了 要不考试就挂科
  •     适合初学者,内容充实
 

农业基础科学,时尚,美术/书法,绘画,软件工程/开发项目管理,研究生/本专科,爱情/情感,动漫学堂PDF下载,。 PDF下载网 

PDF下载网 @ 2024