作业十三——自下而上语法分析

1.已知文法:

E→E+T | T

T→T*F | F

F→(E) | i

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

 答:文法的符号串i+i*i语法树如下:

   

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

符号栈 输入符号串 动作
# i+i*# 移进
#i +i*i# 归约
#F +i*i# 归约
#T +i*i# 归约
#E +i*i# 移进
#E+ i*i# 移进
#E+i *i# 归约
#E+F *i# 归约
#E+T *i# 移进
#E+T* i# 移进
#E+T*i # 归约
#E+T*F # 归约
#E+T # 归约
#E # 接受

 

 

 

 

 

 

 

 

 

 

 

 

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

已知文法G[S]为:

S -> a | ^ | (T)

T -> T, S | S

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,

  a ^ ( ) , #
a       > > >
^       > > >
( < < < = <  
)       > > >
, < < < > >  
# < < <     =
posted @ 2019-12-05 18:17  Mr-Lin  阅读(...)  评论(...编辑  收藏