|
|
|
||
Last update: T_KSI (07.05.2004)
|
|
||
Last update: 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 |
|
||
Last update: 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. |