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