Váš prohlížeč nepodporuje JavaScript nebo je jeho podpora vypnutá. Některé funkce nemusejí být dostupné.
Konstrukce překladačů - NSWI002
Anotace -
--- čeština angličtina
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.
Poslední úprava: T_KSI (07.05.2004)
Lexical and syntax analysis of artificial languages, semantics analysis of procedural programming languages.
Translation of procedural programming languages. Semantics analysis, intermediate code, code generation, optimization.
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 -
--- čeština angličtina
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.
Poslední úprava: T_KSI (07.05.2004)
Compilers of programming languages, compiler structure.
Lexical analysis: Finite automata, automatized constructions, flex.
Macroprocesors.
Top-down parsers - strong and weak LL(k). Extensions to regular right parts.
Bottom-up parsers - LR(k), LALR(k), SLR(k), bison.
Tree representation of input text: Derivation and abstract tree.
Embedding semantics actions to syntax analysis.
Attribute grammars: Definition, classification, simple left-to-right k-pass grammars.
Memory strustures of a compiler of a procedural language: Table types, organization and examples of implementation.
Compiler structure.
The role of intermediate code, the nature of information carried, artefacts contained in intermediate code.
Object representation, variables, temporaries, memory, aliasing.
Procedure representation, control-flow, data-flow, basic blocks, live ranges.
Intermediate code formats: Triples, quadruples, tree, DAG, SSA.
Intermediate code generation, translation of expressions and program structures.
Calling conventions, implementation of languages with nested procedures.
Register allocation.
Key features of modern processors, code generation, scheduling.