第十一作業

2022-05-21 22:24:10 字數 1393 閱讀 6031

1. 文法 g(s):

(1)s -> ab

(2)a ->da|ε

(3)b -> cc

(4)c -> aadc |ε

(5)d -> b|ε

驗證文法 g(s)是不是 ll(1)文法?

first集:

first(da)=

first(aadc)=

first(d)=

follow集:

follow(a)=

follow(c)=

follow(d)=

select集:

select( a -> da) = first(da) =

select( a -> ε) = follow( a) =

select( c -> aadc) = first( aadc) =

select( c -> ε) = follow(c) =

select( d -> b) = first(b) =

select( d -> ε ) =follow(d) =

因為select( a -> da) ∩ select( a -> ε) = ≠ ∅

所以文法g(s)不是 ll(1)文法

2.(上次作業)消除左遞迴之後的表示式文法是否是ll(1)文法?

消除左遞迴後的文法:

e->te』

e』->+te』|ε

t->ft』

t』->*ft』|ε

f->(e)|i

select集:

select(e' -> +te') = 

select(e' -> ɛ) =

select(t' -> *ft' ) =

select(t'  -> ɛ) =

select(f -> (e) ) =

select(f -> i ) =  

因為:select(e' -> +te') ∩ select(e' -> ɛ) = ∅

select(t' -> *ft' ) ∩ select(t'  -> ɛ) = ∅

select(f -> (e) ) ∩ select(f -> i ) = ∅

所以:該文法為ll(1)文法

3.接2,如果是ll(1)文法,寫出它的遞迴下降語法分析程式**。

e(){t();

e'();

e'()

t()t'()

f()void e()else

}void e』()

}void  t()else

}void t』()

}void f』()

}

第十一周作業

1 tabcontrol imagelist panel功能演示 2 timer picturebox splitcontainer contextmenustrip控制項功能演示 設定三個控制項的以下屬性和事件 a.picturebox控制項的三個屬性 picture.image 匯入資源 pic...

第十一周作業

漢諾塔問題 10 分 漢諾塔是乙個源於印度古老傳說的益智玩具。據說大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片 圓盤,大梵天命令僧侶把圓盤移到另一根柱子上,並且規定 在小圓盤上不能放大圓盤,每次 只能移動乙個圓盤。當所有圓盤都移到另一根柱子上時,世界就會毀滅。請...

第十一周作業

這個作業屬於那個課程 c語言程式設計ii 這個作業要求在 我在這個課程的目標是 學習並熟練運用遞迴函式 這個作業在那個具體方面幫助我實現目標 完成漢諾塔問題 參考文獻 c語言程式設計ii 基礎作業 單選題 2 1巨集定義 define div a,b a b 經div x 5,y 5 引用,替換展開...