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