作業十四 算符優先分析

2022-07-16 20:39:12 字數 1552 閱讀 7285

1.接上個作業(p121練習1),完成4),5)兩個步驟。

1)計算firstvt和 lastvt。

2)找三種關係對。

3)構造算符優先關係表。

4)是否算符優先文法?

5)給出輸入串(a,(a,a))#的算符優先分析過程。

3)算符優先關係表:a^

(),#

a>

>

>

^>

>

>

(<

<

<

=<

)>

>

>

,<

<

<

>

>

#<

<

<

=4)此文法是算符優先文法。

5)給出輸入串(a,(a,a))#的算符優先分析過程:棧關係

輸入串動作1# 

(a,(a,a))#移進2

#( < 

a,(a,a))#移進3

#(a>

,(a,a))#歸約4

#(n< 

,(a,a))# 移進5

#(n,

<

(a,a))#移進6

#(n,(

<

a,a))#

移進 7

#(n,(a

>

,a))#歸約8

#(n,(n

<

,a))#移進9

#(n,(n,

<

a))#

移進10

#(n,(n,a

>

))#歸約

11#(n,(n,n

>

))#歸約

12#(n,(n

=))#

移進13

#(n,(n)

>

)#歸約

14#(n,n

>

)#歸約

15#(n=)#

移進16

#(n)

>#歸約

17#n#接受

2.嘗試編寫自下而上的語法分析程式。

可以只寫表示式部分。

void

isleft( )

while(s[j]>q);

k=j+1

;      s[k]=n;

}if(s[j]a)

}while(a!=』#』);

}

3.給出下面語句的三元式、四元式和逆波蘭式。

a*b+(c-d)/e 

答:三元式:

(1)(*, a, b)

(2)(-, c, d)

(3)(/, (2), e)

(4)(+, (1), (3))

四元式:

(1)(*, a, b, t1)

(2)(-, c, d, t2)

(3)(/, t2, e, t3)

(4)(+, t1, t3, t4)

逆波蘭式:

a*b+(c-d)/e →ab*cd-e/+

作業十四 算符優先分析

1.已知算符優先關係矩陣如下表 ii 寫出符號串 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...

作業十四 算符優先分析

1.接上個作業 p121練習1 完成4 5 兩個步驟。1 計算firstvt和 lastvt。2 找三種關係對。3 構造算符優先關係表。4 是否算符優先文法?5 給出輸入串 a,a,a 的算符優先分析過程。當出現 時,最近的乙個 歸約是歸約符號串,歸約部分是從現在的 到上面分析過程中最近的 2.嘗試...

算符優先分析 作業14

1.接上個作業 p121練習1 完成4 5 兩個步驟。1 計算firstvt和 lastvt。2 找三種關係對。3 構造算符優先關係表。4 是否算符優先文法?5 給出輸入串 a,a,a 的算符優先分析過程。棧關係 輸入符號串動作 a,a,a 移進 a,a,a 移進 a a,a 歸約 n a,a 移進...