首页 > 图书中心 >图书详情

编译器之旅——打造自己的编程语言(微课视频版)

"从实践的角度全面讲述高级语言的发明过程 配套738分钟视频讲解,助力快速动手实践 "

作者:于东亮
丛书名:计算机技术开发与应用丛书
定价:59
印次:1-1
ISBN:9787302667223
出版日期:2024.08.01
印刷日期:2024.08.16

"本书以简单的算法、清晰的架构,讲述了把高级语言转化成Linux程序的全过程,以及其中蕴含的数学原理。 本书共11章,按照源码编译的顺序分为入门篇和进阶篇。入门篇(第1~4章)详细介绍了词法分析、语法分析、语义分析,涵盖了编译器前端的所有内容。进阶篇(第5~11章)进一步说明了怎么把抽象语法树转化成可执行程序的全过程,包含了三地址码的生成、中间代码优化、寄存器分配、机器码的生成、ELF文件格式、连接器和虚拟机的实现。第12章记录了作者对泛编译器问题的进一步思考。 本书适合初学者入门编译原理,也可用于资深程序员在发明一门新语言时的技术资料,并可用作高等院校和培训机构的教学参考书。 "

more >

前言 随着芯片技术的高速发展,与之伴随的编译器开发在国内也迅速增多,但相关的技术资料却晦涩难懂。编译器领域由Alfred V. Aho等著的经典名著《编译原理》偏重理论,缺少示例代码,入门难度很高。开源项目LLVM和GCC的代码架构复杂且技术资料多为英文,不太适合初学者入门。作者根据自己对Linux和C/C++的长期使用经验编写了一个纯国产的简单编译器框架(Simple Compiler Framework,SCF),详细讲述了一门编程语言的开发过程,为初学者提供了一个编译器领域的入门途径。 本书以作者编写的SCF编译器框架为基础,以高级语言的编译连接过程为脉络,一步步地讲述编译器的架构及其各模块的实现细节。 本书主要内容 第1章主要讲述编译器的发展史、应用场景和代码架构,让读者对该领域有个初步印象。 第2章由浅入深地讲述词法分析模块的实现细节,以尽量简单通俗的方式引导读者入门。 第3章抛开了编译理论,从实践的角度讲述怎么编写语法分析模块,展现把源代码转换成计算机可以理解的树形数据结构的过程。该树形数据结构即通常所讲的抽象语法树。 第4章讲述语义分析和运算符重载的支持方法。 第5章是三地址码的生成,讲述怎么把树形数据结构变成类似汇编的线性代码序列。 第6章是基本块的划分,介绍编译器内部对程序流程的表示方式。 第7章为中间代码优化,讲述编译器怎么生成简洁高效的代码和怎么支持自动内存管理。 第8章介绍在不同类型的CPU上怎样为变量分配寄存器。 第9章详细讲解X86_64的机器码生成过程,并简单描述ARM64的机器码生成过程。 第10章以Linux为平台讲述连接器的编写和可执行程序的运行。 第11章讲述脚本语言的字节码和虚拟机。 第12章介绍泛编译器问题的数学模型及其简单解法,该章的最后两句为本书的总纲。 阅读建议 编译器属于计算机领域的核心技术,与操作系统和CPU指令的关联较多。前4章的阅读需要熟悉C语言,第5章之后的章节需要读者具有一定的汇编语言基础,第10章需要读者熟悉Linux系统。 资源下载提示 素材(源码)等资源:扫描目录上方的二维码下载。 视频等资源:扫描封底的文泉云盘防盗码,再扫描书中相应章节的二维码,可以在线学习。 致谢 感谢我的父母,感谢清华大学出版社赵佳霓编辑的细心指导,感谢我的所有关注者,正是你们的支持才完成了编译器代码的开发和本书的编写。 由于时间仓促,书中难免存在疏漏之处,请读者见谅,并提出宝贵意见。 于东亮2024年5月

more >
扫描二维码
下载APP了解更多

同系列产品more >

开源鸿蒙(OpenHarmony)应用开发...

倪红军
定 价:89.50元

查看详情
Node.js全栈开发项目实践——Egg.j...

葛天胜
定 价:169元

查看详情
MLIR编译器原理与实践

吴建明、吴一昊
定 价:119元

查看详情
SageMath程序设计

于红博
定 价:149元

查看详情
Go语言零基础入门(微课视频版)

郭志勇
定 价:89元

查看详情
图书分类全部图书
more >
  • 于东亮,SCF编译器作者,资深C程序员和FFmpeg工程师,毕业于天津大学,长期从事Linux下的编程工作。先后制作了“C语言技术内幕”“Linux环境的编程详解”“怎么用C语言写一个简单EDA”“编译器入门”等原创视频合集。本书为作者的第一部实体书,以SCF编译器为例讲述了一门高级语言的发明过程。

  • 本书以作者编写的SCF编译器框架为基础,以高级语言的编译连接过程为脉络,一步步的讲述了编译器的架构及其各模块的实现细节,详细展示了一门编程语言的开发过程,为初学者提供了一个编译器领域的入门途径。

more >
  • 目录

    入门篇

    第1章编译器简介(19min)3

    1.1编程语言的发展史3

    1.2编译器在IT行业里的核心地位3

    1.3编译器的代码架构4

    第2章词法分析(34min)7

    2.1“理想语言”的词法分析7

    2.2实际编程语言的词法扩展8

    2.2.1编程语言的标志符9

    2.2.2关键字9

    2.2.3数字10

    2.2.4数据结构11

    2.3词法分析的数学解释12

    第3章语法分析(123min)14

    3.1语句类型的划分14

    3.2语句的嵌套和递归分析16

    3.2.1变量声明语句的分析16

    3.2.2类型定义语句的分析17

    3.2.3顺序块的分析18

    3.2.4表达式的分析18

    3.2.5运算符的优先级和结合性19

    3.2.6表达式树的构造步骤20

    3.2.7完整的抽象语法树20

    3.2.8抽象语法树的数据结构21

    3.2.9变量和类型的数据结构22

    3.2.10变量的语法检查23

    3.2.11星号和乘法的区分24

    3.3语法的灵活编辑和有限自动机框架24

    3.3.1有限自动机的简介24

    3.3.2语法的编辑25

    3.3.3编程语言的语法图26

    3.3.4SCF框架怎么实现“递归”27

    3.3.5语法分析框架的模块上下文29

    3.3.6for循环的语法分析模块30

    3.3.7小括号的多种含义36

    3.4语法分析的数学解释36

    第4章语义分析(72min)38

    4.1类型检查38

    4.2语义分析框架40

    4.2.1语义分析的回调函数40

    4.2.2语义分析中的递归43

    4.3运算符重载46

    4.3...

精彩书评more >

标题

评论

版权所有(C)2023 清华大学出版社有限公司 京ICP备10035462号 京公网安备11010802042911号

联系我们 | 网站地图 | 法律声明 | 友情链接 | 盗版举报 | 人才招聘