2013-03-02 9 views
6

Wir lernen mehrdeutig in der Klasse, und die folgende Grammatik wurde als Beispiel für eine mehrdeutige Grammatik gegeben. Ich sehe gerade nicht, wie es zweideutig ist. Gibt es ein festgelegtes Muster oder eine bestimmte Methode, mit der Menschen Zweideutigkeiten feststellen, oder ist es wie ein logisches Puzzle, bei dem man Kombinationen durcharbeiten muss, um einen mehrdeutigen Satz in der Grammatik zu finden? Die Beispiele, die ich online gelesen habe, sind meistens schon am zweideutigen Satz, aber wie findet man diesen Satz überhaupt? Ich würde mich über jede Hilfe freuen, danke.Gibt es einen festgelegten Weg zur Bestimmung der Mehrdeutigkeit in einer Grammatik?

< stmt_list> ==> < stmt> 

       | < stmt> ; < stmt_list> 

< var> ==> A | B | C 

< stmt> ==> < var> + < var> 

       | < var> - < var> 

       | < var> 
+0

Ich habe einen Fehler in meiner Antwort gemacht, das ist, warum ich Sie entfernen Gegenwart Grammatik ist nicht mehrdeutig. –

+0

@GrijeshChauhan Ich sehe. Vielen Dank. Das ist sehr verwirrend, weil unser Professor uns sagte, dass das mehrdeutig sei. –

+0

Aber Ihre Grammatik ist nicht korrekt für den Zweck der mathematischen Ausdruck zu :(Siehe dieses Beispiel für die korrekte http://stackoverflow.com/questions/14554752/how-can-i-add-parentheses-as-the-highest-level -of-precedence-in-a-simple-grammar/14569166 # 14569166 –

Antwort

2

Im Allgemeinen determining whether a grammar is ambiguous or not is undecidable. Also ja, reduziert sich auf eine sehr schwierige Logik-Puzzle einen mehrdeutigen Satz in einer Grammatik zu finden. Die Lösung spezifischer Fälle und das Auffinden von Heuristiken ist jedoch ein aktives Forschungsgebiet. Hier ist ein ziemlich gutes Werkzeug, um Mehrdeutigkeit zu finden: http://www.brics.dk/grammar/. Die Webseite enthält einen Link zu einem Papier, das erklärt, wie es funktioniert, aber ehrlich gesagt, das geht mir über den Kopf.

Verwandte Themen