Fordítóprogramok a gyakorlatban
A tantárgyleírás hatályossága
| Tantárgy neve (magyarul, angolul) |
Fordítóprogramok a gyakorlatban
Compilers in Action
|
||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Tantárgykód | BMEVIAUAV33 | ||||||||||||
| Tantárgyjelleg | — | ||||||||||||
| Képzési szint | — | ||||||||||||
| Kurzustípusok és óraszámok (heti/féléves) |
|
||||||||||||
| Tanulmányi teljesítmény/értékelés típusa | félévközi érdemjegy | ||||||||||||
| Tantárgy kreditértéke | 2 | ||||||||||||
| Tantárgyfelelős |
DR. Mezei Gergely
beosztás: egyetemi docens
elérhetőség:
mezei.gergely@vik.bme.hu
|
||||||||||||
| Tantárgyat gondozó oktatási szervezeti egység |
Automatizálási és Alkalmazott Informatikai Tanszék
|
||||||||||||
| Kar | Villamosmérnöki és Informatikai Kar | ||||||||||||
| Tantárgy weboldala | — | ||||||||||||
| Tantárgy elsődleges mintatantervi jellege | — | ||||||||||||
| Közvetlen előkövetelmények – Erős előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Gyenge előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Párhuzamos előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Mérföldkő előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Kizáró feltétel | nincs |
Célkitűzés
A hallgatók megismerkedhetnek a fordítóprogramok (compilerek)
elvi és gyakorlati felépítésével, a fordítás lépéseivel és az egyes lépések
elvégzéséhez készített népszerű segédalkalmazásokkal. Megismerik a
tokenizálást, a szintaxisfa felépítését, kiegészítését, majd optimalizálását,
végül a kód generálásának folyamatát is. A klasszikus fordítóalkalmazások mellett
sor kerül a modern szintaxisfa manipuláló eszközök (pl. Roslyn), módszerek
bemutatására is.
|
Hét |
A tantárgy tematikája |
|
1. |
Bevezetés,
tematika, motiváció, általános programozási nyelvek és szakterületi nyelvek, a
fordítás menete, nyelvosztályok |
|
2. |
Lex,
Bison, Yacc, ANTLR - lexer és parser, szintaxisfa építés |
|
3. |
ANTLR
- szintaxisfa építés II. |
|
4. |
Az
Eclipse pluginkezelésének gyors áttekintése, EMF alapok, Xtext bevezetés,
metamodell-inferencia, grammar példák |
|
5. |
Saját Xtext projekt készítése, kódformázás testreszabása,
content assist testreszabása, hibajelzések csatolása a forráskódhoz,
kódgenerálás |
|
6. |
Szemantikai
elemzés - változók, scope kezelés |
|
7. |
Szemantikai elemzés - típusok (ellenőrzés, kompatibilitás,
konverzió) |
|
8. |
Kódgenerálás és kódoptimalizálás alapok (data flow
analízis, stb.), kódobfuszkálás |
|
9. |
Roslyn
általános felhasználása |
|
10. |
Roslyn
speciális felhasználási lehetőségek: C# diagnostic analyzer, C# code fix C#
compiler kibővítése, C# Scripting API |
|
11. |
Microsoft
IL alapok, IL kód futtatása, működése; Futásidejű kódgenerálás (teljes API) |
|
12. |
Futásidejű
kódgenerálás (lightweigh API), IL disassembler; speciális IL emissziós
feladatok |
|
13. |
Mono.Cecil,
kódinjektálás. Microsoft CodeDOM használata |
|
14. |
Zárthelyi dolgozat |
Tanulmányi eredmények
Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:
Tudás
Nincsenek rögzített tanulási eredmények.
Képességek
Nincsenek rögzített tanulási eredmények.
Attitűd
Nincsenek rögzített tanulási eredmények.
Autonómia és felelősség
Nincsenek rögzített tanulási eredmények.
Oktatási módszertan
Tanulástámogató anyagok
Online források
A tantárgy teljesítéséhez ajánlott előzetes ismeretek
Általános szabályok
Teljesítményértékelési módszerek
Szorgalmi időszakban végzett teljesítményértékelések részletes leírása
Nincs megadva részletes értékelés.
Szorgalmi időszakban végzett teljesítményértékelések részaránya
Nincs megadva részarány.
Vizsgaidőszakban végzett teljesítményértékelések részletes leírása
Nincs megadva részletes értékelés.
Vizsgarészek részaránya
Nincs megadva részarány.
Érdemjegy megállapítása
Nincs megadva érdemjegy határ.
Jelenléti és részvételi követelmények
Nincs megadva jelenléti követelmény.
Javítás, ismétlés és pótlás különös szabályai
Nincs megadva.
Rövid leírás
Nincs megadva.
Részletes leírás
Nincs megadva.
Ajánlott tantárgyak
Nincs megadva.
A tantárgy elvégzéséhez szükséges tanulmányi munka
Nincs megadva munkaidő bontás.
Tantárgykövetelmények hatályossága
Tantervi elhelyezés
Nincsenek rögzített tantervi elhelyezések ehhez a tárgyverzióhoz.