Παρουσίαση/Προβολή

ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ-ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ
(CSC601 (ΠΛ0827-1) ) - ΗΛΙΑΣ ΣΑΚΕΛΛΑΡΙΟΥ
Περιγραφή Μαθήματος
Το μάθημα Γλώσσες Προγραμματισμού-Μεταγλωττιστές, αποτελεί μια εισαγωγή στην τεχνολογία σχεδιασμού και κατασκευής των γλωσσών προγραμματισμού.
Σκοπός του μαθήματος είναι να εισάγει τους φοιτητές στην τεχνολογία των μεταγλωττιστών, τους αλγορίθμους, τις τεχνικές και τα εργαλεία που χρησιμοποιούνται για την υλοποίηση των μεταγλωττιστών. Οι διαλέξεις του μαθήματος θα αφορούν τόσο την παρουσίαση των θεωρητικών θεμάτων που αφορούν τους μεταγλωττιστές, όσο και την παρουσίαση εργαλείων που χρησιμοποιούνται για την κατασκευή μεταγλωττιστών.
Ημερομηνία δημιουργίας
Παρασκευή 9 Οκτωβρίου 2020
-
Περιεχόμενο μαθήματος
Εισαγωγή στους μεταγλωττιστές και στη σχεδίαση μεταγλωττιστών. Βασικές οικογένειες γλωσσών προγραμματισμού. Λεκτική ανάλυση (Αυτόματα, Κανονικές εκφράσεις, Λεκτική Ανάλυση με την χρήση του εργαλείου FLEX). Συντακτική Ανάλυση (Γραμματικές, Συντακτική Ανάλυση από-πάνω προς τα κάτω και από κάτω προς τα πάνω, LL και LR συντακτικοί αναλυτές, Συντακτική ανάλυση με το εργαλείο BISON. Βασικά θέματα σχεδίασης γλωσσών προγραμματισμού: Ροή Ελέγχου, Τύποι δεδομένων, Υποπρογράμματα. Διαχείριση Πίνακα Συμβόλων Πληροφορία που αποθηκεύεται στον Πίνακα Συμβόλων, Δομές Δεδομένων). Είδη μεταβλητών και περιβάλλοντα. Σηµασιολογική ανάλυση. Έλεγχοι κατά την Σημασιολογική Ανάλυση. Έλεγχος τύπων, Ανάλυση κατευθυνόμενη από τη Σύνταξη. Παραγωγή ενδιάμεσου κώδικα. Μετάφραση κατευθυνόμενη από την Σύνταξη, Ενδιάμεσες Γλώσσες. Συμβολικές Γλώσσες Μηχανής. Παραγωγή Τελικού Κώδικα. Θέματα και Τεχνικές, Διαχείριση Μνήμης. JVM Assembly. Μεταγλώττιση σε JVM Assembly. Εναλλακτικά μοντέλα Προγραμματισμού: Συναρτησιακός και Λογικός Προγραμματισμός.
Μαθησιακοί στόχοι
Σκοπός του μαθήματος είναι να εισάγει τους φοιτητές στην τεχνολογία των μεταγλωττιστών, τους αλγορίθμους, τις τεχνικές και τα εργαλεία που χρησιμοποιούνται για την υλοποίηση των μεταγλωττιστών. Οι διαλέξεις του μαθήματος θα αφορούν τόσο την παρουσίαση των θεωρητικών θεμάτων που αφορούν τους μεταγλωττιστές, όσο και την παρουσίαση εργαλείων που χρησιμοποιούνται για την κατασκευή μεταγλωττιστών.
Ειδικότερα το μάθημα έχει σαν στόχο:
α) να εισάγει τους φοιτητές στις έννοιες και τα ειδικότερα θέματα που αφορούν τους μεταγλωττιστές γλωσσών προγραμματισμού
β) να παρουσιάσει το θεωρητικό υπόβαθρο στο οποίο βασίζεται η λεκτική, συντακτική και συντακτική ανάλυση
γ) να παρουσιάσει στις τεχνικές και αλγορίθμους που χρησιμοποιούνται στην ανάπτυξη μεταγλωττιστών,
δ) να προσφέρει τις απαραίτητες πρακτικές δεξιότητες για την ανάπτυξη μικρού-μεγέθους μεταγλωττιστών με την χρήση καθιερωμένων εργαλείων.Προτεινόμενα συγγράμματα
- ALFRED V. AHO, MONICA S. LAM, RAVI SETHI, JEFFREY D. ULLMAN, ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ ΑΡΧΕΣ, ΤΕΧΝΙΚΕΣ & ΕΡΓΑΛΕΙΑ (ISBN 978-960-6759-72-7), ΕΚΔΟΣΕΙΣ ΝΕΩΝ ΤΕΧΝΟΛΟΓΙΩΝ, 2011 (Κωδ. Ευδ: 12713790)
- Michael L. Scott, ΠΡΑΓΜΑΤΟΛΟΓΙΑ ΤΩΝ ΓΛΩΣΣΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΔΕΥΤΕΡΗ ΑΜΕΡΙΚΑΝΙΚΗ ΕΚΔΟΣΗ (ISBN: 978-960-461-230-7), ΕΚΔΟΣΕΙΣ ΚΛΕΙΔΑΡΙΘΜΟΣ, 2009 (κωδ. Ευδοξος 13858)
- Σχεδίαση και Κατασκευή Μεταγλωττιστών, Keith D. Cooper, Linda Torczon, ΙΤΕ-Πανεπιστημιακές Εκδόσεις Κρήτης, 2018, ISBN: 978-960-524-519-1 (κωδ. Ευδοξος 77108866)
- ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΚΑΙ ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ, Παναγιώτης Κατσαρός, Γεώργιος Μακρής, ΑναστάσιοςΤεμπερεκίδης, 2020, ΖΥΓΟΣ, ISBN: 978-618-5063-64-1 (κωδ. Ευδοξος 94702000)
- Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, Compilers: Principles, Techniques, and Tools (International Edition) 2/E, Addison-Wesley 2007, ISBN-10: 0321491696, ISBN-13: 9780321491695 (το Αγγλικό βιβλίο που μεταφράστηκε).
Διδάσκοντες
Ηλίας Σακελλαρίου.
Ώρες γραφείου: οποιαδήποτε άλλη στιγμή (open hours policy). Για καλύτερο συντονισμό και αποφυγή καθυστερήσεων συνιστάται να προηγείται ηλεκτρονική επικοινωνία (iliass@uom.edu.gr).
Μέθοδοι αξιολόγησης
Γραπτές Εξετάσεις στο τέλος του Εξαμήνου (100% της τελικής βαθμολογίας)
Δύο Προαιρετικές Γραπτές Εργασίες με συνεισφορά μέχρι 2 επιπλέον μονάδων στην βαθμολογία που προκύπτει από τις τελικές εξετάσεις, εφόσον ο βαθμός στις εξετάσεις είναι προβιβάσιμος, οι οποίες περιλαμβάνουν σχεδίαση και ανάπτυξη ενός απλού μεταγλωττιστή χρησιμοποιώντας καθιερωμένα εργαλεία.