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

2024-05-26 数码科技 0次阅读 未知

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


猜你感兴趣
不属于总线的是什么线(不属于总线的

不属于总线的是什么线(不属于总线的

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

2024-05-26 0次阅读
手机端是什么意思指的是什么(什么叫

手机端是什么意思指的是什么(什么叫

最佳答案指手机客户端。手机客户端就是可以在手机终端运行的软件。也是无线互联网行业中一个重点发展的项目,具有重要的意义。以手机客户端产生的产业同样发展迅猛,企业可以无需依赖手机媒体、手机应用即可自己实现便捷、有效的移动营销。..

2024-05-24 0次阅读
用来控制指挥和协调计算机各部件工

用来控制指挥和协调计算机各部件工

用来控制指挥和协调计算机各部件工作的是控制器。控制器是计算机的神经中枢,由它指挥全机各个部件自动、协调地工作;在控制器的控制下,计算机能够自动按照程序设定的步骤进行一系列操作,以完成特定任务。..

2024-05-22 0次阅读
调制是将什么信号转换成什么信号

调制是将什么信号转换成什么信号

调制是将原始信号变换成频带适合信道传输的高频信号。信号调制是使一种波形的某些特性按另一种波形或信号而变化的过程或处理方法。在无线电通信中,利用电磁波作为信息的载体。..

2024-05-11 0次阅读
属于输出设备的是什么 以下属于输

属于输出设备的是什么 以下属于输

最佳答案显示器、键盘、鼠标、手写板、扫描仪、光电阅读机、磁盘或光盘、打印机、绘图仪、影像输出系统、语音输出系统、磁记录设备等。输出设备是计算机硬件系统的终端设备,用于接收计算机数据的输出显示、打印、声音、控制外围设备操作等。也是把各种计算结果数据或信息以数字、字符、图像、声音等形式表现出来。..

2024-05-10 0次阅读
进超市扫的是什么码 进超市扫的是

进超市扫的是什么码 进超市扫的是

进超市扫的是场所码。场所码是渝康码系统为重点场所生成的一个专有二维码,标识了该场所位置、场所名称等信息。对出入该场所人员进行信息的自动化登记,同时核验出入该场所人员的健康信息,方便场所进行管理。..

2024-05-08 0次阅读