Spring Semester 2022
image
line decor
  
line decor
image
image

image

Grading:

  • A semester-long multi-phase project (compiler implementation) - 55%
  • Exams - 50%

A passing grade in both 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 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