编译原理

编译原理 pdf epub mobi txt 电子书 下载 2026

出版者:清华大学出版社
作者:张素琴
出品人:
页数:456
译者:
出版时间:2011-7
价格:35.00元
装帧:平装
isbn号码:9787302089797
丛书系列:清华大学计算机系列教材
图书标签:
  • 编译原理
  • 计算机
  • 教材
  • 计算机理论
  • 编译
  • 教科书
  • 大学教材
  • 清华计算机
  • 编译原理
  • 编译器
  • 程序设计语言
  • 语法分析
  • 语义分析
  • 代码生成
  • 中间代码
  • 词法分析
  • 计算机科学
  • 理论基础
想要找书就要到 图书目录大全
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

由张素琴和吕映芝等编著的《编译原理》介绍编译系统的一般构造原理、基本实现技术和一些自动构造工具。主要由语言基础知识、词法分析、语法分析、中间代码生成、代码优化、目标代码生成、符号表的构造和运行时存储空间的组织等部分组成。 《编译原理》中在介绍编译程序构造基本原理的同时引入“PL/O语言的编译程序”结构及文本,还引入LEX、YACC使用方法与实例。 本书是高等院校计算机科学与技术专业的本科生教材,也可作为教师、研究生或软件工程技术人员的参考书。

作者简介

张素琴 清华大学计算机系教授。中国计算机学会系统软件专业委员会委员。1970年毕业于清华大学数学力学系。长期承担计算机专业基础课“编译原理”的教学和程序设计语言设计与实现,编译与编译自动生成技术等方面的研究工作。作为主要负责人和主要承担者,完成多项国家自然基金、“八五”、“九五”、“863”科技攻关任务。发表学术论文多篇,主编《程序设计语言》和《编译原理》教材2部,译著6部。

吕映芝 清华大学计算机系教授,1961年毕业于清华大学数学力学系计算数学专业。主要从事程序设计语言编译原理的教学工作、程序语言结构和自动生成工具的研究工作以及程序设计语言编译原理计算机辅助教学软件的研制和开发工作。

蒋维杜 清华大学计算机系教授,长期从事语言编译、数据库、软件复用和面向对象软件工程的教学工作。负责并承担过国家“863”、“六五”到“九五”等高科技攻关项目,以及其他横向项目,并完成多项与国外公司的科技合作及软件出口项目。在交叉编译系统、数据库、信息系统及环境工具等方面取得多项成果,并获得中国科学院及电子部的科技进步奖。在长期培养研究生的教学及科研中,对面向对象方法及面向对象软件构造方面有较深入的研究。

戴桂兰 1972年生,博士,主要研究方向为程序语言,编译技术,软件测试技术,已发表论文二十余篇。目前在清华大学信息技术研究院Web与软件技术中心工作。

目录信息

第1章 引论 1.1 什么是编译程序 1.2 编译过程和编译程序的结构 1.2.1 编译过程概述 1.2.2 编译程序的结构 1.2.3 编译阶段的组合 1.3 解释程序和一些软件工具 1.3.1 解释程序 1.3.2 处理源程序的软件工具 1.4 程序设计语言范型 练习第2章 PL/0编译程序的实现 2.1 PL/0语言描述 2.1.1 PL/0语言的语法描述图 2.1.2 PL/O语言文法的EBNF表示 2.2 PL/O编译程序的结构 2.3 PL/O编译程序的词法分析 2.4 PL/0编译程序的语法语义分析 2.5 PL/0编译程序的目标代码结构和代码生成 2.6 PL/0编译程序的语法错误处理 2.7 PL/O编译程序的目标代码解释执行时的存储分配 练习第3章 文法和语言 3.1 文法的直观概念 3.2 符号和符号串 3.3 文法和语言的形式定义 3.4 文法的类型 3.5 上下文无关文法及其语法树 3.6 句型的分析 3.6.1 自上而下的分析方法 3.6.2 自下而上的分析方法 3.6.3 句型分析的有关问题 3.7 有关文法实用中的一些说明 3.7.1 有关文法的实用限制 3.7.2 上下文无关文法中的ε规则 3.8 典型例题及解答 练习第4章 词法分析 4.1 词法分析程序的设计 4.1.1 词法分析程序与语法分析程序的接口方式 4.1.2 词法分析程序的输出 4.1.3 将词法分析工作分离的考虑 4.2 单词的描述工具 4.2.1 正规文法 4.2.2 正规式 4.2.3 正规文法和正规式的等价性 4.3 有穷自动机 4.3.1 确定的有穷自动机(DFA) 4.3.2 不确定的有穷自动机(NFA) 4.3.3 NFA转换为等价的DFA 4.3.4 确定有穷自动机的化简 4.4 正规式和有穷自动机的等价性 4.5 正规文法和有穷自动机的等价性 4.6 词法分析程序的自动构造工具 4.7 典型例题及解答 练习第5章 自顶向下语法分析方法 5.1 确定的自顶向下分析思想 5.2 LL(1)文法的判别 5.3 某些非LL(1)文法到LL(1)文法的等价变换 5.4 不确定的自顶向下分析思想 5.5 确定的自顶向下分析方法 5.5.1 递归子程序法 5.5.2 预测分析方法 5.6 典型例题及解答 练习第6章 自底向上优先分析 6.1 自底向上优先分析概述 6.2 简单优先分析法 6.2.1 优先关系 6.2.2 简单优先文法的定义 6.2.3 简单优先分析法的操作步骤 6.3 算符优先分析法 6.3.1 直观算符优先分析法 6.3.2 算符优先文法的定义 6.3.3 算符优先关系表的构造 6.3.4 算符优先分析算法 6.3.5 优先函数 6.3.6 算符优先分析法的局限性 6.4 典型例题及解答 练习第7章 LR分析 7.1 LR分析概述 7.2 LR(O)分析 7.2.1 可归前缀和子前缀 7.2.2 识别活前缀的有限自动机 7.2.3 活前缀及其可归前缀的_般计算方法 7.2.4 LR(O)项目集规范族的构造 7.3 SLR(1)分析 7.4 LR(1)分析 7.4.1 LR(1)项目集族的构造 7.4.2 LR(1)分析表的构造 7.5 LALR(1)分析 7.6 二义性文法在LR分析中的应用 7.7 语法分析程序的自动构造工具YACC 7.8 典型例题及解答 练习第8章 语法制导翻译和中间代码生成 8.1 属性文法 8.2 语法制导翻译概论 8.2.1 计算语义规则 8.2.2 S-属性文法和自下而上翻译 8.2.3 L-属性文法在自上而下分析中的实现 8.2.4 L-属性文法在自下而上分析中的实现 8.3 中间代码的形式 8.3.1 逆波兰记号 8.3.2 三元式和树形表示 8.3.3 四元式 8.4 简单赋值语句的翻译 8.5 布尔表达式的翻译 8.5.1 布尔表达式的翻译方法 8.5.2 控制语句中布尔表达式的翻译 8.6 控制结构的翻译 8.6.1 条件转移 8.6.2 开关语句 8.6.3 for循环语句 8.6.4 出口语句 8.6.5 goto语句 8.6.6 过程调用的四元式产生 8.7 说明语句的翻译 8.7.1 简单说明语句的翻译 8.7.2 过程中的说明 8.8 数组和结构的翻译 8.8.1 数组说明和数组元素的引用 8.8.2 结构(记录)说明和引用的翻译 练习第9章 符号表 9.1 符号表的作用和地位 9.2 符号的主要属性及作用 9.3 符号表的组织 9.3.1 符号表的总体组织 9.3.2 符号表项的排列 9.3.3 关键字域的组织 9.3.4 其他域的组织 9.3.5 下推链域的组织 9.4 符号表盼管理 9.4.1 符号表的初始化 9.4.2 符号的登录 9.4.3 符号的查找 9.4.4 符号表中分程序结构层次的管理 练习第1O章 目标程序运行时的存储组织 10.1 数据空间的三种不同使用方法和管理方法 10.1.1 静态存储分配 10.1.2 动态存储分配 10.1.3 栈式动态存储分配 10.1.4 堆式动态存储分配 10.2 栈式存储分配的实现 10.2.1 简单的栈式存储分配的实现 10.2.2 嵌套过程语言的栈式实现 10.2.3 分程序结构的存储管理 10.3 参数传递 10.3.1 传值 10.3.2 传地址 10.3.3 过程参数 10.4 过程调用、过程进入和过程返回 练习第11章 代码优化 11.1 优化技术简介 11.2 局部优化 11.2.1 基本块的划分 11.2.2 基本块的变换 11.2.3 基本块的有向图DAG(Directed Acyc1ic Graph)表示 11.2.4 DAG的应用 11.3 控制流分析和循环优化 11.3.1 程序流图 11.3.2 循环的查找 11.3.3 循环优化 11.4 数据流的分析与全局优化 11.4.1 一些主要的概念 11.4.2 数据流方程的一般形式 11.4.3 到达一定值数据流方程 11.4.4 可用表达式及其数据流方程 11.4.5 活跃变量数据流方程 11.4.6 复写传播 练习第12章 代码生成 12.1 代码生成概述 12.1.1 代码生成程序在编译系统中的位置 12.1.2 设计代码生成程序的基本问题 12.2 一个简单的代码生成程序 12.2.1 计算机模型 12.2.2 待用信息链表法 12.2.3 代码生成算法 12.3 几种常用的代码生成程序的开发方法 12.3.1 解释性代码生成法 12.3.2 模式匹配代码生成法 12.3.3 表驱动代码生成法 12.4 全局寄存器分配(图着色法) 12.4.1 概述 12.4.2 图着色寄存器分配法的相关技术 12.4.3 示例 12.5 代码生成程序的自动化构造 12.5.1 模式匹配与动态规划 12.5.2 基于语法制导的代码生成程序自动构造技术 12.5.3 基于语义制导的代码生成程序自动构造技术 练习第13章 编译程序的构造 13.1 编译程序的书写 13.1.1 编译程序的书写语言与T型图 13.1.2 编译程序的自展技术 13.2 可重定向编译程序 13.2.1 概述 13.2.2 支持可重定向编译的关键技术 13.2.3 常用的可重定向编译程序 13.3 GCC的剖析 13.3.1 GcC的总体结构 13.3.2 GCC的中间表示 13.3.3 GCC的机器描述 13.3.4 GCC的代码生成与机器描述的接口 13.4 GCC的定制 13.4.1 GCC的剪裁 13.4.2 GCC编译程序的安装与配置 13.5 GCC的优化 13.5.1 概述 13.5.2 窥孔优化 13.5.3 基于机器描述的窥孔优化 13.5.4 修改GCC源程序的窥孔优化 练习第14章 面向对象语言的编译 14.1 面向对象语言的基本概念 14.2 面向对象语言语法结构及语义处理的特征 14.2.1 面向对象语言的类的语法结构及语义 14.2.2 面向对象语言的有效类、延迟类及延迟成员 14.2.3 面向对象语言的类属类 14.2.4 面向对象语言的继承类 14.3 多态实例变量、多态引用的类型检查及绑定 14.3.1 实例变量和多态引用 14.3.2 静态类型检查及动态类型检查 14.3.3 静态绑定及动态绑定 14.4 对象的创建及面向对象操作的语义 14.4.1 对象的创建 14.4.2 面向对象操作的语义 14.5 类名的属性构造 14.5.1 类名的属性及其结构 14.5.2 类成员名的属性及其结构 14.6 对象的存储管理及废弃单元回收 14.6.1 对象的三种存储区组织管理方式 14.6.2 静态模型和栈式模型废弃单元的回收 14.6.3 堆式模型废弃单元的回收 练习第15章 编译程序的面向对象构造 15.1 编译程序面向对象构造的基本概念 15.1.1 编译程序的需求 15.1.2 编译程序的分解 15.1.3 类的构造层次 15.1.4 类的特性定义 15.2 构造编译程序的面向对象类库 15.2.1 对传统编译程序构造中软件复用的分析 15.2.2 面向对象编译类库的地位 15.2.3 语言编译论域的面向对象论域分析 15.3 面向对象编译程序的符号表构造 练习附录A PL/O编译程序文本 A.1 Pasca1版本 A.2 C版本参考文献
· · · · · · (收起)

读后感

评分

评分

评分

评分

评分

用户评价

评分

初次翻开这本书,一股浓郁的学术气息扑面而来,仿佛置身于一个古老而又充满智慧的图书馆中。它的装帧设计虽然朴素,却透露出一种沉稳的内敛,让人对其中蕴含的知识充满敬畏。这本书的排版清晰明了,字体大小和行距都拿捏得恰到好处,即便是面对晦涩难懂的理论时,阅读体验也保持了极高的舒适度。作者似乎深谙读者的心理,在章节的过渡之处,总能巧妙地穿插一些历史典故或前沿思考,使得枯燥的理论学习过程多了几分趣味性。我尤其欣赏它对基础概念的阐述方式,那种由浅入深、层层递进的逻辑梳理,极大地降低了初学者的入门门槛。它不是那种只堆砌公式和术语的“天书”,而是真正致力于构建一个完整的知识体系,让读者明白每一个技术点背后的思想根源。每读完一个核心章节,我都会合上书本,在脑海中进行一番梳理和重构,总感觉自己的思维清晰度得到了显著的提升,仿佛掌握了一把开启计算机底层奥秘的钥匙。这本书的价值,就在于它能够将那些看似高不可攀的抽象概念,用一种近乎诗意的方式,描绘得清晰可感,让人在学习的过程中,体会到一种智力上的愉悦和满足。

评分

这本书的深度和广度,着实让人叹为观止。它绝非市面上那些仅停留在表面、满足于介绍工具特性的书籍可比拟。作者对于理论的挖掘,如同一个经验丰富的矿工,深入地下,挖掘出最坚实的矿脉。其中对形式语言和自动机理论的论述,精确得令人咋舌,每一个定义、每一个证明,都经过了最严苛的逻辑检验。我花了大量时间去啃食其中的递归可枚举性与判定问题那一章节,那种追随着作者的思路,一步步推导出图灵机能力的边界感,是其他任何学习资料都无法给予的。它逼迫你调动起全部的逻辑能力去参与这场智力角力,而不是被动地接受信息。更为难得的是,在构建起坚实的理论基石之后,作者还能平稳地过渡到实际的编译器优化策略,例如寄存器分配的图着色算法,或者是指令调度的动态规划方法。这种理论与实践的完美结合,使得这本书既能满足学术研究的需要,也对一线工程师有着极强的指导意义。读完这本书,我感觉自己看待编程语言的视角都被重塑了,不再仅仅关注于“如何实现某个功能”,而是更深层次地思考“这种语言设计背后的数学原理是什么”。

评分

这本书的结构安排,体现了作者对教学艺术的深刻理解。它不是线性地、平铺直叙地展开,而是充满了精心设计的“知识环路”。比如,在引入了某个高级优化技术后,作者会适当地回溯到前面对某个基础概念的定义,通过新的视角来加深读者对那个旧概念的理解,形成一种螺旋上升的学习曲线。这种设计极大地帮助了记忆和融会贯通。特别是关于词法分析器生成器的部分,它的逻辑流转非常自然,从正则表达式到NFA,再到DFA的构建过程,每一步都有明确的理论依据支撑,配合书中所附的示意图,即便是那些原本感到头疼的转换过程,也变得清晰可见。这本书的伟大之处在于,它成功地将一个多步骤、高耦合度的复杂系统,拆解成了若干个独立却又相互关联的模块,让学习者能够逐个击破,最终形成整体的认知。它让你相信,任何看似宏大的工程,都可以被拆解为一系列可理解、可操作的步骤,这对于提升解决复杂问题的信心至关重要。

评分

这本书的叙事风格,带着一种近乎固执的严谨性,但恰恰是这种严谨,铸就了它的权威性。我发现,作者在讲解某个复杂算法时,几乎会穷尽所有可能的边缘情况,并用最简洁的数学符号来表达其核心思想,这对于追求精确性的读者来说,简直是福音。与其他一些为了迎合大众而刻意“娱乐化”的技术书籍不同,它始终保持着一种对知识的敬畏心,不回避难度,也不使用花哨的修辞来掩盖内容的空洞。例如,在讨论中间代码生成时,书中对三地址码的表示形式、静态单赋值(SSA)的构建过程,描述得极其详尽和结构化,没有丝毫的含糊带过。每一次阅读,都像是在进行一次精密的仪器校准,确保自己对每一个细节的理解都处于最高精度。我将这本书放在书桌上,它更像是一个沉默的导师,随时准备检验我的理解是否到位。如果你渴望的是那种能够让你在专业领域站稳脚跟的硬核知识,那么这本书提供了一个无与伦比的框架。它要求你付出汗水,但回报给你的,是真正的内功心法。

评分

对于那些试图在计算机科学领域寻求深层突破的读者来说,这本书提供了一个坚实的“精神家园”。它不仅仅是一本技术手册,更像是一部关于信息处理哲学的论著。我发现,每当我阅读完一个关于语义分析或类型检查的章节,我都会对编程语言的本质产生新的感悟。书中对于上下文无关文法(CFG)的限制与表达能力的探讨,触及到了形式系统的核心议题,让人不禁思考:我们究竟能用一套确定的规则来描述多少人类的逻辑?这种思辨的深度,让这本书超越了单纯的工具书范畴,具备了常读常新的价值。它的语言虽然专业,但内核却是关于如何将无序的信息转化为有序的指令的永恒命题。我敢说,这本书中所蕴含的思维框架,对于任何从事底层系统构建或高级算法设计的人来说,都是不可或缺的内功心法。它带来的不仅仅是知识,更是一种看待和构建复杂系统的底层思维模式,是真正能让你从“使用者”蜕变为“创造者”的引路之作。

评分

求高分呐!

评分

教科书

评分

这书好难 当初让我写正则表达式我都颤抖了

评分

考试还行……看着书还不如看龙书

评分

这书好难 当初让我写正则表达式我都颤抖了

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 book.wenda123.org All Rights Reserved. 图书目录大全 版权所有