2012-08-12 41 views
0

根據wikipedias GLR description,他們「處理非確定性和模棱兩可的語法」。 我可以想像一個模棱兩可的語法,如dangling else problem,但什麼是不確定性的非確定性CF語法?非確定性,不明智的語法?

+1

懸而未決的問題是一個模糊的GRAMMAR,而不是一個模棱兩可的語言。在語法中解決歧義是微不足道的,給同一種語言提供了非模糊的語法。 – 2012-08-12 19:46:20

回答

2

幾乎任何非LR(k)語法都是非確定性的,但不一定含糊不清。顯而易見的例子是,當你有一些非常大的結構可以用兩種方式解析,而且這是正確的取決於大型結構之後的某些東西。例如:

S ::= A x | B y 
A ::= A a | a 
B ::= B a | a 

然而,這種沒有確定性的語法可以常常進行返工,以便確定的,如果解析大構建體的兩種方法可以結合(如用S ::= A x | A y用於上述語法這是確定性分析同一種語言的方式。)

更有趣的是語言本質上是非確定性的 - 即語言沒有確定性語法。爲此,需要在任意大的構造內部有一些東西需要與之後的東西相匹配。例如:

S ::= X x | Y y 
X ::= a X a | x 
Y ::= a Y a | y