58144 Compilers (ohtk 25.8.2011)

Principal theme Prerequisite knowledge Approaches the learning objectives Reaches the learning objectives

Deepens the learning objectives

  • formal languages and compiler architecture
  • 582206 Models of Computation
  • explain the role and tasks of a compiler as a part of a programming environment
  • define what is a formal grammar
  • write and read grammar specifications
  • explain the architecture of a compiler
  • explain the role and use of formal grammars in compiler construction
  • use formal grammars to define domain-specific languages
  • use translator tools as a part of application development
  • scanning
  • 582206 Models of Computation
  • general programming skills
  • explain the role and tasks of a scanner
  • implement a scanner for a given language
  • read and write regular expressions
  • explain how automata is used by scanner generators
  • use a scanner generator to implement a lexical parsing for a given language
  • use scanner as a part of a compiler
  • construct a new scanner generator
  • parsing
  • 582206 Models of Computation
  • general programming skills
  • explain the role and tasks of a parser
  • define what is an LL (1) grammar
  • explain top-down and bottom-up parsing
  • describe and write a recursive-descent parser 
  • modify a given grammar to be suitable for syntactic analysis
  • use parser generators (metaparsers)
  • implement error-recovery for a parser
  • use parser as a part of a compiler
  • construct a new metaparser
  • semantic analysis
  • general programming skills
  • explain the role and tasks of a semantic analyser 
  • explain major semantic formalisms used in practice
  • write an attribute grammar for a simple language
  • describe verbally and programmatically the static and dynamic checks for a simple language
  • use semantic analyzer as a part of a compiler
  • specify the semantics of a non-trivial existing language 
  • code generation
  • general programming skills 
  • explain the role and tasks of a code generator
  • explain intermediate code and its use as a part of a compiler
  • explain different formats of intermediate code representations and their pros and cons
  • explain general code optimization strategies used in compilers

 

31.10.2011 - 16:28 Juha Vihavainen
28.10.2011 - 14:16 Juha Vihavainen