编译原理概述
Posted sskwjw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译原理概述相关的知识,希望对你有一定的参考价值。
(1)简述编译程序与翻译程序、汇编程序的联系与区别。
1.编译程序与翻译程序、汇编程序的联系
编译程序、翻译程序、汇编程序是3种语言处理程序。
2.编译程序与翻译程序、汇编程序的区别
汇编程序(为低级服务)是将汇编语言书写的源程序翻译成由机器指令和其他信息组成的目标程序。
翻译程序(为高级服务)直接执行源程序或源程序的内部形式,一般是读一句源程序,翻译一句,执行一句,不产生目标代码,如BASIC解释程序。
编译程序(为高级服务)是将高级语言书写的源程序翻译成与之等价的低级语言的目标程序。编译程序与翻译程序最大的区别之一在于前者生成目标代码,而后者不生成。
(2)编译过程包括哪几个主要阶段及每个阶段的主要功能。
1.词法分析:词法分析是编译过程的第一个阶段。这个阶段的任务是从左到右一个字符一个字符的读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词。
2.语法分析:语法分析是编译过程的第二个阶段。语法分析的任务是在词法分析的基础上将单词序列分解成各类语法短语。
3.语义分析:语义分析椒审查源程序有无语义错误,为代码生成阶段收集类型信息。
4.中间代码生成:进行了上述胡语法分析和语义分析阶段的工作之后,有的编译程序将源程序变成一种内部表示形式,这种内部表示形式叫做中间语言或者中间代码。
5.代码优化:这是对前一阶段产生的中间代码进行交换或进行改造,目的是生成的目标代码更为高效,即省时间和省空间。
6.目标代码生成:这一阶段的任务是把中间代码变成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。
(3)简述解释程序与编译程序的区别。
解释程序(为高级服务)直接执行源程序或源程序的内部形式,一般是读一句源程序,翻译一句,执行一句,不产生目标代码,如BASIC解释程序。
编译程序(为高级服务)是将高级语言书写的源程序翻译成与之等价的低级语言的目标程序。编译程序与翻译程序最大的区别之一在于前者生成目标代码,而后者不生成。
以上是关于编译原理概述的主要内容,如果未能解决你的问题,请参考以下文章