编译原理期末考试题目及答案文档格式.docx
- 文档编号:21600762
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:11
- 大小:85.75KB
编译原理期末考试题目及答案文档格式.docx
《编译原理期末考试题目及答案文档格式.docx》由会员分享,可在线阅读,更多相关《编译原理期末考试题目及答案文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
D.x*yx*
4.如果文法G是无二义的,则它的任何句子α_A____。
A.最左推导和最右推导对应的语法树必定相同 B.最左推导和最右推导对应的语法树可能不同
C.最左推导和最右推导必定相同
D.可能存在两个不同的最左推导,但它们对应的语法树相同
5.构造编译程序应掌握____D__。
A.源程序
B.目标语言
C.编译方法
D.以上三项都是
6.四元式之间的联系是通过__B___实现的。
A.指示器
B.临时变量 C.符号表
D.程序变量
7.表达式(┐A∨B)∧(C∨D)的逆波兰表示为__B___。
A.┐AB∨∧CD∨ B.A┐B∨CD∨∧
C.AB∨┐CD∨∧
D.A┐B∨∧CD∨
8.优化可生成__D___的目标代码。
A.运行时间较短
B.占用存储空间较小
C.运行时间短但占用内存空间大D.运行时间短且占用存储空间小
9.下列___C___优化方法不是针对循环优化进行的。
A.强度削弱
B.删除归纳变量
C.删除多余运算
D.代码外提
10.编译程序使用_B_区别标识符的作用域。
A.说明标识符的过程或函数名 B.说明标识符的过程或函数的静态层次
C.说明标识符的过程或函数的动态层次 D.标识符的行号
三、判断题(对的打√,错的打×
,每小题1分,共10分)
2.一个有限状态自动机中,有且仅有一个唯一的终态。
x
3.一个算符优先文法的每个非终结符号间都也可能存在优先关系。
X
4.语法分析时必须先消除文法中的左递归。
6.逆波兰表示法表示表达式时无须使用括号。
R
9.两个正规集相等的必要条件是他们对应的正规式等价。
X
1.编译程序是对高级语言程序的编译执行。
2.一个有限状态自动机中,有且仅有一个唯一的初始态。
3.一个算符优先文法的每个非终结符号间都不存在优先关系。
4.LL
(1)语法分析时必须先消除文法中的左递归。
R
5.LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。
6.逆波兰表示法表示表达式时根据表达式会使用括号。
7.静态数组的存储空间可以在编译时确定。
8.进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。
9.两个正规集相等的必要条件是他们产生的符号串是相同的。
10.一个语义子程序描述了一个文法所对应的翻译工作。
1.什么是S-属性文法什么是L-属性文法它们之间有什么关系
S-属性文法是只含有综合属性的属性文法。
(2分)
L-属性文法要求对于每个产生式AX1X2…Xn,其每个语义规则中的每个属性或者是综合属性,或者是Xj的一个继承属性,且该属性仅依赖于:
(1)产生式Xj的左边符号X1,X2…Xj-1的属性;
(2)A的继承属性。
S-属性文法是L-属性文法的特例。
(1分)
2.什么是LL(1)分析器
2.什么是LR(0)分析器
所谓LR(0)分析,是指从左至右扫描和自底向上的语法分析,且在分析的每一步,只须根据分析栈当前已移进和归约出的全部文法符号,并至多再向前查看0个输入符号,就能确定相对于某一产生式左部符号的句柄是否已在分析栈的顶部形成,从而也就可以确定当前所应采取的分析动作(是移进还是按某一产生式进行归约等)。
五、综合题(共40分)
1.(10分)对于文法G[S]:
S→1A|0B|ε A→0S|1AA B→1S|0BB
⑴(3分)请写出三个关于G[S]的句子;
⑵(4分)符号串11A0S是否为G[S]的句型试证明你的结论。
⑶(3分)试画出001B关于G[S]的语法树。
答:
(1)三个0和1数量相等的串(每个1分)
(2)S=>
1A=>
11AA=>
11A0S
(3)
2.(10分)设有语言L={α|α∈{0,1}+,且α不以0开头,但以00结尾}。
23分)试写出描述L的正规表达式;
⑵(7分)构造识别L的DFA(要求给出详细过程,并画出构造过程中的NFA、DFA的状态转换图,以及最小DFA的状态转换图)。
(1)(3分)正规表达式:
1(0|1)*00
(2)(7分)第一步(3分):
将正规表达式转换为NFA
第二步(2分):
将NFA确定化为DFA:
(1分)
状态输入
I0
I1
t
0
1
[S]
—
[A,D,B]
q0
q1
[D,B,C]
[D,B]
重新命名
q2
q3
[D,B,C,Z]
q4
DFA的状态转换图(1分)
第三步(2分):
将DFA最小化:
将状态划分终态与非终态两个集合:
A={q0,q1,q2,q3},E={q4}
根据A、E集合的情况,对A集合进行划分
q0
A
q1
A
q2
E
q3
将状态集A划分为两个集合:
A={q0,q1,q3},B={2}
根据A、B集合的情况,对A集合进行划分
B
B
A={q0},C={q1,q3}
根据A、C集合的情况,对C集合进行划分
最小DFA的状态转换图(1分)
3.(20分)给定文法G[E]:
E→E+T|T
T→T*F|F
F→(E)|i
该文法是LL
(1)文法吗(要求给出详细过程,如果是LL
(1),给出分析表)
(1)该文法不是LL
(1)文法,因为有左递归,消除左递归可获得一个LL
(1)文法(2分)
(2)消除左递归,得新文法(3分)
E→TE’
E’→+TE’|ε
T→FT’
T’→*FT’|ε
(3)求产生式右部的First集分)
First(TE’)=First(T)=First(F)={(,i}
First(+TE’)={+}
First(FT’)=First(F)={(,i}
First(*FT’)={*}
First((E))={(}
First(i)={i}
(4)求所有非终结符的Follow集分)
Follow(E)={$,)}
Follow(E’)=Follow(E)={$,)}
Follow(T)=First(E’)∪Follow(E)={+}∪{$,)}={$,+,)}
Follow(T’)=Follow(T)={$,*,)}
Follow(F)=First(T’)∪Follow(T)∪Follow(T’)={$,*,)}
(5)求所有产生式的Select集分)
Select(E→TE’)=First(TE’)={(,i}
Select(E’→+TE’)=First(+TE’)={+}
Select(E’→ε)=Follow(E’)={$,)}
Select(T→FT’)=First(FT’)={(,i}
Select(T’→*FT’)=First(*FT’)={*}
Select(T’→ε)=Follow(T’)={$,+,)}
Select(F→(E))=First((E))={(}
Select(F→i)=First(i)={i}
(6)对相同左部的所有Select即求交集分)
Select(E’→+TE’)∩Select(E’→ε)=Φ
Select(T’→*FT’)∩Select(T’→ε)=Φ
Select(F→(E))∩Select(F→i)=Φ
所以,改造后的文法是LL
(1)文法,其分析表如下
(7)LL
(1)分析表(5分)
VN
VT
+
*
i
(
)
$
E
E→TE’
E→TE’
E’
E’→+TE’
E’→ε
T
T’
T’→ε
T’→*FT’
F
F→(E)
F→i
1.(10分)对于文法G:
SaSbS|aS|d
证明该文法是二义性文法。
一个文法,如果存在某个句子有不只一棵语法分析树与之对应,那么称这个文法是二义性文法。
(5分)
句子aadbd有两棵语法树(5分,划一棵树给3分)。
如下图:
(6分)
(1)
(2)
由此可知,SaSbS|aS|d定义的文法是二义性文法。
3.(20分)给定一个简单的算术表达式文法G[E]:
该文法是SLR
(1)文法吗(要求给出详细过程,如果是SLR文法,给出分析表)
(1)该文法的拓广文法是:
E’→E
(1)
E→E+T
(2)
E→T(3)
T→T*F(4)
T→F(5)
F→(E)(6)
F→i(7)
(2)相应的LR(0)的DFA:
(10分)
(3)冲突与解决(3分)
①I1状态中有移进—规约冲突
Follow(E’)={$}不含{+}
可解决移进—规约冲突
②I2状态中有移进—规约冲突
Follow(E)={+,),$}不含{*}
③I8状态中有移进—规约冲突
(4)SLR分析表(5分)
ACTION
GOTO
+
*
i
(
E
S5
S4
1
2
3
S6
接受
r3
S7
r5
R5
4
9
5
r7
6
8
7
11
r2
S10
10
r6
r4
1.语言是____C_
A.终结符与非终结符的符号串的集合B.非终结符符号串的集合C.终结符符号串的集合D.产生式的集合
2.编译程序分两阶段工作,前阶段完成的工作是__C___
A.词法分析、语法分析和代码优化B.代码生成、代码优化和词法分析
C.词法分析、语法分析、语义分析和中间代码生成D.词法分析、语法分析和代码优化
3.一个句型中称为句柄的是该句型的最左C
A.句型B.短语C.直接短语D.最左直接短语
4.自动机识别的语言是D
A.0型语言B.1型语言C.2型语言D.3型语言
5.自动机所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位即B
A.字符B.单词C.句子D.句型
6.对应Chomsky四种文法的四种语言之间的关系是B
A.L0L1L2L3B.L3L2L1L0C.L3=L2L1L0D.L0L1L2=L3
7.词法分析的任务是A
A.识别单词B.分析句子的含义C.识别句子D.生成目标代码
8.常用的中间代码形式不含D
A.三元式B.四元式C.逆波兰式D.语法树
9.代码优化的目的是C
A.节省时间B.节省空间C.节省时间和空间D.把编译程序进行等价交换
10.代码生成阶段的主要任务是C
A.把高级语言翻译成汇编语言B.把高级语言翻译成机器语言
C.把中间代码变换成依赖具体机器的目标代码D.把汇编语言翻译成机器语言
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 期末考试 题目 答案