网站首页
手机版

能将高级语言转换成目标程序的是(c语言代码生成器)

更新时间:2024-05-26 20:59:15作者:未知

能将高级语言转换成目标程序的是(c语言代码生成器)

品牌型号:联想拯救者Y9000P
系统:Windows 11

能将高级语言转换成目标程序的是

能将高级语言转换成目标程序的是编译程序。由高级语言编写的程序称为“源程序”,由二进制代码表示的程序称为“目标程序”,而把源程序转换成机器能够识别的目标程序是由“编译程序”完成的。编译程序是将整个高级语言编写的源程序先翻译成机器语言程序,然后再生成可在操作系统下直接运行的目标程序。

编译程序(Compiler,compiling program),也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。编译程序属于采用生成性实现途径实现的翻译程序。它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。

编译程序已作为实现编程的重要软件工具,被纳入到软件支援环境的基本层软件工具之中。因此,规划编译程序实现方案时,应从所处的具体软件支援环境出发,既要遵循整个环境的全局性要求和规定,又要精心考虑与其他诸层软件 工具之间的相互支援、配合和衔接关系。

编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。

1、词法分析。词法分析的任务是对由字符组成的单词进行处理,从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。执行词法分析的程序称为词法分析程序或扫描器。

源程序中的单词符号经扫描器分析,一般产生二元式:单词种别;单词自身的值。单词种别通常用整数编码,如果一个种别只含一个单词符号,那么对这个单词符号,种别编码就完全代表它自身的值了。若一个种别含有许多个单词符号,那么,对于它的每个单词符号,除了给出种别编码以外,还应给出自身的值。词法分析器一般来说有两种方法构造:手工构造和自动生成。手工构造可使用状态图进行工作,自动生成使用确定的有限自动机来实现。

2、语法分析。编译程序的语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,最后看是否构成一个符合要求的程序,按该语言使用的语法规则分析检查每条语句是否有正确的逻辑结构,程序是最终的一个语法单位。编译程序的语法规则可用上下文无关文法来刻画。

语法分析的方法分为两种:自上而下分析法和自下而上分析法。自上而下就是从文法的开始符号出发,向下推导,推出句子。而自下而上分析法采用的是移进归约法,基本思想是:用一个寄存符号的先进后出栈,把输入符号一个一个地移进栈里,当栈顶形成某个产生式的一个候选式时,即把栈顶的这一部分归约成该产生式的左邻符号。

3、中间代码生成。中间代码是源程序的一种内部表示,或称中间语言。中间代码的作用是可使编译程序的结构在逻辑上更为简单明确,特别是可使目标代码的优化比较容易实现。中间代码即为中间语言程序,中间语言的复杂性介于源程序语言和机器语言之间。中间语言有多种形式,常见的有逆波兰记号、四元式、三元式和树。

4、代码优化。代码优化是指对程序进行多种等价变换,使得从变换后的程序出发,能生成更有效的目标代码。所谓等价,是指不改变程序的运行结果。所谓有效,主要指目标代码运行时间较短,以及占用的存储空间较小。这种变换称为优化。

有两类优化:一类是对语法分析后的中间代码进行优化,它不依赖于具体的计算机;另一类是在生成目标代码时进行的,它在很大程度上依赖于具体的计算机。对于前一类优化,根据它所涉及的程序范围可分为局部优化、循环优化和全局优化三个不同的级别。

5、目标代码生成。目标代码生成是编译的最后一个阶段。目标代码生成器把语法分析后或优化后的中间代码变换成目标代码。目标代码有三种形式:可以立即执行的机器语言代码,所有地址都重定位;待装配的机器语言模块,当需要执行时,由连接装入程序把它们和某些运行程序连接起来,转换成能执行的机器语言代码;汇编语言代码,须经过汇编程序汇编后,成为可执行的机器语言代码。

目标代码生成阶段应考虑直接影响到目标代码速度的三个问题:一是如何生成较短的目标代码;二是如何充分利用计算机中的寄存器,减少目标代码访问存储单元的次数;三是如何充分利用计算机指令系统的特点,以提高目标代码的质量。


本文标签: 程序  的是  转换成  

为您推荐

能将高级语言转换成目标程序的是(c语言代码生成器)

能将高级语言转换成目标程序的是编译程序。由高级语言编写的程序称为“源程序”,由二进制代码表示的程序称为“目标程序”,而把源程序转换成机器能够识别的目标程序是由“编译程序”完成的。

2024-05-26 20:59

自锁器配用的柔性导轨为多少毫米(自锁器配用的柔性导轨为多少毫米?)

自锁器配用的柔性导轨为16毫米。柔性导轨相对传统L型导轨而言,即可打开的两段式导轨。传统L型导轨应用下只能将按摩椅调整至固定角度(通常112°),而柔性导轨可在初始角度上打开19°,更接近躺平。

2024-05-26 20:59

文件扩展名是什么意思 文件扩展名是什么意思啊

文件扩展名也称为文件的后缀名,是操作系统用来标志文件类型的一种机制。通常来说,一个扩展名是跟在主文件名后面的,由一个分隔符分隔。在一个像读我.txt的文件名中,读我是主文件名,txt为扩展名,表示这个文件被认为是一个纯文本文件。

2024-05-26 20:57

不属于总线的是什么线 下列不属于总线的是什么

不属于总线的是信息总线。总线按功能和规范可分为五大类型:数据总线(Data Bus)、地址总线(Address Bus)、控制总线(Control Bus)、扩展总线(Expansion Bus)、局部总线(Local Bus)。

2024-05-26 20:57

磁吸充电器对手机有什么危害(苹果磁吸充电器对手机有什么危害)

因为在短距离内有大量热能释放,长期处于高温状态会损伤电池。如果用户在意电池的耐久度,首先要做到尽量不要边玩大型游戏边充电。其次,使用磁吸充电一段时间,应把手机拿下来“冷静”一会或者进行正常轻度使用都可。

2024-05-26 20:57

谁发明了活字印刷 谁发明了活字印刷术比欧洲早四百多年

活字印刷是毕昇发明的。活字印刷术是一种古代印刷方法,是中国古代劳动人民经过长期实践和研究才发明的。先制成单字的阳文反文字模,然后按照稿件把单字挑选出来,排列在字盘内,涂墨印刷,印完后再将字模拆出,留待下次排印时再次使用。

2024-05-26 13:59