作业十四——算符优先分析

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

1)计算FIRSTVT和 LASTVT。

2)找三种关系对。

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

4)是否算符优先文法?

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

 

 当出现=时,最近的一个'<',中间'=',到=下面的'>'

归约是归约符号串,归约部分是从现在的>到上面分析过程中最近的'<'

2.尝试编写自下而上的语法分析程序。

可以只写表达式部分

 参考链接:https://max.book118.com/html/2018/0124/150308953.shtm

不太会写,但是知道先要将FirstVT,LastVT求出,然后根据三种关系求出算符优先关系表,最后进行分析

3.给出下面语句的逆波兰式、三元式、四元式。

a*b+(c-d)/e 

三元式:(op,arg1,arg2)【(运算符,操作数1,操作数2)】

(1)(-,c,d)

(2)(*,a,b)

(3)(/,(1),e)

(4)(+,(2),(3))

四元式:(op,arg1,arg2,result)【(运算符,操作数1,操作数2,结果)】

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

(2)(*,a,b,t2)

(3)(/,t1,e,t3)

(4)(+,t2,t3,t4)

t1是第一个式子的差,t2是第二个式子的积,t3是t1和e的商,t4是t2,t3的和

逆波兰式: 

ab*cd-e/+

有括号所以先算c-d得到cd-,a*b可得ab*,cd-还要除以e,所以cd-e/,最后两部分相加得

ab*cd-e/+

猜你喜欢

转载自www.cnblogs.com/cyxxixi/p/12015190.html
今日推荐