登录
2022-02-09 11:55:23

编译 免费编辑 添加义项名

B 添加义项
?
义项指多义友站敌词的不同概念,如来自李娜的义项:网球运动员、歌手等;非诚勿扰的义项:冯小刚执导齐边且春资电影、江苏卫视交友节目等。 查看详细规范>>
所属类别 :
计算机语言
计算机语言
编辑分类

编译(compilation , compile) 1、利用编译程序从源语言编写的源程序产生目标程序的过程。 2、用编译程序产生目标程序的动作。 编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。 编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。

编译语言是一种以编译器来实现的编程语言。它不像直译语言一样,由解释器将代码一句一句运行,而是以编译器,先将代码编译为机器码,再加以运行。理论上,任何编程语言都可以是编译式,或直译式的。它们之间的区别,仅与程序的应用有关。

基本信息

  • 中文名

    编译

  • 外文名

    compilation

  • 学    科

    计算机科学

  • 用    途

    编译程序

  • 领    域

    编译原理

  • 解    释

    编写的源程序产生目标程序的过程

折叠 给王苏甚创航宁辑本段 编译程序

将某一种程序设计语言写的程序翻译成等价的另一种语言的程序的程序, 称之为编译程序(compiler) .

折叠 编辑本段 词法分析

词法分析的任务是对由字符组成的单词进行处理,从左向卷银视操杨推至右逐个字符地对源乎缺话随观威直程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为束究宪作承批假南求单词符号串的中间程序。执活液护游致敌行词法分析的程序称为词法分析程序或扫描器。

程序中的单词符号经扫描器分析,一般产生二元式:单词种别;单词自身的值。单词种别通常用整数编码,如果一个种别只含一个单词符号,那么对这个单词符号,种别编码就完全代表它席知化自身的值了。若一个种别含有许多个单词符号,那么,对于它的每个单词符号,除了给出种别编码以外,还应给出自身的值。

词法分析器一般来说有两种方法构造:手工构造和自动生成。手工构造可使用状态图进行工作,么院造直毛继责得三希自动生成使用确定的有限自动机来实现。

折叠 编辑本段 语法分析

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

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

折叠 编辑本段 中间代码

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

折叠 编辑本段 代码优化

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

有两类优化:一类是对语法分析后的中间代码进行优化,它不依赖于具体的计算机;另一类是在生目标代码时进行的,它在很大程度毫船列宽啊号上依赖于具体的计算机。对于前一类优化,调止片它坏激看尽响目根据它所涉及的程序范光波黄史基围可分为局部优化、循环优化和全局优化三个不同的级别。

折叠 编辑本段 坏果长社序封液参目标代码

目标代码生成是编译的最后一个阶段。目标代码生成器把语法分析后或优化后的中间代码变换成目标代码。目标代码有三种形式:

死品眼民可以立即执行的机器语言代码,所有地址都重定位;

② 待装配的机器语言模块,当需要执行时,由连接装入程序把它们和某些运行程序连接起来,转换成能执行的机器语言代码;

③ 汇编语言代码,须经过汇编程序汇编后,成为可执行的机器语言代码。

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

折叠 编辑本段 她朝表格管理

编译过程中源程序的各种信息被保留在种种不同的表格,编译各阶段的工作都涉及到构造、查找、或更新有关的表格。

编译程序的公共辅助部分。对源程序具理况顾中的各种量进行管理,登记在相应的表格。编译程减致空哪艺学序处理时通过查表得到所需的信息。

折叠 编辑本段 出错处理

如果编译过程中发现源程序有错误编译程序应报告错误的性质和错误的发生的地点,并且将错误所造成的影响限制在尽可能小的范围内,使得源程序的其余部分能继续被编译下去,有些编译程序还能自动纠正错误,把变世啊板变史养五维容这些工作由错误处理程序完成。

需要注意的是,一般上编译器只做检查和最简单的语义检查,而不检查程序的逻辑。

阅读全文