K-INFO
HU
EN
Login

Compilers in Action

Fordítóprogramok a gyakorlatban
A tantárgyleírás hatályossága
Hatályosság kezdete:
2026. March 21.
Hatályosság vége:
Subject name (Hungarian, English)
Fordítóprogramok a gyakorlatban
Compilers in Action
Subject code BMEVIAUAV33
Subject type
Training Level
Course types and hours (weekly/semester)
Course type lecture tutorial laboratory
hours (weekly) 0 0 2
type (linked/independent) autonomous course
Assessment type félévközi érdemjegy
Credits 2
Subject coordinator
DR. Mezei Gergely
position: egyetemi docens
Responsible department
Automatizálási és Alkalmazott Informatikai Tanszék
Faculty Villamosmérnöki és Informatikai Kar
Subject website
Primary curriculum type
Direct prerequisites – Strong prerequisite none
Direct prerequisites – Weak prerequisite none
Direct prerequisites – Parallel prerequisite none
Direct prerequisites – Milestone prerequisite none
Direct prerequisites – Exclusion none

Objectives

Programme

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

A tantárgy célja, hogy gyakorlatorientált módon bemutassa a fordítóprogramok (compilerek) készítésének főbb lépéseit. A tárgy konkrét technológiák segítségével mutatja be, hogy a forrásnyelvű szöveget hogyan, milyen módon, milyen lépéseken keresztül lehet átalakítani egy jól ismert programozási nyelv programjává, vagy közvetlenül bináris állománnyá. 

Learning outcomes

Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:

Knowledge

No learning outcomes recorded.

Skills

No learning outcomes recorded.

Attitudes

No learning outcomes recorded.

Autonomy and responsibility

No learning outcomes recorded.

Oktatási módszertan

Előadás laborban. Az előadó az elmélet ismertetését követően a gyakorlatban is megmutatja a hallgatóknak az adott témakört. A hallgatók számítógépen követik az elhangzottakat. 

Tanulástámogató anyagok

Not provided.

Recommended preliminary knowledge for completing the subject

Knowledge type competencies
(azon előzetes ismeretek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
Formális nyelvek és automataelmélet alapjai
Skill type competencies
(azon előzetes képességek és készségek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
nincs
Recommended (non-compulsory) preliminary competencies
(azon ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák összessége, amelyek jelentősen hozzájárulnak a tantárgy eredményes teljesítéséhez)
Formális nyelvek és automataelmélet alapjai
General rules
Követelmények: - Félév közben egy ZH megírása kötelező. A ZH-n 100 pont érhető el. Az osztályzat kialakítása a pontszám alapján a következőképpen alakul ki: 0          - 49 pont: elégtelen 50        - 59 pont: elégséges 60        - 74 pont: közepes 75        - 84 pont: jó 85        -      pont: jeles - Opcionálisan vállalható nagy házi feladat a félév során. A beadás határideje az utolsó szorgalmi időszakbeli óra. A házi feladatra maximálisan 10 pont kapható, ami a ZH pontszámához hozzáadódik a jegy kialakításakor, de az eredetileg 50 pont alatti ZH-k értékelése elégtelen marad. Pótlási lehetőségek: A zárthelyi pótlására lehetőség van egyszer a szorgalmi időszakban, illetve egyszer a pótlási időszakban a TVSZ szerint. Az opcionális házifeladat nem pótolható.
Assessment methods
In-term assessments

No detailed assessments provided.

Weight of in-term assessments

No weights provided.

Exam-period assessments

No detailed assessments provided.

Weight of exam elements

No weights provided.

Grade calculation

No grade thresholds provided.

Attendance requirements

No attendance requirements provided.

Rules for retake and resubmission

Not provided.

Short description

Not provided.

Detailed description

Not provided.

Recommended courses

Not provided.

Workload to complete the subject

No workload breakdown provided.

Validity of subject requirements
Requirements valid from:
Requirements valid until:
Curriculum placement

No curriculum placements recorded for this subject version.