Universität Bremen  
  FB 3  
  Group BKB > Teaching > CC(Cam) > Deutsch
English
 

Contents of the Course

 
Only very few computer scientists will ever implement a compiler for a programming language in their professional life. However, the models, theories and algorithms for compiler construction are useful for software development in general, and many implementation tasks will require to implement small special purpose languages

This course focusses on all that what 30.01.-10.02. 2012 computer scientist should know about the implementation of programming languages.

Aims

  • Understanding the way compilers work: How are data structures, variable, and objects represented in storage? How is the code organized for evaluating expressions, executing commands, and calling methods?
  • Mastering fundamental techniques for lexical, syntactical, and contextual analysis of programming languages.

Contents

  • Introduction: Machines, interpreters, compilers, T diagrams, bootstrapping, phase structure of compilers. Chomsky grammar hierarchy.
  • Lexical Analysis (scanning): regular expressions and definitions, finite automata, implementation of identifier tables, lex scanner grnerator.
  • Syntax Analysis (parsing): Context-free grammars, top-down parsing (SLL(k)), error handling, abstract syntax tree construction, bottom-up parsing (LR(k)), yacc parser generator.
  • Contextual analysis: Declaration analysis (identification) and type analysis, attribute grammars, tree transduction, implementation of declaration tables.
  • Transformation: storage organisation, variable allocation,
    transforming expressions, commands, and method calls.
 
   
Author: Dr. Berthold Hoffmann
 
  Group BKB 
Last updated: January 29, 2013   impressum