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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Γραφήματα & Επίπεδα Γραφήματα
Advertisements

Κατηγορηματικός Λογισμός
Επιμέλεια: Τίκβα Χριστίνα
7.3.8 Μεταφραστές Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
ΓΡΑΜΜΑΤΙΚΕΣ ΧΩΡΙΣ ΣΥΜΦΡΑΖΟΜΕΝΑ I
7.5.2 Αντικειμενοστραφής προγραμματισμός
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Πρώτο Αρχιτεκτονική.
Πιθανοκρατικοί Αλγόριθμοι
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Επιμέλεια: Δέγγλερη Σοφία
Εισαγωγή στους Η/Υ Πίνακες.
Ημερομηνία: 13/12/2006 Τμήμα: Πληροφορικής του Ιονίου Πανεπιστημίου
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ. Ε
Εκτέλεση Αλγορίθμων σε ψευδογλώσσα
Εντολες Επιλογης (Selection)
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος δ
Page  1 Ο.Παλιάτσου Γαλλική Επανάσταση 1 ο Γυμνάσιο Φιλιππιάδας.
ΝΕΟ ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ Α’, Β’, & Γ’ ΓΥΜΝΑΣΙΟΥ ΟΜΑΔΑ ΕΡΓΑΣΙΑΣ Ανδρέας Σ. Ανδρέου (Αναπλ. Καθηγητής ΤΕΠΑΚ - Συντονιστής) Μάριος Μιλτιάδου, Μιχάλης Τορτούρης.
1 4 Square Questions B A D C Κοιτάξτε προσεκτικά το διάγραμμα. Θα σας κάνω 4 ερωτήσεις γι’ αυτό το τετράγωνο. ΕΤΟΙΜΟΙ;
Προγραμματισμός στο ΜatLab
Εισαγωγικές Έννοιες Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Διακριτά Μαθηματικά ΙI Αναδρομή
Αναγνώριση Προτύπων.
Κεφάλαιο 2ο Πεπερασμένα αυτόματα.
Γραφήματα & Επίπεδα Γραφήματα
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων.
Β΄ ΓΕΛ ΕισΑρχΕπ Η/Υ παρ – 2.2.5
Άλγεβρα Boole και Λογικές Πύλες
ΔΙΔΑΣΚΟΥΣΑ : ΑΛΛΑ ΣΙΡΟΚΟΦΣΚΙΧ
HY 120 ΨΗΦΙΑΚΗ ΣΧΕΔΙΑΣΗ Ασυγχρονα ακολουθιακα κυκλωματα.
Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ» Β΄ τάξης Γενικού Λυκείου
Η αλληλουχία των ενεργειών δεν είναι πάντα μία και μοναδική!!!
Τεχνολογία ΛογισμικούSlide 1 Αλγεβρική Εξειδίκευση u Καθορισμός τύπων αφαίρεσης σε όρους σχέσεων μεταξύ τύπων λειτουργιών.
ΗΥ120 ΨΗΦΙΑΚΗ ΣΧΕΔΙΑΣΗ Συναρτησεις Boole.
Συνδυαστικά Κυκλώματα
Μεταβλητές – εντολές εκχώρησης- δομή ακολουθίας
ANAKOINWSH H 2η Ενδιάμεση Εξέταση μεταφέρεται στις αντί για , την 24 Νοεμβρίου στις αίθουσες ΧΩΔ και 110 λόγω μη-διαθεσιμότητας.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Ουρά Προτεραιότητας: Heap
Σχεδίαση Αλγορίθμων. Διεργασίες (1/2) Μία διεργασία αλληλεπιδρά με το περιβάλλον της δεχόμενη είσοδο και παράγοντας έξοδο.
Κεφάλαιο 6: Εισαγωγή στον προγραμματισμό Φυσικές και τεχνητές γλώσσες.
Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης
Ενότητα Α.4. Δομημένος Προγραμματισμός
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακός Λογισμός.
Η αλληλουχία των ενεργειών δεν είναι πάντα μία και μοναδική!!!
Δέσποινα Μαγγίνα M1175 Κωνσταντίνος Γαργάνης Μ1172 Δήμητρα Μαρία Χαρακλιά Μ1206 Ιωάννης Παπαδάκης Μ1171 Αλέξανδρος Νικολόπουλος Μ1182 Δημήτριος Μπαϊρακτάρης.
Διδακτική της Πληροφορικής ΗΥ302 Εργασία :Παρουσίαση σχολικού βιβλίου Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
Βάσεις Δεδομένων Εργαστήριο ΙΙ Τμήμα Πληροφορικής ΑΠΘ
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακό Μοντέλο.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακό Μοντέλο.
Δομές Δεδομένων - Ισοζυγισμένα Δυαδικά Δένδρα (balanced binary trees)
1 Βάσεις Δεδομένων ΙI Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ SQL (3 από 3) T Manavis.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Αγγελική Γεωργιάδου- Αναστασία Πεκτέσογλου Δράμα 2006
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας Προπτυχιακό.
Κεφάλαιο 10 – Υποπρογράμματα
Βασικές συνιστώσες/εντολές ενός αλγορίθμου
Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
ΚΕΦΑΛΑΙΟ 2ο - ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
ΦΑΣΕΙΣ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΟΣ – ΑΝΑΠΤΥΞΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ
Λογικές πύλες και υλοποίηση άλγεβρας Boole ΑΡΒΑΝΙΤΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ(ΣΥΝΕΡΓΑΤΕΣ):ΔΗΜΗΤΡΙΟΣ ΔΑΒΟΣ- ΜΑΡΙΑ ΕΙΡΗΝΗ KAΛΙΑΤΣΗ-ΦΡΑΤΖΕΣΚΟΣ ΒΟΛΤΕΡΙΝΟΣ… ΕΠΠΑΙΚ ΑΡΓΟΥΣ.
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ Η/Υ
Μεταγράφημα παρουσίασης:

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

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

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 3 Παράδειγμα 3.1 Περίπτωση βρόγχου while, με μορφή while do Άτυπη περιγραφή σημασιολογίας «Αρχικά γίνεται έλεγχος της λογικής συνθήκης. Αν το αποτέλεσμα είναι αληθές, τότε γίνεται είσοδος στο βρόχο και εκτέλεση των εντολών που βρίσκονται μέσα σε αυτόν, μία φορά. Έλεγχος και πάλι της συνθήκης. Για ψευδή συνθήκη, ο βρόγχος παρακάμπτεται και ο έλεγχος μεταφέρεται στην πρώτη εντολή που ακολουθεί τη δομή του βρόχου».

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 4 Παράδειγμα 3.2 Ερώτηση: Είναι στην ALGOL 60 ισοδύναμες οι εκφράσεις x+f(x) και f(x)+x; Απάντηση: Εξαρτάται από το αν η f αλλάζει την τιμή του x. Εάν ναι, τότε η τιμή των δύο παραπάνω εκφράσεων είναι διαφορετική ανάλογα με τη σειρά που η υλοποίηση της γλώσσας υπολογίζει τις τιμές των x και f(x).

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

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 6 Μέθοδοι Σημασιολογίας Μηχανική (operational semantics) Αξιωματική (axiomatic semantics) Δηλωτική (denotational semantics)

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

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 8 Μηχανική Σημασιολογία - 2 Βασική ιδέα – Απλό μοντέλο – Δεν αφήνει περιθώρια για παρανοήσεις Η σημασιολογία μιας γλώσσας καθορίζεται ως μετάφραση βασικών εντολών της στη γλώσσα του αφηρημένου μοντέλου Γλώσσες PL/1 (μέθοδος VDM), ALGOL 68, κλπ

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

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 10 Αξιωματική Σημασιολογία - 2 Παράδειγμα Βρόχος: while B do C B: έκφραση C: εντολή Όταν ο βρόχος ολοκληρωθεί (εάν ποτέ ολοκληρωθεί) η τιμή της έκφρασης Β θα είναι ψευδής.

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

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

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 13 Παρατηρήσεις για τις Μεθόδους Αποτελούν αποδεκτές τεχνικές για τον καθορισμό της σημασιολογίας μιας γλώσσας προγραμματισμού Διαφέρουν ως προς τη φιλοσοφία τους Μηχανική  Υλοποίηση γλώσσας Αξιωματική  Αποδεκτή από προγραμματιστές Ενδεικτική  Χρησιμοποίηση από σχεδιαστές γλώσσας

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 14 Παράδειγμα Δυαδικές Ακολουθίες Συντακτικό γλώσσας δυαδικών ακολουθιών Περιγραφή με context-free γραμματική S ::= 0 | 1 | S0 | S1

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 15 Παράδειγμα Δυαδικές Ακολουθίες Seq – Είναι το σύνολο των ακολουθιών, που παράγονται με βάση τον ορισμό – Αποτελείται από πεπερασμένες ακολουθίες των ψηφίων 0 και 1 – Δεν γνωρίζουμε (ακόμη) το νόημα τους

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

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 17 Παράδειγμα Στη συγκεκριμένη περίπτωση, η [[ · ]] μετατρέπει ακολουθίες δυαδικών ψηφίων σε φυσικούς αριθμούς ([[ · ]] : Seq  Nat) Ορίζεται ως: [[0]] = 0 [[1]] = 1 [[S0]] = 2 X [[S]] [[S1]] = 2 X [[S]] +1

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 18 Παράδειγμα 3.3 Ακολουθία 1100 [[ 1100 ]] = 0 = 2 Χ [[110]] = 2 Χ (2 Χ [[11]]) = 2 Χ (2 Χ (2 Χ [[1]] +1) = 2 Χ (2 Χ (2 Χ 1 +1)) = 12

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 19 Σχόλια Υπάρχει μία εξίσωση για κάθε κανόνα του συντακτικού Δεν είναι προφανές ότι οι εξισώσεις ορίζουν μία μαθηματική συνάρτηση – Το σύμβολο [[·]] εμφανίζεται και στη δεξιά και στην αριστερή πλευρά των εξισώσεων

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 20 Εξισώσεις [[0]]=0 Η εξίσωση δεν είναι κυκλική Το 0 στα αριστερά είναι σύμβολο της γλώσσας- αντικείμενο (object language) – Την μελετάμε και επιθυμούμε να της αποδώσουμε νόημα – Σύνολο δυαδικών ακολουθιών ή μία οποιαδήποτε γλώσσα προγραμματισμού (π.χ. C ή Pascal) Το 0 στα δεξιά είναι ο φυσικός αριθμός, που αποτελεί το νόημα της ακολουθίας 0.

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

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

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 23 Παράδειγμα 3.4 Οι εξισώσεις στον ορισμό της σημασιολογίας δυαδικών ακολουθιών, υπακούουν στον κανόνα της συνθεσιμότητας, γιατί ανάγουν τον υπολογισμό της σημασιολογίας των εκφράσεων S0 και S1 στην σημασιολογία της απλούστερης έκφρασης S.

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 24 Παράδειγμα 3.4 [[while B do C]]=[[if B then (C; while B do C)]] Ο παραπάνω ορισμός δεν υπακούει στον κανόνα της συνθεσιμότητας. Η έκφραση εντός του συμβόλου [[·]] στη δεξιά πλευρά δεν αποτελεί υπο-έκφραση αυτής στην αριστερή.

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 25 Παράδειγμα 3.4 [[while B do C]]=...[[Β]]...[[C]]…[[while B do C)]].. Δεν ισχύει και πάλι ο κανόνας της συνθεσιμότητας. Η εξίσωση όμως λύνεται – Χρήση της λύσης για ορισμό σημασιολογίας του while, που υπακούει στον κανόνα της συνθεσιμότητας