PředmětyPředměty(verze: 945)
Předmět, akademický rok 2023/2024
   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 2023 do 2023
Semestr: letní
E-Kredity: 4
Rozsah, examinace: letní s.:2/1, Z+Zk [HT]
Počet míst: neomezen
Minimální obsazenost: neomezen
4EU+: ne
Virtuální mobilita / počet míst pro virtuální mobilitu: ne
Kompetence: critical thinking
Stav předmětu: vyučován
Jazyk výuky: čeština
Způsob výuky: prezenční
Způsob výuky: prezenční
Další informace: https://www.ksi.mff.cuni.cz/teaching/nswi109-web/
Garant: RNDr. David Bednárek, Ph.D.
Třída: Informatika Mgr. - Softwarové systémy
Kategorizace předmětu: Informatika > Softwarové inženýrství
Je prerekvizitou pro: NSWI091
Anotace -
Poslední úprava: RNDr. Filip Zavoral, Ph.D. (22.04.2023)
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. Předmět může být vyučován jednou za 2 roky.
Podmínky zakončení předmětu -
Poslední úprava: RNDr. David Bednárek, Ph.D. (07.06.2019)

Podmínkou pro zakončení předmětu je úspěšné vyřešení písemného zápočtového testu a složení ústní zkoušky.

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