Harokopio University
School: School of Digital Technology
Department: Informatics and Telematics
Program: Undergraduate Programme

Compilers

Semester: 6 ECTS: 5.0 Elective Erasmus

General

Code: ΕΠ33

Language: Greek

Delivery: Face-to-face

Prerequisites: - Programming
- Object-oriented Programming
- Data Structures
- Computer architecture

Workload

  • Lectures: 39.0 hours
  • Lab: 0.0 hours
  • Study: 26.0 hours
  • Project: 60.0 hours

Course Content

1st week lecture: Introduction to Compilers. Phases of a Compiler
2nd week lecture: Lexical Analysis
3rd week lab: Lexical Analyzer for a calculator
4th week lecture: Syntax Analysis. Top-Down Syntax Analysis
5th week lecture: Bottom-Up Syntax Analysis
6th week lab: Syntax Analyzer for a calculator
7th week lecture: Syntax Directed Translation
8th week lecture: Semantic Analysis
9th week lab: Abstract Syntax Trees and Semantic Analysis for a calculator
10th week lecture: Intermediate Code
11th week lecture: Runtime Environment
12th week lecture: Java Virtual Machine
13th week lab: Generating JVM bytecode for a calculator

Learning Outcomes

The objective of this course is to teach students the theoretical foundations as well as the basic practical skills required in order to build compilers for a large number of programming languages.

Students will have the chance of building a large part of a compiler for a simple programming language.

Skills

Independent work
Team work
Promoting free, creative and deductive thought