PředmětyPředměty(verze: 845)
Předmět, akademický rok 2018/2019
   Přihlásit přes CAS
Konstrukce překladačů - NSWI109
Anglický název: Compiler Design
Zajišťuje: Katedra softwarového inženýrství (32-KSI)
Fakulta: Matematicko-fyzikální fakulta
Platnost: od 2015
Semestr: letní
E-Kredity: 4
Rozsah, examinace: letní s.:2/1 Z+Zk [hodiny/týden]
Počet míst: neomezen
Minimální obsazenost: neomezen
Stav předmětu: vyučován
Jazyk výuky: čeština
Způsob výuky: prezenční
Další informace: http://data.ksi.ms.mff.cuni.cz/svn/NSWI109pub/html/nswi109.html
Garant: RNDr. David Bednárek, Ph.D.
Třída: Informatika Mgr. - Softwarové systémy
Kategorizace předmětu: Informatika > Softwarové inženýrství
Anotace -
Poslední úprava: T_KSI (13.05.2012)
Syntetické části překladačů procedurálních programovacích jazyků. Architektura, mezikódy, základní algoritmy generování kódu a optimalizace. Vlastnosti moderních procesorů. Spolupráce programátora a překladače při optimalizaci kódu.
Literatura
Poslední úprava: T_KSI (23.05.2008)

Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, Compilers: Principles, Techniques, and Tools (2nd Edition), Addison Wesley (2006), ISBN 978-0321486813

Steven Muchnick: Advanced Compiler Design and Implementation, Morgan Kaufmann (1997) , ISBN 978-1558603202

Randy Allen, Ken Kennedy, Optimizing Compilers for Modern Architectures: A Dependence-based Approach, Morgan Kaufmann (2001), ISBN: 978-1558602861

D. Grune, H. Bal, C. Jacobs, K. Langendoen, Modern Compiler Design, Wiley (2000), ISBN 978-0471976974

Sylabus -
Poslední úprava: RNDr. David Bednárek, Ph.D. (20.09.2013)
  • Architektura překladače, mezikódy vysoké, střední a nízké úrovně.
  • Procedury, základní bloky, tok řízení, tok dat.
  • Rozsah platnosti proměnných, přidělování registrů a související algoritmy.
  • Analýza aliasů a závislosti, dependence, antidependence a související algoritmy.
  • Paralelismus na úrovni instrukcí (ILP) a jeho využití překladačem, latence, propustnost.
  • List scheduling, trace scheduling, software pipelining, modulo scheduling.
  • Vektorizace (SIMD) a hrubozrný paralelismus, transformace zlepšující paralelizovatelnost, strip mining, blocking.
  • Optimalizace pro paměťovou hierarchii.
  • Přehled dalších metod optimalizace kódu.
 
Univerzita Karlova | Informační systém UK