Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας Προπτυχιακό.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Κατηγορηματικός Λογισμός
Advertisements

Βασικές έννοιες αλγορίθμων
7.3.8 Μεταφραστές Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
Προγραμματισμός Ι Προτάσεις ελέγχου ροής Ο πιο συνηθισμένος τρόπος εκτέλεσης είναι ο ακολουθιακός: δύο ή περισσότερες προτάσεις βρίσκονται διατεταγμένες.
Δομές Διακλάδωσης Μην ελπίζεις ότι θα ξεφύγεις αν κάνεις κάποιο κακό. Γιατί κι αν ξεφύγεις απ’ τη προσοχή των άλλων, θα υποπέσεις στην αντίληψη της συνείδησής.
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 8 Συναρτησιακός Προγραμματισμός: Η Γλώσσα Haskell Προπτυχιακό.
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
Κεφάλαιο 7 Λογικός Προγραμματισμός: Η Γλώσσα Prolog
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων, Σημασιολογικές Ενέργειες.
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
Προγραμματισμός στο ΜatLab
Εισαγωγικές Έννοιες Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
ΕΛΕΓΧΟΣ ΡΟΗΣ ΜΑΘΗΜΑ 4. ΑΚΟΛΟΥΘΙΑΚΗ ΕΚΤΕΛΕΣΗ ΠΡΟΤΑΣΕΩΝ ΠΡΟΤΑΣΗ Α ΠΡΟΤΑΣΗ Β ΠΡΟΤΑΣΗ Γ ………………. ΠΡΟΤΑΣΗ n ΠΡΟΤΑΣΗ Α ΠΡΟΤΑΣΗ Β ΠΡΟΤΑΣΗ Γ ………………. ΠΡΟΤΑΣΗ n.
ΔΙΔΑΣΚΟΥΣΑ : ΑΛΛΑ ΣΙΡΟΚΟΦΣΚΙΧ
ΤΕΛΕΣΤΕΣ II ΜΑΘΗΜΑ 5.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ
1 Ολυμπιάδα Πληροφορικής Μάθημα 2. 2 Στόχοι μαθήματος Αριθμητικοί– Λογικοί Τελεστές Η εντολή IF.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II.
ΗΥ302 Διδακτική της Πληροφορικής Η γλώσσα προγραμματισμού LOGO Writer Ομάδα Εργασία: Αλεβίζου Βασιλική (Α.Μ.:1029) Κοφφινά Ιωάννα (Α.Μ.:1035) Τριανταφυλλίδου.
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
Μεταβλητές – εντολές εκχώρησης- δομή ακολουθίας
1 Οργάνωση και Αρχιτεκτονική Υπολογιστών Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Οργάνωση και Αρχιτεκτονική.
Ενότητα Α.4. Δομημένος Προγραμματισμός
ΘΠ06 - Μεταγλωττιστές Συντακτική Ανάλυση, Bison 1.
ΜΑΘΗΜΑ: ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ ΔΙΔΑΣΚΟΝΤΕΣ: Π. ΚΑΤΣΑΡΟΣ Τρίτη, 31 Μαρτίου 2015Τρίτη, 31 Μαρτίου 2015Τρίτη, 31 Μαρτίου 2015Τρίτη, 31 Μαρτίου 2015Τμ. Πληροφορικής,
ΜΑΘΗΜΑ: ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ ΔΙΔΑΣΚΟΝΤΕΣ: Π. ΚΑΤΣΑΡΟΣ Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τμ. Πληροφορικής,
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
Διδακτική της Πληροφορικής ΗΥ302 Εργασία :Παρουσίαση σχολικού βιβλίου Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 3 Η Σημασιολογία των Γλωσσών Προγραμματισμού Προπτυχιακό.
Δηλαδή οι σημαντικοί δεν ασχολούνται με μικροπράγματα.
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 9: Παραγωγή Ενδιάμεσου Κώδικα (Ενδιάμεσες Γλώσσες) Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά.
ΜΑΘΗΜΑ: ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ ΔΙΔΑΣΚΟΝΤΕΣ: Κ. ΛΑΖΟΣ - Π. ΚΑΤΣΑΡΟΣ Τρίτη, 14 Απριλίου 2015Τρίτη, 14 Απριλίου 2015Τρίτη, 14 Απριλίου 2015Τρίτη, 14 Απριλίου 2015Τμ.
Κεφάλαιο 10 – Υποπρογράμματα
ΜΑΘ3122/106 – Γλώσσα προγραμματισμού Ξενοφών Ζαμπούλης ΜΑΘ3122/106 – Γλώσσα προγραμματισμού Επανάληψη.
Διαφάνειες παρουσίασης #2
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
1 Οργάνωση και Αρχιτεκτονική Υπολογιστών Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Οργάνωση και Αρχιτεκτονική.
ΚΕΦΑΛΑΙΟ Τι είναι αλγόριθμος
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
Επιστημονικός Υπολογισμός Ι Πρώτο Εργαστήριο Εισαγωγή στο matlab 15 Οκτωβρίου 2010 Γιώργος Δρακόπουλος ΤΜΗΥΠ.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι 4-1 Στην ενότητα αυτή θα μελετηθεί η χρήση στοιβών στις εξής εφαρμογές: Αναδρομικές συναρτήσεις Ισοζυγισμός Παρενθέσεων.
Βασικές συνιστώσες/εντολές ενός αλγορίθμου
Βασικά στοιχεία της Java
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
ΚΕΦΑΛΑΙΟ Το αλφάβητο της ΓΛΩΣΣΑΣ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
Γλώσσες Προγραμματισμού Μεταγλωττιστές Πίνακας Συμβόλων Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
Βασικές έννοιες προγραμματισμού Κεφάλαιο 7 ο. Βασικές έννοιες προγραμματισμού Αλφάβητο και τύποι δεδομένων Σταθερές και μεταβλητές Τελεστές, συναρτήσεις.
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ «Εισαγωγή στον οντοκεντρικό προγραμματισμό (βασική εισαγωγή στο περιβάλλον εργασίας)» Ρουσσάκης Ιωάννης, ΤΕΙ Κρήτης,
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
ΚΕΦΑΛΑΙΟ 2ο - ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
Εφαρμογές Υπολογιστών
ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ
ΔΟΜΕΣ ΕΛΕΓΧΟΥ(if-else, switch) και Λογικοί τελεστές / παραστάσεις
Η Γλώσσα Pascal Υποπρογράμματα
Μανασσάκης Βασίλης Καθηγητής Πληροφορικής
Εισαγωγή στον Προγ/μό Υπολογιστών
Τελεστές και ή όχι Για την εκτέλεση αριθμητικών πράξεων
Εντολές και δομές αλγορίθμου
Εισαγωγή στον Προγραμματισμό με Python, ΑΠΘ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Εισαγωγή στον Προγραμματισμό με Python Εβδομάδα 1: Βασικά στοιχεία.
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ Η/Υ
Αναδρομή Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:
Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου
Μεταγράφημα παρουσίασης:

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 2 Εισαγωγή - 1 Μία κλασσική γλώσσα προγραμματισμού αποτελείται από: – Εκφράσεις (των οποίων η τιμή πρέπει να απποτιμηθεί) – Εντολές (οι οποίες εκτελούνται και αλλάζουν την κατάσταση του υπολογιστή)

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 3 Εισαγωγή - 2 Βασική σημασιολογική έννοια – Κατάσταση  Τιμές, που έχουν οι μεταβλητές στη μνήμη του υπολογιστή  Η τιμή μίας έκφρασης του προγράμματος εξαρτάται από την παρούσα κατάσταση του υπολογιστή  Αλλαγή κατάστασης (π.χ. με καταχώρηση νέας τιμής σε μία από τις μεταβλητές του προγράμματος)

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 4 Προστακτικές Γλώσσες Δομές ελέγχου – Καθορίζουν την πορεία εκτέλεσης εντολών ενός προγράμματος – Π.χ. If-then-else, for, while – Υποστηρίζονται από προστακτικές γλώσσες

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 5 Συντακτικό Απλή προστακτική γλώσσα – Υποστήριξη δύο τύπων δεδομένων  Τιμές αληθείας (Boolean)  Φυσικούς αριθμούς (Natural) – Εισαγωγή και άλλων τύπων χωρίς πρόβλημα  Int, real, char – Τρεις κατηγορίες συντακτικών στοιχείων  Λογικές εκφράσεις  Αριθμητικές εκφράσεις  Εντολές

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 6 Βασικές Αριθμητικές και Λογικές Εκφράσεις Αριθμητικές – Σταθερά (0) – Τελεστής (succ)  Παράγει τον επόμενο φυσικό αριθμό Λογικές – Σταθερά true – Εκφράσεις, που παράγονται με χρήση τελεστών (not, and, κλπ) Προσθήκη επιπλέον συμβόλων (πχ false,1,2 κλπ) και τελεστών χωρίς πρόβλημα

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 7 Κύριες Εντολές «Κενή» εντολή (skip) – Δεν έχει κανένα αποτέλεσμα Σύνθεση εντολών – Συμβολισμός με «;» Μηχανισμός βρόγχου – Ο βρόγχος “for N do C” εκτελείται υπολογίζοντας την τιμή της αριθμητικής έκφρασης Ν και μετά εκτελώντας το σώμα C τόσες φορές όσες είναι η τιμή της αριθμητικής έκφρασης. Ο βρόγχος ονομάζεται οριστικός, γιατί ο αριθμός των επαναλήψεων καθορίζεται πριν την εκτέλεση του.

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 8 Εντολές Η γλώσσα δεν διαθέτει (αρχικά) μηχανισμούς αλλαγής της κατάστασης ούτε μεταβλητές.

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 9 Συντακτικό Δίνεται με τη βοήθεια context-free γραμματικής – Το σύμβολο  C αναπαριστά μία εντολή  Β μία λογική έκφραση  Ν μία αριθμητική έκφραση

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 10 Κανόνες Παραγωγής Εντολών C::= skip | C o ; C 1 | for N do C | if B then C o else C 1 | (C)

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 11 Κανόνες Παραγωγής Λογικών Εκφράσεων Β ::= true | not B | B o and B 1 | N o < N 1 | N o = N1 | B o = B 1 | if B then B o else B 1 | (B)

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 12 Κανόνες Παραγωγής Αριθμητικών Εκφράσεων N ::= 0 | succ N | if B then N o else N 1 | (N)

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 13 Σημασιολογία - 1 Βασική είναι η έννοια της κατάστασης (state) – Αναπαριστά τη μνήμη υπολογιστή – Η τιμή μιας έκφρασης σε μία προστακτική γλώσσα προγραμματισμού εξαρτάται από τις μεταβλητές της έκφρασης. – Οι τιμές των μεταβλητών φυλάσσονται στη μνήμη του υπολογιστή Η γλώσσα όπως ορίσθηκε δεν διαθέτει μεταβλητές και εντολές ανάθεσης

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 14 Σημασιολογία - 2 Η γλώσσα όμως θα επεκταθεί και έχουν ήδη εισαχθεί απλές εντολές Η σημασιολογία της γλώσσας δίνεται με βάση την έννοια της κατάστασης

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 15 Σημασιολογία - 3 Έστω σύνολο καταστάσεων S Το νόημα μιας – Έκφρασης της γλώσσας είναι μία συνάρτηση η οποία για κάθε κατάσταση του υπολογιστή δίνει την τιμή της έκφρασης σε σχέση με την κατάσταση αυτή – Εντολής είναι μία συνάρτηση η οποία μετασχηματίζει την τρέχουσα κατάσταση του υπολογιστή σε μία νέα κατάσταση

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 16 Συναρτήσεις C [[ · ]] – Δίνει νόημα στις εντολές της γλώσσας Β [[ · ]] – Δίνει νόημα στις λογικές εκφράσεις N [[ · ]] – Δίνει νόημα στις αριθμητικές εκφράσεις Οι συναρτήσεις αυτές ορίζονται αναδρομικά και ο ορισμός καθεμίας χρησιμοποιεί τις υπόλοιπες

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 17 Ορισμός Συνάρτησης Β [[ · ]] Β [[true]]s = true true, if B [[B]]s =false B [[not B]]s = false, if B [[B]]s =true true, if B [[B o ]]s =true and B [[B o and B 1 ]]s = B [[B 1 ]]s =true false, otherwise

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 18 Ορισμός Συνάρτησης Β [[ · ]] true, if N [[N o ]]s < N [[N 1 ]]s B [[N o < N 1 ]]s = false, otherwise true, if N [[N o ]]s = N [[N 1 ]]s B [[N o = N 1 ]]s = false, otherwise

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 19 Ορισμός Συνάρτησης Β [[ · ]] true, if B [[B o ]]s = B [[B 1 ]]s B [[B o = B 1 ]]s = false, otherwise B [[B o ]]s, if B [[B]]s = true B [[ if B then B o else B 1 ]]s = B [[B 1 ]]s, otherwise B [[(B)]]s= B [[B]]s

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 20 Ορισμός Συνάρτησης N [[ · ]] N [[0]]s = 0 N [[succ N]]s = N [[N]]s +1 N [[N o ]]s, if B [[B]]s = true N [[ if B then N o else N 1 ]]s = N [[N 1 ]]s, otherwise N [[(N)]]s= N [[N]]s

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 21 Σημασιολογία Εντολών Δίνεται από τη συνάρτηση C [[ · ]] C [[skip]]s = s C [[C o ;C 1 ]]s = C [[C 1 ]]( C [[C o ]]s) C [[for N do C]]s = C [[C]] n (s), where n= N [[N]]s C [[C o ]]s, if B [[B]]s = true C [[ if B then C o else C 1 ]]s = C [[C 1 ]]s, otherwise C [[(C)]]s= C [[C]]s

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 22 Δομική Επαγωγή Τεχνική για αποδείξεις στη σημασιολογία Εφαρμογή της συνηθισμένης επαγωγής στην συντακτική δομή των εκφράσεων μιας γλώσσας (πιο συγκεκριμένα στο βάθος του συντακτικού δέντρου των εκφράσεων της γλώσσας)

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 23 Δομική Επαγωγή Μία ιδιότητα αποδεικνύεται για κάθε – Ένα από τα πρωτόγονα στοιχεία του συντακτικού της γλώσσας – Σύνθετη έκφραση της γλώσσας με βάση την υπόθεση ότι οι εκφράσεις που την αποτελούν έχουν την ιδιότητα

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 24 Παράδειγμα 4.1 Με τη χρήση δομικής επαγωγής μπορεί να δειχθεί ότι για την δεδομένη γλώσσα (που δεν έχει εντολές ανάθεσης) ισχύει: C [[C]]s = s για κάθε εντολή C και για κάθε κατάσταση s.

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 25 Παράδειγμα 4.1 Για την επαγωγική βάση αρκεί να εξετασθεί η περίπτωση C=skip, για την οποία ισχύει το ζητούμενο, καθώς C[[skip]]s=s Μένει να δειχθεί ότι ισχύει και για πιο σύνθετες εντολές με βάση ότι ισχύει για τις υποεντολές, που τις συνθέτουν. Αυτό απαιτεί την εξέταση τεσσάρων περιπτώσεων μιας σύνθετης εντολής (σύνθεση εντολών, for, if και παρενθετοποίηση).

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 26 Σύνθεση C [[C o ;C 1 ]]s = C [[C 1 ]]( C [[C o ]]s) (Semantics) = C [[C 1 ]](s) (Hypothesis) = s (Hypothesis) Οι υπόλοιπες περιπτώσεις σύνθετων εντολών μπορούν να δειχθούν με ανάλογο τρόπο.

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 27 Εντολές Ανάθεσης Σημαντική έλλειψη της γλώσσας η απουσία μεθόδων για προσπέλαση και αλλαγή της κατάστασης (δηλαδή της μνήμης) Για το σκοπό αυτό ορίζεται ένα σύνολο ονομάτων μεταβλητών (variable-identifiers) – Συμβολίζεται με Var – Χωρίζεται σε δύο υποσύνολα μεταβλητών  Λογικές (Boolean)  Αριθμητικές (Natural)

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 28 Συνάρτηση π Προσδιορίζει τον τύπο της κάθε μεταβλητής Παράδειγμα: Αν i είναι μία λογική μεταβλητή, τότε π(i)=boolean, ενώ αν j είναι μία αριθμητική μεταβλητή, τότε π(j)= natural

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 29 Επέκταση Συντακτικού Επιτρέπει χρήση μεταβλητών και εντολών ανάθεσης Επεκτείνουμε κανόνες παραγωγής εκφράσεων και εντολών της γλώσσας, ως εξής: Β ::=..... | i, where i  Var, π(i)=boolean Ν ::=..... | i, where i  Var, π(i)=natural C ::=..... | i:= B, π(i)=boolean | i:= N, π(i)=natural

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 30 Μαθηματικός Ορισμός Συνόλου Καταστάσεων Διαισθητικά, μία κατάσταση s  S είναι μία συνάρτηση, που – αντιστοιχίζει σε κάθε μεταβλητή της γλώσσας μία τιμή – πρέπει να «σέβεται» τον τύπο κάθε μεταβλητής – αντιστοιχίζει στις  Λογικές μεταβλητές, λογικές τιμές  Αριθμητικές μεταβλητές, αριθμητικές τιμές

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 31 Ορισμός Με βάση τις παρατηρήσεις, το σύνολο S των καταστάσεων ορίζεται ως: S ={ s: Var  Nat  {true, false}| s(i)  Nat if π(i)= natural and s(i)  {true,false} if π(i)= boolean} Η σημασιολογία της γλώσσας μπορεί να επεκταθεί, για να καλύψει μεταβλητές και εντολές ανάθεσης

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 32 Παράδειγμα Στην δεύτερη εξίσωση, το σύμβολο Ε χρησιμοποιείται για αναπαράσταση οποιασδήποτε έκφρασης της γλώσσας (λογικής ή αριθμητικής) [[i]]s = s(i) [[i :=E]]s = (s| i ↦ [[E]]s) Όπου (s| i ↦ [[E]]s) είναι μία νέα κατάσταση s’ έτσι ώστε s’(i)=[[E]]s και για κάθε άλλη μεταβλητή i’  i, s’(i’)=s(i)

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 33 Παράδειγμα Η δεύτερη εξίσωση λέει ότι η εκτέλεση μίας εντολής ανάθεσης σε μία δεδομένη κατάσταση έχει ως αποτέλεσμα την παραγωγή μιας «νέας» κατάστασης στην οποία άλλαξε μόνο η τιμή της μεταβλητής, που σχετίζεται με την ανάθεση. Η νέα τιμή είναι η τιμή του δεξιού μέλους της εντολής ανάθεσης υπολογισμένη στην «παλαιά» κατάσταση.

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 34 Απόδειξη Ισοδυναμίας Εντολών Η εντολή i :=( if B then E o else E 1 ) και η εντολή if B then (i:= E o ) else (i:=E 1 ) μπορούν εύκολα να αποδειχθούν ισοδύναμες με τη χρήση των παραπάνω σημασιολογικών εξισώσεων