plik


ÿþ2.2. Gramatyki, wyprowadzenia Gramatyka Gramatyk G nazywamy czwórk uporzdkowan G = <N, T, P, Z> gdzie: N  zbiór symboli nieterminalnych, T  zbiór symboli terminalnych, P  zbiór produkcji, z których ka|da ma posta ± ’! ² Z " N  wyró|niony symbol pocztkowy (nieterminal) przy czym P †" (N*"T)+ × (N*"T)* P = { ±’!² | ± " (N*"T)+, ² "(N*"T)* } Wyprowadzalno[ SBowo È jest wyprowadzalne bezpo[rednio ze sBowa É w gramatyce G, co zapisujemy É Ò!G È je|eli: É = ³±´ È = ³²´ (± ’! ²) " P ±, ², ³, ´, È, É " (N*"T)* SBowo È jest wyprowadzalne ze sBowa É w gramatyce G, co zapisujemy É Ò!G+ È je|eli istniej Æ0, Æ1, ... ,Æn " (N*"T)* takie, |e: Æ0 = É Æn = È Æi-1 Ò!G Æi dla i = 1, 2, ..., n Sekwencj Æ0, Æ1, ... ,Æn nazywamy wyprowadzeniem o dBugo[ci n. Definiujemy ponadto: ( É Ò!G* È ) Ô! ( É Ò!G+ È ) (" ( É = È ) Relacje Ò!G+ oraz Ò!G* s odpowiednio przechodnim oraz przechodnim i zwrotnym domkniciem relacji bezpo[redniej wyprowadzalno[ci Ò!G. Je|eli wiadomo, o jak gramatyk chodzi, pomijamy dolny indeks  G w oznaczeniu tych relacji piszc po prostu: Ò!+ , Ò!* oraz Ò!. Jzyk generowany przez gramatyk Gramatyka jest jednym ze sposobów definiowania jzyka formalnego. Majc dan gramatyk G oznaczamy przez L(G) zbiór wszystkich sBów, które mog by w tej gramatyce wyprowadzone z symbolu pocztkowego Z. Zbiór ten nazywamy jzykiem generowanym przez dan gramatyk. L(G) = { x " T* | Z Ò!G* x } Forma zdaniowa AaDcuch x " (N*"T)* nazywamy form zdaniow gramatyki G, je[li mo|na go wyprowadzi z symbolu pocztkowego Z. x " (N*"T)* jest form zdaniow Ô! Z Ò!G* x Uwaga: terminu sBowo u|ywamy w rozumieniu BaDcucha zbudowane wyBcznie z symboli terminalnych x " T* jest sBowem Ô! Z Ò!G* x Hierarchia Chomsky ego Noam Chomsky zdefiniowaB cztery klasy gramatyk oraz cztery klasy jzyków formalnych. Klasy te numerowane s od 0 do 3. Klasa 0 Gramatyk G = <N, T, P, Z>, w której produkcje maj posta ± ’! ² , gdzie ± i ² s dowolnymi BaDcuchami symboli tej gramatyki, przy czym ± `" µ nazywamy semi-gramatykami Thuego, gramatykami bez ograniczeD, gramatykami struktur frazowych, gramatykami kombinatorycznymi lub gramatykami klasy  0 . Definicja gramatyk klasy  0 , jak wida, nie nakBada |adnych ograniczeD na posta produkcji gramatyki w stosunku do ogólnej definicji gramatyki. Jzyki generowane przez gramatyki tego typu nosz nazw jzyków rekurencyjnie przeliczalnych. Przez GKOMB oznaczymy klas gramatyk kombinatorycznych, a przez LRP klas jzyków rekurencyjnie przeliczalnych. Fundamentalny problem, który bdzie pózniej naszym gBównym przedmiotem zainteresowania, mianowicie:  czy sBowo x nale|y do jzyka generowanego przez dan gramatyk , jest nierozstrzygalny dla jzyków generowanych przez gramatyki kombinatoryczne. Termin  problem w uproszczeniu oznacza pytanie zwizane z jakim[ wystpieniem pewnych obiektów z pewnych klas (u nas tymi obiektami s dowolne gramatyki pewnego typu oraz dowolne sBowa nad alfabetem definiowanym przez te gramatyki, za[ wystpieniem obiektu bdzie konkretne sBowo i konkretna gramatyka), na które to pytania mo|na udzieli odpowiedzi: TAK lub NIE. Termin  nierozstrzygalny w uproszczeniu znaczy tyle:  nie istnieje jednoznaczny deterministyczny algorytm, który dla ka|dego wystpienia danego problemu w skoDczonej liczbie kroków daBby odpowiedz TAK, je|eli poprawna odpowiedz na pytanie zwizane z wystpieniem rozwa|anego problemu brzmi TAK, oraz NIE, gdy poprawna odpowiedz brzmi NIE . Termin  rozstrzygalny w uproszczeniu znaczy tyle:  istnieje jednoznaczny deterministyczny algorytm, który dla ka|dego wystpienia danego problemu w skoDczonej liczbie kroków daBby odpowiedz TAK, je|eli poprawna odpowiedz na pytanie zwizane z wystpieniem rozwa|anego problemu brzmi TAK, oraz NIE, gdy poprawna odpowiedz brzmi NIE . Problem: czy x " L(G) jest nierozstrzygalny dla G " GKOMB. Klasa 1 Gramatyk G = <N, T, P, Z>, w której produkcje maj posta ± ’! ² , gdzie ± i ² s takimi BaDcuchami symboli tej gramatyki, |e BaDcuch ² jest przynajmniej tak dBugi jak BaDcuch ± (|±| d" |²|) oraz dodatkowo dopuszczona jest produkcja Z ’! µ, je[li jzyk zawiera sBowo puste, nazywamy gramatykami kontekstowymi, gramatykami monotonicznym, gramatykami nieskracajcymi lub gramatykami klasy  1 . Termin  kontekstowy pochodzi od tego, |e dla ka|dej gramatyki monotonicznej mo|na znalez równowa|n jej (tzn. generujc ten sam jzyk) gramatyk, której produkcje maj posta ±1A±2 ’! ±1²±2 gdzie A jest nieterminalem (A " N), za[ ±1, ±2, ² s dowolnymi BaDcuchami symboli gramatyki, przy czym ² `" µ. Produkcje o tej postaci pozwalaj na zastpienie nieterminala A BaDcuchem ² tylko w  lewostronnym kontek[cie ±1 i  prawostronnym kontek[cie ±2. Jzyki generowane przez gramatyki tego typu nosz nazw jzyków kontekstowych. Przez GK oznaczymy klas gramatyk kontekstowych, a przez LK klas jzyków kontekstowych. Problem: czy x " L(G) jest rozstrzygalny dla G " GK. Ponadto: GK ‚" GKOMB LK ‚" LRP Klasa 2 Gramatyk G = <N, T, P, Z>, w której produkcje maj posta A ’! ² , gdzie A jest nieterminalem (A " N), za[ BaDcuch ² jest dowolnym BaDcuchem symboli tej gramatyki nazywamy gramatykami bezkontekstowymi lub gramatykami klasy  2 . Termin  bezkontekstowy pochodzi od tego, |e produkcje takiej gramatyki pozwalaj na bezwarunkowe (bez uwzgldniania kontekstu) zastpienie nieterminala A BaDcuchem ². Jzyki generowane przez gramatyki tego typu nosz nazw jzyków bezkontekstowych. Przez GBK oznaczymy klas gramatyk kontekstowych, a przez LBK klas jzyków kontekstowych. Problem: czy x " L(G) jest rozstrzygalny dla G " GBK. Ponadto: GBK ‚" GK ‚" GKOMB LBK ‚" LK ‚" LRP Klasa gramatyk bezkontekstowych jest chyba najwa|niejsz (z naszego punktu widzenia) klas gramatyk, gdy| za pomoc gramatyk tej klasy opisuje si skBadni wikszo[ci jzyków programowania. Klasa 3 Gramatyk G = <N, T, P, Z>, w której ka|da produkcja ma posta A ’! xB lub A ’! x gdzie A i B s nieterminalami (A,B " N), za[ BaDcuch x jest dowolnym BaDcuchem symboli terminalnych tej gramatyki (x " T*) nazywamy gramatyk prawostronnie liniow. Gramatyk G = <N, T, P, Z>, w której ka|da produkcja ma posta A ’! Bx lub A ’! x gdzie A i B s nieterminalami (A,B " N), za[ BaDcuch x jest dowolnym BaDcuchem symboli terminalnych tej gramatyki (x " T*) nazywamy gramatyk lewostronnie liniow. Gramatyki prawostronnie liniowe i lewostronnie liniowe nazywamy gramatykami liniowymi, gramatykami regularnymi lub gramatykami klasy  3 . Jzyki generowane przez gramatyki tego typu nosz nazw jzyków regularnych. Przez GRG oznaczymy klas gramatyk regularnych, a przez LRG klas jzyków regularnych. Problem: czy x " L(G) jest rozstrzygalny dla G " GRG. Ponadto: GRG ‚" GBK ‚" GK ‚" GKOMB LRG ‚" LBK ‚" LK ‚" LRP Klasa gramatyk regularnych jest tak|e bardzo wa|n (z naszego punktu widzenia) klas gramatyk, gdy| za pomoc gramatyk tej klasy opisuje si skBadni wikszo[ci podstawowych elementów leksykalnych (sBownikowych) jzyków programowania (takich jak identyfikatory, staBe numeryczne, staBe tekstowe, komentarze, operatory, itd. PrzykBad: Rozwa|ymy gramatyk G = <N, T, P, Z>, w której: N = {S, A, B, C, D, E, F, G} T = {a, b, c} P = { S ’! AbC | aD | AE | aBc | abc A ’! a B ’! b bC ’! bc D ’! bc aE ’! abFcG F ’! µ bcG ’! bc } Z = S Ta gramatyka jest gramatyk kombinatoryczn (klasy  0  w lewych stronach produkcji wystpuj dowolne BaDcuchy symboli, s dwie produkcje skracajce) i równocze[nie nie jest gramatyk |adnej w|szej klasy. Jzyk przez ni generowany jest oczywi[cie jzykiem rekurencyjnie przeliczalnym. Zbadajmy, jakie sBowa s generowane przez t gramatyk. S Ò! AbC Ò! abC Ò!bc S Ò! aD Ò! abc S Ò! AE Ò! aE Ò! abFcG Ò! abcG Ò! abc S Ò! aBc Ò! abc S Ò! abc Wida, |e jedynym sBowem generowanym przez t gramatyk jest abc. Dla jzyka L = { abc } mo|na zbudowa znacznie prostsz gramatyk G1 = <N1, T, P1, Z>, w której: N1 = {S} T = {a, b, c} P1 = { S ’! abc } Z = S Gramatyka G1 nale|y do klasy  3 gramatyk regularnych. Poniewa| L = L(G) = L(G1) wic jzyk L nale|y do klasy jzyków regularnych, mimo |e mo|e by wygenerowany przez gramatyk znacznie szerszej klasy (gramatyk bez ograniczeD). Uwaga: zawsze interesowa nas bdzie najw|sza klasa, do której nale|y badany jzyk.

Wyszukiwarka

Podobne podstrony:
lower,urzÄ…dzenia obiektowe automatyki,Moore
lower,urzÄ…dzenia obiektowe automatyki,zbiory regularne
lower,urzÄ…dzenia obiektowe automatyki,drzewa rozbioru
lower,urzÄ…dzenia obiektowe automatyki,Turing
lower,urzÄ…dzenia obiektowe automatyki,algorytmy parsingu
lower,urządzenia obiektowe automatyki,Przeksztalcenia automatów
lower,urzÄ…dzenia obiektowe automatyki,zbiory
lower,urzÄ…dzenia obiektowe automatyki,jezyki
1d urzÄ…dzenia obiektowe automatyki
motoiler urzadzenie do automatycznego oliwienia lancuchow motorowerow i motocykli
Wykonywanie połączeń w urządzeniach precyzyjnych i układach automatyki przemysłowej
mechanik automatyki przemyslowej i urzadzen precyzyjnych
szafran,podstawy automatyki,elementy UAR obiektu
12 Użytkowanie maszyn i urządzeń oraz obiektów
Ochrona przed przepięciami urządzeń pracujących w niewielkich obiektach budowlanych
14 Instalowanie urządzeń automatyki
instrukcja bhp mycia i dezynfekcji pomieszczen urzadzen sprzetu i naczyn dla obiektow handlowych

więcej podobnych podstron