HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Βασικές Έννοιες Προγραμματισμού
Advertisements

Προγραμματισμός PASCAL
Δομές Διακλάδωσης Μην ελπίζεις ότι θα ξεφύγεις αν κάνεις κάποιο κακό. Γιατί κι αν ξεφύγεις απ’ τη προσοχή των άλλων, θα υποπέσεις στην αντίληψη της συνείδησής.
Ένα απλό πρόγραμμα σε C /* ********************************************* * This program prints out the sentence “This is a test.” * *********************************************
Εργαστήριο μαθήματος «Τεχνολογία Γνώσης» Σαντιπαντάκης Γιώργος
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
Διαφάνειες παρουσίασης #5
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
Δομές Διακλάδωσης.
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος α
Γενική μορφή προγράμματος Pascal
Προγραμματισμός στο ΜatLab
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
Διαφάνειες παρουσίασης #3
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II.
ΗΥ302 Διδακτική της Πληροφορικής Η γλώσσα προγραμματισμού LOGO Writer Ομάδα Εργασία: Αλεβίζου Βασιλική (Α.Μ.:1029) Κοφφινά Ιωάννα (Α.Μ.:1035) Τριανταφυλλίδου.
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
Μεταβλητές – εντολές εκχώρησης- δομή ακολουθίας
1 Οργάνωση και Αρχιτεκτονική Υπολογιστών Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Οργάνωση και Αρχιτεκτονική.
Σχεδίαση Αλγορίθμων. Διεργασίες (1/2) Μία διεργασία αλληλεπιδρά με το περιβάλλον της δεχόμενη είσοδο και παράγοντας έξοδο.
Κεφάλαιο 6: Εισαγωγή στον προγραμματισμό Φυσικές και τεχνητές γλώσσες.
Ενότητα Α.4. Δομημένος Προγραμματισμός
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
1.5 Γλώσσες Προγραμματισμού
Διαφάνειες παρουσίασης Πίνακες (συνέχεια) Αριθμητικοί υπολογισμοί Αναδρομή.
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 3 Η Σημασιολογία των Γλωσσών Προγραμματισμού Προπτυχιακό.
Δηλαδή οι σημαντικοί δεν ασχολούνται με μικροπράγματα.
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
ΣΥΝΟΛΑ.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΤΟ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΗΣ ΓΛΩΣΣΑΣ PASCAL ΠΑΡΟΥΣΙΑΣΗ ΠΑΡΑΔΕΙΓΜΑΤΟΣ: ΕΚΤΕΛΕΣΗ ΠΡΟΓΡΑΜΜΑΤΟΣ ΜΕ ΤΙΣ ΤΡΕΙΣ ΕΠΑΝΑΛΗΠΤΙΚΕΣ.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 12: Παραγωγή Ενδιάμεσου Κώδικα (Σημασιολογικές ρουτίνες μετάφρασης-Μέρος Β) Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής.
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας Προπτυχιακό.
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Διαφάνειες παρουσίασης #2
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
1 Οργάνωση και Αρχιτεκτονική Υπολογιστών Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Οργάνωση και Αρχιτεκτονική.
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Syntax Directed Translation and alpha Language.
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
Βασικά στοιχεία της Java
ΚΕΦΑΛΑΙΟ Το αλφάβητο της ΓΛΩΣΣΑΣ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
Βασικές έννοιες προγραμματισμού Κεφάλαιο 7 ο. Βασικές έννοιες προγραμματισμού Αλφάβητο και τύποι δεδομένων Σταθερές και μεταβλητές Τελεστές, συναρτήσεις.
Πληροφορική 2 Γλώσσες Προγραμματισμού 1. Γλώσσες προγραμματσιμού  Επιτρέπουν την κωδικοποίηση των αλγορίθμων  Η εκτέλεση ενός προγράμματος θα πρέπει.
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
Η Γλώσσα Pascal Εντολή If
Εφαρμογές Υπολογιστών
ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ
Ενισχυτική διδασκαλία
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος
Η Γλώσσα Pascal Υποπρογράμματα
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
Εντολές και δομές αλγορίθμου
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ Η/Υ
Μεταγράφημα παρουσίασης:

HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος Νικολάου

ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΓΛΩΣΣΩΝ ΠΡΟΓΡΑΜΜΑΤΣΜΟΥ ΕΝΟΤΗΤΑ ΙII ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΓΛΩΣΣΩΝ ΠΡΟΓΡΑΜΜΑΤΣΜΟΥ Διάλεξη 1η HY100, 2005 Α. Σαββίδης, Χ. Νικολάου

Περιεχόμενα Εισαγωγή Αλφάβητο Λεξιλόγιο Συντακτικό Σημασιολογία HY100, 2005 Α. Σαββίδης, Χ. Νικολάου

Εισαγωγή Οι γλώσσες προγραμματισμού μπορούμε να δείξουμε ότι ακολουθούν τις βασικές έννοιες και αρχές της γλωσσολογίας Αυτό σημαίνει ότι μπορεί να έχουμε διαφορετικές γλώσσες για να «λέμε» ή να «περιγράφουμε» παρόμοια πράγματα όπως τα ακριβή βήματα της εκτέλεσης ενός αλγορίθμου Χρησιμοποιώντας ωστόσο φαινομενικά διαφορετικές γλωσσικές δομές, ώστε να νομίζουμε ότι έχουμε πολύ διαφορετικές γλώσσες Θα μιλήσουμε για την οικογένεια γλωσσών προγραμματισμού στην οποία ανήκει η FLIP, με τις οποίες «προστάζουμε» τον υπολογιστή να κάνει ακριβώς ότι περιγράφουμε για το λόγο αυτό οι γλώσσες αυτές είθισται να είναι γνωστές ως προστακτικές (imperative) γλώσσες προγραμματισμού HY100, 2005 Α. Σαββίδης, Χ. Νικολάου

Αλφάβητο Είναι το σύνολο των βασικών συμβόλων τα οποία και επιτρέπονται για τη συγκεκριμένη γλώσσα π.χ. για τη γλώσσα FLIP Λατινικοί χαρακτήρες γραμμάτων, κεφαλαία και μικρά, και ο χαρακτήρας υπογράμμιση (underscore) {a,..,z}  {A,…,Z}  { _ } Αριθμητικοί χαρακτήρες {0,..,9} Ορισμένοι ειδικοί χαρακτήρες ως ειδικά σύμβολα ή «σημεία στίξης» + * - / % = ( ) . ; [ ] , ‘ " >= <= > < ενώ δεν επιτρέπονται στη FLIP: μη εκτυπώσιμοι χαρακτήρες, ελληνικά γράμματα, σύμβολα όπως τα @ # $ ^! & ^ κλπ HY100, 2005 Α. Σαββίδης, Χ. Νικολάου

Λεξιλόγιο (1/2) Σύνολο νόμιμων λέξεων που μπορούν να δημιουργούνται με στοιχεία του αλφάβητου της γλώσσας Πρώτα οι λέξεις κλειδιά (τα παρακάτω είναι της FLIP) ADDRESS ADDRESSEX AND ARGUMENTS BEGIN BOOLEAN CHARACTER CONST_BOOLEAN CONST_CHARACTER CONST_INTEGER CONST_REAL CONST_STRING CONTENTOF CONTENTOFEX DIFFERENT DO ELSE END EQUAL FALSE FALSESTR FINISH FOR FUNCTION GETINPUT GETINPUTEX GRANTPOSITIONS IF INPUT INPUTEX INTEGER LINE NIL NOT OR OUTPUT OUTPUTEX PAGEOF PI POSITION POSITIONOF POSITIONOFEX PROCEDURE PROGRAM_BEGIN PROGRAM_END REAL RECORD RECBEGIN RECEND RELEASEPOSITIONS RESULT ROWOF STOP STRING THEN TRUE TRUESTR USEPOSITION USEREGION WHILE ΤΟ cos curr_date curr_day curr_month curr_year sin sqr sqrt string_get string_isinteger string_isreal string_length string_set tan typeof HY100, 2005 Α. Σαββίδης, Χ. Νικολάου

Λεξιλόγιο (2/2) Ονόματα μεταβλητών Σταθερές τιμές τύπου Δεν πρέπει να είναι λέξεις κλειδιά Μπορούν να αρχίζουν με γράμμα ή και υπογράμμιση υπογράμμιση ακολουθούμενο από γράμματα / αριθμούς / υπογράμμιση (χωρίς κενά) π.χ. x y _point my_point myPoint name1 name2 value1x value1y INPUT_MSG Σταθερές τιμές τύπου STRING, π.χ. “hello” “Monday” “give N:” “?” CHARACTER, π.χ. ‘a’ ‘0’ ‘?’ ‘1’ ‘=‘ INTEGER, π.χ. 10 20 –456 +126712 REAL, π.χ. 3.12345 –454.4545 BOOLEAN, π.χ. TRUE FALSE HY100, 2005 Α. Σαββίδης, Χ. Νικολάου

Αλφάβητο / λεξιλόγιο Εάν χρησιμοποιούμε στο πρόγραμμα στοιχεία που δεν ανήκουν στο αλφάβητο και το λεξιλόγιο της γλώσσας, έχουμε compile errors, δηλ. λάθη μεταγλώττισης Ο υπηρέτης ή ο εκάστοτε compiler «αρνείται» να μεταγλωττίσει το πρόγραμμά μας, διότι δεν το αναγνωρίζει ως ορθογραφικά σωστό πρόγραμμα και όχι ως λογικά σωστό – αυτό δεν το καταλαβαίνει ένας compiler π.χ. όταν χρησιμοποιήσετε ελληνικά ονόματα για μεταβλητές, π.χ. εμβαδόν ή περίμετρος, ή χαρακτήρες που δεν ανήκουν στο νόμιμο σύνολο (αποδεκτών) συμβόλων, π.χ. $ @ # ή σταθερές σε μορφή που δεν υποστηρίζονται, π.χ. ‘λάθος’ 4,561 HY100, 2005 Α. Σαββίδης, Χ. Νικολάου

Γραμματική (1/4) Ορίζει τους κανόνες σωστού συντακτικού ενός προγράμματος, τους οποίους και οφείλει να τους γνωρίζει και σέβεται ο προγραμματιστής – program syntax Π.χ, για τη γλώσσα FLIP Όλες οι απλές εντολές τελειώνουν με το σύμβολο ; Τα blocks ορίζονται ως BEGIN Εντολές END με δυνατότητα οι Εντολές να είναι κενές Ο ορισμός ενός record πάντα τελειώνει με ; Δεν επιτρέπεται ορισμός υποπρογραμμάτων μέσα σε άλλο υποπρόγραμμα Δεν επιτρέπονται εντολές παρά μόνο μέσα σε κάποιο block ή το κυρίως πρόγραμμα κλπ Τυπικό (Accidence). Είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μία λέξη είναι αποδεκτή. Για παράδειγμα στην ελληνική γλώσσα οι λέξεις εκτυπωτής, εκτυπωτή, εκτυπωτές είναι δεκτές ενώ η λέξη εκτυπωτ δεν είναι δεκτή. Συντακτικό (Syntax). Είναι το σύνολο των κανόνων που καθορίζει τη νομιμότητα της διάταξης και της σύνδεσης των λέξεων για την δημιουργία των προτάσεων. Σημασιολογία. Είναι το σύνολο των κανόνων που καθορίζει το νόημα των λέξεων και κατά επέκταση των εκφράσεων και προτάσεων που χρησιμοποιούνται σε μία γλώσσα. HY100, 2005 Α. Σαββίδης, Χ. Νικολάου

Γραμματική (2/4) Η εντολή εκχώρησης έχει την συντακτική δομή Μεταβλητή = Έκφραση ; Μεταβλητή μπορεί να είναι Αναγνωριστικό όνομα μεταβλητής, π.χ. x y area perimeter Έκφραση στοιχείο ενός πίνακα P[4] P[i] Πεδίο μεταβλητής record, π.χ. start.x end.y Άμεση θέση μνήμης, π.χ. POSITION(10, j) Περιεχόμενο απλής διεύθυνσης, π.χ. CONTENTOF(addr) Περιεχόμενο διεύθυνσης ειδικού τύπου, π.χ. CONTENTOFEX(p) HY100, 2005 Α. Σαββίδης, Χ. Νικολάου

Γραμματική (3/4) Η εντολή εκτέλεσης υπό συνθήκη έχει τη μορφή IF Λογική έκφραση ΤΗΕΝ Εντολή IF Λογική έκφραση ΤΗΕΝ Εντολή ELSE Εντολή Με Λογική έκφραση να μπορεί να είναι Σταθερά τιμή boolean Μεταβλητή τύπου boolean Συγκριτική έκφραση με τελεστές > >= < <= EQUAL DIFFERENT Λογική έκφραση με τελεστές AND OR ΝΟΤ Κλήση συνάρτησης με επιστρεφόμενο αποτέλεσμα τύπου boolean Βλέπουμε ότι ορισμένα στοιχεία του συντακτικού εξαρτώνται από τον ορισμό άλλων στοιχείων π.χ. δεν μπορούμε να γνωρίζουμε ακριβώς το συντακτικό της IF παρά μόνο εάν ορίσουμε επιπλέον με ακρίβεια και το συντακτικό της Eντολής HY100, 2005 Α. Σαββίδης, Χ. Νικολάου

Γραμματική (4/4) Παραδείγματα x = y * z + 30; IF x > 5 THEN y = x – 5; ELSE y = 5 – x; WHILE N > 0 DO BEGIN OUTPUT(P[N]); N = N-1; END Ο compiler «αρνείται» να μεταγλωττίσει ένα πρόγραμμα όταν αυτό δεν είναι συντακτικά σωστό Δηλ. όταν δεν υπακούει στους κανόνες γραμματικής της αντίστοιχης γλώσσας Π.χ., συντακτικά λανθασμένος κώδικας σε FLIP IF x<45 x = 45 - x; Λείπει το THEN y = ] x [; Άγνωστη συντακτικά έκφραση P(i) = * 10 *; Άγνωστη συντακτικά έκφραση HY100, 2005 Α. Σαββίδης, Χ. Νικολάου

Σημασιολογία (1/6) Είναι οι σαφείς κανόνες που ορίζουν κυρίως: τους τύπους δεδομένων και την αντιστοιχία μεταβλητών και εκφράσεων σε μνήμη του προγράμματος τους κανόνες εμβέλειας αναγνωριστικών ονομάτων του προγράμματος τους κανόνες που αφορούν τη νομιμότητα χρήσης καθώς και συμβατότητας μεταξύ εκφράσεων και τύπων του προγράμματος την ακριβή συμπεριφορά των εντολών κατά την εκτέλεση του προγράμματος τον τρόπο υπολογισμού των αριθμητικών και λογικών εκφράσεων τους κανόνες κλήσης και επιστροφής από κλήση των υποπρογραμμάτων HY100, 2005 Α. Σαββίδης, Χ. Νικολάου

Σημασιολογία (2/6) Π.χ. IF Έκφραση ΤΗΕΝ Εντολή 1 ELSE Εντολή 2 Εάν η Έκφραση την στιγμή της εκτέλεσης μίας τέτοιας εντολής αποτιμάται στην τιμή TRUE, τότε εκτελείται η Εντολή 1, αλλιώς η Εντολή 2. IF Έκφραση ΤΗΕΝ Εντολή Εάν η Έκφραση την στιγμή της εκτέλεσης μίας τέτοιας εντολής αποτιμάται στην τιμή TRUE, τότε εκτελείται η Εντολή. HY100, 2005 Α. Σαββίδης, Χ. Νικολάου

Σημασιολογία (3/6) H σημασιολογία διέπει επίσης και τους κανόνες ελέγχου για τους τύπους δεδομένων σε εκφράσεις Π.χ. στη FLIP επιτρέπεται εκχώρηση σε μία μεταβλητή τύπου INTEGER μόνο εκφράσεων τύπου: INTEGER, REAL και σταθερών CHARACTER Ποιες λοιπόν από τις παρακάτω εκχωρήσεις δεν σημασιολογικά ορθές? INTEGER a, b = 10, c = b, P[10]; a = b + 1; a = b + c + 1 + 0 + 1 + 0 + 1; a = ‘a’; a = “a”; a = PI * a; a = GETINPUT; a = P; a = INTEGER; Πιθανό runtime error HY100, 2005 Α. Σαββίδης, Χ. Νικολάου

Σημασιολογία (4/6) Ορίζονται οι ακριβείς κανόνες στην κλήση και χρήση υποπρογραμμάτων (1/3) Πρέπει το καλούμενο υποπρόγραμμα, η τουλάχιστον η επικεφαλίδα του, να προηγείται, σε καθολική εμβέλεια τους σημείου χρήσης Πρέπει οπωσδήποτε να υπάρχει σε κάποιο σημείο του κώδικα σε καθολική εμβέλεια μία και μοναδική υλοποίηση ενός υποπρογράμματος του οποίου δηλώνεται αρχικά η επικεφαλίδα Κατά την κλήση υποπρογράμματος πρέπει κάθε ένα από τα πραγματικά ορίσματα να είναι ιδίου ή συμβατού τύπου με το αντίστοιχο τυπικό όρισμα στο υποπρόγραμμα HY100, 2005 Α. Σαββίδης, Χ. Νικολάου

Σημασιολογία (5/6) Ορίζονται οι ακριβείς κανόνες στην κλήση και χρήση υποπρογραμμάτων (1/3) Κατά την κλήση προηγείται πάντα ο υπολογισμός όλων των εκφράσεων που δίνονται ως πραγματικά ορίσματα και έπειτα γίνεται η εκτέλεση του υποπρογράμματος Η κλήση μίας procedure πρέπει να εμφανίζεται ως ανεξάρτητη εντολή και ποτέ μέσα σε άλλου είδους έκφραση Η κλήση μίας function ως έκφραση φέρει τύπο ίδιο με τον τύπο του αποτελέσματος της συνάρτησης και τιμή αυτή που θα επιστρέψει η function με το πέρας της κλήσης Κατά την κλήση, οι οι τύποι των πραγματικών ορισμάτων πρέπει να συμφωνούν με τους τύπους των αντίστοιχων τυπικών ορισμάτων HY100, 2005 Α. Σαββίδης, Χ. Νικολάου

Υπολείπεται η FUNCTION max!!! Σημασιολογία (6/6) FUNCTION(INTEGER) max ARGUMENTS (ADDRESSEX(INTEGER) p, INTEGER n); ARRAY(INTEGER, 5) numArray; PROCEDURE PrintMax(ADDRESSEX(INTEGER) p, INTEGER n) BEGIN OUTPUT(max(p,n)); END PROGRAM_BEGIN INTEGER x; x = PrintMax; x = PrintMax(); x = PrintMax(numArray, n); OUTPUT(PrintMax(numArray, n)); PRORGRAM_END PROCEDURE PrintMax (ADDRESSEX(INTEGER) p, INTEGER n); Υπολείπεται η FUNCTION max!!! HY100, 2005 Α. Σαββίδης, Χ. Νικολάου

Σχέσεις μεταξύ γλωσσών προγραμματισμού Συνήθως οι προστακτικές γλώσσες προγραμματισμού διαφέρουν μεταξύ τους ως προς τα παρακάτω Αλφάβητο – σημαντικά Λεξιλόγιο – σημαντικά Συντακτικό – αρκετά Σημασιολογία εντολών – λίγο Προφανώς η «απόσταση» ποικίλει ανάλογα με το ποιο ζεύγος γλωσσών διαλέγουμε να συγκρίνουμε ως προς την ομοιότητά τους Αυτό που θα μας αργότερα είναι η σχέση της γλώσσας FLIP με τη γλώσσα C Θα δούμε πόσο εύκολη είναι η μετάβαση από τη μία γλώσσα στην άλλη HY100, 2005 Α. Σαββίδης, Χ. Νικολάου