Języki, automaty i obliczenia/Ćwiczenia 9: Języki bezkontekstowe i ich gramatyki

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Ćwiczenia 9

Ćwiczenie 1

Określ gramatyki bezkontekstowe generujące języki:

  1. L1={anbn:n>0}
  2. L2={anbm:0<n<m}
  3. L3={anbm:n,m>0,nm}
  4. L4={w{a,b}*:w=w}
  5. L5={w{a,b}*:#aw=#bw}
Rozwiązanie

Ćwiczenie 2

Wykorzystując dowód lematu 1.2, napisz dla dowolnej gramatyki bezkontekstowej generującej język bez słowa pustego algorytm konstrukcji równoważnej gramatyki właściwej.

Ćwiczenie 3

Sprowadź do postaci Chomsky'ego następujące gramatyki (v0 jest symbolem początkowym):

(1)

v0v0v1v2 | v2av1v1 | bv1v0v0 | v1ba | v2v0v2bv0a | a

(2)

v0v1v2 | v2v4v1v1v0v4 | v1b | av2bv0 | v1av3a | bv1v4v2v1
Rozwiązanie punktu 1
Rozwiązanie punktu 2

Ćwiczenie 4

Sprowadź do postaci normalnej Greibach następującą gramatykę (v0 jest symbolem początkowym):

v0v2v0v1 | av1v0v2 | v1v2 | bv2c
Rozwiązanie
ZADANIA DOMOWE

Ćwiczenie 5

Określ gramatykę bezkontekstową generującą język

  1. L6={anbmcn+m:n,m>0}
  2. L7={anbmck:0<n,m,k;km+n}
  3. L8={anbkcn:n0,k5}
  4. L9={ww:w{a,b}*}
  5. L10={wanbnw:n0,w{a,b}*}

Uwagi. Język L9 jest właściwym podzbiorem języka palindromów L4 rozważanego w ćwiczeniu 1. Porównaj otrzymane gramatyki.
Do znalezienia gramatyki generującej język L7 zdefiniuj dwie gramatyki pomocnicze podobnie jak w punkcie 3 ćwiczenia 1.

Ćwiczenie 6

Sprowadź do postaci Chomsky'ego następujące gramatyki (v0 jest zawsze symbolem początkowym):

(1)

v0v0v1v2v2 | v2av1bv1 | v1bv1v0v0 | aba | av1bv2bv0av1bv2a | b

(2)

v0v1v2v3 | v2v4v1v1v4a | v1bv0 | av1v1bbv2b | aaav3a | bbbv4v1bbv3v2 | a

Ćwiczenie 7

Sprowadź do postaci normalnej Greibach następującą gramatykę:

v0v0v1 | av1v1v0 | b

Ćwiczenie 8

Sprowadź do postaci normalnej Greibach następującą gramatykę:

v0v0v1 | av1v0v0 | v1v0 | b