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

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

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

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