3546次浏览
本书涵盖了现代微处理器编译器的设计和实现方面的所有高级主题。本书首先介绍编译器的结构、符号表管理、中间代码结构、运行时支持等问题,探讨过程内的控制流分析、数据流分析、依赖关系分析和别名分析的各种方法,并介绍一系列的全局优化。接下来,讲述过程间的控制流分析、数据流分析和别名分析,以及程间优化和如何应用过程间信息来改善全局优化。然后,讨论有效利用层次存储系统的优化技术。最后,详细介绍4种商业化编译系统,以提供编译器结构、中间代码设计、优化策略和效果的专门例子。本书适合作为高等院校计算机专业研究生和高年级本科生的教材,也适合需要了解高级编译器设计和构造有关问题的计算机专业人员参考。出版者的话 专家指导委员会 译者序 序 前言 第1章 高级主题介绍 1 1.1 编译器结构回顾 1 1.2 基本问题中的高级论题 2 1.3 代码优化的重要性 4 1.4 优化编译器的结构 5 1.5 激进型优化编译器中各种优化的位置 7 1.6 本书各章的阅读流程 10 1.7 本书没有涉及的相关主题 10 1.8 例子中所用的目标机 11 1.9 数的表示与数据的大小 11 1.10 小结 11 1.11 进一
4565次浏览
全书共14章,第1章简要介绍了本书所基于的环境与工具;第2~6章针对编译的不同阶段,展开实践方面的相关阐述,并结合GCC和LLVM这两款具体的编译器进行论述;第7章介绍了多样化编译方面的实践;第8~13章从反编译的不同阶段介绍与反编译相关的可执行程序格式、程序解码和反汇编、中间表示生成、数据类型和控制流的恢复、过程定义恢复等内容;第14章简要介绍了反编译在信息安全方面的应用。前言 第1章 实践的环境与工具 1 1.1 实践环境概述 1 1.2 词法分析生成器LEX 1 1.3 语法分析生成器YACC 3 1.4 编译器GCC 4 1.5 编译器LLVM 5 1.6 反汇编工具IDA 6 1.7 反汇编工具OllyICE 6 1.8 仿真与分析工具QEMU 6 1.9 动态分析工具TEMU 7 1.10 本章小结 8 第2章 编译器实践概述 9 2.1 编译器、解释器及其工作方式 9 2.2 编译器的结构 10 2.3 编译器的设计与实现概述 12 2.3.1 利用Flex和Bison实现词法和语法分析 12 2.3.2 利用LLVM实现代码优化和代码生成 12 2.4 本章小结 13
7561次浏览
本书是一本面向Lua程序员和脚本语言爱好者的语言自制指南和实战宝典。全书将带给读者3个维度的收获:维度1:深入理解Lua语言本身作者融合自己丰富的工程实践经验,详细阐述了Lua语言的核心语法和实现原理,深入探讨了Lua虚拟机、编译器和标准库的实现,并给出了实际可以编译执行的代码。维度2:从零开始实现一门脚本语言本书以Lua语言为例,系统、完整地(涵盖虚拟机、编译器和标准库)讲解了如何零基础编写一门脚本语言,帮助读者彻底理解脚本语言的工作原理。维度3:提升Go和Java语言编程能力本书分别用Go语言和Java语言来实现Lua,包含大量对Go和Java的使用,有很多巧妙的设计,能帮助读者提升Go和Java的编程能力。全书共21章,分为3个部分:第一部分(第1-13章)主要讲解LuaAPI和虚拟机的实现,包括二进制chunk格式、Lua虚拟机指令集、元编程、错误处理等。第二部分(第14-17章)主要讨论Lua语法和编译器的实现,包括词法分析、语法分析、代码优化、代码生成等。第三部分(第18-21章)主要讲解Lua辅助API和标准库实现,包括基础库、实用工具库、包和模块、协程等。前言 第一部分
6579次浏览
第1章的前半部分首先讲解程序的运行时结构。编译器正是将源代码转化为可执行程序并形成运行时结构的工具。对于只是想提高开发能力的程序员,这部分几乎起到了90%的作用。第1章的后半部分对整体的编译过程做了一个综述。当读者对整体有概念的时候,再去看每个章节的具体内容,会更容易理解。第2章用一个简单案例讲解词法分析,词法分析是把源文件文件中的内容读出并识别出符号的过程。第3章用词法分析的简单案例讲解语法分析,语法分析是在词法分析的结果中识别出语句的过程。第4章仍用前面的简单案例生成中间结构及目标代码。第5、6章用几个更为复杂的案例来分析语法及生成中间结构及目标代码的过程。至此,严格意义上的编译过程已经讲解完毕。为了让读者对可执行程序的*终生成有一个完整的了解,我们专门安排了讲解汇编器、链接器的内容,这就是第7章。第7章详细讲解如何将目标代码转变为可执行程序,包括文件格式、汇编器和链接器的内容。第8章讲预处理,从编译器的执行顺序来看,预处理器的执行是比较靠前的,之所以把预处理放在*后讲,是因为预处理比较独立,在读者已经了解整个编译过程中之后再讲解,会更容易理解。作者简介 前言 第1章运行时结构及编
16679次浏览
《编译原理(第2版)》全面、深入地探讨了编译器设计方面的重要主题,包括词法分析、语法分析、语法制导定义和语法制导翻译、运行时刻环境、目标代码生成、代码优化技术、并行性检测以及过程间分析技术,并在相关章节中给出大量的实例。与上一版相比,《编译原理(第2版)》进行了全面的修订,涵盖了编译器开发方面的进展。每章中都提供了大量的系统及参考文献。《编译原理(第2版)》是编译原理课程方面的经典教材,内容丰富,适合作为高等院校计算机及相关专业本科生及研究生的编译原理课程的教材,也是广大技术人员的极佳参考读物。《编译原理(第2版)》是编译原理课程方面的经典教材,内容丰富,适合作为高等院校计算机及相关专业本科生及研究生的编译原理课程的教材,也是广大技术人员的极佳参考读物。目录出版者的话译者序前言第1章 引论1.1 语言处理器1.2 一个编译器的结构1.2.1 词法分析1.2.2 语法分析1.2.3 语义分析1.2.4 中间代码生成1.2.5 代码优化1.2.6 代码生成1.2.7 符号表管理1.2.8 将多个步骤组合成趟1.2.9 编译器构造工具1.3 程序设计语言的发展历程1.3.1 走向高级程序设计