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

ΤΕΙ Δυτικής Μακεδονίας

Τμήμα Μηχανικών Πληροφορικής

Έτος: 2015

Διδάσκων: Άγγελος Μιχάλας

Περιγραφή Μαθήματος

Μελετώνται τα ακόλουθα ζητήματα: Η δομή του μεταγλωττιστή, η διαδικασία μεταγλώττισης, ανάπτυξη μεταγλωττιστών, διερμηνευτής, συνδέτης, η εκπαιδευτική γλώσσα YAPL, λεξική ανάλυση, κανονικές εκφράσεις, πεπερασμένα αυτόματα (προσδιοριστικά & μη-προσδιοριστικά). Με την επιτυχή ολοκλήρωση του μαθήματος ο φοιτητής θα πρέπει να είναι σε θέση να κατανοεί την λεκτική συντακτική και σημασιολογική ανάλυση των μεταγλωττιστών, τα σημαντικά σημεία, τα προβλήματα και την χρησιμότητα της ενδιάμεσης μορφής και της βελτιστοποίησης των μεταγλωττιστών. Επίσης, θα πρέπει να κατανοεί σε βάθος τον μηχανισμό μετάφρασης εκφράσεων και εντολών και να χρησιμοποιεί γεννήτριες μεταγλωττιστών όπως ο LEX και ο YACC.

Video-Διαλέξεις

Διάλεξη 01: Εισαγωγή

Σκοπός της ενότητας είναι η εισαγωγή στο αντικείμενο των μεταγλωττιστών. Τα περιεχόμενα της ενότητας είναι τα παρακάτω: • Γλώσσες προγραμματισμού • Μεταγλωττιστές • Δομή ενός μεταγλωττιστή • Κατασκευή ενός μεταγλωττιστή • Φάσεις της μεταγλώττισης • Λειτουργία μεταγλωττιστών • Ανάπτυξη μεταγλωττιστών

Διάλεξη 02: Τυπικές γλώσσες

Σκοπός της ενότητας είναι η περιγραφή των τυπικών γλωσσών. Τα περιεχόμενα της ενότητας είναι τα παρακάτω: • Ορισμοί • Γλώσσες • Γραμματικές • Ιεραρχία Chomsky • Αναγνωριστές • Κανονικές Εκφράσεις • Πεπερασμένα Αυτόματα • Ντετερμινιστικά Πεπερασμένα Αυτόματα

Διάλεξη 03: Τυπικές γλώσσες

Η ενότητα αποτελεί συνέχεια της προηγούμενης και σκοπός της είναι η περιγραφή των τυπικών γλωσσών.Τα περιεχόμενα της ενότητας είναι οι κανονικές εκφράσεις καθώς και οι επεκτάσεις των κανονικών εκφράσεων.

Διάλεξη 04: Τυπικές γλώσσες

Η ενότητα αποτελεί συνέχεια των δύο προηγούμενων και σκοπός της είναι η περιγραφή των τυπικών γλωσσών. Τα περιεχόμενα της ενότητας είναι τα παρακάτω: • Πεπερασμένα αυτόματα • Ντετερμινιστικά πεπερασμένα αυτόματα - ΝΠΑ • Μη ντετερμινιστικά πεπερασμένα αυτόματα - ΜΠΑ • ΜΠΑ με μηδενικές μεταβάσεις - ΜΠΑ-ε • Τρόποι αναπαράστασης πεπερασμένων αυτόματων • Γλώσσες ντετερμινιστικών πεπερασμένων αυτόματων • Παραδείγματα • Παράδειγμα ισοδυναμίας ΜΠΑ και ΝΠΑ

Διάλεξη 05: Λεκτική ανάλυση

Σκοπός της ενότητας είναι η περιγραφή της λεκτικής ανάλυσης. Τα περιεχόμενα της ενότητας είναι η λεξική ανάλυση και τα αυτόματα.

Διάλεξη 06: Λεκτική ανάλυση

Σκοπός της ενότητας είναι η περιγραφή της λεκτικής ανάλυσης. Τα περιεχόμενα της ενότητας είναι η λεξική ανάλυση και τα αυτόματα. • Λεξική ανάλυση • Υλοποίηση ενός λεξικού αναλυτή • Λεξική ανάλυση κι αυτόματα • Γεννήτριες λεξικών αναλυτών

Διάλεξη 07: Συντακτική ανάλυση

Σκοπός της ενότητας είναι η περιγραφή της συντακτικής ανάλυσης. Τα περιεχόμενα της ενότητας είναι τα παρακάτω: • Φάσεις της μεταγλώττισης • Συντακτική ανάλυση • Γραμματικές • Ορισμός γραμματικών • Ιεραρχία Chomsky • Γραμματικές και συντακτική ανάλυση • Διαδικασία της συντακτικής ανάλυσης • Συμβολισμοι BNF και EBNF • Παράγωγα και συντακτικά δένδρα • Γραμματικές με ασάφειες • Αναπαράσταση παράγωγου δένδρου • Καθοδική ανάλυση • Καθοδική ανάλυση με οπισθοδρόμηση • Ανάλυση προβλέπουσας αναδρομικής κατάβασης • Ανάλυση LL(1) • Αλγόριθμος ανάλυσης LL(1) • Απομάκρυνση αριστερής αναδρομικότητας • Αριστερή παραγοντοποίηση

Διάλεξη 08: Συντακτική ανάλυση

Η ενότητα αποτελεί συνέχεια της προηγούμενης και σκοπός της είναι η περιγραφή της συντακτικής ανάλυσης. Τα περιεχόμενα της ενότητας είναι τα παρακάτω: • Ανοδική ανάλυση - Γενικά • Ανοδική ανάλυση ώθησης / απλοποίησης • Ανάλυση LR • Αναλυτής LR ώθησης - απλοποίησης • Πίνακες ανάλυσης LR(1) • Συγκρούσεις ενεργειών • Παραλλαγές ανάλυσης LR: LR(0) • Παραλλαγές ανάλυσης LR: SLR(1) • Παραλλαγές ανάλυσης LR: LALR(1) • Γλώσσες χωρίς συμφραζόμενα • Ανάνηψη λαθών • Ανάνηψη «πανικού» στην ανάλυση LL(1) • Εντοπισμός λάθους στην ανάλυση LR