总结

编译原理是计算机专业的一门重要专业课,介绍编译程序构造的一般原理和基本方法,编译程序是把高级语言写成的源程序经过翻译转化成面向机器的代码,编译程序的工作主要分为五个阶段,包括词法分析、语法分析、语义分析和中间代码生成、代码优化和目标代码生成

词法分析是计算机科学中将字符序列转换为单词序列的过程。进行词法分析的程序或者函数叫作词法分析器也叫扫描器词法分析器一般以函数的形式存在,供语法分析器调用。

语法分析任务是在词法分析的基础上将单词序列组合成各类语法短语,如程序,“语句”,表达式等。

语义分析是编译过程的一个逻辑阶段, 语义分析的任务是对结构上正确的源程序进行上下文有关性质的审查,进行类型审查。语义分析是审查源程序有无语义错误,为代码生成阶段收集类型信息。

中间代码生成是产生中间代码的过程。所谓“中间代码”是一种结构简单、含义明确的记号系统,这种记号系统复杂性介于源程序语言和机器语言间,容易将它翻译成目标代码。另外,还可以在中间代码一级进行与机器无关的优化。

代码优化是指对程序代码进行等价(指不改变程序的运行结果)变换。程序代码可以是中间代码(如四元式代码),也可以是目标代码。等价的含义是使得变换后的代码运行结果与变换前代码运行结果相同。优化的含义是最终生成的目标代码短(运行时间更短、占用空间更小),时空效率优化。原则上,优化可以在编译的各个阶段进行,但最主要的一类是对中间代码进行优化,这类优化不依赖于具体的计算机

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

如下是编译器结构和各部分功能的具体图示:


 编译程序的处理虽然只分五个阶段,但是每个阶段的内容都很多,理解起来也有一定难度,且理论性比较强,概念比较多,而且各部分联系比较紧密,所以学起来有点吃力,但是之后还是会增加一些了解,搞懂编译原理这门课程!

阅读更多
上一篇语义分析中间代码的产生和属性文法语法制导翻译
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭