Spring Semester 2025
image
line decor
  
line decor
image
image

image

Grading:

  • A semester-long two-phase project (compiler implementation) - 40%
  • Exams - 65%

A passing grade in all components is required to pass the course.

Syllabus:
  • Introduction. Implementation of a simple compiler in Java with object-oriented techniques.
  • Parsing, regular expressions and languages, implementation of lexical analyzers.
  • Syntax analysis, top-down and bottom-up parsing, implementation of syntax analyzers.
  • Semantic analysis and intermediate code generation.
  • Memory organization and execution environment (run-time environment).
  • Register allocation.
  • Generation and optimization of object code.
  • Modern topics in compilers.
Policies:
  • There should be no unacknowledged similarity to the code of others (web sources, other students of the current or past years).
  • Any acknowledged similarity or reused code should be on technicalities unrelated to the main project tasks.
  • Violations of the above result in failing the course.
  • Do not start your coding from code you find online. No matter how much you change it, you are highly likely to be flagged for a violation.


Official textbooks:

  • 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/

Published in translation by Newtech Publications (Νέων Τεχνολογιών) (http://www.newtech-publications.gr/)

  • Keith Cooper and Linda Torczon, Engineering a Compiler. 2nd edition. Elsevier, 2011.

Greek edition by Crete University Press


Reference books:

  • Andrew W. Appel, Modern Compiler Implementation in C. Cambridge University Press, 1998.

Andrew W. Appel, Modern Compiler Implementation in Java. Cambridge University Press, 1998.

http://www.cs.princeton.edu/~appel/modern

  • Charles N. Fischer and Richard J. LeBlanc, Jr. Crafting a Compiler with C, Benjamin/Cummings, 1991.
  • Steven S. Muchnick, Compiler Design and Implementation, Morgan Kaufmann Publishers, 1997.
  • Allen I. Hollub, Compiler Design in C, Prentice Hall, 1990.
  • 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
    Κ. Λάζος, Π. Κατσαρός, Ζ. Καραΐσκος. Μεταγλωττιστές Γλωσσών Προγραμματισμού: θεωρία και πράξη. Εκδόσεις Θεσσαλονίκη 2004.
     

http://delab.csd.auth.gr/~katsaros/CompilersBook.htm


Previous Years:

Compilers 2022, Compilers 2022, Compilers 2021, Compilers 2020, Compilers 2019, Compilers 2017, Compilers 2016, Compilers 2015, Compilers 2014, Compilers 2013, Compilers 2012, Compilers 2011, Compilers 2010, Compilers 2009, Compilers 2008, Compilers 2007


image