练习题答案 下载本文

内容发布更新时间 : 2024/5/11 19:57:50星期一 下面是文章的全部内容请认真阅读。

一、 选择题

1. 编译的各阶段工作都涉及(A)。

A.符号表管理B.词法分析C.语法分析D.语义分析

2. 一个上下文无关文法消除了左递归,提取了左公共因子后是该文法满足LL(1)文法的( B)。

A.充分条件B.必要条件C.充要条件D.没有关系

3. 一个LR(1)文法合并同心集后若不是LALR(1)文法(B)。

A.则只可能存在移进/归约冲突B.则只可能存在归约/归约冲突 C.则可能同时存在移进/规约冲突和归约/归约冲突D.则没有冲突存在

4. 设有文法G[S]:S?S1|S0|Sa|Sc|a|b|c,下列符号串中哪个不是该文法的句子?(D)。

A.bc10B.a0c01 C.aaaD.ab0

5. 下列哪一项不是活动记录的组成部分(C)。

A.返回值B.控制链C.代码段D.访问链 6. 词法分析器加工的对象是(A)。

A.源程序B.中间代码C.目标代码D.记号流 7. 正规式是(D)型文法。

A.0B.1 C.2D.3 8. 文法S→aaS|abc定义的语言是(C)。

A.{a2kbc|k>0} B.{akbc|k>0} C.{a2k-1bc|k>0}

D.{akakbc|k>0}

9. 若B为非终结符,则A→?·B?为(D)。

A.移进项目B.归约项目C.接受项目D.待约项目 10. (B)和代码优化部分不是每个编译程序都必需的。

A.语法分析 B.中间代码生成 C.词法分析 D.目标代码生成 二、 填空题

1. 语法分析最常用的两类方法是__自上而下_____和____自下而上____分析法。 2. 文法符号的属性有两种,一种称为__继承属性___,另一种称为__综合属性___。

3. 三种常用的存储分配办法是??静态存储????分配、?????栈式存储??分配和?????堆式存储?分配。 4. 像Pascal这样的语言,允许过程嵌套,并使用静态作用域,运行时访问非局部名字的时候,可以利用访

问链来确定该非局部名字被绑定到的活动记录。

5. 指令SUB*R0,*12(R1)的代价为2,*R0所代表的地址为contents(R0)。

三、 画出能被3整除的二进制串的DFA。

四、 已知文法G[S]:S?SaA|bB A?aB|c B?Bb|d

(1)(5分)消除G[S]中的左递归为等价的文法G’[S]。

(2)(10分)构造消除左递归后的G’[S]的FIRST集和FOLLOW集,并判断G’[S]是否是LL(1)文法。 (1) S?bBS’

S’?aAS’|? A?aB|c B?dB’ B’?bB’|? (2) FIRST(S)={d}

FIRST(S’)={a,?} FIRST(A)={a,c} FIRST(B)={d} FIRST(B’)={b,?} FOLLOW(S)={$} FOLLOW(S’)={$} FOLLOW(A)={a,$} FOLLOW(B)={a,$} FOLLOW(B’)={a,$} 是LL(1)文法。