- 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
- 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
- 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
第 1 页
第 章 编译原理概述
本章主要涉及编译程序和编译技术的基本概念,包括什么是编译程序、编译过程和编
译程序的结构,构造编译系统的一般方法等。
常见考试知识点分析
编译程序的概念
计算机诞生之初,人们利用机器语言编写程序 (问题及求解 问题的算法 ),在计算机
上运行该程序,完成相应的任务。由于计算机能够直接识别机器语言程序,因此无需借助
其他工具,程序便可直接在计算机上运行。这种机器语言能被计算机直接识别,但是对人
来说不容易理解,严重制约了计算机应用的普及和软件开发的效率提高。为了克服机器语
言的缺点和不足,提出了汇编语言的概念。
汇编语言是符号化的机器语言。机器语言使用 和 构成代码描述指令,可 以说,机
器语言的这种指令形式对人来说不容易理解,于是产生了把机器指令用一定意义的符号表
示,以提高其可读性,这就形成了汇编语言。例如,假设在某个机器指令系统中存在指令
,在汇编语言中根据其意义用 “ ”来表示,后者 比前者容易理解。
汇编语言的提出给程序设计人员带来了方便,也降低了程序设计语言学习的难度,提
高了程序设计的效率。而计算机并不 “理解 ”这种符号化的指令,不能直接执行用汇编语
言书写的程序,必须借助某种工具,把用汇编语言书写的程序翻译成机器语言程序,计算
机才能运行程序。这种能把汇编语言程序翻译成机器语言程序的工具是汇编程序。
汇编语言比机器语言更容易被人理解,但是离人们所习惯的语言还有很大差别。为使
人机交互所用的语言更加方便,进一步降低程序设计语言学习的难度和提高软件 的开发效
率,人们又提出和设计 了高级语言。高级语言接近人们所使用的语言,其中的语句类似于
英语的句子,因而 已经成为现代程序设计语言的主流,例如,广泛使用的 语 言、
语言和 语言等。但是用这种高级语言书写的程序,计算机不能直接执行,必须借
助专 门的工具,把这些语言书写的程序翻译成机器语言程序 。这种把高级语言书写的程序
翻译成机器语言程序的工具就是编译程序。
汇编程序和编译程序属于翻译程序,翻译程序是把一种语言书写的程序 (称为源语言
程序)翻译成另外一种语言书写的程序 (称为 目标语言程序),并且 目标语言程序与源语言
程序在逻辑上是等价的,即它们完成 的功能是一致的。对于汇编程序来说,源语言是汇编
语言, 目标语言是机器语言,对于编译程序来说,源语言是高级语言, 目标语言是机器语
言或者汇编语言 (有些编译程序把高级语言程序翻译成汇编语言程序,借助汇编程序再进
一步翻译成机器语言程序 )。
第 2 页
编译过程
与人的翻译过程类似,编译程序把高级语言程序翻译成机器语言程序 (或汇编语言程
序 )时,一般经过下列阶段 (如 图 所 示 )。
图 编译过程
词法分析
对高级语言程序翻译的第一步是理解 。构成程序的最小意义单元是各种单词符号,如
标识符、运算符、保留字、各种类型的常量、分界符等 。因此,理解的第一步识别程序 中
的单词符号,确定每个单词的类别,这是词法分析的任务。词法分析的依据是各种单词符
号的构成规则,因此,对单词符号的构成规则进行形式化描述,进而从这种描述出发设计
词法分析算法 ,是词法分析 的关键。
输入的源程序在进行分析理解前被看作字符串,经过词法分析识别出单词符号后,以
字符串形式存在的源程序被转化成单词符号串,这是进行下一步语法分析的基础。
语法分析
在对单词理解的基础上,下一步是语法分析,即识别程序的语法结构,识别程序各构
成元素之间的语法关系,如:表达式中的运算符和运算量,循环语句的循环条件和循环体
等,这就是语法分析的任务。语法分析的依据是程序各种元素 (语法范畴)的构成规律,
这种规律需要用形
文档评论(0)