首页 > 图书中心 >图书详情
编译器之旅——打造自己的编程语言(微课视频版)
作者:于东亮
丛书名:计算机技术开发与应用丛书
定价: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 >