电子书:《深入分析GCC》

[复制链接]
查看1095 | 回复1 | 2019-12-29 09:02:13 | 显示全部楼层 |阅读模式

多种网盘链接检测插件
购买前,请先检测网盘链接是否有效


                       

《深入分析GCC》_1

《深入分析GCC》_1

《深入分析GCC》_2

《深入分析GCC》_2

《深入分析GCC》_3

《深入分析GCC》_3


内容简介:

源码分析系列
深入分析
GCC
王亚刚⊙编著
图书在版编目(CIP)数据
深入分析GCC/王亚刚编著,一北京:机械工业出版社,2017.1
(源码分析系列)
ISBN978-7-111-55632-9
1.深“L王”,应用数件Tv.TP317
中guo版本图书馆CIP数据核字(2016)第317737号
深入分析GCC
出版发行:机械工业出版社(北京市西域区百万庄大衝22号邮改:100
责任编料:张梦玲
贵任校对:董纪丽
印剧:北京诚信伟业印刷有限公司
开本;186mmx240mm1/16
riri张:34.25
如有缺页,倒页、脱页,由本社发行调换
010)8837942688361066
投线010)88379604
010168326294883796496895259读者信箱: hit(,
版权所有·侵权必究
封无防伪标均为资版
本书法律園问:北京大成律师事务所能光部东
Talk is cheap, show me the code
-Linus Torralds
前言
GCC( GNU Compiler Collection,GNU编译器套件)是一套由GNU开发的程序设计语
言编译工具,是GNU工程中最重要的组成部分。经过近30年的发展,GCC不仅支持众多
的前端编程语言,还支持各种主流的处理器平台和操作系统平台,成为公认的跨平台编译器
的事实标准,也成为编译设计的成功典范
作为一名GCC编译器的使用者和源码阅读的爱好者,我一直想写一本关于GCC的技术书
2002年,我开始在Liux系统上进行ー些软件开发,GC就是我使用的编译工具。我
直对从源代码到目标代码的转换过程充满好奇,想知道在这个过程中GCC到底都做了些什
么?GCC是如何设计的,那些成千上万个GCC的源代码文件都表示了什么意义?那时我常
常匀想,要是能透物地分析和理解GCC源代码,多好!从那时起,在教学科研之余,我偶
尔会翻阅一下GCC的相关源代码,可是看着繁多的GCC源代码,也常常感党手足无措,真
有一种“老虎吃天,无法下爪”的尬。于是分析GCC源代码的事情被搁置了,然而那种
探究竟的心情总是挥之不去
2012年开始,我有了较多的闲暇时间,在经过一段彷徨之后,分析GCC源代码的冲动
又一次浮现在脑海。我知道,这次是要来真的了,我要傲点自已喜欢的事
Why?
我有空余时间了,我要千些自已感兴趣的事情。在我创建的GC爱好者交流群中经常
有朋友问,有没有介绍GCC的资料呀?大多人都会说,有一一请看官方文格!我也去看了
看,没错,GCC有比较详细的官方文档,包括 gccinternal及用户手册等。然而,这些文格的
内容庞杂,缺乏系统分析GCC设计框架和工作流程的内容,并且大多的内容对读者来讲都
是零散的,让初学者无所适从。于是我想,为什么不分析一下GC系统,把GCC的设计实
现用一种更清断明了、更系统的方法介绍给GCC的爱好者呢?
What?
本书将围绕GC编译过程,详细介绍从源代码到AST、从AST到 GIMPLE、从 GIMPLE
到RTL,以及从RTL到最终的目标机器汇编代玛的详细过程,涉及各个阶段中间表示的详细
分析、生成过程。本书提供了大量的图表和实例,展示了GCC编译系统的总体工作流程和
工作细节。本书的另外一个特点是结合GCC4.4.0的源代码进行分析,使读者在了解译原
理的基础上进一步掌握其实现的总体流程和细节,让更多读者对译技术的认识不再只停留
在理论层面,而是向其展示一个编译系统实例的实现过程
GCC源代码涉及的内容非常庞杂,很难在一本书中全面描述,因此本书以GCC中间表
示为主线,详细分析GCC从源代码开始,直到生成目标机器汇编代码的整个过程中所使用
的三种中间表示(AST、 GIMPLE及RTL),并对这三种中间表示的基本概念、生成过程进行
详细的描述,对基于 GIMPLE和RTL的优化处理进行介绍,从而描述一条从源代码到目标
机器汇编代码的清晰路图
Who?
本书以热愛译系统理论及其实現的在校大学生、研究生为主要读者对象,也可以作为
企业中研发编译系统以及进行编译系统移植的研发工程师的有益参考。
在编写这本书的时候,有一种精神支撑着我,我相信“兴趣”加上“坚持”就是胜利
分析GC不是一年半载的事情,需要3年、5年,甚至更长时间,不过我可以坚持,我要用
我的坚持换来对GCC的深入分析,让更多的GC愛好者熟悉它、接触它、了解它,更多地
参与GCC的开发与维护。
感谢我的爱人和孩子,给了我家的Wen暖和亲情。感谢病上的父亲,虽然他不能和我说
话,但他那一双大手,依燃经常抚摸在我的头上。感谢年老体弱的母亲,感谢她一直照我
的父亲,让我知道什么是坚持,什么是不高不弃!感谢西安邮电大学GPU项目组的各位同
事在本书的写作中提出的宝贵建议
本书的写作得到guo家自然科学基金重点项目(项目编号:61136002)以及陕西省教育厅
科研计划项目(项目编号:14JK1674)资助。
鉴于作者水平有限,在分析和写作本书的过程中也引入了一些个人观点,因此难免有一
些理解的偏差和错误,敬请读者批评指正并不吝赐教,如有意见和建议,请联系作者lazy
linux(@126.com,在此一并感谢!
王亚刚
2016年10月于西安邮电大学


回复

使用道具 举报

楓葉晓寒 | 2019-12-29 09:02:17 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则