Konstrukce překladačů - NSWI002
Anglický název: Compiler Design
Zajišťuje: Katedra softwarového inženýrství (32-KSI)
Fakulta: Matematicko-fyzikální fakulta
Platnost: od 2005
Semestr: zimní
E-Kredity: 9
Rozsah, examinace: zimní s.:2/2, Z [HT]
letní s.:2/0, Zk [HT]
Počet míst: neomezen
Minimální obsazenost: neomezen
Virtuální mobilita / počet míst pro virtuální mobilitu: ne
Stav předmětu: zrušen
Jazyk výuky: čeština
Způsob výuky: prezenční
Způsob výuky: prezenční
Další informace: http://ulita.ms.mff.cuni.cz/mff/sylaby/kpr.html
Garant: RNDr. David Bednárek, Ph.D.
Třída: Informatika Mgr. - Softwarové systémy
Kategorizace předmětu: Informatika > Softwarové inženýrství
Prerekvizity : NSWI003, NTIN013
Výsledky anket   Termíny zkoušek   Rozvrh   Nástěnka   
Anotace -
Poslední úprava: T_KSI (26.04.2005)
Komplexní kurs teorie překladu a konstrukce kompilátorů programovacích jazyků. Lexikální a syntaktická analýza umělých jazyků, semantická analýza procedurálních programovacích jazyků. Překlad procedurálních programovacích jazyků. Sémantická analýza, mezikódy, generování kódu, optimalizace. Ve šk.r. 2005/06 bude probíhat poslední rok výuky tohoto předmětu, který je určen pro dobíhající mgr. studium. Proto by si ho měli v tomto roce zapsat všichni, kdo mají tento předmět uvedený v povinných nebo doporučených předmětech pro státní závěrečné zkoušky dobíhajícího studia.
Literatura
Poslední úprava: T_KSI (06.05.2004)

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

Deransart, Jourdan, Lorho: Attribute grammars: definitions, systems and bibliography, Springer 1998

Muchnick, S.: Advanced Compiler Design and Implementation, Morgan Kaufmann 1997

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

Sylabus -
Poslední úprava: T_KSI (06.05.2004)

Překladače programovacích jazyků, struktura překladače.

Lexikální analýza: Konečné automaty, automatizované konstrukce, flex.

Makroprocesory.

Syntaktická analýza shora - silná a slabá LL(k). Rozšíření na regulární pravé strany.

Syntaktická analýza zdola - LR(k), LALR(k), SLR(k), bison.

Reprezentace textu stromem: Derivační a významový tvar stromu.

Zapojení semantických akcí do syntaktické analýzy.

Atributové gramatiky: Definice, klasifikace, jednoduše zleva-doprava k-průchodové gramatiky.

Paměťové struktury překladače procedurálního jazyka: Potřebné druhy tabulek, organizace a některé implementace.

Struktura překladače.

Účel mezikódu, charakter obsažených informací, artefakty obsažené v mezikódu.

Reprezentace objektů, proměnné, pomocné proměnné, paměť, aliasing.

Reprezentace procedury, control-flow, data-flow, základní bloky, rozsah platnosti proměnných.

Tvar mezikódu: Trojice, čtveřice, strom, DAG, SSA.

Generování mezikódu, překlad výrazů a programových struktur.

Volací konvence, implementace jazyků s vnořenými procedurami.

Alokace registrů.

Klíčové vlastnosti moderních procesorů, generování kódu, scheduling.