天津大学编译原理讲义 - Part1引论
- 格式:ppt
- 大小:1.67 MB
- 文档页数:38
编译原理----引论1.解释下列术语(1)编译程序:是⼀个语⾔翻译程序。
把⼀种⾼级语⾔(源程序)翻译成⼀种低级语⾔(⽬标语⾔)。
(2)编译程序的前段:是编译程序的分析部分,与“源语⾔”有关,包括:词法分析,语法分析,语义分析,中间代码⽣成。
(3)编译程序的后端:是编译程序的综合部分,与“⽬标机”有关,包括:代码优化程序,⽬标代码⽣成程序。
(4)遍:是对源程序或其他等价的中间语⾔程序从头到尾扫描并完成规定任务的过程。
⼀个程序过程可由⼀遍,两遍或多遍完成。
对于多遍的编译程序,第⼀遍的输⼊是⽤户书写的源程序,最后⼀遍的输出是⽬标程序,其余是上⼀遍的输出为下⼀遍的输⼊。
2。
编译程序有哪些主要构成成分?各⾃的功能什么是?①词法分析:从左到右⼀个字符⼀个字符地读⼊源程序,对构成源程序的字符流进⾏扫描和分解,从⽽识别出⼀个个单词。
②语法分析:在词法分析的基础上将单词序列分解成各类语法和短语,如 “程序”,“语句”,“表达式”等。
③语义分析:审查源程序有⽆语义错误,为代码⽣成阶段收集类型信息。
④中间代码⽣成:将源程序变成⼀种内部表⽰形式,这种内部表⽰形式叫做中间语⾔或中间代码。
⑤代码优化:对前⼀段产⽣的中间代码进⾏变换或改造,⽬的是使⽣成的⽬标代码更为⾼效,即省时间和空间。
⑥⽬标代码⽣成:把中间代码变成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。
3.解释程序和编译程序的异同?解释程序不需要在运⾏前把源程序翻译成⽬标代码,它的⼯作模式是⼀个个的获取,分析并执⾏源程序语句,⼀旦⼀个语句分析结束,源程序便开始运⾏并⽣成结果。
编译程序需要将源程序全部翻译完之后才能执⾏。
4.分析编译程序产⽣错误的阶段(1)else没有匹配的if。
语法分析(2)数组下标越界。
语义分析(3)使⽤的函数没有定义。
语义分析(4)在数中出现⾮数字字符。
词法分析。