选择一套期末试卷作为编译原理的复习题,答案写的比较简单,仅供参考。
一、选择题(20分)
1、构造编译程序应掌握_______。
A、源程序
B、目标语言
C、编译方法
D、以上三项都是
2、用高级语言编写的程序经编译后产生的程序叫_________。
A、源程序
B、目标程序
C、连接程序
D、解释程序
3、文法G产生的_______的全体是该文法描述的语言。
A、句型
B、终结符集
C、非终结符集
D、句子
4、文法分为四种类型,即0型、1型、2型、3型。其中3型文法是_____。
A、短语文法
B、正则文法
C、上下文有关文法
D、上下文无关文法
5、一个上下文无关文法G包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组
A、句子
B、句型
C、单词
D、产生式
6、算符优先分析法的可归约串称为________。
A、短语
B、最左直接短语
C、最左素短语
D、终结符号
7、若a为終结符,则A->·aB 为_________项目。
A、归约
B、移进
C、接受
D、待约
8、在自底向上的语法分析方法中,分析的关键是___________。
A、寻找可归约串
B、寻找句型
C、消除递归
D、选择候选式
9、常用的中间代码形式不含_______。
A、三元式
B、四元式
C、逆波兰式
D、语法树
10、代码优化时所依据的是______。
A、语法规则
B、词法规则
C、等价变换规则
D、语义规则
答案:
1.D 构造编译程序应掌握源程序、目标语言及编译方法等三方面的知识,故选D。
2.B 用高级语言编写的程序通常称为源程序。用机器语言编写的程序通常称为目标程序或二进制代码程序,用汇编语言编写的程序通常称为汇编程序。
3.D
4.B
5.D
6.C
7.B
8.A 这个题好多地方说选D,但是课件上说关键是寻找句柄,核心问题是识别可规约串。
9.D
10.C
二、判断题(16分)
1.编译程序与具体的机器有关,与具体的语言无关。
2.计算机高级语言翻译成低级语言只有解释一种方式。
3.已经证明文法的二义性是可判定的。
4.3型文法一定是2型文法。
5.同心集的合并有可能产生新的“移进”/“归约”冲突。
6.语法分析时必须先消除文法中的左递归。
7.归约和规范推导是互逆的两个过程。
8.采用三元式实现三地址代码时,不利于对中间代码进行优化。
答案:
1.×
2.×
3.×
4.√
5.×
6.×
7.√
8.√
三、填空题(10分)
1、语法分析最常用的两类方法是______和_____分析法。
2、预测分析程序是使用一张_____和一个________进行联合控制的。
3、最右推导的逆过程称为_____,也称为______。
4、在属性文法中文法符号的两种属性分别称为______和______。
5、语义分析阶段所生成的与源程序等价的中间表示形式可以有逆波兰式、______与________。
答案:
1.自顶向下 自底向上
2.分析表 符号栈
3.规范归约 最左归约
4.继承属性 综合属性
5.四元式 三元式
四、简答题(24分)
(6分)1、令={a,b},则正规式a*b|b*a 表示的正规集是什么?
答:(a*b|b*a)={a,b,ab,ba,aab,bba……}
(10分)2、已知文法G(S): S→aAcBe
A→Ab|b
B→d
(1)给出句子abbcde 的最左推导及画出语法树;
(2)给出句型 aAbcde 的短语、素短语。
答: (1) S=>aAcBe=>AAbcBe=>abbcBe=>abbcde
(2) 短语: aAbcde, Ab, d
素短语: Ab, d
(5分)3、什么是语法制导翻译法?
答:语法制导翻译直观上说就是为每个产生式配上一个翻译子程序(称语义动作或语义子程序),并且在语法分析的同时执行这些子程序。也即在语法分析过程中,当一个产生式获得匹配(对于自上而下分析)或用于归约(对于自下而上分析)时,此产生式相应的子程序进入工作,完成既定的翻译任务。
(4分)4、证明:A|A= A。(这是教材原题)
答:A|A=A L(A|A)=L(A)∪L(A)=L(A)
五、计算题(30分)
(12分)1、设={0,1}上的正规集S由倒数第二个字符为1的所有字符串组成,请给出该字集对应的正规式,并构造一个识别该正规集的 DFA。
答:
(6分)2、考虑文法
G[S]:S→(T)|a+S|a
T→T,S|S
消除文法的左递归及提取公共左因子。
答:消除文法G[S]的左递归:S→(T) | a S | a ;T→ST′;T′→,ST′| ε
提取公共左因子: S→(T) | aS′;S′→ S | ε ;T→ST′ ;T′→,ST′| ε
(12分)3、设文法G为:
A→(T)|*|a
T→T,A|A
构造算符优先关系表,判别G是否为算符优先文法。
答: