自下而上语法分析

你。 提交于 2019-12-06 15:02:35

1.已知文法:

E→E+T | T

T→T*F | F

F→(E) | 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)。

1)计算FIRSTVT和 LASTVT。

2)找三种关系对。

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

 

答:

S1 -> #S#

S -> a | ^ | (T)

T -> T,S | S

(1)

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

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

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

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

(2)

= : #S#  (T)

< : #S  (T  ,S

> : S#  T)  T,

(3)

  a ^ ( ) , #
a       > > >
^       > > >
( < < < = <  
)       > > >
, < < < > >  
# < < <     =

 

 

 

 
 

1.已知文法:

E→E+T | T

T→T*F | F

F→(E) | 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)。

1)计算FIRSTVT和 LASTVT。

2)找三种关系对。

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

 

答:

S1 -> #S#

S -> a | ^ | (T)

T -> T,S | S

(1)

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

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

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

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

(2)

= : #S#  (T)

< : #S  (T  ,S

> : S#  T)  T,

(3)

  a ^ ( ) , #
a       > > >
^       > > >
( < < < = <  
)       > > >
, < < < > >  
# < < <     =

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!