Σχεδίαση γλωσσών προγραμματισμού και μεταγλωττιστές

Κατσαρός Παναγιώτης

Περιγραφή

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

 

 

Κωδικός: OCRS149
Κατηγορία: Πληροφορικής » Προπτυχιακό
CC - Αναφορά - Παρόμοια Διανομή
CC - Αναφορά - Παρόμοια Διανομή

Θεματικές Ενότητες

Γλώσσες με δομή block: Η ενότητα καλύπτει τα θέματα: Μοντέλο μηχανής εκτέλεσης, Εμβέλεια και διάρκεια ζωής, Inline blocks, Στατική και δυναμική εμβέλεια, Συναρτήσεις και υποπρογράμματα, Εγγραφές ενεργοποίησης.

 

Λέξεις κλειδιά: Μοντέλο μηχανής εκτέλεσης, Διάρκεια ζωής, Inline blocks, Στατική εμβέλεια, Δυναμική εμβέλεια, Συναρτήσεις, Υποπρογράμματα, Εγγραφές ενεργοποίησης.

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

 

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

Λεξική Ανάλυση: Η ενότητα καλύπτει τα θέματα: Βασικές έννοιες και ρόλος Λ.Α.  Πρότυπα συμβολοσειρών: κανονικές εκφράσεις. Λεξική ανάλυση και αυτόματα. Χαρακτηριστικά λεξικής δομής Γ.Π. Σύγκριση λεξικής δομής Γ.Π. Γεννήτριες Λ.Α. Σύνταξη Λ.Α. με το εργαλείο Flex

 

Λέξεις κλειδιά: Λεξική ανάλυση, Πρότυπα συμβολοσειρών, Κανονικές εκφράσεις, Αυτόματα, Λεξική δομής Γ.Π, Γεννήτριες Λ.Α. Σύνταξη Λ.Α.

Συντακτική Ανάλυση: Η ενότητα καλύπτει τα θέματα: Βασικές έννοιες και ρόλος της Σ.Α. Γραμματικές Χωρίς Συμφραζόμενα. Σύνταξη και σημασία προγραμμάτων. Σύνταξη δηλωτικών και αλγοριθμικών γλωσσών. Αλγόριθμοι Σ.Α.

 

Λέξεις κλειδιά: Συντακτική Ανάλυση, Γραμματικές Χωρίς Συμφραζόμενα. Σημασία προγραμμάτων,  Σύνταξη δηλωτικών γλωσσών, Σύνταξη αλγοριθμικών γλωσσών, Αλγόριθμοι Σ.Α.

Καθοδική Συντακτική Ανάλυση - Αλγόριθμος LL(1): Η ενότητα καλύπτει τα θέματα:  Τι είναι η Καθοδική ανάλυση; Καθοδική ανάλυση με οπισθοδρόμηση. Σύνολα FIRST και FOLLOW για συντακτική ανάλυση. Ανάλυση LL(1).

 

Λέξεις κλειδιά: Καθοδική ανάλυση, Καθοδική ανάλυση με οπισθοδρόμηση, Σύνολα FIRST & Follow, Ανάλυση LL(1).

Αλγόριθμος Προβλέπουσας Αναδρομικής Κατάβασης: Η ενότητα καλύπτει τα θέματα:  Ανάλυση προβλέπουσας αναδρομικής κατάβασης με σύνολα FIRST & Follow.

 

Λέξεις κλειδιά: Προβλέπουσα αναδρομική κατάβαση, Σύνολα FIRST & Follow.

Αλγόριθμος LR Ανοδικής Συντακτικής Ανάλυσης:Η ενότητα καλύπτει τα θέματα: Γενικά για την ανοδική ανάλυση. Ανοδική ανάλυση ώθησης – απλοποίησης. Ανάλυση LR.

 

Λέξεις κλειδιά: Ανοδική ανάλυση, Ανοδική ανάλυση ώθησης – απλοποίησης, Ανάλυση LR.

Πίνακες LR Ανάλυσης:

Η ενότητα καλύπτει τα θέματα: Αναλυτής LR ώθησης – απλοποίησης. Πίνακες ανάλυσης LR(1). Συγκρούσεις ενεργειών. Παραλλαγές ανάλυσης LR όπως LR(0), SLR(1), LALR(1), Γλώσσες χωρίς συμφραζόμενα.

 

Λέξεις κλειδιά:LR ώθησης – απλοποίησης, Συγκρούσεις ενεργειών, LR(0), SLR(1), LALR(1), Γλώσσες χωρίς συμφραζόμενα.

Ανάκαμψη από Συντακτικά Λάθη: Η ενότητα καλύπτει τα θέματα: Ανάνηψη λαθών. Ανάνηψη «πανικού» στην ανάλυση LL(1). Εντοπισμός λάθους στην ανάλυση LR.

 

Λέξεις κλειδιά: Ανάνηψη λαθών, Ανάνηψη «πανικού», Εντοπισμός λάθους.

Σημασιολογική Ανάλυση: Η ενότητα καλύπτει τα θέματα: Σημασιολογική ανάλυση. Γραμματικές ιδιοτήτων. Συνθέσιμες και κληρονομήσιμες ιδιότητες.

 

Λέξεις κλειδιά: Σημασιολογική ανάλυση, Γραμματικές ιδιοτήτων, Συνθέσιμες ιδιότητες, Κληρονομήσιμες ιδιότητες.

Μέθοδοι Σημασιολογικής Ανάλυσης: Η ενότητα καλύπτει τα θέματα: S-Γραμματικές ιδιοτήτων. L-Γραμματικές ιδιοτήτων.

 

Λέξεις κλειδιά: S-Γραμματικές ιδιοτήτων. L-Γραμματικές ιδιοτήτων.

Σχήματα Μετάφρασης & Παραδείγματα Σημασιολογικής Ανάλυσης: Η ενότητα καλύπτει τα θέματα: Σχήματα μετάφρασης. Παραδειγμα γραμματικής ιδιοτήτων για την ανάπτυξη του συντακτικού δένδρου των εκφράσεων. Εφαρμογή ελέγχου τύπων, δηλώσεων τύπων και ελέγχου τύπων αριθμητικών εκφράσεων στο παράδειγμα.

 

Λέξεις κλειδιά: Σχήμα μετάφρασης, Έλεγχος τύπου, Δηλώση τύπου.

Πίνακας Συμβόλων: Η ενότητα καλύπτει τα θέματα: Τι είναι ο πίνακας συμβόλων και ποιες λειτουργίες υποστηρίζει; Σε ποιες δομές μπορεί να οργανωθεί;

 

Λέξεις κλειδιά: Πίνακας συμβόλων. Οργάνωση πίνακα συμβόλων.

Συστήματα Τύπων: Η ενότητα καλύπτει τα θέματα: Γλώσσες με τύπους και χωρίς τύπους. Λάθη εκτέλεσης και ασφάλεια. Έλεγχος τύπων. Μη ασφαλή προγράμματα. Ιδιότητες συστήματος τύπων. Ορισμός συστήματος τύπων. Το Θεώρημα της ευρωστίας τύπων. Παραγωγές τύπων. Καλώς ορισμένοι τύποι και συναγωγή τύπων. Συστήματα τύπων πρώτης τάξης. Λογισμός λ με τύπους. Κανόνες για βασικούς και οριζόμενους τύπους. 

 

Λέξεις κλειδιά: Γλώσσες με τύπους, Γλώσσες χωρίς τύπους, Λάθη εκτέλεσης, Ασφάλεια, Σύστημα τύπων, Θεώρημα ευρωστίας τύπων, Παραγωγή τύπων, Καλώς ορισμένοι τύποι, Συναγωγή τύπων, Συστήματα τύπων πρώτης τάξης. Λογισμός λ με τύπους, Βασικοί τύποι, Οριζόμενοι Τύποι. 

Παραγωγή Κώδικα για Αριθμητικές και Λογικές Εκφράσεις: Η ενότητα καλύπτει τα θέματα:  Δομή μεταγλωττιστή - backend. Μορφές ενδιάμεσης αναπαράστασης. Συντακτικά δένδρα. Κατευθυνόμενοι άκυκλοι γράφοι. Γράφοι ροής ελέγχου. Μηχανή στοίβας. Κώδικας τριών διευθύνσεων. Παραγωγή κώδικα για μηχανή στοίβας και λογικές εκφράσεις.  

 

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

Παραγωγή Κώδικα για Εντολές Ελέγχου Ροής: Εντολές ελέγχου ροής: Η ενότητα καλύπτει τα θέματα:  Δομή και παραγωγή κώδικα. Backpatching. Παραγωγή κώδικα στο μεταγλωττιστή της YAPL. Συνάρτηση δημιουργίας εντολής. Συνάρτηση διάσχισης δένδρου. Συνάρτηση επεξεργασίας κόμβου PrintStmt.

Λέξεις κλειδιά: Backpatching. Παραγωγή κώδικα, Μεταγλωττιστής YAPL, Δημιουργία εντολής, Διάσχιση δένδρου, Επεξεργασία κόμβου PrintStmt.

Παραγωγή κώδικα συμβολικής γλώσσας του επεξεργαστή Pentium:

Η ενότητα καλύπτει τα θέματα:  Παραγωγή κώδικα: Αρχιτεκτονική Pentium, Εντολές assembly, Παράδειγμα.

 

Λέξεις κλειδιά: Παραγωγή κώδικα, Αρχιτεκτονική Pentium, Εντολές assembly.

Ανοικτό Ακαδ. Μάθημα

Ανοικτά Ακαδημαϊκά Μαθήματα
Επίπεδο: A-

Αρ. Επισκέψεων :  4500
Αρ. Προβολών :  27132

Ημερολόγιο

Ανακοινώσεις

  • - Δεν υπάρχουν ανακοινώσεις -