User Tools

Site Tools


mscfordprog

Differences

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

Link to this comparison view

Next revision
Previous revision
mscfordprog [2019/02/03 12:53]
deva created
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]]
-  * Kódoptimalizáció: [[https://​www.cs.cmu.edu/​afs/​cs/​academic/​class/​15745-s02/​www/​lectures/​lect2.pdf|külső segédanyag]] +  * 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]] 
-  * Regiszterallokáció +  * 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: 2. példaszoftver +  * Xtext: ​[[https://​github.com/​djnemeth/​sm/​|2. példaszoftver]] 
-    * [[mscfordprog:​xtext|gyakorlati feladatok]]+    * [[mscfordprog:​xtextgyak|gyakorlati feladatok]] 
 +    * [[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ő]] 
 +    * [[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 (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.1549194807.txt.gz · Last modified: 2019/02/03 12:53 by deva