|
课程名称:编译原理 专业班级:【本科】
单项选择题 判断题 应用 综合题 总分
20 20 40 20 100
备注: 学生不得在试题纸上答题(含谋学网(www.mouxue.com)、选择题等客观题)
一、单项选择题(本题共10道小题,每小题2分,共20分)
1、在规范归约中,用( )来刻划可归约串。
A.直接短语 B.句柄 C.最左素短语 D. 素短语
2、不能被如下状态转换图识别的句子是( )。
A.a0b B.a1010b C. b00b D. ab
3、合并表达式中的常量运算的目的是( )。
A.合并常量,使表达式中的常量尽可能少
B.合并常量,使表达式尽可能简短
C.将可在编译时刻计算的运算在编译时刻计算出来,用所计算出来的值替换表达式中出现的所有这种运算,使得生成的代码指令尽可能少
D.以上都不是
4、文法G所描述的语言是( )的集合。
A.文法G的字汇表V中所有符号组成的符号串
B.文法G的字汇表V的闭包组成的所有符号串
C.由文法的识别符号推出的所有符号串
D.由文法的识别符号推出的所有终结符号串
5、代码生成阶段的主要任务是( )。
A.把高级语言翻译成汇编语言
B.把高级语言翻译成机器语言
C.把中间代码变换成依赖具体机器的目标代码
D.把汇编语言翻译成机器语言
6、设有文法G[S]:S→S1|S0|Sa|Sc|a|b|c,下列符号串中是该文法的句子有( )。
A. ab0 B.a0c01 C.aaab D.bcb10
7、无符号常数的识别与拼数工作通常在( )阶段完成。
A. 语法分析 B. 语义分析 C. 词法分析 D. 代码优化
8、如果文法G是无二义的,则它的任何句子α( )。
A.最左推导和最右推导对应的语法树必定相同
B.最左推导和最右推导对应的语法树可能不同
C.最左推导和最右推导必定相同
D.可能存在两个不同的最左推导,但它们对应的语法树相同
9、过程的DISPLAY表中记录了( )。
A.过程的嵌套层次 B. 过程的连接数据
C. 过程的返回地址 D. 过程的入口地址
10、在目标代码生成阶段,符号表用于( )。
A.目标代码生成 B.语义检查 C.语法检查 D.地址分配
二、判断题(本题共10道小题,每小题2分,共20分)正确的画“√”,错误的画“X”
1、( ) 含有优化部分的编译程序的执行效率高。
2、( ) 在形式语言中,最右推导的逆过程也称为规范归约。
3、( ) 正规式的运算符“|”读作“或”。
4、( ) 紧跟在条件转移语句后面的语句是基本块的入口语句。
5、( ) 如果一个文法存在某个句子对应两棵不同的语法树,则文法是二义性的。
6、( ) 一个句型的直接短语是唯一的。
7、( ) 若一个语言是无穷集合,则定义该语言的文法一定是递归的。
8、( ) 编译方式与解释方式的根本区别在于是否生成目标代码。
9、( ) 一个语言的文法是唯一的。
10、( ) 转移语句是基本块的入口语句。
三、应用(本题共4道小题,每小题10分,共40分)
1、设有布尔表达式文法G【B】: B→B or T | T
T→T and F | F
F→not F | (B) | true | false
给出句型 true and not false or F的语法树,以及所有直接短语、句柄。
2、将语句if x > y then x:=10 else x:= x + y 翻译为相应四元式。
3、设文法G【S】: S→a | b |(T)
T→T,S | S
(1)改写文法,消除其文法中的直接左递归;
(2)证明改写后的文法是LL(1)文法,并且构造其预测分析表。
4、在自底向上语法制导翻译中,在对一个产生式归约时,立即执行相应的语义动作。
S → b A b { print “东” }
A → ( B { print “南” }
A → a { print “西” }
B → A a ) { print “北” }
当分析器的输入为 b(((aa)a)a)b 时,打印的字符串是什么?写出分析过程。
四、综合题(本题共1道小题,每小题20分,共20分)
1、对于实型变量说明文法G【S】: S → rD
D → D,i
D → i
(1)构造识别其规范句型所有活前缀的DFA;
(2)说明该文法是何种LR文法,并给出其相应的LR分析表。
|
评分
-
查看全部评分
|