码迷,mamicode.com
首页 > 其他好文 > 详细

12.11算符优先分析

时间:2019-12-11 13:27:19      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:操作   table   表达式   a+b   逆波兰表达式   ast   ali   strong   width   

1. 已知算符优先关系矩阵如下表:

 

+

*

i

(

)

#

+

> 

< 

< 

< 

> 

> 

*

> 

> 

< 

< 

> 

> 

i

> 

> 

 

 

> 

> 

(

< 

< 

< 

< 

=

 

)

> 

> 

 

 

> 

> 

#

< 

< 

< 

< 

 

=

 写出符号串(i+i)*i#的算符优先分析过程。

答:

栈

关系

输入串

操作

#

< 

( i + i ) * I #

移进

#(

< 

i + i ) * I #

移进

#( i

> 

+ i ) * I #

归约

#( N

< 

+ i ) * I #

移进

#( N +

< 

i ) * i #

移进

#( N + i

> 

) * i #

归约

#( N + N

> 

) * i #

归约

#( N

=

) * i #

移进

#( N )

> 

* i #

归约

#N

< 

* i #

移进

#N *

< 

i #

移进

#N * i

> 

#

归约

#N * N

> 

#

归约

#N

 

#

接受

 

2.接上个作业(P121练习1),完成4),5)两个步骤。

1)计算FIRSTVT和 LASTVT。

2)找三种关系对。

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

4)是否算符优先文法?

5)给出输入串(a,(a,a))#的算符优先分析过程。

(4)符合优先文法。

(5)(a,(a,a))

栈

关系

输入串

操作

#

< 

( a , ( a , a ) )#

移进

#(

< 

a , ( a , a ) )#

移进

#( a

> 

, ( a , a ) )#

归约

#( N

< 

, ( a , a ) )#

移进

#( N ,

< 

( a , a ) )#

移进

#( N , (

< 

a , a ) )#

移进

#( N , ( a

> 

, a ) )#

归约

#( N , ( N

< 

, a ) )#

移进

#( N , ( N ,

< 

a ) )#

移进

#( N , ( N , a

> 

) )#

归约

#( N , ( N , N

> 

) )#

归约

#( N , ( N

=

) )#

移进

#( N , ( N )

> 

)#

归约

#( N , N

> 

)#

归约

#( N

=

)#

移进

#( N )

> 

#

归约

#N

 

#

接受

 

 

3.写出a+b*(c-d)+e/(c-d)↑n 的逆波兰表达式,三元式,四元式。

答:

逆波兰表达式:

abcd-*ecd-↑n/++

三元式:

(1)(- , c ,d)

(2)(* , b ,(1))

(3)(↑ ,(1), n)

(4)(/ , e ,(3))

(5)(+ , a ,(2))

(6)(+ ,(5),(4))

四元式:

(1)(- , c , d , t1)

(2)(* , b , t1 , t2)

(3)(↑ , t1 , n , t3)

(4)(/ , e , t3 , t4)

(5)(+ , a , t2 , t5)

(6)(+ , t5 , t4)

 

12.11算符优先分析

标签:操作   table   表达式   a+b   逆波兰表达式   ast   ali   strong   width   

原文地址:https://www.cnblogs.com/Azan1999/p/12021583.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!