9.4作业

帅比萌擦擦* 提交于 2019-11-29 05:54:35

1)简述编译程序与翻译程序、汇编程序的联系与区别。

翻译程序是指把高级语言源程序翻译成机器语言源程序(目标代码)的软件。

翻译程序有两种:一种是编译程序,它将高级语言源程序一次性全部翻译成目标程序,每次执行程序时,只要执行目标程序。另一种是解释程序,它的执行过程是翻译一句执行一句,并且不会生成目标程序。

编译程序是先完整编译后运行的程序。编译的过程就是将源代码文件以字符流的形式进行处理,进行词法和语法的分析,然后通过汇编器将源代码指令转变成汇编指令,编译的过程包括两个大部分:预处理 = 预编译。

汇编过程实际上指把汇编语言代码翻译成目标机器指令的过程。对于被翻译系统处理的每一个C语言源程序,都将最终经过这一处理而得到相应的目标文件。

2)编译过程包括哪几个主要阶段及每个阶段的主要功能。

词法分析:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词。 

语法分析:根据语言的语法规则,把单词流组成各类语法单位

语义分析:检查程序的语义正确性,以保证程序各部分能有意义的结合在一起,为以后的代码生成阶段收集类型信息。

中间代码生成:根据语义规则产生一种介于源语言与目标代码之间的一种中间代码。

代码优化:对前面产生的中间代码进行加工变换,以期在最后阶段能产生更为高效的目标代码。

目标代码生成:把经过优化的中间代码转化成特定 机器上的低级语言代码

3)简述解释程序与编译程序的区别。

编译就是把高级语言变成计算机可以识别的2进制语言, 是对整个写好的程序进行翻译。 最终形成目标文件。
解释程序, 是一句一句翻译的, 最终不形成目标文件。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!