资源描述:
《编译原理期末复习总结》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、编译原理复习资料一、简答题1.什么是编译程序?答:编译程序是一种将高级语言程序(源程序)翻译成低级语言(目标程序)的程序。将高级程序设计语言程序翻译成逻辑上等价的低级语言(汇编语言,机器语言)程序的翻译程序。2.请写出文法的形式定义?答:一个文法G抽象地表示为四元组 G=(Vn,Vt,P,S) –其中Vn表示非终结符号–Vt表示终结符号,Vn∪Vt=V(字母表),Vn∩Vt=φ–S是开始符号,–P是产生式,形如:α→β(α∈V+且至少含有一个非终结符号,β∈V*)3.语法分析阶段的功能是什么?答:在词法分析的基础上,根据语言的语法规则,将单词符号串分解成各类语法短语(例:程序、语句、表达式)。
2、确定整个输入串是否构成语法上正确的程序。4.局部优化有哪些常用的技术?答:优化技术1—删除公共子表达式优化技术2—复写传播优化技术3—删除无用代码优化技术4—对程序进行代数恒等变换(降低运算强度)优化技术5—代码外提优化技术6—强度削弱优化技术7—删除归纳变量优化技术简介——对程序进行代数恒等变换(代数简化)优化技术简介——对程序进行代数恒等变换(合并已知量)5.编译过程分哪几个阶段?答:逻辑上分五个阶段:词法分析、语法分析、语义分析与中间代码生成、代码优化、目标代码生成。每个阶段把源程序从一种表示变换成另一种表示。6.什么是文法?答:文法是描述语言的语法结构的形式规则。是一种工具,它可用于严
3、格定义句子的结构;用有穷的规则刻划无穷的集合;文法是被用来精确而无歧义地描述语言的句子的构成方式;文法描述语言的时候不考虑语言的含义。7.语义分析阶段的功能是什么?答:对语法分析所识别出的各类语法范畴分析其含义,进行初步的翻译(翻译成中间代码);并对静态语义进行审查。8.代码优化须遵循哪些原则?答:等价原则:不改变运行结果有效原则:优化后时间更短,占用空间更少合算原则:应用较低的代价取得较好的优化效果9.词法分析阶段的功能是什么?答:110编译原理复习资料逐个读入源程序字符并按照构词规则切分成一系列单词任务:读入源程序,输出单词符号—滤掉空格,跳过注释、换行符—追踪换行标志,指出源程序出错的行
4、列位置—宏展开,……10.什么是符号表?答:符号表在编译程序工作的过程中需要不断收集、记录和使用源程序中一些语法符号的类型和特征等相关信息。这些信息一般以表格形式存储于系统中。如常数表、变量名表、数组名表、过程名表、标号表等等,统称为符号表。对于符号表组织、构造和管理方法的好坏会直接影响编译系统的运行效率。11.什么是属性文法?答:是在上下文无关文法的基础上,为每个文法符号(含终结符和非终结符)配备若干个属性值,对文法的每个产生式都配备了一组属性计算规则(称为语义规则)。在语法分析过程中,完成语义规则所描述的动作,从而实现语义处理。12.什么是基本块?答:是指程序中一顺序执行的语句序列,其中只
5、有一个入口语句和一个出口语句,入口是其第一个语句,出口是其最后一个语句。13.代码优化阶段的功能是什么?答:对已产生的中间代码进行加工变换,使生成的目标代码更为高效(时间和空间)。14.文法分哪几类?答:文法有四种:设有G=(Vn,Vt,P,S),不同类型的文法只是对产生式的要求不同:0型文法(短文文法):G的每个产生式α®β满足:α∈V+且α中至少含有一个非终结符,β∈V*1型文法(上下文有关文法):如果G的每个产生式α®β均满足
6、β
7、>=
8、α
9、,仅当S®ε除外,但S不得出现在任何产生式的右部2型文法(上下文无关文法):G的每个产生式为A®β,A是一非终结符,β∈V*3型文法(正规文法):G
10、的每个产生式的形式都是:A®αB或A®α,其中A,B是非终结符,α是终结符串。(右线性文法)。15.循环优化常用的技术有哪些?答:代码外提;强度削弱;删除归纳变量。16.什么是算符优先文法?答:算符文法G的任何终结符a,b之间要么没有优先关系,若有优先关系,至多有中的一种成立,则G为一算符优先文法。二、计算题(一)推导、最左推导、最右推导和语法树,复习表达式文法及相关例题。1.表达式的推导例:G=({E},{i,+,*,(,)},P,E)P:E®E+E
11、E*E
12、(E)
13、i答:表达式(i)和(i+i)*i的推导:EÞ(E)Þ(i)EÞE*EÞ(E)*EÞ(E+E)*EÞ(i+E)*EÞ(i+i)
14、*EÞ(i+i)*iEÞE*EÞE*iÞ(E)*iÞ(E+E)*iÞ(E+i)*iÞ(i+i)*i110编译原理复习资料(i+i)*i的最左推导过程:EÞE*EÞ(E)*EÞ(E+E)*EÞ(i+E)*EÞ(i+i)*EÞ(i+i)*i(i+i)*i的最右推导过程:EÞE*EÞE*iÞ(E+E)*iÞ(E+i)*iÞ(i+i)*i2.语法树例:对文法G=({E},{i,+,*,(,)},P,E)P