Compilers
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
