Als «parsers» getaggte Fragen

Fragen zu Algorithmen, die entscheiden, ob eine bestimmte Zeichenfolge zu einer festen formalen Sprache gehört.

1
Kann ein Earley Parser zu einem Fuzzy-Parser gemacht werden, der dem Levenshtein Automata Algo für DFA ähnelt?
Es gibt eine Möglichkeit, Fuzzy-Parsing durchzuführen (akzeptiert Zeichenfolgen auch bei Tippfehlern bis zu einer bestimmten Bearbeitungsentfernung), mit einem DFA und einer zur Laufzeit erstellten Levenshtein-Automaten des Eingabeworts. Kann etwas Ähnliches mit einem Earley-Parser gemacht werden? Es fällt mir schwer, den Algorithmus zu verstehen, geschweige denn diese Frage zu beantworten.



2
Gibt es eine andere Lösung für das Problem "Dangling else" als "Match Nearest"?
Die folgende kontextfreie Grammatik zeigt eine Mehrdeutigkeit vom Typ "Dangling else" (stellen Sie sich vor, steht für und b steht für und c steht für eine andere Art von Anweisung oder Block): S.einaaif expr thenbbbelseccc Zum Beispiel kannaacbcals(a(acbc))oder als(a(ac)bc)analysiert werden(dies ist das einfachste / kürzeste mehrdeutige Wort für diese Grammatik).S.→ …

1
Wie rekonstruiere ich den Wald von Syntaxbäumen aus dem Earley-Vektor?
Die Verwendung des Earley-Vektors als Erkenner ist recht einfach: Wenn das Ende der Zeichenfolge erreicht ist, müssen Sie nur noch nach einer abgeschlossenen axiomatischen Produktion suchen, die an Position 0 gestartet wurde. Wenn Sie mindestens eine haben, wird die Zeichenfolge akzeptiert. Die Verwendung des Earley-Vektors zur Rekonstruktion der Analysebäume ist …

2
Zwei-Zustands-Turingmaschine für die Klammeranpassung
Im College haben wir etwas über die Theorie der Berechnung im Allgemeinen und Turing-Maschinen im Besonderen gelernt. Eines der großartigen theoretischen Ergebnisse ist, dass Sie auf Kosten eines potenziell großen Alphabets (Symbole) die Anzahl der Zustände auf nur 2 reduzieren können. Ich habe nach Beispielen für verschiedene Turingmaschinen gesucht und …

2
Richtiger Name für einen rekursiven Abstiegsparser, der Schleifen verwendet, um die linke Rekursion zu behandeln?
Diese Grammatik bleibt rekursiv: Expression ::= AdditionExpression AdditionExpression ::= MultiplicationExpression | AdditionExpression '+' MultiplicationExpression | AdditionExpression '-' MultiplicationExpression MultiplicationExpression ::= Term | MultiplicationExpression '*' Term | MultiplicationExpression '/' Term Term ::= Number | '(' AdditionExpression ')' Number ::= [+-]?[0-9]+(\.[0-9]+)? Theoretisch funktioniert ein rekursiver Abstieg also nicht. Durch Ausnutzen der Eigenschaften …



1
Können abstrakte Syntaxbäume in subexponentieller Zeit nicht analysiert werden?
Abstrakte Problembeschreibung So wie ich es sehe, bedeutet Unparsing, einen Token-Stream aus einem AST zu erstellen, der beim erneuten Parsen einen gleichen AST erzeugt, dh parse(unparse(AST)) = ASThalten sollte. Dies entspricht dem Auffinden eines gültigen Analysebaums, der denselben AST erzeugen würde. Die Sprache wird durch eine kontextfreie S-zugeschriebene Grammatik unter …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.