Tárgy: PMB2108L, Fordítóprogramok

Oktató: dr. Vályi Sándor

Meghirdetés féléve : 6

Kreditpont : 3

Heti kontakt óraszám (elm.+gyak.): 3+6 levelező képzési rendben

Félévi követelmény: kollokvium

Előfeltétel (tantárgyi kód) : PMB1203

Tantárgyfelelős neve és beosztása:  Dr. Vályi Sándor f. docens

Évközi követelmények: programírás (lexikális elemzés, szintaktikai elemzés, kódgenerálás) az utolsó gyakorlaton.

Vizsgajegy: kollokvium

Tantárgyi program: A fordítóprogramok kialakulásának rövid, vázlatos történeti áttekintése, bemutatva a főbb történeti lépéseket. Reguláris kifejezések. Speciális problémák; kulcsszavak, standard szavak, az előreolvasás, a szimbólumtábla, direktívák. Hibakezelés. Környezetfüggetlen grammatikák és szintaktikus elemzés, szintaxis és szemantika. A szintaktikus elemzés alapfogalmai, módszereinek általános tulajdonságai. Felülről-lefelé elemzések: teljes visszalépéses elemzés, korlátozott visszalépéses elemzés, LL(k) grammatikák és elemzések. Alulról-felfelé elemzések: A visszalépéses elemzés, operátor-precedencia grammatikák, az egyszerű precedencia grammatikák és elemzések, LR(k) grammatikák és elemzések. A szimbólumtábla: A szimbólumtábla tartalma, műveletek a szimbólumtáblán, verem szimbólumtábla, szintaktikus elemzés és szimbólumkezelés. A szemantikus elemzés: Az akciószimbólumok és a fordítási grammatikák, az elemzővezérelt szemantikus verem, a rekurzív leszállás implicit szemantikus verme, attribútum fordítási grammatikák. Hibakezelés: Hibák, szimptómák, anomáliák, hibajelzés, hibafelfedés, hibajavítás. Memóriagazdálkodás: Statikus- és dinamikus memóriakezelés. Kódgenerálás: Program prológus és epilógus, deklarációk, kifejezések, vezérlő utasok, alprogramok, input és output utasítások fordítása. Kódoptimalizálás: A lokális, a globális és a gépfüggő optimalizálások.

Oktatási segédanyag: Az órán bemutatott és internetről letölthető elektronikus dokumentumok és előadásvázlat. A http://moodle.nyf.hu tartalomkezelő rendszeren keresztül elérhető. A kurzusfelvételi kód az első előadáson kerül közlésre.

Kötelező és ajánlott irodalom:
Csörnyei Zoltán:
Fordítóprogramok, Typotex, Budapest, 2006.
Fülöp Zoltán:
Formális nyelvek és szintaktikus elemzésük, Polygon, Szeged, 2001.
Appel, Palsberg:
Modern Compiler Implementation in Java, Cambridge University Press, 2002. [ajánlott]
T. Parr:
The definitive ANTLR reference. (The Pragmatic Programmer Bookshelf), Raleigh, 2007, (ISBN: 978-09787392-4-9 ).[ajánlott]