ΕΠ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
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.