1. 已知算符優先關係矩陣如下表:ii
寫出符號串(i+i)*i#的算符優先分析過程。棧關係
輸出串動作
#<
i+i*i#
移進#i
>
+i*i#
歸約#n
<
+i*i#
移進 #n+
<
i*i#
移進 #n+i
>
*i#
歸約 #n+n
<
*i#
移進 #n+n*
<
i# 移進
#n+n*i
>
# 歸約
#n+n*n
>
# 歸約
#n+n
>
# 歸約 #n#
接受2.接上個作業(p121練習1),完成4),5)兩個步驟。
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##
接受3.嘗試編寫自下而上的語法分析程式。
可以只寫表示式部分。
void isleft( )
while(s[j]>q);
// 把s[j+1]…s[k]歸約為某個n;
k=j+1;
s[k]=n;
}if(s[j]k=k+1;
s[k]=a;
}}while(a!=』#』);
}4.寫出a+b*(c-d)+e/(c-d)↑n 的逆波蘭表示式,三元式,四元式。
逆波蘭:abcd-*+ecd-n^/+
三元式:(1) (- c,d)
(2) (* b,(1))
(3) (+ a,(2))
(4) (- c,d)
(5) (^ (4),n)
(6) (/ e,(5))
(7) (+ (3),(6))
四元式:
(1) (-,c,d,t1)
(2) (*,b,t1,t2)
(3) (+,a,t2,t3)
(4) (-,c,d,t4)
(5) (^,t4,n,t5)
(6) (/,e,t5,t6)
(7) (+,t3,t6)
算符優先分析
算符優先分析 time limit 1000 ms memory limit 65536 kib problem description 演算法優先分析法是一種不太規範的自下而上分析方法,分析速度快,特別適用於表示式的分析。為了便於大家理解和實踐算符優先分析法,本題目先給出乙個算符優先文法,請大家構...
算符優先分析
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.已知算符優先關係矩陣如下表 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...