由于此商品库存有限,请在下单后15分钟之内支付完成,手慢无哦!
100%刮中券,最高50元无敌券,券有效期7天
活动自2017年6月2日上线,敬请关注云钻刮券活动规则更新。
如活动受政府机关指令需要停止举办的,或活动遭受严重网络攻击需暂停举办的,或者系统故障导致的其它意外问题,苏宁无需为此承担赔偿或者进行补偿。
[正版新书] 编译技术与应用(微课视频版·题库版) 杨金民 陈果 黎文伟 清华大学出版社 计算机 编译技术 编译原理 编
¥ ×1
书名: | 编译技术与应用(微课视频版·题库版) |
出版社: | 清华大学出版社 |
出版日期 | 2023 |
ISBN号: | 9787302631057 |
从实际工程问题出发,通过典型案例来展示编译中工程问题的特征与特性,然后基于理论得出工程逻辑方案和工程实现方案。这种方式能将编译原理中的数学理论和算法实用化,以此来化抽象为具体,化深奥为通俗。教学中注重融合软件工程知识,探讨解决方案的改进,使其不仅只是解决功能需求问题,还具备有一些其它良好的工程特质,例如鲁棒性,广适通用性,高效性,可伸缩性,可配置性,可组装性等。 强调知识来龙去脉和前因后果的揭示。编译的演化经历了三代。第一代是编译器前后端的一体化,置于软件开发方,典型代表有C和C++。第二代是编译器前后端分离,前端依旧置于开发方,但后端则前移至用户端机器上,典型代表有Java。第三代是编译器前后端都从开发方前移至用户端机器上,典型代表有JavaScript。教学中回答了为什么会有这种演变。另外也揭示了即时编译(JIT),异步函数等这些技术和概念的前因后果,做到教学与时俱进。 每一重要知识点都包含问题由来,求解思路,特性分析,问题思考,归纳总结五部分内容,梯次将学生从接触知识提升到理解知识,从学习知识提升到任用知识。教学从工程问题入手,通过分析、推理、论证,强调解决方案的可行性和切实性,强调理论的通俗性,强调知识前后的联系性,力求使读者明白要学什么知识和这些知识有什么用,明白解决工程问题的基本思路、基本方法、关键环节,明白如何去超越别人和实现创新。 突出面向对象语言的编译。面向对象语言是从面向过程语言发展而来,类与其实例对象是其中的核心概念,多态则是其灵魂。本书提出了一个统一的编译实现框架,巧妙地将面向对象与面向过程的编译统一起来,即简洁又清晰。也通过一个典型案例,揭示了面向对象编程中遇到的问题,诠释了多态的来龙去脉,给出了一种实现方案。 |
杨金民,男,湖南宁乡人。1990年在国防科技大学本科毕业后,先后在空军飞机修理厂从事飞机修理工作,在电力公司任IT高级工程师。2004年在湖南大学获得计算机应用博士学位后留校任教,主讲数据库系统,编译技术,软件集成等课程。2005年被评为湖南省青年骨干教师培养对象;2007年在加拿大Victoria大学做博士后一年。2011年被推选为湖南大学“我心目中最敬爱的老师”候选人,2015年在美国Illinios做访问学者半年。现为湖南大学信息科学与构成学院教授。是HPCC19,IEEEMAW13、PACRIM11、DMIR10、PRDC05国际会议的程序委员会成员,China HPC专委会成员。先后发表论文30多篇,获得省部级科技进步奖四次,专利两项。 |
|
本书以全新的视角,以简洁轻快的笔调勾勒出编译知识图谱,让读者对编译知识不仅知其然,而且还能知其所以然。强调知识来龙去脉和前因后果的揭示,从实际工程问题出发,通过典型案例来展示编译中工程问题的特征与特性,然后基于理论得出工程逻辑方案和工程实现方案,将编译原理中的数学理论和算法实用化,以此来化抽象为具体,化深奥为通俗。使读者抓住编译技术的纲绳,对编译中的基本问题、求解思路、体系结构、特征与特性、关键技术有一个清晰的感性认识,能综合运用编译知识合理解决实际工程问题,灵活应对IT技术发展与变迁所带来的挑战。 |
|
目录
第1章编译技术概述1 1.1计算模型和机器语言的特性2 1.2高级程序语言及其特性4 1.3编译方法及过程6 1.3.1源程序的构成特性6 1.3.2编译过程7 1.3.3编译器的结构特性12 1.4编译器构造方法学13 1.5编译前对源程序文本的预处理15 1.6程序调试17 1.7编译执行和解释执行18 1.8编译方式的演进20 1.9虚拟机22 1.10程序语言的发展历程23 1.11当前主流的编译器产品24 1.12编译知识的广泛应用25 1.13本章小结26 知识拓展: 别名的概述26 习题28 第2章词法分析29 2.1高级程序语言的词构成特性29 2.2词法的描述31 2.2.1正则语言和正则运算31 2.2.2C语言词法的正则描述33 2.2.3词法分析的实现框架34 2.2.4正则表达式的含义35 2.3基于状态转换图的词法分析36 2.3.1基于状态转换图的匹配判断36 2.3.2状态转换图的特征37 2.3.3基于状态转换图的通用词法分析器39 2.4正则表达式的状态转换图自动生成方法40 2.4.1正则表达式的NFA原生构造方法41 2.4.2基于NFA的匹配判断算法44 2.4.3基于NFA的DFA构造方法46 2.4.4正则表达式的最简NFA构造法49 2.4.5特殊正则表达式的最简NFA构造54 2.4.6NFA和DFA中状态属性值的确定方法56 2.4.7正则表达式之间的包含关系58 2.5正则表达式及其DFA在文本搜索中的应用61 2.6本章小结62 知识拓展: NFA和DFA构造中涉及的数据结构63 习题65 ◆编译技术与应用(微课视频版·题库版)目录◆第3章语法分析67 3.1程序的树结构特性68 3.2语言的语法描述69 3.3词串的语法分析树及其构造策略73 3.4语法描述和词法描述的比较75 3.5自顶向下和最左推导的语法分析78 3.5.1自顶向下和最左推导的语法分析过程78 3.5.2左递归及其消除方法80 3.5.3左公因子及其提取方法83 3.5.4推导中的产生式选择84 3.5.5FIRST和FOLLOW函数值求解算法87 3.5.6LL(1)文法特性及其语法分析表93 3.5.7二义性文法的可改造性94 3.5.8基于LL(1)语法分析表和符号栈的语法分析器通用代码95 3.6自底向上的语法分析98 3.6.1自底向上的语法分析及有待解决的关键问题99 3.6.2文法的DFA构造方法100 3.6.3基于状态栈和文法DFA的LR语法分析104 3.6.4基于FOLLOW函数值的冲突解决方法107 3.6.5基于语法分析表的LR语法分析通用代码108 3.6.6基于FOLLOW精确化的冲突解决方法112 3.7LL语法分析和LR语法分析的对比116 3.8LR文法设计116 3.8.1DFA物理含义的挖掘和应用117 3.8.2尽量减少文法中的非终结符数量119 3.8.3非终结符语义的宽泛化121 3.8.4文法的二义性及其消除方法124 3.8.5LALR(1)型DFA的收益和代价124 3.8.6文法的上下文无关性126 3.9LR语法分析中错误的恢复127 3.10本章小结129 知识拓展: 语法分析表构造中涉及的数据结构130 习题132 第4章语法制导的翻译135 4.1LR分析中的语法制导翻译136 4.1.1LR分析中的语法制导翻译简介136 4.1.2LR分析中语法制导的翻译实现框架139 4.1.3词法分析器构造工具的实现142 4.2LL分析中语法制导的翻译149 4.2.1LL分析中语法制导的翻译简介149 4.2.2LL分析中语法制导的翻译实现框架150 4.3从LR型SDT得出LL型SDT156 4.4LR语法分析中对继承属性的处理158 4.5本章小结161 习题162 第5章语义分析与中间代码生成164 5.1语义分析和中间代码生成简介165 5.1.1程序的层级结构165 5.1.2类型的语义分析167 5.1.3变量的语义分析170 5.1.4函数的语义分析173 5.1.5中间语言简介174 5.1.6中间代码生成简介176 5.2类型和变量的语义分析框架179 5.3类型和变量定义的SDT设计180 5.3.1高级程序语言中的指针语义180 5.3.2类型和变量定义的文法设计182 5.3.3类型和变量定义的语义分析及其SDD设计183 5.3.4类型和变量定义的语义分析SDT设计185 5.4变量使用的SDT设计190 5.4.1变量地址的确定方法190 5.4.2描述变量使用的文法192 5.4.3变量使用的语义分析和中间代码生成SDD设计194 5.4.4变量使用的语义分析和中间代码生成SDT设计197 5.5运算的语义分析和中间代码生成201 5.6类型系统205 5.7分支语句的中间代码生成206 5.7.1分支语句的文法207 5.7.2分支语句的中间代码生成SDD设计209 5.7.3分支语句的中间代码生成SDT设计212 5.7.4分支语句中break和continue语句的处理217 5.8函数调用的语义分析和中间代码生成218 5.9本章小结219 习题220 第6章运行环境和目标代码生成222 6.1函数调用223 6.1.1局部变量的静态存储分配方案224 6.1.2局部变量的动态存储分配方案225 6.1.3相对寻址方式带来的好处228 6.1.4形参和数组的动态性229 6.2软件集成230 6.2.1源代码级的软件集成231 6.2.2二进制可执行文件级的软件集成233 6.2.3跨模块内存访问带来的问题及解决方法235 6.2.4静态链接与动态链接237 6.3软件调试238 6.3.1程序之间的交互238 6.3.2运行环境的构建239 6.3.3调试器与被调程序之间的协同交互241 6.3.4变量值的获取与关联243 6.4垃圾自动回收245 6.4.1基于引用记数的垃圾回收方法246 6.4.2基于定期识别和清扫的垃圾回收方法247 6.4.3基于程序分析的垃圾识别和清除249 6.5异常处理250 6.6面向对象中的多态252 6.6.1面向对象编程问题的揭示253 6.6.2基于代理的解耦和封装实现方案255 6.6.3基于多态的面向对象编程问题解决方案256 6.6.4接口特性259 6.6.5接口获取259 6.7本章小结260 习题262 第7章代码优化264 7.1中间代码的优化265 7.1.1基本块和流图265 7.1.2中间代码优化途径267 7.2目标代码优化基础270 7.2.1计算机特性270 7.2.2目标语言272 7.2.3目标代码生成与优化275 7.3寄存器分配276 7.3.1活变量标识算法276 7.3.2基于图着色的寄存器分配278 7.3.3变量溢出280 7.3.4内存数据的加载和刷新281 7.3.5寄存器腾空和变量溢出283 7.3.6同步函数和异步函数284 7.4基于机器其他特性的代码优化285 7.4.1基于指令流水线处理的代码优化285 7.4.2基于高速缓存的代码优化286 7.4.3基于多核处理器的代码优化287 7.4.4大数据处理和云计算中的优化288 7.5本章小结289 习题289 参考文献291 |
|
亲,大宗购物请点击企业用户渠道>小苏的服务会更贴心!
亲,很抱歉,您购买的宝贝销售异常火爆让小苏措手不及,请稍后再试~
非常抱歉,您前期未参加预订活动,
无法支付尾款哦!
抱歉,您暂无任性付资格