由于此商品库存有限,请在下单后15分钟之内支付完成,手慢无哦!
100%刮中券,最高50元无敌券,券有效期7天
活动自2017年6月2日上线,敬请关注云钻刮券活动规则更新。
如活动受政府机关指令需要停止举办的,或活动遭受严重网络攻击需暂停举办的,或者系统故障导致的其它意外问题,苏宁无需为此承担赔偿或者进行补偿。
[正版]5173107|正版[图书]深入分析GCC/计算机/GCC/源码分析系列/程序设计 书籍 商城
¥ ×1
店铺公告
为保障消费者合理购买需求及公平交易机会,避免因非生活消费目的的购买货囤积商品,抬价转售等违法行为发生,店铺有权对异常订单不发货且不进行赔付。异常订单:包括但不限于相同用户ID批量下单,同一用户(指不同用户ID,存在相同/临近/虚构收货地址,或相同联系号码,收件人,同账户付款人等情形的)批量下单(一次性大于5本),以及其他非消费目的的交易订单。 温馨提示:请务必当着快递员面开箱验货,如发现破损,请立即拍照拒收,如验货有问题请及时联系在线客服处理,(如开箱验货时发现破损,所产生运费由我司承担,一经签收即为货物完好,如果您未开箱验货,一切损失就需要由买家承担,所以请买家一定要仔细验货), 关于退货运费:对于下单后且物流已发货货品在途的状态下,原则上均不接受退货申请,如顾客原因退货需要承担来回运费,如因产品质量问题(非破损问题)可在签收后,联系在线客服。
书 名: | 【正版】深入分析GCC[图书]|5173107 |
图书定价: | 99元 |
作 者: | 王亚刚 |
出 版 社: | 机械工业出版社 |
出版日期: | 2017/2/1 0:00:00 |
ISBN 号: | 9787111556329 |
开 本: | 16开 |
页 数: | 0 |
版 次: | 1-1 |
《深入分析GCC》结合GCC4.4.0源代码,围绕GCC编译过程,详细介绍了GCC的设计框架和实现过程,包括从源代码到AST、从AST到GIMPLE、从GIMPLE到RTL,以及从RTL到终的目标机器代码的详细过程,涉及各个阶段中间表示的详细分析、生成过程,使读者在了解编译原理的基础上进一步掌握其实现的总体流程和实现细节,让更多的读者对编译技术不再只是停留在理论层面,而是学会如何实现一个编译系统实例。 |
前言 第1章 GCC概述 1 1.1 GCC的产生与发展 1 1.2 GCC的特点 2 1.3 GCC代码分析 3 第2章 GCC源代码分析工具 4 2.1 vim+ctags代码阅读工具 4 2.2 GNU gdb调试工具 6 2.3 GNU binutils工具 8 2.4 shell工具及graphviz绘图工具 11 2.5 GCC调试选项 13 第3章 GCC总体结构 16 3.1 GCC的目录结构 16 3.2 GCC的逻辑结构 18 3.3 GCC源代码编译 20 3.3.1 配置 21 3.3.2 编译 23 3.3.3 安装 25 第4章 从源代码到AST/GENERIC 26 4.1 抽象语法树 26 4.2 树节点的声明 28 4.3 树节点结构 33 4.3.1 struct tree_base 35 4.3.2 struct tree_common 36 4.3.3 常量节点 38 4.3.4 标识符节点 42 4.3.5 声明节点 44 4.3.6 struct tree_decl_minimal 46 4.3.7 struct tree_decl_common 46 4.3.8 struct tree_field_decl 49 4.3.9 struct tree_decl_with_rtl 55 4.3.10 struct tree_label_decl 55 4.3.11 struct tree_result_decl 56 4.3.12 struct tree_const_decl 57 4.3.13 struct tree_parm_decl 57 4.3.14 struct tree_decl_with_vis 59 4.3.15 struct tree_var_decl 59 4.3.16 struct tree_decl_non_common 62 4.3.17 struct tree_function_decl 62 4.3.18 struct tree_type_decl 64 4.3.19 类型节点 67 4.3.20 tree_list节点 68 4.3.21 表达式节点 71 4.3.22 语句节点 73 4.3.23 其他树节点 75 4.4 AST输出及图示 76 4.5 AST的生成 83 4.5.1 词法分析 84 4.5.2 词法分析过程 90 4.5.3 语法分析 98 4.5.4 语法分析过程 99 4.5.5 c_parse_file 103 4.5.6 c_parser_translation_unit 105 4.5.7 c_parser_external_declaration 105 4.5.8 c_parser_declaration_or_fndef 107 4.5.9 c_parser_declspecs 112 4.6 小结 114 第5章 从AST/GENERIC到GIMPLE 115 5.1 GIMPLE 115 5.2 GIMPLE语句 119 5.3 GIMPLE的表示与存储 122 5.4 GIMPLE语句的操作数 128 5.5 GIMPLE语句序列的基本操作 132 5.6 GIMPLE的生成 135 5.6.1 gimplify_function_tree 136 5.6.2 gimplify_body 138 5.6.3 gimlify_parameters 139 5.6.4 gimplify_stmt 144 5.6.5 gimplify_expr 144 5.7 GIMPLE转换实例 157 5.7.1 BIND_EXPR节点的GIMPLE生成 158 5.7.2 STATEMENT_LIST_EXPR节点的GIMPLE生成 159 5.7.3 MODIFY_EXPR节点的GIMPLE生成 160 5.7.4 POSTINCREMENT_EXPR节点的GIMPLE生成 162 5.8 实例分析 172 5.9 小结 176 第6章 GIMPLE处理及其优化 177 6.1 GCC Pass 177 6.1.1 核心数据结构 177 6.1.2 Pass的类型 179 6.1.3 Pass链的初始化 182 6.1.4 Pass的执行 184 6.2 Pass列表 187 6.3 GIMPLE Pass实例 193 6.3.1 pass_remove_useless_stmts 193 6.3.2 pass_lower_cf 195 6.3.3 pass_build_cfg 197 6.3.4 pass_build_cgraph_edges 203 6.3.5 pass_build_ssa 205 6.3.6 pass_all_optimizations 206 6.3.7 pass_expand 207 6.4 小结 207 第7章 RTL 208 7.1 RTL中的对象类型 209 7.2 RTX_CODE 210 7.3 RTX类型 210 7.4 RTX输出格式 212 7.5 RTX操作数 213 7.6 RTX的机器模式 216 7.7 RTX的存储 219 7.8 RTX表达式 222 7.8.1 常量 225 7.8.2 寄存器和内存 227 7.8.3 算术运算 228 7.8.4 比较运算 230 7.8.5 副作用 230 7.9 IR-RTL 232 7.9.1 INSN 233 7.9.2 JUMP_INSN 234 7.9.3 CALL_INSN 235 7.9.4 BARRIER 235 7.9.5 CODE_LABEL 236 7.9.6 NOTE 237 7.10 小结 238 第8章 机器描述文件 |
国内不可多得的全面系统介绍GCC设计与实现的书籍,对GCC的总体设计、主要代码架构及实现细节进行了深入的分析和总结本书结合GCC4 4.0源代码,围绕GCC编译过程,以GCC中的中间表示AST、GlMPLE及RTL为主线,为读者描述了一条从源代码到目标机器汇编代码的清晰路线图 |
GCC(GNU Compiler Collection,GNU编译器套件)是一套由GNU开发的程序设计语言编译工具,是GNU工程中最重要的组成部分。经过近30年的发展,GCC不仅支持众多的前端编程语言,还支持各种主流的处理器平台和操作系统平台,成为公认的跨平台编译器的事实标准,也成为编译器设计的成功典范。 作为一名GCC编译器的使用者和源码阅读的爱好者,我一直想写一本关于GCC的技术书。 2002年,我开始在Linux系统上进行一些软件开发,GCC就是我使用的编译工具。我一直对从源代码到目标代码的转换过程充满好奇,想知道在这个过程中GCC到底都做了些什么?GCC是如何设计的,那些成千上万个GCC的源代码文件都表示了什么意义?那时我常常幻想,要是能透彻地分析和理解GCC源代码,多好!从那时起,在教学科研之余,我偶尔会翻阅一下GCC的相关源代码,可是看着繁多的GCC源代码,也常常感觉手足无措,真有一种“老虎吃天,无法下爪”的尴尬。于是分析GCC源代码的事情被搁置了,然而那种一探究竟的心情总是挥之不去。 2012年开始,我有了较多的闲暇时间,在经过一段彷徨之后,分析GCC源代码的冲动又一次浮现在脑海。我知道,这次是要来真的了,我要做点自己喜欢的事。 Why? 我有空余时间了,我要干些自己感兴趣的事情。在我创建的GCC爱好者交流群中经常有朋友问,有没有介绍GCC的资料呀?大多人都会说,有——请看官方文档!我也去看了看,没错,GCC有比较详细的官方文档,包括gccinternal及用户手册等。然而,这些文档的内容庞杂,缺乏系统分析GCC设计框架和工作流程的内容,并且大多的内容对读者来讲都是零散的,让初学者无所适从。于是我想,为什么不分析一下GCC系统,把GCC的设计实现用一种更清晰明了、更系统的方法介绍给GCC的爱好者呢? What? 本书将围绕GCC编译过程,详细介绍从源代码到AST、从AST到GIMPLE、从GIMPLE到RTL,以及从RTL到最终的目标机器汇编代码的详细过程,涉及各个阶段中间表示的详细分析、生成过程。本书提供了大量的图表和实例,展示了GCC编译系统的总体工作流程和工作细节。本书的另外一个特点是结合GCC 4.4.0的源代码进行分析,使读者在了解编译原理的基础上进一步掌握其实现的总体流程和细节,让更多读者对编译技术的认识不再只停留在理论层面,而是向其展示一个编译系统实例的实现过程。 How? GCC源代码涉及的内容非常庞杂,很难在一本书中全面描述,因此本书以GCC中间表示为主线,详细分析GCC从源代码开始,直到生成目标机器汇编代码的整个过程中所使用的三种中间表示(AST、GIMPLE及RTL),并对这三种中间表示的基本概念、生成过程进行详细的描述,对基于GIMPLE和RTL的优化处理进行介绍,从而描述一条从源代码到目标机器汇编代码的清晰路线图。 Who? 本书以热爱编译系统理论及其实现的在校大学生、研究生为主要读者对象,也可以作为企业中研发编译系统以及进行编译系统移植的研发工程师的有益参考。 在编写这本书的时候,有一种精神支撑着我,我相信“兴趣”加上“坚持”就是胜利!分析GCC不是一年半载的事情,需要3年、5年,甚至更长时间,不过我可以坚持,我要用我的坚持换来对GCC的深入分析,让更多的GCC爱好者熟悉它、接触它、了解它,更多地参与GCC的开发与维护。 感谢我的爱人和孩子,给了我家的温暖和亲情。感谢病榻上的父亲,虽然他不能和我说话,但他那一双大手,依然经常抚摸在我的头上。感谢年老体弱的母亲,感谢她一直照顾我的父亲,让我知道什么是坚持,什么是不离不弃!感谢西安邮电大学GPU项目组的各位同事在本书的写作中提出的宝贵建议。 本书的写作得到国家自然科学基金重点项目(项目编号:61136002)以及陕西省教育厅科研计划项目(项目编号:14JK1674)资助。 鉴于作者水平有限,在分析和写作本书的过程中也引入了一些个人观点,因此难免有一些理解的偏差和错误,敬请读者批评指正并不吝赐教,如有意见和建议,请联系作者lazy_linux@126.com,在此一并感谢! 王亚刚 2016年10月于西安邮电大学 |
本店所售图书均为正版书籍
亲,大宗购物请点击企业用户渠道>小苏的服务会更贴心!
亲,很抱歉,您购买的宝贝销售异常火爆让小苏措手不及,请稍后再试~
非常抱歉,您前期未参加预订活动,
无法支付尾款哦!
抱歉,您暂无任性付资格