编译原理概述
1)简述编译程序与翻译程序、汇编程序的联系与区别。 编译就是将源代码文件以字符流的形式进行处理,进行词法和语法的分析,然后通过汇编器将源代码指令转变成汇编指令。 汇编实际上指把汇编语言代码翻译成目标机器指令。 翻译是指将一种语言等价转换成另外一种语言,继续传达同样的意思或者功能。 三者之间都改变了原本代码,但是区别程序的不同也代表着改变的形式不同,编译程序将源代码转变成汇编指令,汇编程序则将编译程序转发成的汇编指令转化成目标机器指令,而编译程序跟汇编程序都属于翻译程序。 2)编译过程包括哪几个主要阶段及每个阶段的主要功能。 编译过程包括以下六个程序: 1.词法分析:读入程序,扫描、分解和识别构成源程序的字符流和单词; 2.语法分析:在词法分析的基础上将单词序列分解成各类语法短语; 3.语义分析:审查源程序有无语义错误,为代码生成阶段收集类型信息; 4.中间代码生成:通过编译程序将源程序变成中间语言或中间代码; 5.代码优化:将中间代码进行变换或改造,生成更高效的代码; 6.目标代码生成:把中间代码变换成特定机器上的汇编指令代码。 3)简述解释程序与编译程序的区别。 编译指将高级语言转化成低级语言,工作效率高,即时间快、空间省;交互性与动态特性差、可移植性差。 解释指接受高级语言的一句输出,并解释、执行跟得到结果之后再接受下一句