Compilers (Laboratory)

Module Information

Module Semester:
6
Module Part:
Laboratory
Sub-Module Code:
245604
Hours per Week:
2
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

  • A Simple Scanner
  • Lecical Analysis (finite automata)
  • Lecical Analysis (regular expressions)
  • Syntax analysis (LL parsers)
  • Syntax analysis (bottom-up parsers)
  • Syntax analysis (LR parsers)

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