Compilers

Semester:
6ο
Course Type:
Track Compulsory courses (EYM)
Track:
-
Code:
Κ31
ECTS:
6
TEACHING HOURS per week
Theory:
4
Seminar:
1
Laboratory:
0
Specializations
Foundations of Computer Science (Ε1):
-
Data and Knowledge Management (Ε2):
-
Software (Ε3):
Υ Υποχρεωτικό
Hardware and Architecture (Ε4):
B Βασικό
Communications and Networking (Ε5):
-
Signal and Information Processing (Ε6):
-
Related Courses
Detailed Description
Course Content

Explore the fundamental concepts and techniques behind a compiler: (1) Formal languages: regular languages, context-free languages, attribute grammars; (2) Meta-tools to create lexical analyzers; (3) Parsing: top-down and bottom-up, error recovery, meta-tools to use and create syntax analyzers; (4) Symbol tables. Semantic analysis: kinds of semantic checking, static type systems, dynamic type checking; (5) Generation of intermediate code; (6) Optimization, register allocation; (7) Generation of object code.

LITERATURE AND STUDY MATERIALS - READING LIST

Alfred V. Aho, Monica S. Lam, Ravi Sethi and Jeffrey D. Ullman Compilers: Principles, Techniques, and Tools. 2nd edition. Addison-Wesley, 2007. http://dragonbook.stanford.edu/
Nikolaos S. Papaspyrou and Emmanuel St. Skordalakis, Compilers, Symmetria, Athens, 2002.
K. Lazos, P. Katsaros, Z. Karaiskos, Compilers of Programming Languages: Theory and Practice, Thesaloniki 2004
http://delab.csd.auth.gr/~katsaros/CompilersBook.htm