A szemantikus elemzés elmélete. Szemantikus elemzés (attribútum fordítási grammatikák) A szemantikus elemzés elmélete. A szemantikus elemzés elmélete

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

Szemantikai elemzés. konzisztenciájának vizsgálata a szemantikai elemzés feladata lesz.

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

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

A fordítóprogramok szerkezete. Kódoptimalizálás. A kódoptimalizálás célja. A szintézis menete valójában. Kódoptimalizálási lépések osztályozása

Tárgymutató. Typotex Kiadó. Csörnyei Zoltán. akonyv 2007/3/9 6:29 page 315 # , >, 205 <, 96, 108, 115 >, 96, 108, 115 =, 96, 108

A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok

A kódgenerálás helye a fordítási folyamatban. Kódgenerálás I. (kifejezések és vezérlési szerkezetek) A kódgenerálás feladata. Ebben az előadásban...

Programozás alapjai. 7. előadás

Miről mire fordít a fordítóprogram? Miről mire fordít az assembler? Mi a különbség a fordítóprogram és az interpreter között? Mi a virtuális gép?

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

Automaták és formális nyelvek

A programozás alapjai 1 Rekurzió

Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat

ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK

Java II. I A Java programozási nyelv alapelemei

\ _/ / / _ \ ' / _` / ' / _ \ / _` (_) (_ (_) (_ \_ \ / _ \,_\ \ / \, / / 2.1. Alapfogalmak. 1. Mirol mire fordít a fordítóprogram?

Eljárások és függvények

Fordítóprogramok beugrókérdések

Dinamikus programozás - Szerelőszalag ütemezése

Formális nyelvek és automaták

Java II. I A Java programozási nyelv alapelemei

A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

Kiterjesztések sek szemantikája

Komputeralgebra rendszerek

Komputeralgebra rendszerek

Programok értelmezése

Relációs adatbázisok tervezése ---2

Adatbázisrendszerek 7. előadás: Az ER modell március 20.

Rekurzió. Dr. Iványi Péter

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:

Adatbázisok elmélete 12. előadás

Absztrakt adatstruktúrák A bináris fák

Atomataelmélet: A Rabin Scott-automata

INFORMATIKA javítókulcs 2016

Algoritmuselmélet 2. előadás

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

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

Relációs algebra 1.rész alapok

A programozás alapjai előadás. [<struktúra változó azonosítók>] ; Dinamikus adatszerkezetek:

Csima Judit október 24.

Formális nyelvek - 9.

sallang avagy Fordítótervezés dióhéjban Sallai Gyula

Felvételi tematika INFORMATIKA

Alprogramok fordítása. Kódgenerálás II. (alprogramok, memóriakezelés) Függvény, eljárás. Alprogramok írása assemblyben

Fordítóprogramok. Aszalós László szeptember 7.

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 4. kurzus. 3. Előadás: A mohó algoritmus

Logika es sz am ıt aselm elet I. r esz Logika Negyedik el oad as 1/26

ZH feladatok megoldásai

Házi feladatok megoldása. Nyelvek használata adatszerkezetek, képek leírására

Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós szeptember 27. Széchenyi István Egyetem, Gy r

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:

Komputeralgebra Rendszerek

Chomsky-féle hierarchia

A C programozási nyelv III. Pointerek és tömbök.

Új típusú döntési fa építés és annak alkalmazása többtényezős döntés területén

Fordítóprogramok (A,C,T szakirány) Feladatgy jtemény

Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.

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

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

A C programozási nyelv III. Pointerek és tömbök.

Általános algoritmustervezési módszerek

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé.

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

6. Gyakorlat. Relációs adatbázis normalizálása

Adatszerkezetek és algoritmusok

Descartes-féle, derékszögű koordináta-rendszer

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

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények. Dr. Bécsi Tamás 6. Előadás

Programozási nyelvek (ADA)

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon

Kétszemélyes játékok Gregorics Tibor Mesterséges intelligencia

Chomsky-féle hierarchia

A C programozási nyelv I. Bevezetés

Gauss elimináció, LU felbontás

A C programozási nyelv I. Bevezetés

Görbe- és felületmodellezés. Szplájnok Felületmodellezés

Adatszerkezetek II. 10. előadás

Pénzügyi algoritmusok

A C programozási nyelv V. Struktúra Dinamikus memóriakezelés

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1

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

Algoritmusok és adatszerkezetek gyakorlat 07

MintaFeladatok 2.ZH Megoldások

NP-teljesség röviden

ADATBÁZISOK ELMÉLETE 5. ELŐADÁS 3/22. Az F formula: ahol A, B attribútumok, c érték (konstans), θ {<, >, =,,, } Példa:

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Csima Judit november 15.

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

2. Rekurzió. = 2P2(n,n) 2 < 2P2(n,n) 1

Programozási segédlet

Kétváltozós függvények differenciálszámítása

Alprogramok, paraméterátadás

Formális nyelvek - 5.

Készítette: Nagy Tibor István

A TANTÁRGY ADATLAPJA

Diszkrét matematika 1. középszint

Átírás:

A szemantikus elemzés elmélete Szemantikus elemzés (attribútum fordítási grammatikák) a nyelvtan szabályait kiegészítjük a szemantikus elemzés tevékenységeivel fordítási grammatikák Fordítóprogramok előadás (A, C, T szakirány) 1 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) A szemantikus elemzés elmélete a nyelvtan szabályait kiegészítjük a szemantikus elemzés tevékenységeivel fordítási grammatikák a nyelvtan szimbólumaihoz szemantikus típusokat (attribútumokat) rendelünk attribútum fordítási grammatikák A szemantikus elemzés elmélete a nyelvtan szabályait kiegészítjük a szemantikus elemzés tevékenységeivel fordítási grammatikák a nyelvtan szimbólumaihoz szemantikus típusokat (attribútumokat) rendelünk attribútum fordítási grammatikák megvizsgáljuk, hogy mikor lehet kiértékelni az attribútumértékeket jól definiált attribútum fordítási grammatikák Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) A szemantikus elemzés elmélete a nyelvtan szabályait kiegészítjük a szemantikus elemzés tevékenységeivel fordítási grammatikák a nyelvtan szimbólumaihoz szemantikus típusokat (attribútumokat) rendelünk attribútum fordítási grammatikák megvizsgáljuk, hogy mikor lehet kiértékelni az attribútumértékeket jól definiált attribútum fordítási grammatikák megszorításokat teszünk a grammatikára, hogy a kiértékelés egyszerűbb legyen particionált attribútum fordítási grammatikák rendezett attribútum fordítási grammatikák Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) A szemantikus elemzés elmélete a nyelvtan szabályait kiegészítjük a szemantikus elemzés tevékenységeivel fordítási grammatikák a nyelvtan szimbólumaihoz szemantikus típusokat (attribútumokat) rendelünk attribútum fordítási grammatikák megvizsgáljuk, hogy mikor lehet kiértékelni az attribútumértékeket jól definiált attribútum fordítási grammatikák megszorításokat teszünk a grammatikára, hogy a kiértékelés egyszerűbb legyen particionált attribútum fordítási grammatikák rendezett attribútum fordítási grammatikák megvizsgáljuk, hogyan illeszthetők ezek a módszerek a tanult szaktikus elemzőkhöz Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák)

Fordítási grammatika Fordítási grammatika A grammatika szabályaiban jelöljük, hogy milyen szemantikus elemzési tevékenységekre van szükség. zeket hívjuk akciószimbólumoknak. A nyelvtanban @ jellel kezdődnek. Az akciószimbólumok által jelölt szemantikus tevékenységeket szemantikus rutinoknak nevezzük. A grammatika szabályaiban jelöljük, hogy milyen szemantikus elemzési tevékenységekre van szükség. zeket hívjuk akciószimbólumoknak. A nyelvtanban @ jellel kezdődnek. Az akciószimbólumok által jelölt szemantikus tevékenységeket szemantikus rutinoknak nevezzük. Az ilyen módon kiegészített grammatikát fordítási grammatikának nevezzük. 3 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 3 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) Példa I. Példa II. Értékadó utasítás Értékadás Változó := @llenőrzés Az @llenőrzés akciószimbólum a következő tevékenységet jelöli: ellenőrizni kell, hogy a változó típusa és a kifejezés típusa megfelelnek-e egymásnak (egyenlők-e, vagy a kifejezés típusa konvertálható-e a változó típusára) ellenőrizni kell, hogy a változónak szabad-e értéket adni (pl. nem változó-e stb.) Változódeklaráció Deklaráció Típus Változó @Feljegyzés A @Feljegyzés akciószimbólum a következő tevékenységet jelöli: ellenőrizni kell, hogy a deklaráció nem ütközik-e egy korábbival (használni kell a szimbólumtáblát) a változó adatait be kell tenni a szimbólumtáblába 4 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 5 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) Attribútumok Attribútumok Hol találják a szemantikus rutinok a szükséges információkat? Hova írják a kiszámolt eredményt? a szemantikus rutinok önállóan is gondoskodhatnak a paraméterátadásukról (például külön vermet kezelhetnek) jobb megoldás: a szemantikus információkat a szaktikus elemző szimbólumaihoz csatolva tároljuk Hol találják a szemantikus rutinok a szükséges információkat? Hova írják a kiszámolt eredményt? a szemantikus rutinok önállóan is gondoskodhatnak a paraméterátadásukról (például külön vermet kezelhetnek) jobb megoldás: a szemantikus információkat a szaktikus elemző szimbólumaihoz csatolva tároljuk A szimbólumokhoz attribútumokat rendelünk. zek jelzik, hogy a szimbólumhoz milyen szemantikus értékek (attribútumértékek) kapcsolódnak. Jelölés: A., y Az A szimbólumhoz az és y attribútumokat rendeljük. 6 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 6 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák)

Példa I. 0.t 1.t.t @Típusllenőrzés.t.t @Konstans A szimbólum különböző előfordulásait indeeléssel különböztetjük meg. Példa I. 0.t 1.t.t @Típusllenőrzés.t.t @Konstans A szimbólum különböző előfordulásait indeeléssel különböztetjük meg. A @Típusllenőrzés által jelzett szemantikus rutin: 0.t := 7 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 7 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) Példa I. 0.t 1.t.t @Típusllenőrzés.t.t @Konstans A szimbólum különböző előfordulásait indeeléssel különböztetjük meg. A @Típusllenőrzés által jelzett szemantikus rutin: 0.t := A @Konstans által jelzett szemantikus rutin:.t :=.t Példa I. 0.t 1.t.t @Típusllenőrzés.t.t @Konstans A szimbólum különböző előfordulásait indeeléssel különböztetjük meg. A @Típusllenőrzés által jelzett szemantikus rutin: 0.t := A @Konstans által jelzett szemantikus rutin:.t :=.t Szemantikus ellenőrzések: 1.t = és.t = teljesülnek-e? 7 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 7 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) A szemantikus információ terjedése I. A szemantikus információ terjedése I. Példaszöveg: 1 Kezdetben a ok típusai ismertek..t :=.t 0.t := llenőrzések: 1.t =?.t =? Példaszöveg: 1 Kezdetben a ok típusai ismertek..t :=.t 0.t := llenőrzések: 1.t =?.t =? 8 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 9 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák)

A szemantikus információ terjedése I. A szemantikus információ terjedése I. Példaszöveg: 1 Példaszöveg: 1 Kezdetben a ok típusai ismertek..t :=.t 0.t := llenőrzések: 1.t =?.t =? Kezdetben a ok típusai ismertek..t :=.t 0.t := llenőrzések: 1.t =?.t =? 10 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 11 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) A szemantikus információ terjedése I. A szemantikus információ terjedése I. Példaszöveg: 1 Kezdetben a ok típusai ismertek..t :=.t 0.t := llenőrzések: 1.t =?.t =? Példaszöveg: 1 Kezdetben a ok típusai ismertek..t :=.t 0.t := llenőrzések: 1.t =?.t =? 1 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 13 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) Példa II. Deklarációs lista Deklaráció típusnév.t Változólista.t @Beállít-1 Változólista.t változó.t Folytatás.t @Beállít- Folytatás 0.t vége vessző változó.t Folytatás 1.t @Beállít-3 Példa II. Deklarációs lista Deklaráció típusnév.t Változólista.t @Beállít-1 Változólista.t változó.t Folytatás.t @Beállít- Folytatás 0.t vége vessző változó.t Folytatás 1.t @Beállít-3 Kezdetben a típusnév.t attribútum értéke ismert egyedül. 14 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 14 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák)

Példa II. Deklarációs lista Deklaráció típusnév.t Változólista.t @Beállít-1 Változólista.t változó.t Folytatás.t @Beállít- Folytatás 0.t vége vessző változó.t Folytatás 1.t @Beállít-3 Kezdetben a típusnév.t attribútum értéke ismert egyedül. @Beállít-1 Példa II. Deklarációs lista Deklaráció típusnév.t Változólista.t @Beállít-1 Változólista.t változó.t Folytatás.t @Beállít- Folytatás 0.t vége vessző változó.t Folytatás 1.t @Beállít-3 Kezdetben a típusnév.t attribútum értéke ismert egyedül. @Beállít-1 @Beállít- változó.t := Változólista.t és bejegyzés a szimbólumtáblába 14 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 14 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) Példa II. A szemantikus információ terjedése II. Deklarációs lista Deklaráció típusnév.t Változólista.t @Beállít-1 Változólista.t változó.t Folytatás.t @Beállít- Folytatás 0.t vége vessző változó.t Folytatás 1.t @Beállít-3 Kezdetben a típusnév.t attribútum értéke ismert egyedül. @Beállít-1 @Beállít- változó.t := Változólista.t és bejegyzés a szimbólumtáblába @Beállít-3 változó.t := Folytatás 0.t és bejegyzés a szimbólumtáblába Folytatás 1.t := Folytatás 0.t Példaszöveg: a,b; Kezdetben a típusnév.t attribútum értéke ismert. változó.t := Változólista.t változó.t := Folytatás 0.t Folytatás 1.t := Folytatás 0.t Deklaráció típusnév Változólista változó Folytatás vessző változó Folytatás vége 14 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 15 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) A szemantikus információ terjedése II. A szemantikus információ terjedése II. Példaszöveg: a,b; Deklaráció Példaszöveg: a,b; Deklaráció Kezdetben a típusnév.t attribútum értéke ismert. változó.t := Változólista.t változó.t := Folytatás 0.t Folytatás 1.t := Folytatás 0.t típusnév Változólista változó Folytatás vessző változó Folytatás Kezdetben a típusnév.t attribútum értéke ismert. változó.t := Változólista.t változó.t := Folytatás 0.t Folytatás 1.t := Folytatás 0.t típusnév Változólista változó Folytatás vessző változó Folytatás vége vége 16 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 17 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák)

A szemantikus információ terjedése II. A szemantikus információ terjedése II. Példaszöveg: a,b; Deklaráció Példaszöveg: a,b; Deklaráció Kezdetben a típusnév.t attribútum értéke ismert. változó.t := Változólista.t változó.t := Folytatás 0.t Folytatás 1.t := Folytatás 0.t típusnév Változólista változó Folytatás vessző változó Folytatás Kezdetben a típusnév.t attribútum értéke ismert. változó.t := Változólista.t változó.t := Folytatás 0.t Folytatás 1.t := Folytatás 0.t típusnév Változólista változó Folytatás vessző változó Folytatás vége vége 18 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 19 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) Attribútum fajták Attribútum fajták Szetizált attribútum: A helyettesítési szabály bal oldalán áll abban a szabályban, amelyikhez az őt kiszámoló szemantikus rutin tartozik. például: szabály: 0.t 1.t.t szemantikus rutin: 0.t := Az információt a szaisfában alulról felfelé közvetíti. Örökölt attribútum: A helyettesítési szabály jobb oldalán áll abban a szabályban, amelyikhez az őt kiszámoló szemantikus rutin tartozik. például: szabály: Változólista.t változó.t Folytatás.t szemantikus rutin: változó.t := Változólista.t Az információt a szaisfában felülről lefelé közvetíti. 0 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 1 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) Attribútum fajták Kitüntetett szetizált attribútum: Olyan attribútumok, amelyek terminális szimbólumokhoz tartoznak és kiszámításukhoz nem használunk fel más attribútumokat. például: szabály:.t.t Az információt általában a leikális elemző szolgáltatja. Attribútum fordítási grammatika (ATG) gészítsük ki egy fordítási grammatika szimbólumait attribútumokkal, a szabályokat feltételekkel, valam rendeljünk szemantikus rutinokat az akciószimbólumokhoz a következő szabályok betartásával: Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 3 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák)

Attribútum fordítási grammatika (ATG) gészítsük ki egy fordítási grammatika szimbólumait attribútumokkal, a szabályokat feltételekkel, valam rendeljünk szemantikus rutinokat az akciószimbólumokhoz a következő szabályok betartásával: gy adott szabályhoz tartozó feltételek csak a szabályban előforduló attribútumoktól függhetnek. (Ha egy feltétel nem teljesül, akkor szemantikus hibát kell jelezni!) Attribútum fordítási grammatika (ATG) gészítsük ki egy fordítási grammatika szimbólumait attribútumokkal, a szabályokat feltételekkel, valam rendeljünk szemantikus rutinokat az akciószimbólumokhoz a következő szabályok betartásával: gy adott szabályhoz tartozó feltételek csak a szabályban előforduló attribútumoktól függhetnek. (Ha egy feltétel nem teljesül, akkor szemantikus hibát kell jelezni!) A szemantikus rutinok csak annak a szabálynak az attribútumait használhatják és számíthatják ki, amelyikhez az őket reprezentáló akciószimbólum tartozik. 3 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 3 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) Attribútum fordítási grammatika (ATG) gészítsük ki egy fordítási grammatika szimbólumait attribútumokkal, a szabályokat feltételekkel, valam rendeljünk szemantikus rutinokat az akciószimbólumokhoz a következő szabályok betartásával: gy adott szabályhoz tartozó feltételek csak a szabályban előforduló attribútumoktól függhetnek. (Ha egy feltétel nem teljesül, akkor szemantikus hibát kell jelezni!) A szemantikus rutinok csak annak a szabálynak az attribútumait használhatják és számíthatják ki, amelyikhez az őket reprezentáló akciószimbólum tartozik. Minden szaisfában minden attribútumértéket pontosan egy szemantikus rutin határozhat meg. Kiszámíthatóság Nem minden attribútum fordítási grammatikában lehet kiszámolni az összes attribútum értékét. Például ha X.a kiszámításához szükség van Y.b-re és Y.b kiszámításához szükség van X.a-ra... Definíció: Jól definiált attribútum fordítási grammatika Olyan attribútum fordítási grammatika, amelyre igaz, hogy a grammatika által definiált nyelv mondataihoz tartozó minden szaisfában minden attribútum értéke egyértelműen kiszámítható. Így attribútum fordítási grammatikát kapunk. 3 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 4 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) Direkt függőségek Direkt függőségek Definíció: Direkt attribútumfüggőségek Ha az Y.b attribútumot kiszámoló szemantikus rutin használja az X.a attribútumot, akkor (X.a, Y.b) egy direkt attribútumfüggőség. zek a függőségek a függőségi gráfban ábrázolhatók. Definíció: Direkt attribútumfüggőségek Ha az Y.b attribútumot kiszámoló szemantikus rutin használja az X.a attribútumot, akkor (X.a, Y.b) egy direkt attribútumfüggőség. zek a függőségek a függőségi gráfban ábrázolhatók. Jól definiált attribútum fordítási grammatikákhoz tartozó szaisfák függőségi gráfjaiban biztosan nincsenek körök! 5 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 5 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák)

gy attribútumkiértékelő algoritmus Nemdeterminisztikus algoritmus: a szaisfa minden attribútumához egy folyamatot rendelünk a folyamat figyeli, hogy az adott attribútum kiértékeléséhez szükséges összes attribútum értékét meghatározta-e már a többi folyamat ha igen, akkor a folyamat kiszámítja az adott attribútum értékét gy attribútumkiértékelő algoritmus Nemdeterminisztikus algoritmus: a szaisfa minden attribútumához egy folyamatot rendelünk a folyamat figyeli, hogy az adott attribútum kiértékeléséhez szükséges összes attribútum értékét meghatározta-e már a többi folyamat ha igen, akkor a folyamat kiszámítja az adott attribútum értékét Ha az attribútum fordítási grammatika jól definiált, akkor ez a program biztosan terminál és kiszámítja az összes attribútumértéket. De ennél hatékonyabb algoritmust szeretnénk... 6 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 6 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) Particionált ATG A kiértékelés sorrendjét általában nem lehet az attribútum-fordítási grammatikából meghatározni. (Függhet a konkrét szaisfától.) Particionált ATG A kiértékelés sorrendjét általában nem lehet az attribútum-fordítási grammatikából meghatározni. (Függhet a konkrét szaisfától.) Particionált attribútum fordítási grammatika: Minden X szimbólum attribútumai szétoszthatók az A X 1, AX,..., AX m X diszjunkt halmazokba (partíciókba) úgy, hogy A X, mx AX mx,... halmazokban csak szetizált attribútumok A X mx 1, AX mx 3,... halmazokban csak örökölt attribútumok vannak, és minden szaisfában az X attribútumai a halmazok növekvő sorrendjében meghatározhatók. Ha ismerjük a partíciókat, akkor csak az attribútum fordítási grammatika szabályai alapján tudunk olyan programot írni, ami a megfelelő sorrendben kiszámítja a szaisfában lévő összes attribútumot. 7 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 7 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) Rendezett ATG Rendezett ATG A partíciókat általában nem könnyű meghatározni. A partíciókat általában nem könnyű meghatározni. Rendezett attribútum fordítási grammatika: egyszerű algoritmussal meghatározhatók a partíciók. a halmazokat fordított sorrendben határozzuk meg felváltva szetiszált és örökölt attribútumokat teszünk a halmazokba (utolsóba szetizált, utolsó előttibe örökölt, stb.) mindegyikbe azokat az attribútumokat tesszük, amikre csak olyan attribútumok kiszámításához van szükség, amelyeket már beosztottunk valamelyik halmazba Ha ezzel az algoritmussal megfelelő partíciókat kapunk, akkor hívjuk a nyelvtant rendezett attribútum fordítási grammatikának. 8 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 8 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák)

S-attribútum fordítási grammatikák Olyan attribútum fordítási grammatika, amelyben kizárólag szetizált attribútumok vannak. A szemantikus információ a szaisfában a levelektől a gyökér felé terjed. Jól illeszthető az alulról felfelé elemzésekhez! léptetés kitüntetett szetizált attribútum: típusa 9 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 30 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) redukció.t.t szabály alapján szemantikus rutin:.t :=.t léptetés 31 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 3 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) léptetés kitüntetett szetizált attribútum: változó típusa redukció.t változó.t szabály alapján szemantikus rutin:.t := változó.t 33 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 34 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák)

= redukció 0.t 1.t.t szabály alapján szemantikus rutin: 0.t := ellenőrzés: 1.t = és.t =? léptetés 35 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 36 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) = 5 = 5 léptetés kitüntetett szetizált attribútum: típusa redukció.t.t szabály alapján szemantikus rutin:.t :=.t 37 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 38 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) bool = 5 redukció esetén a szabály jobb oldalának attribútumértékei már ismertek (hiszen nincsenek örökölt attribútumok) a szabályhoz rendelt szemantikus rutin feladata a baloldalon álló szimbólum szetizált attribútumainak meghatározása redukció 0.t 1.t =.t szabály alapján szemantikus rutin: 0.t := bool ellenőrzés: 1.t =.t? 39 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 40 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák)

Örökölt attribútumok és az alulról felfelé elemzés L-attribútum fordítási grammatikák esetenként a nyelvtan átalakítása segíthet kiküszöbölni az örökölt attribútumokat szimbólumtáblában vagy más globális változóban tárolható az örökítendő attribútumérték eltárolható az a részfa, ahol örökölt attribútumok vannak; mikor meghatározható az értékük, akkor be kell járni a részfát és pótolni a hiányzó attribútumokat; ez a részfa gyökeréhez tartozó szabály szemantikus rutinjában implementálható Olyan attribútum fordítási grammatika, amelyben minden A X 1 X... X n szabályban az attribútumértékek az alábbi sorrendben meghatározhatók: A örökölt attribútumai X 1 örökölt attribútumai X 1 szetizált attribútumai X örökölt attribútumai X szetizált attribútumai... X n örökölt attribútumai X n szetizált attribútumai A szetizált attribútumai Jól illeszkedik a felülről lefelé elemzésekhez. 41 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 4 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) L-ATG és a felülről lefelé elemzés L-ATG és a felülről lefelé elemzés D D A D-ből indulva felülről lefelé levezetünk egy deklarációt D-nek most nincs örökölt attribútuma D típusnév.d A.d szabály alkalmazása kitüntetett szetizált attribútum: a típusnév által azonosított típus 43 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 44 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) L-ATG és a felülről lefelé elemzés L-ATG és a felülről lefelé elemzés D A D A = szemantikus rutin: A.d :=típusnév.d ez egy örökölt attribútum A.d változó.d =.t szabály alkalmazása szemantikus rutin: változó.d := A.d (örökölt) 45 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 46 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák)

L-ATG és a felülről lefelé elemzés L-ATG és a felülről lefelé elemzés D A D A = 5 = 5.t.t szabály alkalmazása kitüntetett szetizált attribútum: típusa szemantikus rutin:.t :=.t (szetizált) ellenőrzés:.t = A.d? 47 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) 48 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák) L-ATG és a rekurzív leszállás a A X 1... X n szabályhoz tartozó eljárás formális paraméterei legyenek az A örökölt attribútumai visszatérési értéke az A szetizált attribútumai az eljárások végrehajtása épp az L-ATG attribútumkiértékelési sorrendjét adja 49 Fordítóprogramok előadás (A, C, T szakirány) Szemantikus elemzés (attribútum fordítási grammatikák)