书籍作者:史宁宁 | ISBN:9787302562627 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:7755 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
华为方舟编译器自面世以来,在业界乃至互联网科技圈引发了巨大的反响。作为一款国内研发的大型工业编译器,方舟编译器从一开始就承载了众多期望。方舟编译器开源之后,业界不少同仁开始分析方舟编译器的架构和实现,本书也是这时候开始编写的。
本书基于方舟编译器开源代码的V0.2.1版本,从方舟编译器的开源进程与前景谈起,介绍方舟编译器的构建、总体架构、IR设计、Maple IR的处理、Me体系、phase体系的设计与实现等内容,覆盖了V0.2.1版本所开源的所有核心内容。在最后,还对如何参与方舟编译器社区的建设给出了指引。
总体而言,本书既有对整体架构的分析,又有对整体架构实现以及重点内容代码实现的介绍,可以帮助读者快速的了解方舟编译器的开源代码,让读者更加方便的参与到方舟编译器的建设和使用之中。
史宁宁,中国科学院软件研究所智能软件研究中心PLCT实验室项目主管。吉林大学计算机学院硕士。2012年起作为核心开发人员和项目经理参与组织开发多个编译器项目。长期坚持撰写技术博客,其中“LLVM每日谈”“方舟编译器学习笔记”等系列影响较大,曾出版图书1部。目前活跃在HelloGCC/HelloLLVM、方舟编译器等开源社区。
方舟编译器自2019年4月出现在大家的视野之后,就引发了强烈关注。2019年8月31日,方舟编译器开始开源,大家对方舟编译器的关注达到了顶点。编译器行业的从业者、App开发者等相关从业者都保持了对方舟编译器的极大热情。笔者也是从2019年8月31日开始对方舟编译器保持持续关注。
方舟编译器开源之后,为了丰富方舟编译器的学习资料,方便更多相关行业从业者学习方舟编译器,我从2019年8月31日开始在知乎连载方舟编译器学习笔记系列博客。该系列博客保持每天至少更新一篇,连续更新了2个多月,累计更新70余篇。同时,我参与了方舟编译器社区的所有线上线下活动,积极跟踪方舟编译器社区的最新动态。在此基础上,对方舟编译器目前唯一的开源版本V0.2.1的代码进行了梳理,编写了这本《华为方舟编译器之美——基于开源代码的架构分析与实现》。
阅读本书需要具备基本的编译原理知识,至少系统地阅读或学习过“编译原理”课程,了解编译器的基本环节和处理流程。同时,需要对业界主流编译器的大致情况有一个基本的了解。阅读本书并不需要遵循一定的顺序,可按照需要选取对应的章节进行阅读。
本书对V0.2.1版本开源代码整体情况进行了梳理和介绍。同时,抽取其中开源代码比较集中的IR框架部分,进行了详细的源码分析。其各章的主要内容如下:
第1章方舟编译器的前世今生,主要对方舟编译器的开源进程进行介绍,采用大事记的形式,记录开源过程中的重大事件节点。同时,还对方舟编译器的发展前景进行了展望。
第2章方舟编译器的构建,对方舟编译器所采用的三层构建体系及其运作流程做简要介绍,在此基础上,介绍方舟编译器源码及其sample的编译。
华为方舟编译器之美——基于开源代码的架构分析与实现
前言
00
00
第3章方舟编译器总体介绍,对方舟编译器的架构、源码目录、官方文档和执行流程等几方面进行初步介绍,更详细的内容在后续对应章节进行讨论。
第4章中间表示,介绍三地址码和SSA等基本的中间表示基础理论,为后续的源码分析提供基本的理论知识。
第5章方舟编译器IR的设计与实现,从方舟编译器IR设计的思想起源入手,对Maple IR的结构及其代码实现、基本类型的设计与实现、控制流语句的设计与实现等方面进行分析。
第6章方舟编译器IR与其他编译器IR的横向对比,将Maple IR与LLVM IR、Open64的WHIRL IR进行IR设计层面的一些横向对比。
第7章Maple IR的处理流程分析,分析Maple IR的处理流程所涉及的lexer、parser、lower等环节,以及符号表的相关处理。
第8章Me体系实现,对Me体系中的相关结构及其实现进行分析。
第9章方舟编译器phase体系的设计与实现,对方舟编译器的整个phase体系从设计入手,对其注册、添加、调用,以及其两个类别ModulePhase、MeFuncPhase的设计与实现进行分析。
第10章phase实例分析,对ModulePhase的整体实现和运行情况及具体的classhierarchy进行分析。同时,对MeFuncPhase的执行前准备、返回,以及具体的dominance、ssaTab和SSA进行分析。
第11章如何参与方舟编译器社区,对如何参与方舟编译器社区的讨论及代码提交进行介绍。
另外,方舟编译器本身也在不断完善中,社区代码也在不断更新中,本书选取其中的V0.2.1版进行分析,但是依然可能会出现本书代码与实际代码不同的情况,在这种情况下请跟踪最新代码并获取最新信息。
史宁宁
2020年6月
不错,,,,,,,,,,,,,,,
2020-11-11 01:17:32
读了前5章,感觉写的太差,就是目录里代码在哪里之类的,凑字数和蹭热度吧。
2020-10-31 09:44:56
这次买了送给朋友们的。
2020-11-06 08:25:01
方舟编译器目前唯一的一本书,值得买来读一读。
2020-10-31 09:08:53