Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 1 Fordítóprogramok 3 Programozó matematikus szak 2003/2004-es tanév II. félév.

Hasonló előadás


Az előadások a következő témára: "Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 1 Fordítóprogramok 3 Programozó matematikus szak 2003/2004-es tanév II. félév."— Előadás másolata:

1 Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 1 Fordítóprogramok 3 Programozó matematikus szak 2003/2004-es tanév II. félév Készítette: dr. Nagy Ferenc I.

2 Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 2 Elemzések Az elemzés alapfeladata: Adjunk olyan algoritmust, amely tetszőleges G=(N, ,P,S) környezetfüggetlen nyelvtan és w  * szó esetén eldönti, hogy w  L(G) teljesül-e! A felülről-lefelé haladó elemzések (top-down algoritmusok): Az S kezdőszimbólumból kiindulva megpróbálunk felépíteni egy olyan derivációs fát, amelynek a határa w. Az alulról-felfelé haladó elemzések (bottom-up algoritmusok): A w-ből kiindulva megpróbálunk felépíteni egy olyan derivációs fát, amelynek a gyökere S és a határa w.

3 Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 3 Felülről-lefelé haladó elemzések Definíció: Alternatívák Egy adott A  N nemterminális lehetséges behelyettesítési szabályainak a jobbolalai. A   1 │  2 │… │  k Definíció: Kiterjesztés Egy nemterminálisnak valamely alternatívájával való helyettesítése a derivációs fában. Definíció: Illesztés Annak ellenőrzése, hogy a kiterjesztésnél alkalmazott alternatívában szereplő terminálisok illeszkednek-e az elemzendő szó megfelelő részéhez. Definíció: Felülről-lefelé haladó elemzés Minden nemterminálisra lerögzítjük az alternatíváinak egy sorrendjét. Egy nemterminális kiterjesztése esetén az alternatívákat ebben a lerögzített sorrendben vizsgáljuk meg, hogy alkalmasak-e a kiterjesztésre. Ha nem találunk megfelelő alternatívát akkor egy backtrack-et (egy szinttel feljebb történő visszalépést) hajtunk végre.

4 Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 4 Felülről-lefelé haladó elemzések Algoritmus inputja: Egy nem balrekurzív G=(N, ,P,S) környezetfüggetlen nyelvtan és egy w=a 1 a 2 …a n, n  0 input szó. A w szót n+1. szimbólumként egy # jel zárja le. A # nem tartozik sem N-hez, sem  -hoz. Algoritmus outputja: Igen jelzés, és a w szónak egy baloldali levezetése, ha w  L(G). Nem jelzés egyébként. Módszer: 1. Minden A  N esetén rögzítsük le az A alternatíváit A   1 │  2 │… │  k alakban. Az A i-dik alternatíváját A i jelöli. 2. Az elemzés (s, i, ,  ) alakú konfigurációk sorozata. 3. A konfigurációk halmazán megadunk egy ├ átmeneti relációt. A rákövetkező konfiguráció meghatározása az alábbiakban megadott felsorolásból történik. 4. A kezdő konfiguráció (q,1, , S). A befejező konfiguráció: (t, n+1, ,  ) w  L(G) akkor és csak akkor, ha (q,1, , S) ├ * (t, n+1, ,  )

5 Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 5 Felülről-lefelé haladó elemzések: a konfiguráció (s, i, ,  ) értelmezése: s az elemzés állapota. q - normál t -elfogadó b - backtrack i pointer az input szóban (1  i  n+1)  jobbvégtetejű verem, az elemzés története backtrack-hez és a baloldali levezetéshez. (Passzív verem)  balvégtetejű verem, a még levezetendő baloldali mondatforma. (Aktív verem)

6 Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 6 Felülről-lefelé haladó elemzések: átmeneti reláció 1. Kiterjesztés: (q, i, , A  ) ├ (q, i,  A 1,  1  ) 2. Input illesztés sikeres: a=a i (q, i, , a  ) ├ (q, i+1,  a,  ) 3. Sikeres elemzés (q, n+1, ,  ) ├ (t, n+1, ,  ) 4. Input illesztés sikertelen: a  a i (q, i, , a  ) ├ (b, i, , a  ) 5. Backtrack az inputban: (b, i,  a,  ) ├ (b, i-1, , a  ) 6. (b, i,  A j,  j  ) esetén a ├ jelet követi I. A-nak van j+1. alternatívája (q, i,  A j+1,  j+1  ) II. i=1, A=S, és S-nek csak j alternatívája van Nincs átmenet semelyik konfigurációba III Egyébként (b, i, , A  )


Letölteni ppt "Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 1 Fordítóprogramok 3 Programozó matematikus szak 2003/2004-es tanév II. félév."

Hasonló előadás


Google Hirdetések