Czy istnieją inne sposoby opisywania języków formalnych inne niż gramatyka?


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.


Zauważ, że istnieje wiele, wiele typów gramatyki poza klasycznymi Chomsky'ego, na przykład odpowiednio wiele , sprzężonych i zależnych od długości gramatyk bezkontekstowych (łatwo googlować).
— Raphael

Odpowiedzi:


14

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:

  1. Niektóre języki można zdefiniować bezpośrednio za pomocą (ko) definicji indukcyjnych . Na przykład najmniejszy punkt stały
    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:za⇒ ε∈L.w∈L.⇒zaw∈L.zaw∈L.⇒bzaw∈L.za
    (bza∣za)∗(bza∣za)ω
    zaε,wzaw,zawbzawza

  2. 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}Pa:D→{0,1}Pa(i)⟺wi=aa∈Σ<<Nograniczone 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ępnieDwsuc:Dw×Dw→{0,1}
    w=aababaab
    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 LTLaSw⊨∀i.∀j. (Pb(i) ∧ suc⁡(i,j))→¬Pb(j);a
    (ba∣a)∗ω(bza∣za)ω
    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.za◻(P.b→◯(¬P.b))za
    ω

  3. 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
    Zauważ, żeσjest przedłużony do pracy nad wzorami; symbole terminali pozostają niezmienione. Jako przykład rozważmyL(x1abbax1)={wabbaw∣w∈{a,b}∗}.zaL.(p)={σ(p)∣σ∈H.}.za
    σ
    L.(x1zabbzax1)={wzabbzaw∣w∈{za,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 .


5

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 .


5

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. Gramatyka regularna
  2. Automat skończony (deterministyczny / niedeterministyczny)
  3. Wyrażenie regularne

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:

  1. Gramatyka bezkontekstowa
  2. Automat pushdown

Również 1. i 2. są równoważne.

Kontekstowa formalny język może być opisana przez:

  1. Automat związany liniowo (maszyna Turinga z ograniczoną taśmą)

Rekurencyjnie przeliczalny język formalny można opisać:

  1. Całkowita maszyna Turinga

I wszystkie inne klasy językowe?
— Raphael

A języki bezklasowe?
— Dave Clarke

Chomsky nie twierdzi, że są to jedyne rodzaje języków - są to tylko cztery typy, które uważa za ważne, a my nadal uważamy je za ważne, ale istnieje wiele innych typów.
— reinierpost

5

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.