编译原理独立作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编译原理独立作业
2009.5
一、简答题
1、 构造一个文法使其生成的语言是不允许0打头的偶正整数集合。
2、文法][E G :T
T E T E E
-+→,F
F T F T T
/*→,i E F )(→,构造句型i T T T *+-的
语法树,并指出该句型的短语、直接短语、句柄、素短语和最左素短语。
3、 某LL(1)文法的预测分析表如下,请在下述分析过程表中填入输入串( a , a )$ 的分
析过程。
4、 文法][S G :R
L S
=→,R S →,R L *→,i L →,L R →,求增广文法中LR(1)
项目集的初态项目集I 0。 5、文法][S G :G
G S S ;→,()G G t H →,)
(S a H
→,求出各非终结符的FISTVT 和LASTVT
集合。
二、分析题:
1、构造自动机,使得它能识别字母表{0,1}上以00结尾的符号串,将构造的自动机确定化,并写出相应的正规文法。
2、文法][S G :RT eT S → εDR T → εdR R → bd a D →,写出每个非终结符的FIRST 集和FOLLOW 集,并判断该文法是否为LL(1)文法。
3、若有文法][S G :AB S → εaBa A → εb A b B → (1)试证明该文法是SLR(1) 文法,并构造SLR(1)分析表。 (2)给出输入串aa # 的分析过程。
参考答案
一、简答题
1、构造一个文法使其生成的语言是不允许0打头的偶正整数集合。
8|6|4|2|ABC Z → 9|8|7|6|5|4|3|2|1→A ε
|0|B AB B →
|8|6|4|2|0→C
2、文法][E G :T
T E T E E
-+→,F
F T F T T
/*→,i E F )(→,构造句型i T T T *+-的
语法树,并指出该句型的短语、直接短语、句柄、素短语和最左素短语。
短语:T ,T-T ,i ,T*i ,T-T+T*i
直接短语:T , i 句柄: T
素短语(P72):T-T,i 最左素短语:T-T
3 某LL(1)文法的预测分析表如下,请在下述分析过程表中填入输入串( a , a )$ 的
分析过程。
(P68
)
分析过程表:
4、文法][S G :R
L S =→,R S →,R L *→,i L →,L R →,求增广文法中LR(1)
项目集的初态项目集I 0
(P90) I 0:',$
S S →∙
,$S L R →∙= ,$S R →∙ ,/$L i →∙= *,/$L R →∙= ,$R L →∙
5. 文法][S G :G
G S S ;→,()G G t H →,)
(S a H
→,求出各非终结符的FISTVT 和LASTVT
集合。 (P71)
二、分析题
1. 构造自动机,使得它能识别字母表{0,1}上以00结尾的符号串,将构造的自动机确定化,并写出相应的正规文法。(P41) NFA:
最小化:
{S,A ’}{B ’}
0:{S}{A ’}{B'}
正规文法: A S 0→’ S S 1→
'0B A →’ S A 1'→
'0'B B → S B 1'→ ε→'B
2、 文法][S G :RT eT S → εDR T → εdR R → bd a D →,写出每个非终结符的
FIRST 集和FOLLOW 集,并判断该文法是否为LL(1)文法。
(P61)
FIRST(S)={a,b,d,e, ε} FIRST(T)={a,b, ε} FIRST(R)={d, ε} FIRST(D)={a,b} FOLLOW(S)={$ }
FOLLOW(T)=FOLLOW(S)={$ } FOLLOW(R)={a,b,$} FOLLOW(D)={d,$}
SELECT(T e S →)={e}
SELECT(RT S →)={a,b,d} SELECT(DR T →)={a,b} SELECT(ε→T )={$} SELECT(ε→R )={a,b} SELECT(dR R →)={d} SELECT(a D →)={a} SELECT(bd D →)={d}
SELECT(T e S →)∩SELECT(RT S →)=φ
1
最小DFA:
SELECT(DR T →)∩SELECT(ε→T )=φ SELECT(ε→R )∩SELECT(dR R →)=φ SELECT(a D →)∩SELECT(bd D →)=φ
∴该文法是LL(1)文法。
3、若有文法][S G :AB S → εaBa A → εb A b B →
(1)试证明该文法是SLR(1) 文法,并构造SLR(1)分析表。 (2)给出输入串aa # 的分析过程。
增广文法:
0) S '→S 1) S →AB 2) A →aBa 3) A →ε 4) B →bAb 5) B →ε
FOLLOW(S)={$} FOLLOW(A)={b,$} FOLLOW(B)={a,$}