Compilers (Theory)

Module Information

Module Semester:
6
Module Part:
Theory
Sub-Module Code:
244604
Hours per Week:
3
Module ECTS Credits:
5.5
Available to ERASMUS Students:
No
Module Staff:


Module Objective

The main purpose of the course is the understanding of general structure and operation of modern compilers, both theoretical and practical level.


Module Study Targets

By the end of the course, students will be able to :

  • Explain the differences between a compiler and an interpreter and also to describe how these programs work
  • Be able to build lexical analyzers and use them in the construction of parsers
  • Express the grammar of a programming language
  • Build syntax analyzers and use them in the construction of parsers
  • Perform the operations of semantic analysis
  • Build a code generator
  • Discuss the merits of different optimization schemes


Module Acquired Abilities

At the end of the course, students will have acquired the skills to:

  • Work in a team in order to build a compiler
  • Promoting creative and inductive thinking to develop new strategic approaches in order to analyze problems and build different types of interprets and compilers


Module Description

  • Introduction to computer languages and compilers
  • Finite Automata and Regular Expressions
  • Context-Free Grammar and Syntax Analysis
  • Top-Down Parsing
  • Bottom-up Parsing
  • Syntax-Directed Definitions and Translations
  • Symbol Table Management
  • Run-time environment
  • Intermediate Code Generation
  • Code Optimization
  • Code Generation
  • JIT Compiler
  • Parallel Execution

Module Student Evaluation

Final exam (50%)

Presence on lectures (10%)

Written lab exams (40%)


Bibliography

  • A. Aho (etc), "Compilers: Principles, Techniques, and Tools", ISBN: 9780321486813, Addison Wesley/USA, 2006

Module Links