Chomsky-féle hierarchia



Hasonló dokumentumok
Chomsky-féle hierarchia

Automaták és formális nyelvek

akonyv 2006/12/18 11:53 page i #1 Formális nyelvek és fordítóprogramok


Házi feladatok megoldása. Nyelvtani transzformációk. Házi feladatok megoldása. Házi feladatok megoldása. Formális nyelvek, 6. gyakorlat.

Formális nyelvek - 5.

Házi feladatok megoldása. Nyelvek felismerése. Házi feladatok megoldása. Házi feladatok megoldása. Formális nyelvek, 5. gyakorlat

6. előadás A reguláris nyelvek jellemzése 2.

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:

MintaFeladatok 1.ZH Megoldások

A számítógépes nyelvészet elmélete és gyakorlata. Formális nyelvek elmélete

6. előadás A reguláris nyelvek jellemzése 2.

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:

5. előadás Reguláris kifejezések, a reguláris nyelvek jellemzése 1.

MintaFeladatok 2.ZH Megoldások

MintaFeladatok 1.ZH Megoldások

A digitális számítás elmélete

Diszkrét matematika 2. estis képzés

Formális Nyelvek - 1. Előadás

Automaták mint elfogadók (akceptorok)

Feladatok. 6. A CYK algoritmus segítségével döntsük el, hogy aabbcc eleme-e a G = {a, b, c}, {S, A, B, C}, P, S nyelvtan által generált nyelvnek!

ALGEBRAI NYELV- ÉS KÓDELMÉLET. Babcsányi István

Atomataelmélet: A Rabin Scott-automata

1. előadás: Halmazelmélet, számfogalom, teljes

Formális nyelvek és automaták


Csempe átíró nyelvtanok

Halmaz: alapfogalom, bizonyos elemek (matematikai objektumok) Egy halmaz akkor adott, ha minden objektumról eldönthető, hogy

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Számelmélet I.

FELVÉTELI VIZSGA, július 17.

A Számítástudomány alapjai

Emlékeztető: LR(0) elemzés. LR elemzések (SLR(1) és LR(1) elemzések)

Formális nyelvek és gépek (definíciós és tétel lista - 09/10/2)

Logika és számításelmélet. 10. előadás

KOVÁCS BÉLA, MATEMATIKA I.

Az Országos Középiskolai Tanulmányi Verseny tanévi második fordulójának feladatmegoldásai. x 2 sin x cos (2x) < 1 x.

ZH feladatok megoldásai

M. 33. Határozza meg az összes olyan kétjegyű szám összegét, amelyek 4-gyel osztva maradékul 3-at adnak!

Elemi algebrai eszközökkel megoldható versenyfeladatok Ábrahám Gábor, Szeged

1000 forintos adósságunkat, de csak 600 forintunk van. Egyetlen lehetőségünk, hogy a

15. LINEÁRIS EGYENLETRENDSZEREK

Formális nyelvek és automaták előadások

Lineáris egyenletrendszerek

Példák. Ismert a római számok halmaza, amely intuitív szintaxissal rendelkezik, hiszen pl.

7. előadás Környezetfüggetlen nyelvtanok

Teljes visszalépéses elemzés

MATE-INFO UBB verseny, március 25. MATEMATIKA írásbeli vizsga

1. Legyen egy háromszög három oldalának a hossza a, b, c. Bizonyítsuk be, hogy Mikor állhat fenn egyenlőség? Kántor Sándorné, Debrecen

2014. szeptember 24. és 26. Dr. Vincze Szilvia

ALAPFOGALMAK 1. A reláció az program programfüggvénye, ha. Azt mondjuk, hogy az feladat szigorúbb, mint az feladat, ha

Formális nyelvek - 9.

1/50. Teljes indukció 1. Back Close

XXVI. Erdélyi Magyar Matematikaverseny Zilah, február I. forduló osztály

Tárgyév adata december 31. Tárgyév adata december 31. A tétel megnevezése

3. előadás. Programozás-elmélet. A változó fogalma Kiterjesztések A feladat kiterjesztése A program kiterjesztése Kiterjesztési tételek Példa

Formális nyelvek előadások tavaszi félév

10. előadás. Konvex halmazok

Gy ur uk aprilis 11.

9. előadás Környezetfüggetlen nyelvek

Diszkrét matematika 2.

A számítógépes nyelvészet elmélete és gyakorlata. Automaták

Feladatok: 1. Add meg a következ balreguláris nyelvtannak megfelel jobbreguláris nyelvtant!

Mátrixok február Feladat: Legyen ( ( B = A =

Ítéletkalkulus. 1. Bevezet. 2. Ítéletkalkulus

Megoldókulcs. Matematika D kategória ( osztályosok) február 6.

A Turing-gép. Formális nyelvek III.

Formális nyelvek és automaták vizsgához statisztikailag igazolt várható vizsgakérdések

A 2015/2016. tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló MATEMATIKA III. KATEGÓRIA (a speciális tanterv szerint haladó gimnazisták)

Klasszikus algebra előadás. Waldhauser Tamás április 28.

Diszkrét matematika 2. estis képzés

Mára új helyzet alakult ki: a korábbiakhoz képest nagyságrendekkel komplexebb

Feladatok. BNF,EBNF,szintaxisgráf

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

1. Részcsoportok (1) C + R + Q + Z +. (2) C R Q. (3) Q nem részcsoportja C + -nak, mert más a művelet!

út hosszát. Ha a két várost nem köti össze út, akkor legyen c ij = W, ahol W már az előzőekben is alkalmazott megfelelően nagy szám.

Egészrészes feladatok

Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 30.

KOVÁCS BÉLA, MATEMATIKA I.

Bisonc++ tutorial. Dévai Gergely. A szabály bal- és jobboldalát : választja el egymástól. A szabályalternatívák sorozatát ; zárja le.

1. Lineáris leképezések

A lineáris algebrában központi szerepet betöltı vektortér fogalmát értelmezzük most, s megvizsgáljuk e struktúra legfontosabb egyszerő tulajdonságait.

XX. Nemzetközi Magyar Matematika Verseny

Hatványozás. A hatványozás azonosságai

a védelmi feladatokban részt vevő elektronikus hírközlési szolgáltatók kijelöléséről és felkészülési feladataik meghatározásáról

Halmazelméleti alapfogalmak

KOVÁCS BÉLA, MATEMATIKA I.

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 12.

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

A 2013/2014. tanévi Országos Középiskolai Tanulmányi Verseny második forduló MATEMATIKA I. KATEGÓRIA (SZAKKÖZÉPISKOLA) Javítási-értékelési útmutató

KOVÁCS BÉLA, MATEMATIKA I.

Mátrixok február Feladat: Legyen A = ( ( B =

Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!

Egyenletek, egyenlőtlenségek VII.

Mátrixok. 3. fejezet Bevezetés: műveletek táblázatokkal

ANALITIKUS MÉRTAN I. VEKTORALGEBRA. 1. Adott egy ABCD tetraéder. Határozzuk meg az alábbi összegeket: a) AD + BC = BD + AC.

Az R halmazt a valós számok halmazának nevezzük, ha teljesíti az alábbi 3 axiómacsoport axiómáit.

Informatika szigorlat. A lexikális elemző feladatai közé tartozik a whitespace karakterek (a

HALMAZOK. A racionális számok halmazát olyan számok alkotják, amelyek felírhatók b. jele:. A racionális számok halmazának végtelen sok eleme van.

Halmazelmélet. 1. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Halmazelmélet p. 1/1

Matematikai alapismeretek. Huszti Andrea

Átírás:

http://www.ms.sapientia.ro/ kasa/formalis.htm Chomsky-féle hierarchia G = (N, T, P, S) nyelvtan: 0-s típusú (általános vagy mondatszerkezetű), ha semmilyen megkötést nem teszünk a helyettesítési szabályaira. 1-es típusú (környezetfüggő), ha minden szabálya αaγ αβγ alakú, ahol A N, α, γ (N T ), β (N T ) +. Ezenkívül megengedhető az S ε szabály is, ha S nem szerepel egyetlen szabály jobb oldalán sem. 2-es típusú (környezetfüggetlen), ha minden szabálya A β alakú, ahol A N, β (N T ) +. Ezenkívül megengedhető az S ε szabály is, ha S nem szerepel egyetlen szabály jobb oldalán sem. 3-as típusú (reguláris), ha szabályai A ab vagy A a alakúak, ahol a T és A, B N. Ezenkívül megengedhető az S ε szabály is, ha S nem szerepel egyetlen szabály jobb oldalán sem. L 0 L 1 L 2 L 3. Minden véges nyelv reguláris. Ha u = a 1 a 2... a n eleme a nyelvnek, akkor bevezetjük a következő szabályokat: S a 1 A 1, A 1 a 2 A 2,... A n 2 a n 1 A n 1, A n 1 a n, ahol S a nyelvtan kezdőszimbóluma, A 1,..., A n 1 pedig különböző nemterminálisok. Ha az üres szó is eleme a nyelvnek, akkor azt az S ε szabállyal generáljuk. Az üres halmaz szintén reguláris nyelv, hisz például a G = ({S}, {a}, {S as}, S) reguláris nyelvtan az üres halmazt generálja. 1

Átnevezések kiküszöbölése átnevezés: A B alakú szabály, ahol A, B N G = (N, T, P, S) átnevezéseket tartalmazó nyelvtan G = (N, T, P, S) átnevezéseket nem tartalmazó nyelvtan (ugyanolyan típusú) Átnevezés-kizárás(G) 1 valahányszor A B és B C átnevezések P -ben vannak, mindannyiszor vegyük fel P -be az A C átnevezést is mindaddig, amíg P bővíthető, 2 valahányszor A B átnevezés és a B α (α N) szabály P -ben van, mindannyiszor vegyük fel P -be az A α szabályt is, 3 legyen P azon P -beli szabályok halmaza, amelyek nem átnevezések. 4 return G G és G ekvivalensek Ha G i {0, 1, 2, 3} típusú, akkor G is i típusú lesz. 2

Példa: ( {S, A, B, C}, {a, b}, P, S G = ahol a P elemei: S A, A B, B C, C B, D C, S B, A D, C Aa, A ab, A b. ), Első lépés. A következő új átnevezések kerülnek be a szabályok közé: S D (S A és A D miatt), S C (S B és B C miatt), A C (A B és B C miatt), B B (B C és C B miatt), C C (C B és B C miatt), D B (D C és C B miatt). Második lépés. A következő új szabályok jelennek meg: S ab S b S Aa A Aa B Aa Az új G = ( ) {S, A, B, C}, {a, b}, P, S S b, A b, B Aa, C Aa, S ab, A ab, S Aa A Aa. (S A és A ab miatt), (S A és A b miatt), (S C és C Aa miatt), (A C és C Aa miatt), (B C és C Aa miatt). nyelvtan szabályai: 3

Normálalakú nyelvtanok normálalakú nyelvtan: ha szabályainak bal oldalán terminális betűk nem szerepelnek Σ 1 és Σ 2 ábécékre homomorfizmusnak nevezzük a h : Σ 1 Σ 2 függvényt, ha h(u 1 u 2 ) = h(u 1 )h(u 2 ), u 1, u 2 Σ 1. Könnyű belátni, hogy tetszőleges u = a 1 a 2... a n Σ 1 esetében a h(u) értéket egyértelműen meghatározza h- nak a Σ 1 -re való megszorítása, ugyanis h(u) = h(a 1 )h(a 2 )... h(a n ). Ha a h függvény még bijektív is, akkor izomorfizmusról beszélünk. Tétel. Tetszőleges nyelvtanhoz megkonstruálhatunk egy vele ekvivalens, azonos típusú nyelvtant, amely normálalakú. G = (N, T, P, S) eredeti nyelvtan G = (N, T, P, S) normálalakú nyelvtan Legyenek a 1, a 2,..., a k azok a terminális szimbólumok, amelyek szerepelnek a szabályok bal oldalán. Ekkor vezessük be az A 1, A 2,..., A k új nemterminálisokat. Használjuk a következő jelöléseket: T 1 = {a 1, a 2,..., a k }, T 2 = T \ T 1, N 1 = {A 1, A 2,..., A k } és N = N N 1. Használjuk a h : N T N T 2 izomorfizmust, ahol: h(a i ) = A i, ha a i T 1, h(x) = X, ha X N T 2 Értelmezzük a P szabályhalmazt: { P = h(α) h(β) } (α β) P { } A i a i i = 1, 2,..., k Ekkor α = β akkor és csakis akkor, ha h(α) = G G h(β). Innen következik a tételünk, hisz S = u S = h(s) = h(u) = u. G G 4

Példa. Adott a G = ({S, D, E}, {a, b, c, d, e}, P, S), ahol P szabályai: S aebc adbc Db bd Dc Ebccd be Eb ae aad aae P szabályai a következők: S AeBC ADBC DB BD DC EBCCd BE EB AE AAD AAe A a B b C c Milyen szavakat generál ez a nyelvtan! S = AeBC = aebc miatt aebc L(G ). S = ADBC = ABDC = ABEBCCd = AEBBCCd = AAeBBCCd = aaebbccd, tehát aaebbccd L(G ). Feltételezzük, hogy S = A n 1 EB n C(Cd) n 1, n 2. Ezt matematikai indukcióval bizonyíthatjuk. Már láttuk, hogy feltevésünk igaz ha n = 2. S = A n 1 EB n C(Cd) n 1 = A n 2 AADB n C(Cd) n 1 = A n B n DC(Cd) n 1 = A n B n EBCCd(Cd) n 1 = A n EB n+1 CCd(Cd) n 1 = A n EB n+1 C(Cd) n, amit éppen bizonyítani kellett. De S = A n 1 EB n C(Cd) n 1 = A n 2 AAeB n C(Cd) n 1 = a n eb n c(cd) n 1. Tehát a n eb n c(cd) n 1 L(G ), n 1. Ezeket a szavakat G-ben is hasonlóan le lehet vezetni. 5

Kiterjesztett nyelvtanok G = (N, T, P, S) nyelvtan: G = (N, T, P, S) kiterjesztett nyelvtan: 0-s típusú (általános vagy mondatszerkezetű), ha semmilyen megkötést nem teszünk a helyettesítési szabályaira. 1-es típusú (környezetfüggő), ha minden szabálya αaγ αβγ alakú, ahol A N, α, γ (N T ), β (N T ) +. Ezenkívül megengedhető az S ε szabály is, ha S nem szerepel egyetlen szabály jobb oldalán sem. 2-es típusú (környezetfüggetlen), ha minden szabálya A β alakú, ahol A N, β (N T ) +. Ezenkívül megengedhető az S ε szabály is, ha S nem szerepel egyetlen szabály jobb oldalán sem. 3-as típusú (reguláris), ha szabályai A ab vagy A a alakúak, ahol a T és A, B N. Ezenkívül megengedhető az S ε szabály is, ha S nem szerepel egyetlen szabály jobb oldalán sem. 1-es típusú kiterjesztett nyelvtan. Minden szabály α β alakú, ahol α β, kivéve esetleg az S ε szabályt. 2-es típusú kiterjesztett nyelvtan. Minden szabály A β alakú, ahol A N, β (N T ). 3-as típusú kiterjesztett nyelvtan. Minden szabály A ub vagy A u alakú, ahol A, B N, u T. 6

Tétel. Tetszőleges kiterjesztett nyelvtanhoz megadható egy vele ekvivalens, ugyanolyan típusú nyelvtan. Jelöljük G ki -vel a kiterjesztett nyelvtant és G-vel azt a nyelvtant, amelyet minden típusra külön értelmezünk, és amelyről meg fogjuk mutatni, hogy ekvivalens G ki - vel. 1-es típus. Legyen X 1 X 2... X m Y 1 Y 2... Y n (m n) a G ki nyelvtan egy szabálya, amely nem megfelelő alakú. Vegyük fel G szabályhalmazába a következő szabályokat, ahol A 1, A 2,..., A m új változók: X 1 X 2... X m A 1 X 2 X 3... X m A 1 X 2... X m A 1 A 2 X 3... X m... A 1 A 2... A m 1 X m A 1 A 2... A m 1 A m A 1 A 2... A m 1 A m Y 1 A 2... A m 1 A m Y 1 A 2... A m 1 A m Y 1 Y 2... A m 1 A m... Y 1 Y 2... Y m 2 A m 1 A m Y 1 Y 2... Y m 2 Y m 1 A m Y 1 Y 2... Y m 1 A m Y 1 Y 2... Y m 1 Y m Y m+1... Y n. Továbbá, G ki minden megengedett, vagyis γ 1 δγ 2 γ 1 γγ 2 alakú szabályát vegyük át változtatás nélkül G szabályhalmazába. 7

Ezek után a L(G ki ) L(G) tartalmazás abból következik, hogy a G ki minden szabályának az alkalmazását egy, a belőle képzett G-beli szabályok alkalmazásával tudjuk szimulálni. Továbbá, mivel a G szabályai csak a felírt sorrendben alkalmazhatók, nem kapunk újabb szavakat, ezért L(G) L(G ki ) is teljesül. Példa. G ki = (N, T, P, S), ahol N = {S, B, C}, T = {a, b, c} és P a következő szabályokból áll: S asbc abc CB BC ab ab bb bb bc bc cc cc. CB BC nem jó. Ekkor, ha A 1 = A, A 2 = D: CB AB AB AD AD BD BD BC Így az új nyelvtan G = ({S, A, B, C, D}, {a, b, c}, P, S), ahol P elemei: S asbc abc CB AB ab ab AB AD bb bb AD BD bc bc BD BC cc cc. már környezetfüggő. Igazolni lehet, hogy L(G ki ) = L(G) = {a n b n c n n 1}. 8

2-es típus. Legyen G ki = (N, T, P, S). Ki kell küszöbölnünk az A ε alakú szabályokat úgy, hogy csak S ε maradhat, ha S nem szerepel szabály jobb oldalán. Ehhez felépítjük a következő halmazokat: U 0 = {A N (A ε) P } U i = U i 1 {A N (A w) P, w U + i 1 }. Mivel minden i 1 esetében U i 1 U i és U i N, és N véges, k : U k 1 = U k, és legyen ez U. A nemterminális akkor és csakis akkor eleme U-nak, ha A = ε. ( ε L(G ki ), akkor és csakis akkor ha S U.) G szabályait a következőképpen kapjuk G ki szabályaiból: G ki minden olyan A α szabálya esetében melyre α ε, vegyük fel a G szabályai közé ezt a szabályt és mellette azokat is, amelyeket úgy képezünk, hogy α-ból elhagyunk egy vagy több U-beli változót, de csak akkor, ha ezáltal a jobb oldal nem lesz ε. Az így kapott G nyelvtan ugyanazt a nyelvet generálja, mint G ki, kivéve az ε szót, amelyet nem tud generálni. Ha ε L(G ki ), akkor a bizonyítást befejeztük. Ha ε L(G ki ), akkor két esetet különböztetünk meg: 1. Ha az S kezdőszimbólum nem szerepel egyetlen szabály jobb oldalán sem, akkor új szabály G-ben: S ε. 2. Ha viszont S szerepel valamelyik szabály jobb oldalán, akkor S új kezdőszimbólum, és új szabályok G-ben: S S és S ε. 9

Példa Legyen G ki = ({S, B, C}, {a, b, c}, P, S) 2-típusú kiterjesztett nyelvtan, ahol P elemei: S asc B B bb C C Cc ε. Ekkor U 0 = {C}, U 1 = {B, C}, U 3 = {S, B, C} = U. Az új nyelvtan szabályai: S asc ac B B bb b C C Cc c. Mivel az eredeti nyelvtan generálja az üres szót is, és S szerepel szabály jobb oldalán, új kezdőszimbólumot kell bevezetnünk és még két szabályt: S S, S ε. Tehát az eredetivel ekvivalens környezetfüggetlen nyelvtan: G = ({S, S, B, C}, {a, b, c}, P, S ), és a szabályok: S S ε S asc ac B B bb b C C Cc c. Mindkét nyelvtan az {a m b n c p p m 0, n 0} nyelvet generálja. 10

3-as típus. Alkalmazzuk G ki -re a 2-es típus esetében használt eljárást az A ε alakú szabályok kiküszöbölésére. Majd kiküszöböljük az átnevezéseket az Átnevezés-kizárás algoritmus segítségével. Majd minden A a 1 a 2... a n B szabályra, ahol B N {ε}, vegyük fel G szabályai közé a következőket: A a 1 A 1, A 1 a 2 A 2, A n 1 a n B, ahol A 1, A 2,..., A n 1 új változók. Könnyen igazolható, hogy az így megkonstruált G nyelvtan ekvivalens G ki -vel. Példa. G ki = ({S, A, B}, {a, b}, P, S) a vizsgálandó 3-as típusú kiterjesztett nyelvtan, ahol P : S aba A bb B S ε. Először küszöböljük ki a B ε szabályt. Mivel U 0 = U = {B}, a szabályok a következők lesznek: S aba A bb b B S. Ez utóbbi szabályt (amely átnevezés) ki lehet küszöbölni, bevezetve helyette a B aba szabályt. Hátra van még az S aba és B aba szabályok jobb oldalának a feldarabolása. Mivel mindkét szabály jobb oldala ugyanaz, elég egy új változót bevezetnünk, és az S aba helyett az S ac és C ba szabályokat használni. A B aba helyett ekkor elég a B ac szabályt venni. 11

Az új nyelvtan: G = ({S, A, B, C}, {a, b}, P, S), ahol P : S ac A bb b B ac C ba. Be lehet bizonyítani, hogy L(G ki ) = L(G) = {(abb) n n 1}. A Chomsky-féle nyelvosztályok zártsági tulajdonságai reguláris műveletek: egyesítés, szorzat, iteráció Tétel. Az L i (i = 0, 1, 2, 3) nyelvek osztálya zárt a reguláris műveletekre nézve. Kiterjesztett nyelvtanok segítségével végezzük a bizonyítást. Legyenek G 1 = (N 1, T 1, P 1, S 1 ) és G 2 = (N 2, T 2, P 2, S 2 ) i-típusú kiterjesztett nyelvtanok. Feltételezzük, hogy N 1 N 2 =. Egyesítés. Legyen G = (N 1 N 2 {S}, T 1 T 2, P 1 P 2 {S S 1, S S 2 }, S). Könnyű igazolni, hogy L(G ) = L(G 1 ) L(G 2 ). Ha i = 0, 2, 3, akkor abból, hogy G 1 és G 2 i-típusú, következik, hogy G is az lesz. Ha i = 1, akkor, ha valamelyik nyelvtan generálja az üres szót, akkor a G szabályaiból kivesszük a megfelelő (esetleg mindkettő) S k ε (k = 1, 2) szabályt és helyettesítjük S ε szabállyal. Szorzat. Legyen G = (N 1 N 2 {S}, T 1 T 2, P 1 P 2 {S S 1 S 2 }, S). Igazolható, hogy L(G ) = L(G 1 )L(G 2 ). Az i = 0, 2 típusoknál G is ugyanolyan típusú lesz. Az i = 1 típusnál, ha van P 1 -ben S 1 ε szabály, de P 2 -ben nincs S 2 ε szabály, akkor a S 1 ε szabályt helyettesítjük az S S 2 szabállyal. Ha van P 1 -ben S 1 ε szabály és P 2 -ben S 2 ε szabály, akkor ezeket helyettesítjük az S ε szabállyal. 12

Másképp kell megadni a szabályokat a reguláris nyelvtanok (i = 3) esetében, mert S S 1 S 2 nem reguláris szabály. Helyette a következő nyelvtant használjuk: G = (N 1 N 2, T 1 T 2, P 1 P 2, S 1 ), ahol P 1 annyiban különbözik P 1 -től, hogy az A u, u T szabályok helyett A us 2 kerül be P 1-be. Iteráció. Legyen G = (N 1 {S}, T 1, P, S). 2-típusú nyelvtanoknál legyen P = P 1 {S S 1 S, S ε}. Ekkor G is 2-típusú lesz. A 3-típusnál, a szorzathoz hasonlóan átalakítjuk a szabályokat, azaz P = P 1 {S S 1, S ε}, ahol P 1 abban különbözik P 1 -től, hogy minden A u (u T ) alakú szabály helyett A us alakút veszünk, a többit változatlanul hagyjuk. Ekkor G is 3-típusú lesz. i = 0, 1-re nem jók a 2-típusnál megadott szabályok, mert az S S 1 S alkalmazása során megtörténhet, hogy a következő levezetésekhez jutunk: S = S 1 S 1 α, S 1 = α 1 β 1, S 1 = α 2 β 2, ahol β 1 α 2 egy helyettesítési szabály bal oldala. Ekkor az S = α 1 β 1 α 2 β 2 α levezetésben helyettesítve β 1 α 2 -t a neki megfelelő szabály jobb oldalával, olyan szót is generálhatunk, amelyik nincsen benne az iterált nyelvben. Hogy ezt elkerüljük, először feltételezzük, hogy a nyelvtan normálalakú, majd bevezetünk egy új S nemterminálist, tehát a nemterminálisok halmaza most N 1 {S, S }, a szabályok pedig a következők lesznek: P = P 1 {S ε, S S 1 S } {as as a T 1 }. Most már az előbbi levezetéseket csak úgy lehet alkalmazni, hogy az S = S 1 S helyettesítéssel kezdjük, majd eljutunk az S = α 1 β 1 S levezetéshez. Ezt csak akkor tudjuk S helyettesítésével folytatni, ha β 1 utolsó betűje terminális, és miután alkalmaztuk valamelyik as as helyettesítési szabályt. Igazolható, hogy mindegyik típus esetében L(G ) = L(G 1 ). 13