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 引用,替換展開...