{ int a = 5; { int b = 7; a = b + 3;

Σχετικά έγγραφα
procedure P ( < pars > ) < type> f( < pars > ) begin { < local vars > < local vars > < procedure body> < procedure body> end; }

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB

Δομημένος Προγραμματισμός

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

Δομημένος Προγραμματισμός

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Αυτοματοποιημένη χαρτογραφία

Περιεχόμενα ΜΤ Τυχαίας Προσπέλασης Θεωρία Υπολογισμού Ενότητα 23: Μηχανές Turing Τυχαίας Προσπέλασης Επ. Καθ. Π. Κατσαρός Τμήμα Πληροφορικής Επ. Καθ.

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

ΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Λογιστικές Εφαρμογές Εργαστήριο

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Θεωρία Πιθανοτήτων & Στατιστική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 7: Πρόγραμμα Συνδεδεμένης Λίστας και Διαδικασιών. Μανόλης Γ.Η.

Πληροφοριακά Συστήματα & Περιβάλλον Ασκήσεις

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

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

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 11: Λογική πρώτης τάξης. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Πληροφορική. Εργαστηριακή Ενότητα 1 η : Εισαγωγή στα Λογιστικά Φύλλα με το MS Excel. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Μηχανολογικό Σχέδιο Ι

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

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Μοντελοποίηση Λογικών Κυκλωμάτων

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ

Γενικά Μαθηματικά Ι. Ενότητα 1: Συναρτήσεις και Γραφικές Παραστάσεις. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Ιστορία της μετάφρασης

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Cretive Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπ

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Θεωρία Πιθανοτήτων & Στατιστική

Διαδικαστικός Προγραμματισμός

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Διδακτική της Πληροφορικής

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Πληροφορική. Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Εισαγωγή στον Προγραμματισμό με C++

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

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

Σχεδίαση Γλωσσών Προγραμματισμού. Εαρινό Εξάμηνο Lec03 18/02/2019

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ. Λογισμός ΙΙ. Χρήστος Θ. Αναστασίου Τμήμα Μηχανικών Πληροφορικής ΤΕ

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

2 n N: 0, 1,..., n A n + 1 A

Εκκλησιαστικό Δίκαιο

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

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

Βάσεις Περιβαλλοντικών Δεδομένων

Εργαστήριο Χημείας Ενώσεων Συναρμογής

Αυτοματοποιημένη χαρτογραφία

Εισαγωγή στους Αλγορίθμους

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

Υδραυλικά & Πνευματικά ΣΑΕ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Μεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Αρχιτεκτονική Υπολογιστών

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δείκτες Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Εκκλησιαστικό Δίκαιο

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Γενικά Μαθηματικά Ι. Ενότητα 16: Ολοκλήρωση Τριγωνομετρικών Συναρτήσεων, Γενικευμένα Ολοκληρώματα Λουκάς Βλάχος Τμήμα Φυσικής

Μικροβιολογία & Υγιεινή Τροφίμων

Αρχιτεκτονική Υπολογιστών

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Θεωρία Πιθανοτήτων & Στατιστική

Λογισμός 3. Ενότητα 19: Θεώρημα Πεπλεγμένων (γενική μορφή) Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Εισαγωγή στον Προγραμματισμό με C++

Εφαρμογή Υπολογιστικών Τεχνικών στην Γεωργία

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Πληροφορική. Εργαστηριακή Ενότητα 6 η : Ταξινόμηση & Ομαδοποίηση Δεδομένων

Εισαγωγή στους Αλγορίθμους

Αυτοματοποιημένη χαρτογραφία

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Transcript:

Σχεδίαση Γλωσσών & Μεταγλωττιστές Ενότητα 1: Γλώσσες με δομή block Τμήμα Πληροφορικής

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδεια χρήσης, η άδεια χρήσης αναφέρεται ρητώς.

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο«ανοικτά Ακαδημαϊκά Μαθήματα στο Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ενωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

1 Γλώσσες με δομή block Γλώσσες με δομή block Μοντέλο Μηχανής Εκτέλεσης Εμβέλεια και Διάρκεια ζωής Inline blocks 2 Στατική και δυναμική εμβέλεια 3 Συναρτήσεις και υποπρογράμματα Εγγραφές ενεργοποιήσης

Γλώσσες με δομή block Ενθετα blocks και τοπικές μεταβλητές Παράδειγμα: { int a = 5; { int b = 7; a = b + 3; } } Διαχείριση μνήμης: είσοδος block: εκχωρείται χώρος μνήμης για τις νέες μεταβλητές που δηλώνονται στο ένθετο block έξοδος block: αποδεσμεύεται μέρος ή όλη η μνήμη που εκχωρήθηκε

Γλώσσες με δομή block Παραδείγματα γλωσσών με δομή block: C {... } Algol begin... end ML let... in... end Δύο τύποι blocks: inline blocks αυτά για τα procedures και τα functions

Απλό Μοντέλο Μηχανής Εκτέλεσης

Διαχείριση Μνήμης Καταχωρητές, Τομέας Κώδικα, Μετρητής προγράμματος Οι λεπτομέρειες για το σύνολο των εκτελέσιμων εντολών (δυαδικός κώδικας) δεν ενδιαφέρουν Τομέας Δεδομένων Η στοίβα περιέχει δεδομένα που σχετίζονται με την είσοδο/έξοδο σε block Η σωρός περιλαμβάνει δεδομένα μεταβλητής διάρκειας ζωής Ο δείκτης της στοίβας χρησιμοποιείται για 1 είσοδο σε block: εισαγωγή μιας νέας εγγραφής ενεργοποιήσης στη στοίβα 2 έξοδο από block: αφαίρεση από τη στοίβα της πιο πρόσφατης εγγραφής ενεργοποιήσης

Εμβέλεια και Διάρκεια ζωής Εμβέλεια (scope) Η περιοχή του κειμένου του προγράμματος στην οποία είναι ορατή μια δήλωση. Διάρκεια ζωής (lifetime) Η χρονική περίοδος εκχώρησης θέσης μνήμης μέσα στο πρόγραμμα. { int a = 5; { int b = 7; { int a = 4;... }; }; }; Η εμβέλεια και η διάρκεια ζωής εκφράζουν διαφορετικές πληροφορίες. Το εσωτερικό block είναι μια «τρύπα» στην εμβέλεια της εξωτερικής δήλωσης της a. Η διάρκεια ζωής της εξωτερικής a περιλαμβάνει το χρόνο εκτέλεσης του εσωτερικού block.

Inline blocks Εγγραφή ενεργοποιήσης (activation record) Δομή δεδομένων που αποθηκεύεται στη στοίβα. Περιλαμβάνει χώρο για τις τοπικές μεταβλητές και για ενδιάμεσα αποτελέσματα εκφράσεων. 1 { int x = 0; 2 int y = x + 1; 3 { int z = (x + y) (x y); 4 }; 5 }; 1 Εισάγεται στη στοίβα εγγραφή για τις μεταβλητές x, y. 2 Ανάθεση τιμών στις x, y. 3 Εισάγεται εγγραφή για το εσωτερικό block. Ανάθεση τιμής στην z. 4 Αφαιρείται η εγγραφή του εσωτερικού block. 5 Αφαιρείται η εγγραφή του εξωτερικού block.

Εγγραφές ενεργοποιήσης για inline blocks SP Τοπικές μεταβλητές Ενδιάμεσα αποτελέσματα Τοπικές μεταβλητές Ενδιάμεσα αποτελέσματα Σύνδεσμος Δείκτης στην προηγούμενη εγγραφή της στοίβας. Εισαγωγή νέας εγγραφής στη στοίβα Ο σύνδεσμος της νέας εγγραφής δείχνει στην ίδια θέση με τον SP. Ενημερώνεται ο SP ώστε να δείχνει στη θέση της νέας εγγραφής. Αφαίρεση εγγραφής στη στοίβα Προσπελαύνεται ο σύνδεσμος της τρέχουσας εγγραφής για να βρεθεί η νέα δ/νση στην οποία θα δείχνει ο SP.

Παράδειγμα εκτέλεσης inline block 1 { int x = 0; 2 int y = x + 1; 3 { int z = (x + y) (x y); 4 }; 5 }; SP x 0 y 1 1 Εισάγεται εγγραφή με χώρο για τις x, y. 2 Ανάθεση τιμών στις x, y.

Παράδειγμα εκτέλεσης inline block 1 { int x = 0; 2 int y = x + 1; 3 { int z = (x + y) (x y); 4 }; 5 }; SP z -1 x+y 1 x y -1 x 0 y 1 1 Εισάγεται εγγραφή με χώρο για τις x, y. 2 Ανάθεση τιμών στις x, y. 3 Εισάγεται εγγραφή για το εσωτερικό block. Ανάθεση τιμής στην z.

Παράδειγμα εκτέλεσης inline block 1 { int x = 0; 2 int y = x + 1; 3 { int z = (x + y) (x y); 4 }; 5 }; SP x 0 y 1 1 Εισάγεται εγγραφή με χώρο για τις x, y. 2 Ανάθεση τιμών στις x, y. 3 Εισάγεται εγγραφή για το εσωτερικό block. Ανάθεση τιμής στην z. 4 Αφαιρείται η εγγραφή του εσωτερικού block.

Παράδειγμα εκτέλεσης inline block 1 { int x = 0; 2 int y = x + 1; 3 { int z = (x + y) (x y); 4 }; 5 }; SP 1 Εισάγεται εγγραφή με χώρο για τις x, y. 2 Ανάθεση τιμών στις x, y. 3 Εισάγεται εγγραφή για το εσωτερικό block. Ανάθεση τιμής στην z. 4 Αφαιρείται η εγγραφή του εσωτερικού block. 5 Αφαιρείται η εγγραφή του εξωτερικού block.

Στατική και δυναμική εμβέλεια Καθολικές και τοπικές μεταβλητές { int x = 7; int y = x + 1; { int z = (x + y) (x y); }; }; Οι x, y είναι τοπικές στο εξωτερικό block. Η z είναι τοπική στο εσωτερικό block. Οι x, y είναι καθολικές στο εσωτερικό block. Στατική (λεξική) εμβέλεια Καθολική είναι κάθε δήλωση στο πλησιέστερο περικλείον block και σε όσα αυτό περιέχεται. Αναφέρεται σε κείμενο προγράμματος. Δυναμική εμβέλεια Καθολική είναι κάθε δήλωση της πιο πρόσφατης εγγραφής ενεργοποιήσης. Αναφέρεται σε περίοδο χρόνου εκτέλεσης. Για τα inline blocks οι δύο εμβέλειες ταυτίζονται!

Συναρτήσεις και υποπρογράμματα Η σύνταξη υποπρογραμμάτων στην Algol και στη C: procedure P ( < pars > ) < type> f( < pars > ) begin { < local vars > < local vars > < procedure body> < procedure body> end; } Οι εγγραφές ενεργοποιήσης πρέπει να περιλαμβάνουν χώρο για: παραμέτρους διεύθυνση επιστροφής μετά την εκτέλεση τοπικές μεταβλητές & ενδιάμεσα αποτελέσματα επιστρεφόμενη τιμή: θέση εναπόθεσης επιστρεφόμενης τιμής κατά την έξοδο

Τέλος ενότητας Επεξεργασία: Εμμανουέλα Στάχτιαρη Θεσσαλονίκη, 23/07/2014