Ja da ist. Definieren Sie einen kontextfreien Ausdruck als einen Begriff, der von der folgenden Grammatik generiert wird:
g::=||||||ϵcg⋅g⊥g∨gμα.gαEmpty stringCharacter c in alphabet ΣConcatenationFailing patternDisjunctionRecursive grammar expressionVariable expression
Dies sind alle Konstruktoren für reguläre Sprachen mit Ausnahme von Kleene star, der durch einen allgemeinen Festkommaoperator und einen variablen Referenzmechanismus. (Der Kleene-Stern wird nicht benötigt, da er als g ∗ ≜ μ α definiert werden kann .μα.g .)g∗≜μα.ϵ∨g⋅α
Die Interpretation eines kontextfreien Ausdrucks erfordert die Berücksichtigung der Interpretation freier Variablen. So ein definieren Umgebung
eine Karte von Variablen zu Sprachen (dh Teilmengen sein
Σ * ), und lassen Sie [ ρ | α : L ] ist die Funktion, die sich bei allen Eingaben mit Ausnahme von α wie ρ verhält und die die Sprache L für α zurückgibt .ρΣ∗[ρ|α:L]ραLα
Definieren Sie nun die Interpretation eines kontextfreien Ausdrucks wie folgt:
[[ϵ]]ρ[[c]]ρ[[g1⋅g2]]ρ[[⊥]]ρ[[g1∨g2]]ρ[[α]]ρ[[μα.g]]ρwhereL0Ln+1========={ϵ}{c}{w1⋅w2∣|w1∈[[g1]]ρ∧w2∈[[g2]]ρ}∅[[g1]]ρ∪[[g2]]ρρ(α)⋃n∈NLn∅Ln∪[[g]][ρ|α:Ln]
Mit dem Knaster-Tarski-Theorem ist leicht zu erkennen, dass die Interpretation von ist das am wenigsten feste des Ausdrucks.μα.g
Es ist einfach (wenn auch nicht ganz trivial) zu zeigen, dass Sie einen kontextfreien Ausdruck geben können, der dieselbe Sprache wie jede kontextfreie Grammatik hat, und umgekehrt. Die Nicht-Trivialität ergibt sich aus der Tatsache, dass kontextfreie Ausdrücke verschachtelte Fixpunkte haben und kontextfreie Grammatiken Ihnen einen einzelnen Fixpunkt über einem Tupel geben. Dies erfordert die Verwendung von Bekics Lemma, das genau besagt, dass ein verschachtelter Fixpunkt über ein Produkt in einen einzelnen Fixpunkt umgewandelt werden kann (und umgekehrt). Aber das ist die einzige Subtilität.
EDIT: Nein, ich kenne keine Standardreferenz dafür: Ich habe es für mein eigenes Interesse ausgearbeitet. Es ist jedoch offensichtlich genug, dass ich zuversichtlich bin, dass es zuvor erfunden wurde. Einige Gelegenheits-Googler enthüllen Joost Winter, Marcello Bonsangue und Jan Ruttens kürzlich erschienene Veröffentlichung
Context-Free Languages, Coalgebraically , in der sie eine Variante dieser Definition angeben (wobei alle Fixpunkte geschützt werden müssen), die sie auch als kontextfreie Ausdrücke bezeichnen.