Szukam teorii matematycznych, które zajmują się opisywaniem języków formalnych (zestawu ciągów) w ogólności, a nie tylko hierarchii gramatycznej.
22
Szukam teorii matematycznych, które zajmują się opisywaniem języków formalnych (zestawu ciągów) w ogólności, a nie tylko hierarchii gramatycznej.
Odpowiedzi:
Istnieje wiele możliwości. Inni wspominali już o automatach, które oferują bogaty wybór. Weź również pod uwagę następujące ramy:
Niektóre języki można zdefiniować bezpośrednio za pomocą (ko) definicji indukcyjnych . Na przykład najmniejszy punkt stałyzaw ∈ L.a w ∈ L.za⇒ ε∈L. ⇒ a w ∈ L⇒ b a w ∈ L
( b a ∣ a )∗ ( b a ∣ a )ω
zaε,wa w,a wb a wza
jest tym samym językiem, co opisany przez(ba∣a)∗, największy punkt stały to(ba∣a)ω. Zauważ, że taką definicję można również zapisać w postaci rachunku różniczkowego lubreguły wnioskowania:
Słowa definiują struktury słów, które można wykorzystać jako modele formuły logicznej . Zasadniczo, każde słowo określa domenę do pozycji , predykaty P : D → { 0 , 1 } , tak że P ( I ) ⟺ W I = dla każdego z ∈ Ď , predykat <, który jest < z Nrew= { 1 , … , n } P.za:D→{0,1} Pa(i)⟺wi=a a∈Σ < < N ograniczone do i predykatu suc : D w × D w → { 0 , 1 }, co jest prawdą wtedy i tylko wtedy, gdy drugi parametr jest bezpośrednim następcą pięści.
Tak na przykład, gdy w = b b a a b a następnieDw suc:Dw×Dw→{0,1}
w=aababaab aSw⊨∀i.∀j. (Pb(i) ∧ suc(i,j))→¬Pb(j);a
(ba∣a)∗ ω ( b a ∣ a )ω za□( Pb→ ◯ ( ¬ Pb) )za
ω
w rzeczywistości taformuła pierwszego rzędudefiniuje --- poprzez zestaw wszystkich struktur słów, które ją spełniają --- ten sam język, co(ba∣a)∗. Odpowiednijęzykω(ba∣a)ωjest opisanywzorem LTL
Znanych jest kilka równoważności klasycznych klas językowych i niektórych logik. Na przykładFOodpowiada językom bez gwiazd, słabyMSOdo zwykłych języków, aMSOdojęzykówω-regularnych. Zobacztutajdla odniesienia.
Coś prostopadłego do klasycznych klas to języki wzorcowe . Załóżmy, że końcowy alfabet i zmienny alfabet X = { x 1 , x 2 , … } . Ciąg p ∈ ( Σ ∪ X ) + nazywa się wzorem . Niech H = { σ ∣ σ : X → Σ ∗ } zbiór podstawień. Definiujemy język wzorca p jakoΣ X= { x1, x2), … } p ∈ ( Σ ∪ X)+ H ={σ∣ σ: X→ Σ∗} p zaL (p)={σ( p ) ∣ σ∈ H } .za
σ
L ( x1a b b a x1) = { w a b b a w ∣ w ∈ { a , b }∗}
Zauważ, żeσjest przedłużony do pracy nad wzorami; symbole terminali pozostają niezmienione. Jako przykład rozważmyL(x1abbax1)={wabbaw∣w∈{a,b}∗}.
Zauważ, że zezwalamy na podstawienia do usuwania zmiennych; niektóre właściwości klasy języków wzorcowych są bardzo różne w przypadku usuwania w porównaniu do nieusuwalnych podstawień. Języki wzorcowe są szczególnie interesujące w nauce w stylu złotym .
źródło
Powinieneś spojrzeć na teorię automatów . Jest w tym mnóstwo materiału.
Na przykład, możesz zdefiniować zwykły język z niedeterministycznym automatem skończonym z oznaczonymi krawędziami: łańcuch należy do języka, jeśli automat może podążać za przejściami oznaczonymi jego znakami i zatrzymuje się w stanie końcowym.
Również gramatyka bezkontekstowa może być rozpoznawana przez automat pushdown .
Innym sposobem definiowania języków są maszyny Turinga .
źródło
W hierarchii Chomsky'ego istnieją cztery rodzaje języków formalnych (każdy z nich jest podzbiorem następujących po nim):
Język regularny formalny można opisać:
1., 2. i 3. są równoważne i z jednego z nich możesz zbudować pozostałe.
Bezkontekstowych formalny język może być opisana przez:
Również 1. i 2. są równoważne.
Kontekstowa formalny język może być opisana przez:
Rekurencyjnie przeliczalny język formalny można opisać:
źródło
Oprócz innych odpowiedzi można opisać i sklasyfikować języki pod względem „generatorów” i właściwości zamknięcia. Na przykład sensowne jest mówienie o najmniejszym AFL generowanym przez jakiś język. Dobrym miejscem do rozpoczęcia nauki o tego rodzaju opisach jest ta książka, chociaż znalezienie jej twardej kopii może być dość trudne.
źródło