PředmětyPředměty(verze: 806)
Předmět, akademický rok 2017/2018
   Přihlásit přes CAS
Principy překladačů - NSWI098
Anglický název: Compiler Principles
Zajišťuje: Katedra softwarového inženýrství (32-KSI)
Fakulta: Matematicko-fyzikální fakulta
Platnost: od 2016
Semestr: zimní
E-Kredity: 6
Rozsah, examinace: zimní s.:2/2 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://www.ksi.mff.cuni.cz/lectures/NSWI098/html/index.html
Garant: RNDr. Jakub Yaghob, Ph.D.
Třída: Informatika Bc.
Informatika Mgr. - Softwarové systémy
Kategorizace předmětu: Informatika > Softwarové inženýrství
Anotace -
Poslední úprava: T_KSI (14.03.2011)

Úvodní kurz překladačů se soustřeďuje zejména na teoretické i praktické základy konstrukce přední části překladače. Součástí předmětu je i cvičení zaměřující se na základy práce s nástroji pro konstrukci překladačů. Po absolvování tohoto kurzu bude posluchač schopen sestrojit vlastní překladač do mezikódu nebo jiného jazyka. Pro absolvování předmětu je nezbytná detailní znalost látky pokryté předmětem TIN071 Automaty a gramatiky.
Literatura
Poslední úprava: T_KSI (24.05.2005)

Aho, Sethi, Ullman: Compilers - Principles, Techniques and Tools, Addison-Wesley 1986

Chytil M.: Automaty a gramatiky, SNTL 1984

Melichar B.: Konstrukce překladačů. ČVUT 1999

Grune, Bal, Jacobs, Langendoen: Modern Compiler Design, Wiley 2000

Sylabus -
Poslední úprava: RNDr. Jakub Yaghob, Ph.D. (22.04.2016)

  • Typická struktura překladače procedurálního jazyka
  • Mezikódy; vnitřní reprezentace překládaného programu
  • Lexikální a syntaktická analýza; analýza shora dolu: LL(k) gramatiky, implementace rekurzivním sestupem; analýza zdola nahoru: LR(1) gramatiky a analyzátory, upravené konstrukce SLR(1), LALR(1); Flex, Bison
  • Sémantická analýza; vazba na syntaktickou analýzu; atributy; základní úkoly sémantické analýzy procedurálních jazyků
  • Generování mezikódu
  • Vysokoúrovňové optimalizace, např. vyhodnocování konstantních podvýrazů, eliminace společných podvýrazů, algebraické úpravy; základní blok, control flow, data flow, analýza doby životnosti, další techniky analýzy
  • Moderní architektury procesorů a jejich efekt na překladače; základní bloky generátoru kódu
  • Interpretované jazyky
  • Běhová podpora; organizace paměti procedurálních jazyků

Vstupní požadavky -
Poslední úprava: RNDr. Jakub Yaghob, Ph.D. (01.03.2017)

Součástí výuky jsou praktické domácí úlohy v jazyce C++. Postačí znalosti pokryté předmětem NPRG041, dokonce stačí i souběžné studium s tímto předmětem.

 
Univerzita Karlova | Informační systém UK