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


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

文章插图
品牌型号:联想拯救者Y9000P
系统:Windows 11
能将高级语言转换成目标程序的是编译程序 能将高级语言转换成目标程序的是
能将高级语言转换成目标程序的是编译程序 能将高级语言转换成目标程序的是
能将高级语言转换成目标程序的是编译程序 。由高级语言编写的程序称为“源程序”,由二进制代码表示的程序称为“目标程序”,而把源程序转换成机器能够识别的目标程序是由“编译程序”完成的 。编译程序是将整个高级语言编写的源程序先翻译成机器语言程序,然后再生成可在操作系统下直接运行的目标程序 。
编译程序(Compiler,compiling program),也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序 。编译程序属于采用生成性实现途径实现的翻译程序 。它以高级程序设计语言书写的源程序作为输入 , 而以汇编语言或机器语言表示的目标程序作为输出 。编译出的目标程序通常还要经历运行阶段 , 以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果 。
编译程序已作为实现编程的重要软件工具,被纳入到软件支援环境的基本层软件工具之中 。因此,规划编译程序实现方案时,应从所处的具体软件支援环境出发,既要遵循整个环境的全局性要求和规定,又要精心考虑与其他诸层软件 工具之间的相互支援、配合和衔接关系 。
编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;中间代码生成;代码优化;目标代码生成 。主要是进行词法分析和语法分析 , 又称为源程序分析,分析过程中发现有语法错误 , 给出提示信息 。
1、词法分析 。词法分析的任务是对由字符组成的单词进行处理 , 从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序 。执行词法分析的程序称为词法分析程序或扫描器 。
源程序中的单词符号经扫描器分析,一般产生二元式:单词种别;单词自身的值 。单词种别通常用整数编码,如果一个种别只含一个单词符号,那么对这个单词符号,种别编码就完全代表它自身的值了 。若一个种别含有许多个单词符号,那么,对于它的每个单词符号 , 除了给出种别编码以外,还应给出自身的值 。词法分析器一般来说有两种方法构造:手工构造和自动生成 。手工构造可使用状态图进行工作,自动生成使用确定的有限自动机来实现 。
2、语法分析 。编译程序的语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,最后看是否构成一个符合要求的程序,按该语言使用的语法规则分析检查每条语句是否有正确的逻辑结构 , 程序是最终的一个语法单位 。编译程序的语法规则可用上下文无关文法来刻画 。
语法分析的方法分为两种:自上而下分析法和自下而上分析法 。自上而下就是从文法的开始符号出发,向下推导,推出句子 。而自下而上分析法采用的是移进归约法,基本思想是:用一个寄存符号的先进后出栈,把输入符号一个一个地移进栈里 , 当栈顶形成某个产生式的一个候选式时,即把栈顶的这一部分归约成该产生式的左邻符号 。
3、中间代码生成 。中间代码是源程序的一种内部表示,或称中间语言 。中间代码的作用是可使编译程序的结构在逻辑上更为简单明确,特别是可使目标代码的优化比较容易实现 。中间代码即为中间语言程序 , 中间语言的复杂性介于源程序语言和机器语言之间 。中间语言有多种形式,常见的有逆波兰记号、四元式、三元式和树 。
4、代码优化 。代码优化是指对程序进行多种等价变换,使得从变换后的程序出发,能生成更有效的目标代码 。所谓等价,是指不改变程序的运行结果 。所谓有效,主要指目标代码运行时间较短,以及占用的存储空间较小 。这种变换称为优化 。
有两类优化:一类是对语法分析后的中间代码进行优化,它不依赖于具体的计算机;另一类是在生成目标代码时进行的 , 它在很大程度上依赖于具体的计算机 。对于前一类优化,根据它所涉及的程序范围可分为局部优化、循环优化和全局优化三个不同的级别 。

推荐阅读