Побудова всіх безконтекстних мов із набору базових мов та властивостей закриття?


10

Один із способів перегляду регулярних виразів є конструктивним доказом наступного факту: побудувати звичайні мови можна, починаючи з невеликого набору мов та поєднуючи їх за допомогою невеликого фіксованого набору властивостей закриття. Зокрема, якщо ми почнемо з порожньої мови, мови, що містить порожню рядок, та мов усіх односимвольних рядків, ми можемо зібрати всі можливі регулярні мови за допомогою з'єднання, конкатенації та зірки Kleene.

Чи є набір базових мов та властивостей закриття, які можна використовувати для генерування всіх та лише контекстних мов? (Для уточнення: я не запитую, чи можете ви писати регулярні вирази для всіх CFL, що, на мою думку, неможливо. Натомість мені цікаво, чи існує спроектувати рамку, що нагадує регулярні вирази, для CFL на основі ті ж основні принципи.)


1
Як це відбувається, одне з наших довідкових питань може містити те, що вам потрібно.
Рафаель

Відповіді:


8

D2{[,],(,)}a1,b1,a2,b2

D2D2M(D2)

g(h1(D2)R)ghRRghD2

Lg(h1(L)R)g,h,R


Ого, це справді цікаво! Якщо у вас є якісь посилання на це, я хотів би перевірити їх!
templatetypedef

Фантастичний. Це чудово відповідає на моє запитання.
templatetypedef
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.