Gramatyka koniunkcyjna
Gramatyki koniunkcyjne to klasa gramatyk formalnych studiowanych w teorii języka formalnego . Rozszerzają podstawowy typ gramatyk, gramatyk bezkontekstowych , o operację koniunkcji . Oprócz koniunkcji jawnej, gramatyki koniunkcyjne dopuszczają niejawną dysjunkcję reprezentowaną przez wiele reguł dla pojedynczego symbolu nieterminalnego, który jest jedynym łącznikiem logicznym możliwym do wyrażenia w gramatykach bezkontekstowych. Koniunkcji można użyć w szczególności do określenia przecięcia języków. Dalsze rozszerzenie gramatyk koniunkcyjnych, znanych jako gramatyki boolowskie, dodatkowo umożliwia wyraźną negację .
Reguły gramatyki koniunkcyjnej mają formę
gdzie jest i , ..., są łańcuchami utworzonymi z symboli w ( odpowiednio skończone zbiory symboli terminalnych i nieterminalnych . Nieformalnie reguła stwierdza, że każdy ciąg warunków składniowych reprezentowanych przez ..., α spełnia zatem warunek określony przez .
Definicja formalna
Gramatyka koniunkcyjna zdefiniowana przez 4- krotkę gdzie
- V jest zbiorem skończonym; element jest symbolem lub . _ Każda zmienna reprezentuje inny typ frazy lub klauzuli w zdaniu. Zmienne są czasami nazywane kategoriami syntaktycznymi.
- Σ jest skończonym zbiorem końcówek s, rozłącznych z V , które składają się na rzeczywistą treść zdania. Zbiorem terminali jest alfabet języka określonego przez gramatykę G .
- R to skończony zbiór produkcji, z których każda ma postać dla pewnego w ja . Członkowie R nazywani są regułami lub wytworami gramatyki.
- S jest zmienną początkową (lub symbolem początkowym), używaną do reprezentowania całego zdania (lub programu). Musi być elementem V.
Często wymienia się wszystkie prawe strony tej samej lewej strony w tej samej linii, używając | ( symbol rury ), aby je rozdzielić. Zasady i można zatem zapisać jako .
Istnieją dwie równoważne definicje formalne języka określonego przez gramatykę koniunkcyjną. Jedna definicja opiera się na przedstawieniu gramatyki jako układu równań językowych z sumą, przecięciem i konkatenacją oraz rozważeniu jej najmniejszego rozwiązania. Druga definicja uogólnia generatywną definicję gramatyk bezkontekstowych Chomsky'ego , używając przepisywania terminów nad koniunkcją i konkatenacją.
Definicja przez pochodzenie
Dla dowolnych ciągów daje v , zapisane jako , jeśli
- albo istnieje reguła taka, że i ,
- istnieje taki i .
∈ mówimy, że generuje w , zapisywane jako , jeśli takie, że .
Językiem _
Przykład
sol , z produkcjami
- ,
- ,
- ,
- ,
- ,
jest spójny. Typowe wyprowadzenie to
za . Język nie jest bezkontekstowy, czego dowodzi lemat o pompowaniu dla języków bezkontekstowych .
Algorytmy parsowania
Chociaż siła wyrazu gramatyk koniunkcyjnych jest większa niż gramatyk bezkontekstowych, gramatyki koniunkcyjne zachowują niektóre z tych ostatnich. Co najważniejsze, istnieją uogólnienia głównych bezkontekstowych algorytmów analizowania, w tym rekurencyjne zejście w czasie liniowym, uogólniony LR w czasie sześciennym , algorytm Cocke-Kasami-Younger w czasie sześciennym , a także algorytm Valianta działający tak szybko jak macierz mnożenie.
Właściwości teoretyczne
Właściwość, która jest nierozstrzygalna już dla języków bezkontekstowych lub ich skończonych przecięć, musi być nierozstrzygalna także dla gramatyk koniunkcyjnych; należą do nich: pustka , skończoność , regularność , bezkontekstowość , inkluzja i równoważność.
Rodzina języków koniunkcyjnych jest zamknięta na zjednoczenie, przecięcie, konkatenację i gwiazdę Kleene'a , ale nie na homomorfizm ciągów , przedrostek , sufiks i podłańcuch. Zamknięcie pod dopełnieniem i pod homomorfizmem strun wolnych od ε są nadal problemami otwartymi (od 2001 r.).
Zbadano siłę wyrazu gramatyk nad jednoliterowym alfabetem. [ potrzebne źródło ]
Ta praca dała podstawę do badania równań językowych o bardziej ogólnej formie.
Zsynchronizowane naprzemienne automaty dociskowe
Aizikowitz i Kaminski wprowadzili nową klasę automatów przesuwających w dół (PDA) zwanych zsynchronizowanymi automatami przesuwającymi w dół (SAPDA). Udowodnili, że jest to równoważne gramatyce koniunkcyjnej w taki sam sposób, jak niedeterministyczne PDA są równoważne gramatyce bezkontekstowej.
Notatki
Linki zewnętrzne
- Artura Jeża (2007). „Gramatyka koniunkcyjna generuje nieregularne języki jednoargumentowe” (PDF) (slajdy wykładu wygłoszone na Międzynarodowej Konferencji na temat Rozwoju Teorii Języka ) . Źródło 5 listopada 2019 r .
- „Strona Aleksandra Okhotina poświęcona gramatyce koniunkcyjnej” . 9 października 2011 . Źródło 5 listopada 2019 r .
- Aleksander Okhotin (2007). „Dziewięć otwartych problemów dla gramatyk koniunkcyjnych i boolowskich” . Biuletyn EATCS . Zarchiwizowane od oryginału w dniu 2007-09-29.
-
Aleksander Okhotin (2013). „Gramatyka koniunkcyjna i boolowska: prawdziwy ogólny przypadek gramatyk bezkontekstowych”. Przegląd informatyki . 9 : 27–59. doi : 10.1016/j.cosrev.2013.06.001 .
Ten artykuł zastępuje wcześniejsze badania, „Przegląd gramatyk koniunkcyjnych” (Biuletyn EATCS, 2004) i „Dziewięć otwartych problemów dla gramatyk koniunkcyjnych i boolowskich”
- Jeż, Artur (2008). „Gramatyka koniunkcyjna generuje nieregularne języki jednoargumentowe”. Międzynarodowy Dziennik Podstaw Informatyki . 19 (3): 597–615. doi : 10.1142/S012905410800584X . Wersja raportu technicznego (pdf) [ stały martwy link ]