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(baa), największy punkt stały to(baa)ω. Zauważ, że taką definicję można również zapisać w postaci rachunku różniczkowego lubreguły wnioskowania:za εL.wL.zawL.zawL.bzawL.za
    (bzaza)(bzaza)ω
    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(baa). Odpowiednijęzykω(baa)ωjest opisanywzorem LTLaSwi.j. (Pb(i)  suc(i,j))¬Pb(j);a
    (baa)ω(bzaza)ω
    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)={wabbaww{a,b}}.zaL.(p)={σ(p)σH.}.za
    σ
    L.(x1zabbzax1)={wzabbzaww{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.