Чи існує розширення регулярних виразів, що фіксують вільні контекстні мови?


25

У багатьох працях, що стосуються безконтекстних граматик (CFG), приклади таких граматик, представлені там, часто допускають просту характеристику мови, яку вони генерують. Наприклад:

S SaaSb
S

породжує ,{a2ibi|i0}

S a a S b S SaSb
SaaSb
S

породжує , і{aibjij0}

S b S b S SaSa
SbSb
S

породжує , або рівнозначно (де посилається на частину, захоплену ).{wwRw(a|b)}{((a|b))1((a|b))2p1=p2R}p1(...)1

Наведені вище приклади можуть бути згенеровані шляхом додавання індексів ( ), простих обмежень на ці індекси ( ) та відповідності шаблону до регулярних виразів. Це змушує мене замислитися, чи всі контекстні мови можуть генеруватися деяким розширенням регулярних виразів.aii>j

Чи є розширення регулярних виразів, які можуть генерувати всі чи деякі значні підмножини вільних контекстних мов?


3
Зауважте, що додавання індексів і обмежень занадто потужне: ви зможете визначити , що не є CFL. anbncn
Шаул

Відповіді:


34

Так, є. Визначте без контексту вираз як термін, породжений наступною граматикою:

g::=ϵEmpty string|cCharacter c in alphabet Σ|ggConcatenation|Failing pattern|ggDisjunction|μα.gRecursive grammar expression|αVariable expression

Це всі конструктори для звичайних мов, за винятком зірки Клінова, яку замінює загальний оператор фіксованої точки та змінний механізм відліку. (Зірка Клейна не потрібна, оскільки її можна визначити як g μ α .μα.g .)gμα.ϵgα

Інтерпретація контекстного вираження вимагає обліку інтерпретації вільних змінних. Отже, визначте середовище як мапу від змінних до мов (тобто, підмножини Σ ), і нехай [ ρ | α : L ] - функція, яка поводиться як ρ на всіх входах, крім α , і яка повертає мову L для α .ρΣ[ρ|α:L]ραLα

Тепер визначте інтерпретацію без контексту виразу таким чином:

[[ϵ]]ρ={ϵ}[[c]]ρ={c}[[g1g2]]ρ={w1w2|w1[[g1]]ρw2[[g2]]ρ}[[]]ρ=[[g1g2]]ρ=[[g1]]ρ[[g2]]ρ[[α]]ρ=ρ(α)[[μα.g]]ρ=nNLnwhereL0=Ln+1=Ln[[g]][ρ|α:Ln]

Використовуючи теорему Кнастера-Тарського, легко зрозуміти, що інтерпретація - найменше фіксований вираз.μα.g

Досить просто (хоч і не зовсім тривіально) показати, що ви можете надати без контексту вираження, що походить на тій же мові, що і будь-яка граматика без контексту, і навпаки. Нетривіальність виникає з того, що без контекстних виразів вкладені фіксовані точки, а безконтекстні граматики дають вам одну фіксовану точку над кортежем. Це вимагає використання леміки Бекіча, яка точно говорить про те, що вкладені нерухомі точки можуть бути перетворені в одну фіксовану точку над твором (і навпаки). Але це єдина тонкість.

EDIT: Ні, я не знаю стандартного посилання на це: я розробив це для власного інтересу. Однак, це явна конструкція, на яку я впевнений, що вона була винайдена раніше. Деякі випадкові Googling розкривають Joost Winter, недавню книгу Marcello Bonsangue та Яна Руттена "Без контексту", "Coalgebraically" , де вони дають варіант цього визначення (вимагаючи, щоб усі фіксовані точки були захищені), які вони також називають виразами без контексту.


Це досить приголомшливо. Чи є для цього стандартне ім’я чи посилання?
Олексій десять Бринк

5
Арто Саломаа висвітлює це у своїй книзі «Формальні мови» у 1973 році. Він називає їх «регулярними виразами».
Тім Шефер

3

У MathOverflow виникло тісно пов'язане питання (і кілька відповідей) про мови, функції генерування яких є голономічними .

Цікаво, що визначення Нееля семантики вище відповідає точно (конструктивному) доказу існування видових розв’язків рекурсивних рівнянь виду через неявну теорему про види. На жаль, його доказовий контур також повинен містити тонку помилку, оскільки бувають випадки, коли справи йдуть «нескінченно». Іншими словами, на якобіанці існує умова, щоб перетворення, визначене граматикою, було несингулярним, яке потрібно. Ймовірно, тому Бонсанг-Руттен вимагає охороняти фіксовані пункти, як один із способів страхувати цю умову на якобійців.μ


AFAICT, Winter та ін вимагають лише охорону для того, щоб переконатися, що ви можете взяти похідну Brzozowski з , беручи похідне [ μ α .μα.g . [μα.g/α]g
Neel Krishnaswami

1

Нещодавно ми опублікували контури структури, яка буде робити саме це. Подивіться під comp.compilers , куди я надіслав сповіщення разом із деякими посиланнями.

Нові розробки спрацьовують теорему Хомського-Шутценбергера і можуть вважатися завершенням цього результату. Сам Хомський ознайомився з подіями і вказує на бажання "наздогнати".

Поряд з цим розвитком ми також встановлюємо еквівалентність двох окремих формулювань для безконтекстних виразів - тієї, яка є розширенням / завершенням форми му-числення "найменшої фіксованої точки" (спочатку Груска, Інтема і Маквітер) - який отримав остаточну формуляцію сортів у 2014 році, а інший опублікував у 2008 році.


4
Будь ласка, включіть всю відповідну інформацію до самої відповіді. «Подивіться на компілятори» - це вже неправдива відповідь, і через пару місяців вона буде абсолютно марною.
Еміль Йерабек підтримує Моніку

Це абсолютно неправильно. Comp.compilers (на відміну від цього сайту та інших блогів, до речі) постійно архівується. Там ви знайдете всі необхідні деталі. Є багато посилань, які можна знайти там, і в останній опублікованій статті. Крім того, на відміну від веб-сайтів блогу, він відкритий для зовнішньої сторони та корисний для значно ширшої аудиторії. У вас не повинно виникнути жодних труднощів з пошуком чогось на USENET - саме тут слід звертатись та обговорювати такі запити. Якщо у вас виникли труднощі, ось вам посилання. groups.google.com/forum/#!topic/comp.compilers/YCa5jHUR1iQ
NinjaDarth

2
Справа не в тому, що вона не архівована, а в тому, що архіви є величезними. Коли я шукаю архіви зараз, я можу знайти вашу публікацію десь біля верху, але коли хтось побачить цю відповідь через кілька місяців чи років у майбутньому, вони не матимуть уявлення, з чого почати копати. Це зарозуміло і грубо змушує читачів робити тривалий і ненадійний пошук, коли ви можете вказати їх на більш конкретне місце. Тепер я зробив це за вас. Минуло як 30 секунд. Ви могли це зробити самі.
Еміль Йерабек підтримує Моніку
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.