本书系统而简洁地介绍编译程序的构造原理,内容主要包括:概论、编译程序构造的基础知识、词法分析、语法分析、语义分析与目标代码生成、中间表示代码与代码优化、程序错误的检查与校正、目标代码的运行,以及虚拟机目标程序的解释程序的编制。各章开始于本章导读,各章末有本章小结、复习思考题以及习题。本书突出实践性,在编译程序构造的各个环节中,提供了具体可行的实现方法和技巧,供读者参考。
本书可作为计算机及相关专业的编译原理课程教材,也可作为计算机软件技术人员、研究生及广大计算机爱好者的参考用书。
《编译原理:编译程序构造与实践教程》:牢牢掌握编译程序构造的基本原理深入理解C程序设计语言的特性实践中领悟、实践中提升编译原理课程讨论的对象是编译程序。编译程序是符号处理的工具,只要是与符号处理相关的领域,都将可能需要应用编译程序构造的基本原理。仅讨论编译原理*基本的内容,突出从源程序读入到目标程序生成这一主线。紧密结合C语言。以C语言相关内容为例进行讨论,更具针对性。突出实践性。对编译过程的每个关键部分都有计算机实现的讨论,提供具体而切实可行的实现方法和技巧,读者将对概念与计算机实现之间的差异有深刻的体会,对C语言的应用能力将有较大的提升,并能积累程序编写和软件开发的经验。《编译原理:编译程序构造与实践教程》不是单纯地给出问题的解答,注重对重点问题进行分析,阐述思路。结合各种方法以实例说明,使学生在理解的基础上掌握问题的求解方法。概括地说,《编译原理:编译程序构造与实践教程》力图以简洁易懂的文字阐述主要的基本概念,用朴实的实例展示实用的方法,按直观的思维方法启发寻找问题的解答。
《编译原理:编译程序构造与实践教程》系统而简洁地介绍编译程序的构造原理,内容主要包括:概论、编译程序构造的基础知识、词法分析、语法分析、语义分析与目标代码生成、中间表示代码与代码优化、程序错误的检查与校正、目标代码的运行,以及虚拟机目标程序的解释程序的编制。各章开始于本章导读,各章末有本章小结、复习思考题以及习题。《编译原理:编译程序构造实践教程》突出实践性,在编译程序构造的各个环节中,提供了具体可行的实现方法和技巧,供读者参考。《编译原理:编译程序构造与实践教程》可作为计算机及相关专业的编译原理课程教材,也可作为计算机软件技术人员、研究生及广大计算机爱好者的参考用书。
插图:②语法分析。词法分析时识别开各个符号之后,由语法分析部分根据程序设计语言的语法规则,识别出各个语法成分,最终识别出完整的程序。在识别各类语法成分的同时,也就检查了语法的正确性。当识别出是语法上正确的程序时,生成相应的内部中间表示(通常是语法分析树或其他内部中间表示),如果存在错误,则给出相应的报错信息。完成语法分析的部分称为语法分析程序,或称为识别程序。概括起来,语法分析程序的功能是识别出各个语法成分,生成相应的内部中间表示,同时进行语法正确性的检查。③语义分析。编译程序继语法分析之后进行语义分析,即基于语法分析时输出的内部中间表示,依据各个语法成分的含义进行语义分析。由于一个程序通常由数据结构和控制结构两部分组成,必然对这两部分进行语义分析。对于数据结构,语义分析部分进行的语义分析工作是确定类型和类型检查,确切地说,检查标识符是否有定义,确定标识符所对应数据对象的数据类型等属性,检查运算的合法性及运算分量数据类型的一致性;对于控制结构,根据程序设计语言所规定的语义,对它们进行相应的语义处理,这时可以生成相应的目标代码。例如,对于一个加法运算,当检查了两个运算分量都有定义,它们都能进行加法运算(运算是合法的),且两个运算分量的类型一致(相容)时,可以生成进行加法的目标代码。不言而喻,执行语义分析的同时,还进行一些语义检查,当然这只是静态语义检查,即在编译时刻所能进行的语义检查,例如,检查是否从循环外通过控制转移语句把控制转入循环体。在运行时刻才能进行的语义检查称为动态语义检查,如检查数组元素下标是否越界,以及指针变量是否有初值等,自然不在语义分析时刻进行。为了改进目标程序质量,语义分析时可能不生成目标代码,而是生成另外一种内部中间表示,或称中间表示代码。代码优化阶段就是基于这种中间表示代码进行优化,然后再从优化了的中间表示代码生成目标代码。语义分析工作通常由语义子程序完成。完成语义分析的部分称为语义分析程序。概括起来,语义分析程序的功能是确定类型、类型检查、识别含义与相应语义处理,以及其他一些静态语义检查等。④代码优化。代码优化指的是为改进目标程序质量而在编译时刻进行的各项优化工作。代码优化通常基于语义分析部分生成的中间表示代码进行,把它变换成功能相同、但功效更高的优化了
张幸儿,南京大学计算机科学与技术系教授,长期从事教学和科研工作,参与多个编译程序和软件项目的研制,长期从事编译原理、程序设计等课程的教学。有丰富的教学经验和计算机软件开发经验。多次获得省部级科研与优秀教材奖,其中《计算机编译理论》和《计算机编译原理》分别获得教育部普通高校优秀教材二等奖。
戴新宇,南京大学计算机科学与技术系副教授,博士,研究方向是自然语言处理,多次讲授计算机编译原理课程。
本书并不具体地描述某一技术的细节,而是尽量从宏观上、从历史的角度来描述通信产业的发展和变迁,描述在一个通信基础设施中使用
《给孩子的另类科普:一万亿个外婆》内容简介:这是一本科普版《爱丽丝漫游奇境记》、温暖心灵的科学漫游故事,涉及星际旅行、分子
《敏捷软件需求:团队、项目群与企业级的精益需求实践》全面介绍了如何在敏捷环境中管理软件需求,全书共四部分24章。第I部分提出
《上市公司股价崩盘风险研究》内容简介:“股价崩盘风险”是近年来财务学研究的一个热点问题。资本市场的有效运行关系到一国经济、
《晏殊词选》内容简介:晏殊,字同叔,因他死后谥为元献,所以后人又称之为晏元献。抚州临川(今江西抚州)人。为北宋前期词坛领袖
《艺术沉思录》内容简介:本书图文并茂,凝聚了崔自默先生从事艺术创作近40年来的艺术教学、实践、研究、发明的经验总结与精髓指导
《代码之髓:编程语言核心概念》作者从编程语言设计的角度出发,围绕语言中共通或特有的核心概念,通过语言演变过程中的纵向比较
《乘用车车身结构设计与轻量化》内容简介:本书是“汽车轻量化技术与应用系列丛书”中的一册,主要围绕车身结构设计与轻量化展开。
2天学会电脑组装.系统安装.日常维护与故障排除-(附赠光盘) 本书特色 本书完全从“读者自学”角度出发,结合课堂教学实录,力求...
《水浒传说故事》内容简介:《山海经故事丛书:水浒传说故事》为山海经故事丛书中的一册。内容均以从民间搜集整理的传说故事为主,
Thewirelessindustryisinthemidstofafundamentalshiftfromprovidingvoice-onlyservice...
Youveexperiencedtheshiny,point-and-clicksurfaceofyourLinuxcomputer-nowdivebelowa...
《让学生快乐表达之行动研究》内容简介:2016年,世界教育创新峰会(WISE)与北京师范大学中国教育创新研究院共同发布了《面向未来
《可持续的养老保险水平:全球化、城市化、老龄化的视角》基于我国养老保险制度面临的三重困境,人口老龄化对养老基金平衡的压力
《胡小闹日记升级经典版·情商篇:不比聪明比努力》内容简介:学校要进行奥数竞赛了,胡小闹发现了同班同学秦奋的一个大秘密:如果
《杨司令的少先队》内容简介:本书收录了郭墟的四部小说;《杨司令的少先队》反映东北抗日联军司令杨靖宇领导下的一支儿童战斗队朝
《Prometheus监控实战》内容简介:本书由浅入深地对Prometheus进行了全方位的介绍,内容通俗易懂,理论与实践相结合。首先从监控体
《逢考必过》内容简介:世界记忆大师的经典记忆著作,应战各种考试的制胜法宝,颠覆你既定记忆程序的学力提升指南! 8次世界脑力锦
《Oracle 18c 必须掌握的新特性:管理与实战》内容简介:在Oracle 12c版本之前,数据库版本的迭代中基本架构都没有非常明显的变化,
嵌入式系统体系结构编程与设计(影印版) 内容简介 本书是关于嵌入式系统开发与设计的一部*新力作,介绍了嵌入式系统的硬件、操作系统、开发过程以及编程。全书系统地阐...