Kontekstno nezavisni jezik

U formalnoj teoriji jezika, kontekstno slobodni jezik je jezik koji generiše neka kontekstno-slobodna gramatika. Skup svih kontekstno slobodnih jezika je identičan skupu jezika koje prihvataju potisni automati.

Primeri

Klasičan primer kontekstno slobodnog jezika je L = { a n b n : n 1 } {\displaystyle L=\{a^{n}b^{n}:n\geq 1\}} , jezik svih nepraznih niski parne dužine, čije ja prva polovina sastavljena od slova a {\displaystyle a} , a druga polovina je sastavljena od slova b {\displaystyle b} . L {\displaystyle L} je generisan gramatikom S a S b   |   a b {\displaystyle S\to aSb~|~ab} , a prihvata ga potisni automat M = ( { q 0 , q 1 , q f } , { a , b } , { a , z } , δ , q 0 , { q f } ) {\displaystyle M=(\{q_{0},q_{1},q_{f}\},\{a,b\},\{a,z\},\delta ,q_{0},\{q_{f}\})} gde je δ {\displaystyle \delta } definisano na sledeći način:

δ ( q 0 , a , z ) = ( q 0 , a ) {\displaystyle \delta (q_{0},a,z)=(q_{0},a)}
δ ( q 0 , a , a ) = ( q 0 , a ) {\displaystyle \delta (q_{0},a,a)=(q_{0},a)}
δ ( q 0 , b , a ) = ( q 1 , x ) {\displaystyle \delta (q_{0},b,a)=(q_{1},x)}
δ ( q 1 , b , a ) = ( q 1 , x ) {\displaystyle \delta (q_{1},b,a)=(q_{1},x)}
δ ( q 1 , λ , z ) = ( q f , z ) {\displaystyle \delta (q_{1},\lambda ,z)=(q_{f},z)}

δ ( s t a t e 1 , r e a d , p o p ) = ( s t a t e 2 , p u s h ) {\displaystyle \delta (\mathrm {state} _{1},\mathrm {read} ,\mathrm {pop} )=(\mathrm {state} _{2},\mathrm {push} )}
where z {\displaystyle z} je početni simbol steka a x {\displaystyle x} predstavlja akciju skidanja sa steka.

Kontekstno slobodni jezici imaju mnoge primene u programskim jezicima; na primer, jezik svih ispravno uparenih zagrada je generisan gramatikom S S S   |   ( S )   |   λ {\displaystyle S\to SS~|~(S)~|~\lambda } . Takođe, većina aritmetičkih izraza su generisani kontekstno slobodnim gramatikama.


Svojstva zatvorenja

Kontekstno slobodni jezici su zatvoreni u odnosu na sledeće operacije. To jest, ako su L i P kontekstno slobodni jezici, a D je regularan jezik, onda su i sledeći jezici kontekstno-slobodni:

  • Klinijeva zvezda L {\displaystyle L^{*}} od L
  • slika φ(L) od L za homomorfizam φ
  • konkatenacija (dopisivanje) L P {\displaystyle L\circ P} jezika L i P
  • unija L P {\displaystyle L\cup P} jezika L i P
  • presek (sa regularniim jezikom) L D {\displaystyle L\cap D} jezika L i D

Kontekstno slobodni jezici nisu zatvoreni za komplement, presek i razliku.

Nezatvorenost u odnosu na presek

Kontekstno slobodni jezici nisu zatvoreni za presek. Ovo se može videti ako se uzmu jezici A = { a m b n c n m , n 0 } {\displaystyle A=\{a^{m}b^{n}c^{n}\mid m,n\geq 0\}} i B = { a n b n c m m , n 0 } {\displaystyle B=\{a^{n}b^{n}c^{m}\mid m,n\geq 0\}} , koji su oba konetksno slobodna. Njihov presek je A B = { a n b n c n n 0 } {\displaystyle A\cap B=\{a^{n}b^{n}c^{n}\mid n\geq 0\}} , za šta se može pokazati da nije kontekstno slobodan jezik pamping lemom za kontekstno slobodne jezike.

Svojstva odlučivosti

Sledeći problemi su neodlučivi za proizvoljne kontekstno slobodne gramatike A i B:

  • Ekvivalencija: da li je L ( A ) = L ( B ) {\displaystyle L(A)=L(B)} ?
  • da li je L ( A ) L ( B ) = {\displaystyle L(A)\cap L(B)=\emptyset }  ?
  • da li je L ( A ) = Σ {\displaystyle L(A)=\Sigma ^{*}}  ?
  • da li je L ( A ) L ( B ) {\displaystyle L(A)\subseteq L(B)}  ?

Sledeći problemi su odlučivi za proizvoljne kontekstno slobodne gramatike:

  • da li je L ( A ) = {\displaystyle L(A)=\emptyset } ?
  • da li je L ( A ) {\displaystyle L(A)} konačan?
  • Pripadnost: za svaku datu reč w {\displaystyle w} , da li je w L ( A ) {\displaystyle w\in L(A)}  ? (problem pripadnosti je čak odlučiv u polinomijalnom vremenu - videti algoritam CYK)

Svojstva kontekst-slobodnih jezika

  • Jezik obratan kontekstno slobodnom jeziku je kontekstno slobodan, ali njegov komplement ne mora da bude.
  • Svaki regularan jezik je kontekstno slobodan jer može da se opiše regularnom gramatikom.
  • Presek kontekstno slobodnog jezika i regularnog jezika je uvek kontekstno slobodan.
  • Postoje kontekstno senzitivni jezici koji nisu kontekstkno slobodni.
  • U dokazivanju da neki jezik nije kontekstno slobodan može da se koristi pamping lema za kontekstno slobodne jezike.

Reference

  • Seymour Ginsburg (1966). The Mathematical Theory of Context-Free Languages. New York, NY, USA: McGraw-Hill, Inc.. 
  • Michael Sipser]] (1997). Introduction to the Theory of Computation. PWS Publishing. ISBN 0-534-94728-X.  Chapter 2: Context-Free Languages, pp.91–122.
Teorija automata: formalni jezici i formalne gramatike
Chomskyjeva
hijerarhija
Gramatike Jezici Minimalni
automat
Tip 0 Neograničenih produkcija Rekurzivno prebrojiv Turingov stroj
n/a (nema uobičajenog imena) Rekurzivni Odlučitelj
Tip 1 Kontekstno ovisna Kontekstno ovisni Linearno ograničen
n/a Indeksirana Indeksirani Ugniježđenog stoga
Tip 2 Kontekstno neovisna Kontekstno neovisni Nedeterministički potisni
n/a Deterministička kontekstno neovisna Deterministički kontekstno neovisni Deterministički potisni
Tip 3 Regularna Regularni Konačni
Svaka kategorija jezika ili gramatika je pravi podskup nadređene kategorije.