User Tools

Site Tools


mscfordprog

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
mscfordprog [2019/03/06 09:16]
deva
mscfordprog [2019/05/29 09:54] (current)
deva
Line 5: Line 5:
   * Flex, Bison, C++: [[https://​github.com/​devaigergely81/​flex-bison-example|1. példaszoftver]]   * Flex, Bison, C++: [[https://​github.com/​devaigergely81/​flex-bison-example|1. példaszoftver]]
     * [[mscfordprog:​flexbisongyak|gyakorlati feladatok]]     * [[mscfordprog:​flexbisongyak|gyakorlati feladatok]]
-  * Regiszterallokáció:​ [[https://​www.cs.cmu.edu/​afs/​cs/​academic/​class/​15745-s02/​www/​lectures/​lect-regalloc.pdf|külső segédanyag]], [[https://​hu.wikipedia.org/​wiki/​Gr%C3%A1fok_sz%C3%ADnez%C3%A9se|gráfszínezés]],​ [[mscfordprog:​regalloc|példa]] +  * Regiszterallokáció:​ [[https://​www.cs.cmu.edu/​afs/​cs/​academic/​class/​15745-s02/​www/​lectures/​lect-regalloc.pdf|diasor]], [[https://​hu.wikipedia.org/​wiki/​Gr%C3%A1fok_sz%C3%ADnez%C3%A9se|gráfszínezés]],​ [[mscfordprog:​regalloc|példa]] 
-  * Kódoptimalizáció:​ [[https://​deva.web.elte.hu/​mscfordprog/​kodopt.pdf|segédanyag]] [[https://​www.cs.cmu.edu/​afs/​cs/​academic/​class/​15745-s02/​www/​lectures/​lect3.pdf|külső segédanyag]] [[https://​gcc.gnu.org/​onlinedocs/​gcc/​Optimize-Options.html|gcc példák]]+  * Kódoptimalizáció:​ [[https://​deva.web.elte.hu/​mscfordprog/​kodopt.pdf|diasor]] [[https://​www.cs.cmu.edu/​afs/​cs/​academic/​class/​15745-s02/​www/​lectures/​lect3.pdf|gráfépítés]] [[https://​gcc.gnu.org/​onlinedocs/​gcc/​Optimize-Options.html|gcc példák]]
   * Xtext: [[https://​github.com/​djnemeth/​sm/​|2. példaszoftver]]   * Xtext: [[https://​github.com/​djnemeth/​sm/​|2. példaszoftver]]
     * [[mscfordprog:​xtextgyak|gyakorlati feladatok]]     * [[mscfordprog:​xtextgyak|gyakorlati feladatok]]
-    * [[https://​www.slideshare.net/​szarnekow/​textual-modeling-framework-xtext|Xtext bevezető ​(külső segédanyag)]] +    * [[https://​www.slideshare.net/​szarnekow/​textual-modeling-framework-xtext|Xtext bevezető]] 
-    * [[https://​www.slideshare.net/​yashskullfox/​xbase-implementing-specific-domain-language-for-java|Xbase és Xtend bevezető ​(külső segédanyag)]]+    * [[https://​www.slideshare.net/​yashskullfox/​xbase-implementing-specific-domain-language-for-java|Xbase és Xtend bevezető]]
     * [[https://​www.eclipse.org/​xtend/​documentation/​202_xtend_classes_members.html|Xtend dokumentáció]]     * [[https://​www.eclipse.org/​xtend/​documentation/​202_xtend_classes_members.html|Xtend dokumentáció]]
-    * [[https://​www.eclipse.org/​modeling/​emf/​docs/​presentations/​EclipseCon/​EclipseCon2004_Rapid_Development_Using_EMF.pdf|EMF (külső segédanyag)]]+    * [[https://​www.eclipse.org/​modeling/​emf/​docs/​presentations/​EclipseCon/​EclipseCon2004_Rapid_Development_Using_EMF.pdf|EMF (kiegészítő anyag érdeklődőknek)]]
   * Szemétgyűjtő algoritmusok   * Szemétgyűjtő algoritmusok
-  ​Bájtkód +    ​[[https://​www.slideshare.net/​achinth/​garbage-collection-algorithms|diasor]] 
-  * JIT+    * [[https://​www3.nd.edu/​~dthain/​courses/​cse40243/​spring2006/​gc-survey.pdf|cikk]] 
 +    * [[http://​java.ociweb.com/​mark/​other-presentations/​JavaGC.pdf|Java szemétgyűjtés (1-18. slideok)]] 
 +  * Just In Time Compilation (JIT) 
 +    * [[http://​hpac.rwth-aachen.de/​teaching/​sem-accg-16/​slides/​04.Khan-JIT.pdf|diasor]] ([[https://​www.geeksforgeeks.org/​tail-call-elimination/​|tail call elimination]],​ [[https://​marcofoco.com/​the-power-of-devirtualization/​|devirtualization]],​ [[http://​wiki.c2.com/?​VarargsCollectionFactoryMethod)|Varargs Collection Factory Method]], [[https://​en.wikipedia.org/​wiki/​Loop_inversion|loop inversion]],​ [[https://​books.google.hu/​books?​id=5gVqCQAAQBAJ&​pg=PA294&​lpg=PA294&​dq=loop+versioning&​source=bl&​ots=tGeWmQnrSD&​sig=ACfU3U26po62tVoklsl_jMXG9N9BoNhuKg&​hl=hu&​sa=X&​ved=2ahUKEwjel7yai4_hAhXykosKHYXsAq8Q6AEwBnoECAcQAQ#​v=onepage&​q=loop%20versioning&​f=false|loop versioning]],​ [[https://​en.wikipedia.org/​wiki/​Partial_redundancy_elimination|partial redundancy elimination]],​ [[https://​arxiv.org/​pdf/​1711.03050.pdf|dynamic deoptimization]])
   * Nyelvbeágyazás:​ [[https://​github.com/​devaigergely81/​haskell-edsl-example|3. példaszoftver]]   * Nyelvbeágyazás:​ [[https://​github.com/​devaigergely81/​haskell-edsl-example|3. példaszoftver]]
     * [[mscfordprog:​edslgyak|gyakorlati feladatok]]     * [[mscfordprog:​edslgyak|gyakorlati feladatok]]
-  * ...+  * Gráfredukció 
 +    * [[https://​en.wikibooks.org/​wiki/​Haskell/​Graph_reduction|segédanyag]] 
 +    * [[https://​crypto.stanford.edu/​~blynn/​haskell/​grr|példák]] 
 +    * [[https://​wiki.haskell.org/​Performance/​Strictness|strictness analysis]] 
 +  * [[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 
mscfordprog.1551860175.txt.gz · Last modified: 2019/03/06 09:16 by deva