Да, есть. Определите выражение без контекста как термин, сгенерированный следующей грамматикой:
g::=||||||ϵcg⋅g⊥g∨gμα.gαEmpty stringCharacter c in alphabet ΣConcatenationFailing patternDisjunctionRecursive grammar expressionVariable expression
Это все конструкторы для регулярных языков, за исключением звезды Клини, которая заменяется общим оператором с фиксированной точкой μα.gg∗≜μα.ϵ∨g⋅α
Интерпретация выражения без контекста требует учета интерпретации свободных переменных. Поэтому определите окружение
которое будет отображаться из переменных в языки (то есть подмножества
), и пусть будет функцией, которая ведет себя как на всех входах, кроме и который возвращает язык для .ρΣ∗[ρ|α:L]ραLα
Теперь определим интерпретацию выражения без контекста следующим образом:
[[ϵ]]ρ[[c]]ρ[[g1⋅g2]]ρ[[⊥]]ρ[[g1∨g2]]ρ[[α]]ρ[[μα.g]]ρwhereL0Ln+1========={ϵ}{c}{w1⋅w2∣|w1∈[[g1]]ρ∧w2∈[[g2]]ρ}∅[[g1]]ρ∪[[g2]]ρρ(α)⋃n∈NLn∅Ln∪[[g]][ρ|α:Ln]
Используя теорему Кнастера-Тарского, легко увидеть, что интерпретация является наименее фиксированной из выражения.μα.g
Это просто (хотя и не совсем тривиально) показать, что вы можете дать выражение без контекста, выводящее тот же язык, что и любая контекстно-свободная грамматика, и наоборот. Нетривиальность возникает из-за того, что у контекстно-свободных выражений есть вложенные фиксированные точки, а безконтекстные грамматики дают вам одну фиксированную точку над кортежем. Это требует использования леммы Бекича, которая точно говорит о том, что вложенные фиксированные точки могут быть преобразованы в одну фиксированную точку над продуктом (и наоборот). Но это единственная тонкость.
РЕДАКТИРОВАТЬ: Нет, я не знаю стандартную ссылку для этого: я разработал его для своих собственных интересов. Тем не менее, это достаточно очевидная конструкция, которая, я уверен, была изобретена ранее. Некоторые случайные поиски в Google показывают Joost Winter, недавнюю статью Marcello Bonsangue и Jan Rutten
Context-Free Languages, Coalgebraically , где они дают вариант этого определения (требующий защиты всех фиксированных точек), который они также называют выражениями без контекста.