Konstrukt, um Bedeutung von Kontextfreien Sprachen zu erkennen?
-
Hallo.
Mit endlichen erkennden Automaten (und ggf. Kellerautomaten) lässt sich ja prima rausfinden, ob die Syntax eines gegebenen Ausdrucks zu meiner definierten regulären oder kontextfreien Sprache passt und korrekt ist.
Aber gibts auch irgendwelche derartigen Konstrukte (der theoretischen Informatik), mit denen man leicht die "Bedeutung" aus einem Ausdruck rausparsen kann?
Sagen wir, ich habe einen einfachen C-artigen Ausdruck der so aussieht: "/* hallo */var x =/*test*/ 2;", und dieses Konstrukt soll nun rausparsen, dass der Ausdruck eine Variablenzuweisung mit dem Nicht-Terminalsymbolen "variablentyp" mit dem Wert "var", "buchstabe" mit dem wert "x" und "zuweisungswert" mit dem wert 2 bedeutet.
Gibt es so ein konkretes Konstrukt in der theoretischen Informatik? Oder ist das dann eher etwas, dass man nur programmier-spezifisch implementieren kann (bzw, zu dem es keine wirklichen theoretischen Grundlagen gibt, eben nur das, was sich Compilerentwickler so praktisch in ihren Compiler reingefrimelt haben).
-
http://de.wikipedia.org/wiki/Semantik#Semantik_in_formalen_Sprachen
http://en.wikipedia.org/wiki/Formal_semantics_of_programming_languagesMfG SideWinder
-
Das liest sich alles etwas wirr und ich gewinne keinen rechten Überblick. Welche der Ansätze (denotational semantics etc.) würde man verwenden, um meinen kleinen Ausdruck zu parsen?
Wonach sollte ich bei Google suchen, wenn ich eine einfach Einführung in das Thema haben möchte, die ohne schwere mathematische Formalität bzw. ohne 10 Seiten Text auskommt (Das Prinzip von endlichen erkennenden Automaten kann man einer nicht-wissenden Person ja in ein paar Sätzen + Beispiel zeigen, bevor man sich weiter in die Theorie dahinter gräbt, genau so etwas suche ich in diesem Fall)?
-
http://www.amazon.de/Einführung-Automatentheorie-Formale-Sprachen-Komplexitätstheorie/dp/3827370205/
-
Ich glaube OP meinte den CYK-Algorithmus
-
Natürlich Schwachsinn. Du meinst Semantische Analyse.