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.嘗試編寫自下而上的語法分析程式。
可以只寫表示式部分。
voidisleft( )
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 移進...