编译原理----引论

 1.解释下列术语

(1)编译程序:是一个语言翻译程序。把一种高级语言(源程序)翻译成一种低级语言(目标语言)。

(2)编译程序的前段:是编译程序的分析部分,与“源语言”有关,包括:词法分析,语法分析,语义分析,中间代码生成。

(3)编译程序的后端:是编译程序的综合部分,与“目标机”有关,包括:代码优化程序,目标代码生成程序。

(4)遍:是对源程序或其他等价的中间语言程序从头到尾扫描并完成规定任务的过程。一个程序过程可由一遍,两遍或多遍完成。对于多遍的编译程序,第一遍的输入是用户书写的源程序,最后一遍的输出是目标程序,其余是上一遍的输出为下一遍的输入。

 

2。编译程序有哪些主要构成成分?各自的功能什么是?
①词法分析:从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词。

②语法分析:在词法分析的基础上将单词序列分解成各类语法和短语,如 “程序”,“语句”,“表达式”等。

③语义分析:审查源程序有无语义错误,为代码生成阶段收集类型信息。

④中间代码生成:将源程序变成一种内部表示形式,这种内部表示形式叫做中间语言或中间代码。

⑤代码优化:对前一段产生的中间代码进行变换或改造,目的是使生成的目标代码更为高效,即省时间和空间。

⑥目标代码生成:把中间代码变成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。

 

3.解释程序和编译程序的异同?
解释程序不需要在运行前把源程序翻译成目标代码,它的工作模式是一个个的获取,分析并执行源程序语句,一旦一个语句分析结束,源程序便开始运行并生成结果。编译程序需要将源程序全部翻译完之后才能执行。

 

4.分析编译程序产生错误的阶段

(1)else没有匹配的if。    语法分析

(2)数组下标越界。         语义分析

(3)使用的函数没有定义。  语义分析

(4)在数中出现非数字字符。 词法分析

posted @ 2021-11-01 19:01  Mr_宋先生  阅读(325)  评论(0编辑  收藏  举报