概念
程序语言随着计算机的诞生而产生。从最初的机器语言,到后来的汇编语言,再到后来的C语言,再到现在的Java语言,C#语言等等。计算机硬件的性能越来越强,语言的发展也越来越高级。语法越靠近机器,越能被机器理解的语言越低级;语法越靠近自然语言,越能被人理解的语言也就越高级。但是,每一个特定的机器都有特定的指令集,机器只认识属于自己的机器语言。如何将高级语言写出的程序,转换为机器认识的机器语言,需要借助编译器工具来实现。
「编译」的概念其实跟翻译的概念类似。但翻译是一个泛的概念,任何两种语言(比如英语和日语)之间的转换都能被称为是翻译。而「编译」专门是指计算机领域中,高级语言编写的源程序向机器语言目标程序翻译的过程。
一般认为,编译的过程主要有5步:
- 词法分析
- 语法分析
- 中间代码生成
- 代码优化
- 目标代码生成
其中,还有两个概念贯穿编译过程的始终:
- 表格管理
- 出错处理
编译过程
编译的过程就是将源程序转换为目标程序的过程。
词法分析
词法分析就是通过扫描源程序,将源程序中的一个个字符组成一个个有意义的单词符号。对每一个单词符号,要记录单词符号的类别(定义符、标识符、常量等等),还要记录单词符号本身的值。
语法分析
语法分析就是通过扫描单词符号,来判断单词符号组成的词组,句子,段落是否符合语法规则的要求,从而形成一个个语法单位(表达式、赋值语句、循环等等)。
中间代码生成
中间代码生成就是通过扫描语法单位,来生成一种介于源程序和目标程序之间的中间代码。中间代码的选择要能够尽量贴近目标程序,并且容易被优化,比较常

编译原理涉及将高级语言转换为机器语言的过程,包括词法分析、语法分析、中间代码生成、代码优化和目标代码生成五个主要步骤。词法分析识别单词符号,语法分析检查语法规则,中间代码生成便于优化,优化阶段提高代码效率,最后生成目标代码。表格管理和出错处理贯穿整个编译过程。
最低0.47元/天 解锁文章
301

被折叠的 条评论
为什么被折叠?



