Контекст-слободни језик

Извор: testwiki
Пређи на навигацију Пређи на претрагу

У формалној теорији језика, контекстно слободни језик је језик који генерише нека контекстно-слободна граматика. Скуп свих контекстно слободних језика је идентичан скупу језика које прихватају потисни аутомати.

Примери

Класичан пример контекстно слободног језика је L={anbn:n1}, језик свих непразних ниски парне дужине, чије ја прва половина састављена од слова a, а друга половина је састављена од слова b. L је генерисан граматиком SaSb|ab, а прихвата га потисни аутомат M=({q0,q1,qf},{a,b},{a,z},δ,q0,{qf}) где је δ дефинисано на следећи начин:

δ(q0,a,z)=(q0,a)
δ(q0,a,a)=(q0,a)
δ(q0,b,a)=(q1,x)
δ(q1,b,a)=(q1,x)
δ(q1,λ,z)=(qf,z)

δ(state1,read,pop)=(state2,push)
where z је почетни симбол стека а x представља акцију скидања са стека.

Контекстно слободни језици имају многе примене у програмским језицима; на пример, језик свих исправно упарених заграда је генерисан граматиком SSS|(S)|λ. Такође, већина аритметичких израза су генерисани контекстно слободним граматикама.


Својства затворења

Контекстно слободни језици су затворени у односу на следеће операције. То јест, ако су -{L}- и -{P}- контекстно слободни језици, а -{D}- је регуларан језик, онда су и следећи језици контекстно-слободни:

Контекстно слободни језици нису затворени за комплемент, пресек и разлику.

Незатвореност у односу на пресек

Контекстно слободни језици нису затворени за пресек. Ово се може видети ако се узму језици A={ambncnm,n0} и B={anbncmm,n0}, који су оба конетксно слободна. Њихов пресек је AB={anbncnn0}, за шта се може показати да није контекстно слободан језик пампинг лемом за контекстно слободне језике.

Својства одлучивости

Следећи проблеми су неодлучиви за произвољне контекстно слободне граматике -{A}- и -{B}-:

  • Еквиваленција: да ли је L(A)=L(B)?
  • да ли је L(A)L(B)= ?
  • да ли је L(A)=Σ* ?
  • да ли је L(A)L(B) ?

Следећи проблеми су одлучиви за произвољне контекстно слободне граматике:

  • да ли је L(A)=?
  • да ли је L(A) коначан?
  • Припадност: за сваку дату реч w, да ли је wL(A) ? (проблем припадности је чак одлучив у полиномијалном времену - видети -{алгоритам CYK}-)

Својства контекст-слободних језика

Литература

Шаблон:Формални језици и граматике

Шаблон:Нормативна контрола