ΓραμματείαSecretariat: 2410 684574 | ΦοιτητικάStudents: 2410 684387 g-ds@uth.gr
Επιλογή Σελίδας

Μεταγλωττιστές

Κωδικός Μαθήματος

Ε508

Εξάμηνο Σπουδών

5 (Ε)

Ώρες/Εβδομάδα - ECTS

4 – 5

Μακρής Γεώργιος

Ακαδημαϊκός Υπότροφος (MSc/PhD)

Μαθησιακά Αποτελέσματα

  • καλύτερη κατανόηση των γλωσσών προγραμματισμού μέσα από τη διαδικασία της συντακτικής ανάλυσης,
  • πρακτική μελέτη αλγορίθμων και δομών δεδομένων μέσα από την υλοποίηση κάθε φάσης μεταγλώττισης,
  • αντίληψη του πραγματικού κώδικα που εκτελείται σε έναν επεξεργαστή σε σχέση με τον κώδικα που προγραμματίζεται σε υψηλό επίπεδο, 
  • καλύτερη κατανόηση της αρχιτεκτονικής του υπολογιστή που εκτελεί τον κώδικα μέσα από τη μελέτη των μηχανισμών εκτέλεσης του τελικού κώδικα, 
  • πρακτική μελέτη της έννοιας της Αρχιτεκτονικής Συνόλου Εντολών μέσα από τις βελτιστοποιήσεις και την παραγωγή τελικού κώδικα,
  • ανάπτυξη ικανότητας σχεδίασης και υλοποίησης ενός πλήρους μεταγλωττιστή, από την πρώτη μέχρι την τελευταία φάση του, και μάλιστα ομαδικά, ώστε να αναπτύχθεί και η ικανότητα συνεργασίας

Ενδεικτικό Περιεχόμενο Μαθήματος

  • θεωρητικό υπόβαθρο με τη μελέτη γραμματικών, γλωσσών, αυτομάτων και μηχανών καταστάσεων, που συνοδεύεται από απαραίτητη επανάληψη ειδικών δομών δεδομένων, όπως δέντρων, γραφημάτων και πινάκων κατακερματισμού, καθώς και κλασικών αλγορίθμων διαπέρασης και κλεισίματος.
  • λεκτική ανάλυση ενός αρχικού προγράμματος και προγραμματισμός του, τόσο με το χέρι, όσο και αυτόματα με τη βοήθεια του εργαλείου “flex”
  • μελέτη συντακτικής ανάλυσης και κατασκευή του συντακτικού δέντρου, τόσο με το χέρι, όπου αυτό είναι εφικτό, όσο και αυτόματα με τη βοήθεια του εργαλείου “bison”
  • αλγόριθμοι γραμματικώς LL(1), LR(0), SLR(1), LR(k) και LALR(1)
  • σημασιολογική ανάλυση – έλεγχος τύπων με τη βοήθεια κατηγορικών γραμματικών
  • παραγωγή ενδιάμεσου κώδικα: απεικόνιση αφηρημένων συντακτικών δέντρων και τετράδων
  • παραγωγή τελικού κώδικα: επιλογή εντολών, δέσμευση καταχωρητών τελικής αρχιτεκτονικής
  • βελτιστοποιήσεις κώδικα
  • θεωρητικές και εργαστηριακές ασκήσεις
  • προγραμματιστική εργασία με θέμα την πλήρη κατασκευή σε C ενός μεταγλωττιστή κάποιας γλώσσας προγραμματισμού που είναι απλοποιημένη μορφή μίας από τις γλώσσες FORTRAN, PASCAL, C++