1)简述编译程序与翻译程序、汇编程序的联系与区别。
翻译程序是指把高级语言源程序翻译成机器语言源程序(目标代码)的软件。
翻译程序有两种:一种是编译程序,它将高级语言源程序一次性全部翻译成目标程序,每次执行程序时,只要执行目标程序。另一种是解释程序,它的执行过程是翻译一句执行一句,并且不会生成目标程序。
编译程序是先完整编译后运行的程序。编译的过程就是将源代码文件以字符流的形式进行处理,进行词法和语法的分析,然后通过汇编器将源代码指令转变成汇编指令,编译的过程包括两个大部分:预处理 = 预编译。
汇编过程实际上指把汇编语言代码翻译成目标机器指令的过程。对于被翻译系统处理的每一个C语言源程序,都将最终经过这一处理而得到相应的目标文件。
2)编译过程包括哪几个主要阶段及每个阶段的主要功能。
词法分析:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词。
语法分析:根据语言的语法规则,把单词流组成各类语法单位
语义分析:检查程序的语义正确性,以保证程序各部分能有意义的结合在一起,为以后的代码生成阶段收集类型信息。
中间代码生成:根据语义规则产生一种介于源语言与目标代码之间的一种中间代码。
代码优化:对前面产生的中间代码进行加工变换,以期在最后阶段能产生更为高效的目标代码。
目标代码生成:把经过优化的中间代码转化成特定 机器上的低级语言代码
3)简述解释程序与编译程序的区别。
编译就是把高级语言变成计算机可以识别的2进制语言, 是对整个写好的程序进行翻译。 最终形成目标文件。
解释程序, 是一句一句翻译的, 最终不形成目标文件。
4)