编译程序包括哪些组成部分?

作者&投稿:溥促 (若有异议请与网页底部的电邮联系)

编译程序通常包括以下几个部分:

1,词法分析器 (Lexical Analyzer):将源代码作为输入,并将其转换为一系列称为 tokens 的符号序列。

2,
语法分析器 (Syntactic Analyzer):将 tokens 序列转换为一种称为抽象语法树 (Abstract Syntax Tree,AST) 的树形结构,以表示源代码的语法结构。

3,语义分析器 (Semantic Analyzer):对 AST 进行语义分析,例如类型检查、常量折叠等。

4,中间代码生成器 (Intermediate Code Generator):将 AST 转换为一种称为中间代码 (Intermediate Code) 的低级表示形式,以便后续优化和目标代码生成。

5,
优化器 (Optimizer):对中间代码进行优化,例如常量传播、死代码删除、循环展开等。

6,目标代码生成器 (Target Code Generator):将优化后的中间代码转换为目标平台的机器码或字节码。

7,链接器 (Linker):将编译生成的目标代码与其他库代码或资源文件链接在一起,以形成可执行文件或动态链接库等目标程序。



通常由七个部分组成。分别是:词法分析、语法分析、语义分析和中间代码生成、优化、目标代码生成以及表格和表格管理、出错处理。
各自功能是:
1.词法分析:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个单词(也称单词符号,或简称符号)。在词法分析阶段工作所依循的是语言的词法规则;描述词法规则的有效工具是正规式和有限自动机。
2.语法分析:在词法分析的基础上,根据语言的语法规则,把单词符号串组成各类语法单位。具体的说,语法分析是在单词流的基础上建立一个层次结构——建立语法树。
3.语义分析和中间代码生成:语义分析利用语法分析阶段确定的层次结构来识别表达式和语句中的操作信息及类型信息;中间代码生成阶段将产生的源程序的一个显式中间表示,这种中间表示可以看成是某种抽象程序,通常是与平台无关的,(可用三地址码和四元式表示)。
4.优化:试图改进中间代码,以产生执行速度较快的机器代码。
5.目标代码生成:生成可重定位的机器代码或汇编代码。
6.表格和表格管理:编译程序在工作过程中需要保持一系列的表格,以登记源程序的各类信息和编译各阶段的进展情况。
7.出错处理:编译程序对源程序中的错误进行处理,应最大限度地发现源程序中的各种错误,准确地指出错误的性质和发生错误的地点,并且将错误所造成的影响限制在尽可能小的范围内,使得源程序的其余部分能继续被编译下去,以便进一步发现其他可能的错误。通常编译过程中每个阶段都可能检测出错误,其中,绝大多数数错误可以在编译的前三阶段检测出来。且源程序中的错误通常分为语法错误和语义错误两大类。出错处理就是为了处理以上的错误情况。

~

请问汇编程序, 解释程序, 编译程序分别指?
答:采用汇编语言编写程序虽不如高级程序设计语言简便、直观,但是汇编出的目标程序占用内存较少、运行效率较高,且能直接引用计算机的各种设备资源。它通常用于编写系统的核心部分程序,或编写需要耗费大量运行时间和实时性要求较高的程序段。2、解释程序 解释程序是一种语言处理程序,在词法、语法和语义分析方面...

什么是操作系统、什么是语言处理程序?
答:计算机系统的控制和管理中心,从资源角度来看,它具有处理机、存储器管理、设备管理、文件管理等4项功能。2、语言处理程序 编译软件CPU执行每一条指令都只完成一项十分简单的操作,一个系统软件或应用软件,要由成千上万甚至上亿条指令组合而成。直接用基本指令来编写软件,是一件极其繁重而艰难的工作。计...

源程序的翻译方式有哪两种?简述它们的工作过程。
答:解释方式:源程序输入到计算机后,解释程序将源程序逐句翻译,翻译一句执行一句,边翻译边执行,不产生目标程序。 区别:编译方式把源程序的执行过程严格地分成两大步:编译和运行。即先把源程序全部翻译成目标代码,然后再运行此目标代码,获执行结果。 解释方式则不然:它是按照源程序中语句的动态顺序,...

能将高级语言编写的源程序转换为目标程序的是什么?
答:把源程序转换为目标程序的过程叫编译 所以能将高级语言编写的源程序转换为目标程序的是相应的高级语言编译程序 故答案为C—编译程序

什么是程序设计?
答:程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程应当包括分析、设计、编码、测试、排错等不同阶段。任何设计活动都是在各种约束条件和相互矛盾的需求之间寻求一种平衡,程序设计也不例外。在计算机技术发展的...

源程序的翻译方式有哪两种,简述它们的工作过程
答:所谓解释方式就是由计算机专业人员事先编好一个解释程序构成一个解释系统存放到计算机内,当把高级语言程序输入到计算机内并运行程序之后,解释系统就会对它进行解释,解释一句执行一句。也就是说,边解释边执行。这与日常生活中的口译类似。所谓编译方式就是由计算机专业人员事先编好一个编译程序构成一个...

什么是编译程序?
答:编译程序指将某一种程序设计语言写的程序翻译成等价的另一种语言的程序的程序, 称之为编译程序 编译程序也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。编译程序属于采用生成性实现途径实现的翻译程序。它以高级程序设计语言书写的源程序作为输入,而...

程序通常是用高级语言编写源程序?
答:1.计算机程序通常是用高级语言编写源程序,程序包含数据结构,算法,存储方式 编译等,经过语言翻译程序(解释程序和编译程序)转换成机器接受的指令。2.程序可按其设计目的的不同,分为两类:一类是系统程序,它是为了使用方便和充分发挥计算机系统效能而设计的程序,通常由计算机制造厂商或专业软件公司设计...

编译原理中“翻译程序”如何理解?
答:编译程序:把用高级程序设计语言书写的源程序,翻译成等价的计算机汇编语言或机器语言的目标程序的翻译程序。解释程序是高级语言翻译程序的一种,它将源语言(如BASIC)书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。编译程序和解释程序都是翻译程序。我觉得你说的书上的定义有点...

usb键盘工作原理?
答:产生被按下键代码的编码电路,将产生代码送入计算机的接口电路,这些电路统称为键盘控制电路。依据键盘工作原理,可以把计算机键盘分为编码键盘和非编码键盘:键盘控制电路的功能完全依靠硬件自动完成,这种键盘称为编码键盘,整个键盘处理程序由查询程序、传送程序、译码程序三部分组成 ...