编译原理考试
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编译原理考试
————————————————————————————————作者:————————————————————————————————日期:
一、判断对错:(对√;错 ;每小问2分共24分)
<1>算符优先分析法是一种规范归约分析法。( )
<2>若文法Gs中不含形如T→…BD…的产生式,T、B、D∈V N,则称Gs为算符文法。(√)
<3>若一个语言是有穷集合,则定义该语言的文法一定是递归的。( )
<4>若两个正规式所表示的正规集相同,则认为二者是等价的。(√)
<5>LR分析法是一种规范归约分析法。(√)
<6>一个LR(0)项目集I={B →α.bβ, P →aA.},则说I中含有“移进—归约”冲突。(√)
<7>SLR(1)文法是无二义性文法。(√)
<8>消除左递归后的文法一定是LL(1)文法。( )
<9>对任何编译程序而言,代码优化是必不可少的。( )
<10>编译程序与具体的机器无关。( )
<11>在自动机的概念中,终态与非终态是可区别的。(√)
<12>逆波兰式ab+cd+*所代表的中缀表达式是:(a+b)*(c+d)(√)
1. 一个语言有文法是不惟一的。(√)
2. 若一个语言是无穷集合,则定义该语言的文法一定是递归的。(√)
3. 紧跟在条件转移语句后面的语句是基本块的入口语句。(√)
4. 算符优先分析法是一种规范归约分析法。( )
5. 自下而上语法自导翻译的特点:当栈顶形成句柄时,在归约的同时执行其语义动作。(√)
6. LR(0)文法、SLR(1)文法都是无二义性文法。(√)
7.K、∑分别表示有限状态集和有穷字母表, DFA M的转换函数f是一个从K ⨯∑到K的单值映射。(√)
8. 对任何编译程序而言,代码优化是必不可少的。( )
9. 直接短语是某规则的右部,它对应简单子树叶结点从左到右排列形成的符号串。(√)
10. 两个有穷自动机等价是指它们的状态数和有向弧数相等。( )
11. 一个LR(0)项目集为:I={A→α.bβ, D→β.},则说I中含有“移进--归约”冲突。
(√)
12. 若两个正规式所表示的正规集相同,则认为二者是等价的。(√)
13. 无左递归的文法是LL(1)文法。( )
14. 逆波兰式abcde/+*+所代表的中缀表达式是:a+b*(c+d/e)(√)
15. 编译程序结构中,中间代码优化及目标代码生成两个阶段与具体的机器有关。( )
16. LALR分析法中,同心集的合并不会产生“移进--归约”冲突。(√)
<1>算符优先分析法是一种规范归约分析法。(错)
<2>若文法Gs中不含形如T→…BD…的产生式,T、B、D∈V N,则称Gs为算符文法。(对)
<3>若一个语言是有穷集合,则定义该语言的文法一定是递归的。(错)
<4>若两个正规式所表示的正规集相同,则认为二者是等价的。(对)
<5>LR分析法是一种规范归约分析法。(对)
<6>一个LR(0)项目集I={B →α.bβ, P →aA.},则说I中含有“移进—归约”冲突。(对)
<7>SLR(1)文法是无二义性文法。(对)
<8>消除左递归后的文法一定是LL(1)文法。(错)
<9>对任何编译程序而言,代码优化是必不可少的。(错)
<10>编译程序与具体的机器无关。(错)
二、<1>将下图所示的NFA确定化。(状态转换矩阵4分;状态转换图2分)
解:<1> 状态转换矩阵4分状态转换图2分
<2>给出语言L={ d a n b | n≥1}相应的文法。
G A:A → dBb G A:A → dB
B→ aB |a B → aB | ab
三、①编译程序的工作过程一般划分为五个基本阶段: B;D 、语义分析和中间代码生成、代码优化和目标代码生成。
A.出错处理
B.词法分析
C.表格管理
D.语法分析
②已知文法G E:E→E+T | T T→T*F | F F→(E) | b 那么,该文法终结符集合
V T= A;C ,G E称2型文法或上下文无关文法。
A. {+,(,),*,b}
B. {+,(,),*,E}
C. {+,*,(,),b}
D. {E,T,F}
③已知文法G E:E→E+T | T T→T*F | F F→(E) | b 那么,该文法的非终结符集
V N= B ,G E称2型文法或上下文无关文法。
A. {+,(,),*,b}
B. {E,T,F}
C. {+,*,(,),b}
D. {E,T,F,*,+}
④文法用于描述语言的语法结构,它由如下四个部分组成: A;C;D 和文法开始符号。
A.文法终结符集
B.字母数字串
C. 文法非终结符集
D.文法产生式集
⑤一个文法被称为是二义性的,如果 A , D 。
A.文法的某一个句子有两个以上的最右或最左推导。
B.文法的预测分析表中有多重入口。
C.文法的某个LR(0)项目集中有冲突项目。
D.文法的某一个句子有两棵以上不同的语法树。
⑥程序设计语言的单词符号一般可分为五种,它们是保留字、 A;D 及运算符和定界符。
A.常数
B.表达式
C.注解
D.标识符
⑦设有一个LR(0)项目集I={A→β.bδ, B→β. ,D→δ.},I中存在冲突项目,
它们是 A;D 。
A.“移进-归约”冲突
B. “移进-接受”冲突
C. “移进-待约”冲突
D. “归约-归约”冲突
⑧一个文法的SLR(1)方法和与其相应的LR(0)方法的状态数 A 。
A.相同
B.不相同的
C.前者大于后者
D.后者大于前者
1.编译程序的工作过程一般划分为五个基本阶段:词法分析、 B D 、中间代码优化、目标代码生成。
A.出错处理
B.语法分析
C.表格管理
D.语义分析与中间代码生成
2.识别某文法所有LR(0)项目集簇的DFA中,若项目集k中含有项目“A→δ.”,且仅当输入符号a∈FOLLOW(A)时,才用规则“A →δ”归约的语法分析方法是 D 。
A.LALR分析法B.LR(0)分析法
C.LR(1)分析法D.SLR(1)分析法
3.程序设计语言的单词符号一般可分为五种,它们是常数、 C D 及运算符和定界符。
A.注解
B.表达式
C.标识符
D.保留字
4.文法用于描述语言的语法结构,它由如下四个部分组成: A C D 和文法开始符号。
A.文法终结符集
B.字母数字串
C. 文法非终结符集
D.文法产生式集
5.一个文法被称为是二义性的,如果 A C 。
A.文法的某一个句子有两个以上的最右或最左推导。
B.文法的预测分析表中有多重入口。
C.文法的某一个句子有两棵以上不同的语法树。
D.文法的某个LR(0)项目集中有冲突项目。