This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
mscfordprog [2019/03/29 11:40] deva |
mscfordprog [2019/05/29 09:54] (current) deva |
||
---|---|---|---|
Line 24: | Line 24: | ||
* [[https://en.wikibooks.org/wiki/Haskell/Graph_reduction|segédanyag]] | * [[https://en.wikibooks.org/wiki/Haskell/Graph_reduction|segédanyag]] | ||
* [[https://crypto.stanford.edu/~blynn/haskell/grr|példák]] | * [[https://crypto.stanford.edu/~blynn/haskell/grr|példák]] | ||
- | * Bájtkód | + | * [[https://wiki.haskell.org/Performance/Strictness|strictness analysis]] |
- | * LLVM | + | * [[http://www.cs.cmu.edu/afs/cs/academic/class/15745-s13/public/lectures/L13-SSA-Concepts-1up.pdf|SSA]], [[http://www.cs.cmu.edu/afs/cs/academic/class/15745-s15/public/lectures/L6-LLVM2-1up.pdf|LLVM]] |
+ | |||
+ | == 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 |