第三次作业

1.已知文法:

S->a|^|(T)

T->T,S|S

分析句型(T,(^,a)),求全部的短语、直接短语和句柄。

答:句型(T,(^,a))的最左推导为:

S=>T=>TS=>T,(T))=>T,(TS))=>T,(SS))=>T,(^S))=>T,(^a))

语法树如下图所示。

 

 

 

由语法树可知全部短语: 

^    a    ^a   ^a)   T,^a)  (T,(^a))

直接短语:^  a

句柄:^

 

2.构造上下文无关文法,描述语言:

 

anbn|n>=0}

 

ambn|m>=n>=0}

 

  if语句

 

{(ab)n|n>=0}

 

{ambn|m,n>=1}

 

(1){anbn|n>=0}

 

G[S]: S -> aSb | ab | ε

 

(2){ambn|m>=n>=0}

 

G[S]: S -> aSb | a | ε

 

(3)if语句

 

  if => if <条件> then <语句> | if <条件> then <语句> else <语句>

 

(4){(ab)n|n>=0}

 

G[S]: S ->  abS | ab

 

(5)L(G2) = {ambn|m,n>=1}

 

 G2: S -> AB      G2':  S -> ACB

     A -> aA | a       A -> aA | a

     B -> bB | b      C -> aCb | ab

              B -> bB | b

 

3.如果if语句的方法:

stmt->if expr then stmt

     | if expr then stmt else stmt

     | other

句子if E1 then if E2 then S1 else S2是否有两棵不同的语法树?说明了什么?

答:有两棵不同的语法树如下图所示。

 

 

 说明该文法是二义的。

 

posted on 2019-09-19 12:25  [︵︵]  阅读(148)  评论(0)    收藏  举报