一、填空题(每空2分,共30分)
1、编译程序的整个过程可以从逻辑上划分为词法分析、 语法分析 、语义分析、中
间代码生成、 代码优化 和目标代码生成等几个阶段,另外还有两个重要的工 作是
表格管理 和出错处理
2、
规范规约中的可归约串是 句柄 ,算符优先分析中的可归约串是 最左素短语 。
3、语法分析方法主要可分为 自顶向下 和 自底向上 两大类。
4、LR(0)文法的项目集中不会出现 移进-归约 冲突和 归约-归约 冲突。
5、数据空间的动存态储分配方式可分为 栈式 和 堆式 两种。
6、
编译程序是指能将 源语言 程序翻译成 目标语言 程序的程序。
7、确定有穷自动机DFA是 NFA 的一个特例。
8、表达式 (a+b)*c 的逆波兰表示为 ab+c* 。
二、选择题(每题2分,共20分)
1、L R语法分析栈中存放的状态是识别 B 的DFA状态。
A、前缀 B、可归前缀 C、项目 D、句柄
2、 D 不可能是目标代码。
A、汇编指令代码 B、可重定位指令代码
C、绝对机器指令代码 D、中间代码
3、一个控制流程图就是具有 C 的有向图
A、唯一入口结点 B、唯一出口结点 C、唯一首结点 D、唯一尾结点
4、设有文法G[S]:S→b|bB B→bS ,则该文法所描述的语言是 C 。
A、L(G)={bi|i≥0} B、L(G)={b2i|i≥0}
C、L(G)={b2i+1|i≥0} D、L(G)={b2i+1|i≥1}
5、把汇编语言程序翻译成机器可执行的目标程序的工作是由
B 完成的。
A、编译器 B、汇编器 C、解释器 D、预处理器
6、在目标代码生成阶段,符号表用于 D 。
A、目标代码生成 B、语义检查 C、语法检查 D、预处理器地址分配0
7、规范归约是指 B 。
A、最左推导的逆过程 B、最右推导的逆过程 C、规范推导 D、最左归约逆过程
5.文法的二义性和语言的二义性是两个不同的概念。 ……………………… …( )
6.一个LL( l)文法一定是无二义的。…………………………………………… …
( )
7.在规范规约中用最左素短语来刻划可归约串。………………… ……………
( )
8.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。…………… ( )
9.编译程序是对汇编程序的翻译。 ……………………………………( )
三、 简答题(每题5分,共15分)
1、简述栈式存储管理策略; 2、何谓DAG; 3、何谓文法的二义性;
四、 给出下述文法对应的正规式 (7分)
S→ 0A| 1B
A→1S | 1
B→0S | 0
五、 已知文法G(E):
E→T | E+T | E-T
T→F | T*F | T/F
F→(E) | i
证明E+T*F是该文法的一个句型,并指出该句型的所有短语、直接短语和句柄。(8
分)
七、 设有文法G[E]:
E (E) |ε
试判断该文法是否为SLR(1)文法,若不是,请说明理由;若是请构造SLR(1)分析表。(10
分)
参考答案
一、填空题(1X20=20分)
1. 词法分析、语法分析、代码优化
2. 自上而下、自下而上
3. 五元组、DFA=(K ,∑, M, S, Z)
4. 任何一步都是对中最右非终结符进行替换
5. 分析一个文法的句子结构
6. 相邻、算符
MUL R1,R0
LD R0,D
ADD R0,1
ST R1,M
LD R1,E
SUB R0,F
MUL R0,R1
LD R1,M
DIV R1,R0
ST R1,W