Compilers

ΕΠ33 - Compilers

General Information

School: Digital Technology

Department: Informatics and Telematics

Level: Undergraduate

Course Title: Compilers

Course id: ΕΠ33

Type: Core Course 

Semester: 8

Teaching and Examination Language: Greek

Is the course offered in Erasmus: Yes

Course web-page: https://eclass.hua.gr/courses/DIT107/

Activities

Lectures (Theory): 3,0

Lab lectures: 0,0

ECTS credits: 5,0

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. 

General Skills

Independent work
Team work
Promoting free, creative and deductive thought

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 and Teaching Methods - Evaluation

Teaching methods: face-to-face

Use of ICT: 

eclass platform, youtube channel

Course Organization

 

Activity

Semester work load

Lectures

27,0

Lab exercises

12,0

Individual of group projects

60,0

Lab report preparation

 

Thesis 

 

Independent Study

26,0

Total

125

Assessment

Oral Examination (100%)
Students build a full compiler for a simple programming language during the semester, and they are asked to demonstrate their work while answering questions.

Literature

- Alfred V. Aho, Monica S. Lam, Ravi Sethi and Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools. 2nd edition. Addison-Wesley, 2007.
- Andrew W. Appel, Modern Compiler Implementation in C. Cambridge University Press, 1998.
- Andrew W. Appel, Modern Compiler Implementation in Java. Cambridge University Press, 1998.
- Κ. Lazos, P. Katsaros, Ζ. Karaiskos. Programming Language Compilers: Theory and Practice. Thessaloniki Publishers. 2004. In Greek.
- N. Papaspirou, E. Skordalakis, Compilers, Symmetria Publishers. In Greek.