Εαρινό Εξάμηνο 2008  
line decor
  
line decor
 
 

 
 


 
Βαθμολογία:

  • Εργασία εξαμήνου (υλοποίηση ενός μεταγλωττιστή για μια διαδικαστική γλώσσα προγραμματισμού): 50%
  • Τελική εξέταση: 50% (ανοικτά βιβλία, εγχειρίδια και σημειώσεις)
  • Για να περάσει κάποιος/α το μάθημα πρέπει να συγκεντρώνει τουλάχιστον 50% σε κάθε μια από τις παραπάνω δοκιμασίες.


Ύλη του μαθήματος:

  • Εισαγωγή. Υλοποίηση ενός απλού μεταγλωττιστή σε C.
  • Λεκτική ανάλυση, κανονικές εκφράσεις και γλώσσες, υλοποίηση λεκτικών αναλυτών χρησιμοποιώντας lex/flex.
  • Συντακτική ανάλυση, top-down και bottom-up parsing, υλοποίηση συντακτικών αναλυτών χρησιμοποιώντας yacc/bison.
  • Σημασιολογική ανάλυση.
  • Παραγωγή ενδιάμεσου κώδικα.
  • Οργάνωση μνήμης και περιβάλλον εκτέλεσης (run-time environment) ενός προγράμματος.
  • Παραγωγή και βελτιστοποίηση τελικού κώδικα.
  • Μοντέρνα θέματα μεταγλώττισης.


Κύρια βιβλία:

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

Οι διαλέξεις θα βασιστούν σε αυτό το βιβλίο

  • Νικόλαος Παπασπύρου και Εμμανουήλ Σκορδαλάκης. Μεταγλωττιστές, Εκδόσεις Συμμετρία.  

Πολύ χρήσιμο βιβλίο στα Ελληνικά που θα μοιραστεί στους φοιτητές.

Aλλα βιβλία που καλύπτουν παρόμοια θέματα:

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