- 57
- 0
- 约4.73千字
- 约 9页
- 2016-12-10 发布于重庆
- 举报
编译原理试卷A(含答案).
仲《编译原理》(A)卷 学号
一、是非题 (正确填T,错误填F,每题2分,共16分)
(1) 一个上下文无关文法包括四个组成部分:一组终结符号、一组非终结符号、一个开始符号和一组产生式。 (T)
(2) 乔姆斯基文法分为四类,其中能力最强的是3型文法。0最强 (F)
(3) 正规式中的运算符“*”读作“连接”。 闭包 (F)
(4) 若正规表达式r等价于有限自动机M,则它们描述(接受)的语言L(r)、L(M)满足L(M)=L(r)。 (T)
(5) 编译过程通常为词法分析、语法分析、词法分析、语义分析与中间代码生成、优化、目标代码生成几个阶段。词法分析不用了 (F)
(6) 如要依据文法G构造一个不带回溯的自上而下的语法分析器,文法G不能含有左递归,但允许文法G的部分产生式的右部候选式有公共左因子。 (F)
(7) a*(b+c)的后缀表达式为abc+*。 (T)
(8) 三地址代码的间接三元式表示法的优点是采用间接码表,便于优化处理。(T)
二、选择题 (每小题选出一个最合适的答案,每题2分,共16分)
(1) 编译程序是对(D)
a) 汇编程序的翻译 b) 高级语言程序的解释执行
c) 机器语言程序的执行 d)高级语言程序的翻译
(2) 编译语法分析阶段的主要任务是(B)。
a) 扫描源程序,识别单词
b) 根据语法规则把单词流分解成各类语法单位
c) 按语言语义进行初步翻译,生成中间代码
d) 将中间代码变换成目标机器代码或汇编代码
(3) 词法分析程序的输出结果是(C)
a)单词的种别编码 b) 单词在符号表中的位置
c) 单词的种别编码和单词属性值 d) 单词的单词属性值
(4) 语法分析的常用方法类型可分为(B )。
①自上而下 ②自下而上 ③自左而右 ④自右而左 ,可选项有:
a) ①②③④ b) ①② c)③④ d) ①②③
(5) 一个句型的( C)称为该句型的句柄。
a) 短语 b) 直接短语 c)最左直接短语 d) 最右直接短语
(6) 下面文法(B)和正规表达式a*b描述的语言相同。
a)S→ab | aSb b) S→b | aS c) S→a | aSb d) S→a | Sb
(7) 文法G(S): S→Ac
A→a|b|?,
FIRST(S)等于(A)
{a,b} b) {a,b,c} c) {c} d) {a,b,?}
(8) 某翻译器依如下翻译模式设计,其基础文法可由开始符号S产生一个二进制数。
S→L { print(L.val); } /* print函数以10进制方式打印数值*/
L→L1B { L.val = L1.val*2 + B.val; }
L→B { L.val = B.val; }
B→0 { B.val = 0; }
B→1 { B.val = 1; },
当输入101时,翻译器的输出为(c)
a) 2 b) 1 c)5 d)9
二、简答题:(每题10分,共20分)
(1) 什么是自下而上语法分析方法,简述“移入-规约”法的基本原理。
自下而上分析法:从输入串开始,逐步进行归约,直到文法的开始符号.即从树末端开始,构造语法树.所谓归约,是指根据文法的产生式规则,把产生式的右部替换成左部符基本思想:设计一个堆栈,把符号串从左至右压入栈中,判别栈顶符号是否为某一个产生式的右部,若是则把栈顶的这一部分替换成(归约为)该产生式的左部符号.号.
什么是属性文法,文法符号的属性分为哪两类,基于属性文法的语法制导翻译法的处理过程通常是怎样的?
答:是在上下文无关的基础上,为每个文法符号(终结符或非终结符)配备若干相关的“值”(成为属性)
文法符号的属性分为综合属性和继承属性
对单词符号串进行语法分析,构造语法分析树,然后根据需要遍历语法树并在语法树的各结点处按语义规则进行计算。处理过程如下:
输入串?语法树?依赖图?语义规则计算次序
四、计算分析题:(48分)
(1) 令文法G[S]为: S→AB
A→aAb | ab
B→b,
问:(1)G[S]定义的语言L(G)是什么?
(2)给出句子aabbb的最左推导,并给出其语法分析树。(10分)
(1)答:
S?abB?abb
S?aAbB?aabbB?aabbb
S?aAbB?aaAbbB?aaabbbB?aaabbbb
……
S?anbm(n=0,m=1)
(2)答:
s ?AB?aAbB?aabbB?aabbbb
原创力文档

文档评论(0)