User Tools

Site Tools


mscfordprog

MSc Fordítóprogramok

Tananyag
Vizsgatematika
  • Hagyományos fordítóprogramok
    • Fordítási és futási idő, fordítás lépései, forrás- és tárgykód
    • Lexikális- és szintaktikuselemző-generátorok, környezetfüggetlen nyelvtan és akciókódok
    • Szintaxisfa, szimbólumtábla, szemantikus értékek
    • Assembly, kódgenerálási szabályok
  • Interpretálás
    • Értéktábla vs. szimbólumtábla
    • Interpretálás és szintaxisfa kapcsolata
    • Nyelvi konstrukciók végrahajtási szabályai
    • Bájtkód és virtuális gép fogalma
    • JIT
      • Célja, előnyei, hátrányai
      • Profilozás fogalma, célja a JIT technológiában
      • Hot spot fogalma
  • Kódoptimalizálás
    • Kódoptimalizáció fajtái és céljai
    • Lokális optimlizáció
      • Alapblokk fogalma
      • Azonos kifejezések többszöri kiszámításának elkerülése
        • Gráfépítés alapblokk utasításaiból, címkézés, memóriába írás hatása
        • Gráf leképezése optimalizált kóddá
      • Ablakoptimalizálás
    • Globális optimalizáció
      • Regiszterallokáció
        • Virtuális regiszterek fogalma és ezeket használó kódgenerálási szabályok
        • Regiszterallokáció feladata
        • Ekvivalens gráfszínezési feladat, a feladat bonyolultsága, interferenciagráf
        • Gráfszínezés megoldása, heurisztikák
        • Kromatikus szám és fizikai regiszterszám, memóriában tárolás regiszter helyett
      • Vezérlésfolyam gráf fogalma
      • Cikluskifejtés, erős redukció, elágazásokkal kapcsolatos transzformációk
      • LLVM
        • SSA fogalma, Phi függvény
        • LLVM frontend, backend, transzformációk, Pass manager
        • szerializált formátumok
        • LLVM API, iterátorok, visitor pattern
  • Nyelv-implementációs keretrendszerek
    • DSL, belső és külső DSL fogalma
    • Elvárt IDE szolgáltatások
    • Eclipse technológiák
      • Xtext, Xbase, EMF/Ecore, Xtend lényege és összefüggései
      • Xtext nyelvtan és kiterjesztései, automatizált szintaxisfa-építés
  • Szemétgyűjtés
    • Célja, előnyei és hátrányai
    • Hivatkozásszámlálás módszere és korlátai
    • Jelölő-kisöprő algoritmus, memőriatöredezettség
    • Másoló szemétgyűjtés, szükséges memőriatöbblet
    • Generációs szemétgyűjtés
    • Java által használt megoldások
  • Nyelvbeágyazás
    • Sekély és mély beágyazás; interpretálás és fordítás lehetőségei
    • Haskell technológiák
      • Monádok, GADT, Num osztály szerepe a nyelvbeágyazásban
  • Funkcionális nyelvek végrehajtása
    • Redex, normálforma, legbelső és legkülső redex
    • Lusta kiértékelés, összefüggés a nyelv szemantikájával
    • Term- és gráfátírás
    • Részkifejezések megosztása és tisztaság
mscfordprog.txt · Last modified: 2019/05/29 09:54 by deva