2014-12-01 74 views
0

我有這個練習給了我一個語法並要求證明它不是一個LL(1)。所有這一部分都很好,但之後它問我該語法是否可以是LL(k)(for k>1)。我應該遵循什麼程序來確定?如何證明一個文法是LL(k)k> 1

+0

您能否提供更多詳情?因爲,我所能推薦的是學習一般證明技巧(構造,歸納,矛盾等) – tclamb 2014-12-01 16:27:35

+0

語法爲: P→P; S | S S-> kEy | xSy | aPb | k E - > ES | w 其中x,y,w,a,b,k是終端符號。 我想證明這是k> 1的LL(k)語法 – Alex 2014-12-01 16:44:31

回答

1

對於給定的k和非左遞歸語法,您所要做的就是構建LA(k)表(通過隨處可用的算法)。如果沒有歧義,語法是LL(k),語言也是。

知道是否存在k,其給定語言爲LL(k)是不可判定的。你必須在另一個之後嘗試一個值k直到你成功,否則宇宙用完。