欢迎来到天天文库
浏览记录
ID:52101694
大小:284.00 KB
页数:40页
时间:2020-03-31
《《编译系统概述》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、7/25/2021为什么学习编译编译程序构造的原理和技术一直属于计算机科学必备的专业基础知识。是计算机科学中一个非常成功的分支,也是最早获得成功的分支之一。它所建立的理论、技术和方法值得深入研究和学习。编译构造正确地建立了研究的问题领域和研究方式。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.7/25/2021为什么学习编译针对编译程序构造的某些部分已经开发了标准的形式化技术,包括有限自动机理论、上下文无关文法、正规表达式、属性文法、机器代
2、码描述、数据流分析方程式等。编译程序包含许多普遍使用的数据结构和算法,例如散列法(哈希算法)、栈机制、堆机制、垃圾收集、集合算法、表驱动算法。编译程序的许多构造技术已经得到了广泛的应用。学习编译原理和技术还有助于我们理解程序设计语言,编写优秀的软件。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.7/25/2021什么叫编译程序概念翻译程序或翻译器是把一种语言(源语言)转换成等价的另外一种语言(目标语言)的程序。如果源语言是高级编程语言,目标
3、语言是机器代码和汇编语言这样的低级语言,这类翻译程序就叫做编译程序或编译器。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.7/25/2021第1章编译系统概述1.1程序设计语言的发展1.2基本术语解释1.3编译过程概述1.4出错处理1.5编译程序的前端和后端1.6编译程序的实现方式Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright20
4、04-2011AsposePtyLtd.7/25/20211.1从面向机器的语言到面向人类的语言计算机的硬件只能识别由0、1字符串组成的机器指令序列,即机器指令程序。在计算机刚刚问世的年代,人们只能向计算机输入机器指令程序来指挥它进行简单的数学计算。机器指令程序是最基本的计算机语言。由于机器指令程序不易理解,用它编写程序既困难又容易出错,于是人们就用容易记忆的符号来代替0、1字符串。用符号表示的指令被称为汇编指令,汇编指令的集合被称为汇编语言,由汇编语言编写的指令序列被称为汇编语言程序。虽然汇编指令比机器指令在阅读和理解上有了长足进步,但是二者之间并无本质区别,它们均要求程序设计人员根据指令工
5、作的方式思考、解决问题。因此,人们称这类语言为面向机器的语言或低级语言。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.7/25/2021随着计算机应用需求的不断增长,人们希望能有功能更强、抽象级别更高的语言来支持程序设计,于是就产生了面向各类应用的程序设计语言。这些语言的共同特征是便于人类的理解与使用,因此被称为面向人类的语言或高级语言。表1.1列出了几种面向机器和面向人类的语言及其表现形式。Evaluationonly.Createdwi
6、thAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.7/25/2021表1.1面向机器和面向人类语言举例分类语言表现形式举例面向机器机器指令0000001111110000汇编指令addsi,ax面向人类通用程序设计语言x:=a+b;sort(list);ifcthenaelseb;数据查询语言selectid_no,namefromstudent_table;形式化描述语言E:E'+'E
7、E'*'E
8、id;Evaluationonly.CreatedwithAspose.Slidesfor.
9、NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.7/25/20211.通用程序设计语言通用程序设计语言是继汇编语言之后发展起来的应用最广的一类语言,如人们常用的FORTRAN、Pascal、C/C++、Ada83/Ada95、Java等语言。这类语言的特征是:语言结构符合人类的思维特征,如直接使用表达式进行数学运算;具有很高抽象程
此文档下载收益归作者所有