作业13 自下而上语法分析

1.已知文法:

E→E+T | T

T→T*F | F

F→(E) | i

以句柄作为可归约串,写出符号串‘i+i*i#’的"移进-归约"分析过程。

 答:该符号串‘i+i*i#‘的语法树如下:

  

   符号串‘i+i*i#’的"移进-归约"分析过程如下:

  

步骤

符号栈

输入符号串

动作

(1)

#

i+i*i#

移进

(2)

#i

+i*i#

归约

(3)

#F

+i*i#

归约

(4)

#T

+i*i#

归约

(5)

#E

+i*i#

移进

(6)

#E+

i*i#

移进

(7)

#E+i

*i#

归约

(8)

#E+F

*i#

归约

(9)

#E+T

*i#

移进

(10)

#E+T*

i#

移进

(11)

#E+T*i

#

归约

(12)

#E+T*F

#

归约

(13)

#E+T

#

归约

(14)

#E

#

接受

 

2.P121练习1的(1)(2)。

1)计算FIRSTVT和 LASTVT。

2)找三种关系对。

3)构造算符优先关系表。

答:文法为:S->a | ^ | (T)

      T->T,S | S

  (1) FIRSTVT(S)={a,^,(}

     FIRSTVT(T)={, ,a,^,(}

     LASTVT(S)={a,^,)}

     LASTVT(T)={,,a,^,)}

   (2)  三种关系对

    =

   (T)

   #S#

      <

   #S

     (T

     ,S

   >

   S#

   T)

   T,

  (3)构造算符优先关系表

  

 

a

^

(

)

,

#

a

 

 

 

 >

^

 

 

 

 >

(

=

 

)

 

 

 

 >

,

 

#

 

 

=

猜你喜欢

转载自www.cnblogs.com/hs01/p/11980637.html