编译原理独立作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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,$}

相关文档
最新文档