Ερευνητικά Θέματα Υλοποίησης Γλωσσών Προγραμματισμού


Κωδικός 690
Εξάμηνο Εαρινό
Ώρες Διδασκαλίας - Ώρες Εργαστηρίου 3 - 0
Διδάσκοντες Κωστής Σαγώνας

Περιγραφή

Σκοπός του μαθήματος είναι να εξετάσει σε βάθος την τρέχουσα ερευνητική δραστηριότητα της περιοχής της υλοποίησης γλωσσών προγραμματισμού (programming language implementation) και των εργαλείων λογισμικού που υποβοηθούν και υλοποιούν τη διαδικασία μεταγλώττισης. Πιο συγκεκριμένα το μάθημα εξετάζει τεχνικές και μεθοδολογίες που σκοπό τους έχουν την κατασκευή μεταγλωττιστών βελτιστοποίησης (optimizing compilers), το σχεδιασμό αφηρημένων μηχανών και των διερμηνέων τους (virtual machine interpreters), τη δυναμική και προσαρμοζόμενη μεταγλώττιση (dynamic and adaptive compilation) και τεχνικών μεταγλώττισης για πολυνηματικές (multi-core) και χαμηλής κατανάλωσης (low energy) αρχιτεκτονικές. Ενδεικτικά, θέματα που εξετάζονται στο μάθημα περιλαμβάνουν: Καθολική ανάλυση και βελτιστοποίηση προγραμμάτων (global analysis and optimization). Κατασκευή και χρήση κώδικα σε μορφή στατικά μοναδικής ανάθεσης (static single assignment form). Τεχνικές οκνηρής μετακίνησης κώδικα (lazy code motion techniques). Στοιχεία αρχιτεκτονικής υπολογιστών που επηρεάζουν το χρόνο εκτέλεσης προγραμμάτων (π.χ. hardware registers, pipelining, multicore) και οι αντίστοιχες τεχνικές βελτιστοποίησης παραγόμενου κώδικα. Αφηρημένες μηχανές και οι διερμηνείς τους. Δυναμικοί, προσαρμοζόμενοι και «πάνω στην ώρα» μεταγλωττιστές (dynamic, adaptive and just-in-time compilers).