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

Γενικά

  • Κωδικός: ΠΛΕ08012
  • Εξάμηνο:
  • Επίπεδο Σπουδών: Προπτυχιακό
  • Τύπος μαθήματος:
  • Γλώσσα διδασκαλίας και εξετάσεων: Ελληνικά
  • Το μάθημα διατίθεται σε φοιτητές Erasmus
  • Μονάδες ECTS: 5
  • Σελίδα μαθήματος: http://elearning.cm.ihu.gr/course/view.php?id=50

Περιεχόμενα μαθήματος

  • Εισαγωγή στους Μεταγλωττιστές. Φάσεις μεταγλώττισης. Ανάπτυξη μεταγλωττιστών.
  • Λεκτική ανάλυση.
  • Γραμματική γλώσσας.
  • Κανονικές εκφράσεις.
  • Υλοποίηση λεκτικών αναλυτών.
  • Πεπερασμένα αυτόματα και διαγράμματα μετάβασης.
  • Συντακτική ανάλυση.
  • Κατηγορίες αλγορίθμων συντακτικής ανάλυσης: καθολικοί, από πάνω προς τα κάτω, από κάτω προς τα πάνω.
  • Συντακτικό δένδρο.
  • Αυτόματα Στοίβας.
  • Συντακτικοί αναλυτές από πάνω προς τα κάτω (top-down).
  • LL και LR γραμματικές.
  • Κατασκευή πίνακα συντακτικής ανάλυσης.
  • Οι έννοιες της ελάττωσης και ολίσθησης. Συγκρούσεις.
  • Γεννήτριες συντακτικών αναλυτών.
  • Πίνακας συμβόλων.
  • Σημασιολογική ανάλυση και γραμματικές ιδιοτήτων.
  • Παραγωγή ενδιάμεσου κώδικα.
  • Κώδικας τριών διευθύνσεων.
  • Παραγωγή Τελικού Κώδικα.

Μαθησιακοί Στόχοι

Στόχος του μαθήματος είναι η εισαγωγή των φοιτητών/τριών στην τεχνολογία των μεταγλωττιστών, τους αλγορίθμους, τις τεχνικές και τα εργαλεία που χρησιμοποιούνται για την υλοποίηση των μεταγλωττιστών. Οι διαλέξεις του μαθήματος θα αφορούν τόσο την παρουσίαση των θεωρητικών θεμάτων που αφορούν τους μεταγλωττιστές, όσο και την παρουσίαση εργαλείων που χρησιμοποιούνται για την κατασκευή μεταγλωττιστών.

Μετά την επιτυχή παρακολούθηση του μαθήματος αναμένεται ότι οι φοιτητές/τριες είναι ικανοί/ές να:

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

Γενικές Ικανότητες

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

Μέθοδοι Διδασκαλίας

Θεωρητική από έδρας διδασκαλία με συζήτηση και ενεργή συμμετοχή των φοιτητών. Κατά την διάρκεια του μαθήματος γίνονται παρουσιάσεις σε power point.

Εργαστηριακή εξάσκηση στη δημιουργία μεταγλωττιστών κατά τμήματα.

Χρήση Τεχνολογιών Πληροφορίας και Επικοινωνιών

Χρήση εξειδικευμένου λογισμικού. Υποστήριξη μαθησιακής διαδικασίας μέσω της ηλεκτρονικής πλατφόρμας Moodle (elearning.cm.ihu.gr).

Ηλεκτρονικές Ασκήσεις Αυτοαξιολόγησης.

Επικοινωνία με φοιτητές μέσω e-mail και της ιστοσελίδας του μαθήματος.

Οργάνωση Διδασκαλίας

ΔραστηριότηταΦόρτος εργασίας εξαμήνου
Διαλέξεις26
Ασκήσεις Πράξης13
Εργαστηριακές Ασκήσεις13
Συγγραφή εργαστηριακών αναφορών21
Αυτοτελής Μελέτη Φοιτητή52
Σύνολο125

Αξιολόγηση Φοιτητών

Ο τελικός βαθμός του μαθήματος διαμορφώνεται από τον σταθμισμένο μέσο όρο των βαθμών του θεωρητικού και του εργαστηριακού μέρους.

  1. Ο βαθμός του θεωρητικού μέρους διαμορφώνεται από την γραπτή τελική εξέταση η οποία περιλαμβάνει:
    • Ερωτήσεις πολλαπλής επιλογής
    • Επίλυση προβλημάτων εφαρμογής των γνώσεων που αποκτήθηκαν.
    • Ερωτήσεις σύντομης απάντησης
    • Συγκριτική αξιολόγηση στοιχείων θεωρίας.
  2. Ο βαθμός του εργαστηριακού μέρους διαμορφώνεται ως εξής:
    • κατά 30% από εργασίες που ανατίθενται στους φοιτητές κατά τη διάρκεια του εξαμήνου και παραδίδονται σε καθορισμένες ημερομηνίες.
    • κατά 70% από την τελική εξέταση των εργαστηριακών δεξιοτήτων τους.

Συνιστώμενη Βιβλιογραφία

Συγγράμματα μέσω του συστήματος ΕΥΔΟΞΟΣ

  • Μεταγλωττιστές αρχές, τεχνικές & εργαλεία, Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, 2011.
  • Μεταγλωττιστές Γλωσσών Προγραμματισμού, Θεωρία και Πράξη, Κ. Λάζος, Κατσαρός, Καραϊσκος, 2004 (3η έκδοση).

Συμπληρωματική προτεινόμενη βιβλιογραφία

  • Πραγματολογία των γλωσσών προγραμματισμού, Michael L. Scott, 2009.
  • Μεταγλωττιστές, Παπασπύρου, Σκορδαλάκη, 2002.