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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

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

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

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

4 1 Οι Τύποι στις Γ.Π. Συστήματα τύπων Λάθη εκτέλεσης & ασφάλεια Ιδιότητες Συστήματος Τύπων 2 Ορισμός Συστήματος Τύπων Θεώρημα Ευρωστίας Τύπων Διαδικασία Ορισμού Συστήματος Τύπων Συμβολισμός Κανόνων Τύπων Τυπικός Ορισμός Συστήματος Τύπων 3 Συστήματα Τύπων Πρώτης Τάξης Λογισμός λ με τύπους Σύστημα Τύπων F 1 Κανόνες Τύπων Παραγωγή στο Σύστημα Τύπων 4 Κανόνες Τύπων για το F 1 Κανόνες για Βασικούς Τύπους Κανόνες για Οριζόμενους Τύπους

5 Γλώσσες με Τύπους & Χωρίς Τύπους Ορισμός 1 (Τύπος) Τύπος είναι το εύρος τιμών που μπορούν να πάρουν κατά την εκτέλεση του προγράμματος οι μεταβλητές του. Γλώσσες με Τύπους: σε όλες τις μεταβλητές του προγράμματος αποδίδονται τύποι. Γλώσσες Χωρίς Τύπους: δεν περιορίζεται το εύρος τιμών των μεταβλητών, επειδή είτε δεν υπάρχουν τύποι, είτε υπάρχει ένας μόνο καθολικός τύπος με όλες τις πιθανές τιμές. Πράξεις με ακατάλληλα ορίσματα έχουν ως αποτέλεσμα: 1 μία αυθαίρετα επιλεγμένη σταθερά ή 2 μία σταθερά ή 3 ένα λάθος ή 4 απροσδιόριστη συμπεριφορά.

6 Συστήματα Τύπων & Ευρωστία Τύπου Γ.Π. Ενα από τα αντικείμενα σχεδίασης Γ.Π. αναφέρεται στην ταξινόμηση, την περιγραφή και τη μελέτη συστημάτων τύπων. Σύστημα Τύπων & Ευρωστία Τύπου Γ.Π. Το σύστημα τύπων μιας Γ.Π. αποσκοπεί στην αποτροπή λαθών κατά την εκτέλεση των προγραμμάτων (λάθη εκτέλεσης). Οταν αυτό συμβαίνει, τότε λέμε ότι η Γ.Π. χαρακτηρίζεται από ευρωστία τύπου (type soundness). Το σύστημα τύπων παρακολουθεί τους τύπους των μεταβλητών και των εκφράσεων στα προγράμματα. Επιτρέπεται η εκτέλεση μόνο των προγραμμάτων που συμμορφώνονται με το σύστημα τύπων. Για την αποφυγή εσφαλμένων υποθέσεων ως προς την ευρωστία τύπου απαιτείται ακριβής ανάλυση.

7 Συστήματα Τύπων & Ευρωστία Τύπου Γ.Π. Υιοθετούμε μαθηματικούς ορισμούς και συμβολισμούς, καθώς και αναλυτικές αποδείξεις για τυπικές ιδιότητες σχετικά με την καταλληλότητα των ορισμών. Οταν η περιγραφή του συστήματος τύπων μιας Γ.Π. δεν είναι διατυπωμένη με μαθηματική αυστηρότητα, αυτή είναι πηγή ασάφειας για την υλοποιήση της γλώσσας: 1 Διαφορετικοί μεταγλωττιστές για την ίδια Γ.Π. υλοποιούν διαφορετικά συστήματα τύπων. 2 Μπορεί ένας ορισμός Γ.Π. να μη διαθέτει ευρωστία τύπου. Δίνεται έτσι δυνατότητα σύνταξης προγραμμάτων που καταρρέουν, αν και αυτά περνάνε από το μεταγλωττιστή.

8 Εμφανείς & άδηλοι τύποι Μία Γ.Π. μπορεί να διαθέτει σύστημα τύπων ανεξάρτητα από το αν οι τύποι εφανίζονται στη σύνταξη ή όχι. Ορισμός 2 (Εμφανείς & άδηλοι τύποι) Αν οι τύποι είναι μέρος της σύνταξης μιας Γ.Π., τότε λέμε ότι η γλώσσα διαθέτει εμφανείς τύπους (explicitly typed), ενώ σε διαφορετική περίπτωση έχουμε άδηλους τύπους (implicitly typed). Οι περισσότερες Γ.Π. διαθέτουν αποκλειστικά εμφανείς τύπους. Οι Γ.Π. ML και Haskell έχουν μεικτό σύστημα τύπων: μπορεί σε ένα μέρος του προγράμματος να παραλείπονται οι πληροφορίες τύπων, οπότε αυτές συνάγονται αυτόματα.

9 Λάθη Εκτέλεσης & Ασφάλεια Δύο κατηγορίες λαθών χρόνου εκτέλεσης: 1 Λάθη κατάρρευσης, που προκαλούν διακοπή της εκτέλεσης του προγράμματος (π.χ. διαίρεση με το μηδέν, προσπέλαση μη έγκυρης δ/νσης μνήμης κ.α.) 2 Λάθη ασταθούς συμπεριφοράς που μπορεί να περνούν απαρατήρητα, αλλά εκτρέπουν την εκτέλεση σε ανακόλουθη συμπεριφορά (π.χ. προσπέλαση δεδομένου πέρα από το όριο πίνακα όταν δε γίνεται έλεγχος ορίων σε χρόνο εκτέλεσης). Ενα πρόγραμμα θεωρείται ασφαλές αν δεν περιέχει λάθη ασταθούς συμπεριφοράς. Αν όλα τα πιθανά προγράμματα μιας Γ.Π. είναι ασφαλή, τότε λέμε ότι η γλώσσα είναι ασφαλής. Οι χωρίς τύπους Γ.Π. μπορεί να επιβάλουν την ασφάλεια με ελέγχους σε χρόνο εκτέλεσης.

10 Λάθη Εκτέλεσης & Ασφάλεια Οι Γ.Π. με τύπους επιβάλουν την ασφάλεια απορρίπτοντας με στατική ανάλυση όλα τα προγράμματα που πιθανώς δεν είναι ασφαλή. Επίσης, μπορεί να χρησιμοποιούν ένα μείγμα από στατικούς ελέγχους και ελέγχους σε χρόνο εκτέλεσης. Για τις περισσότερες Γ.Π. όλα τα λάθη ασταθούς συμπεριφοράς, καθώς και ένα υποσύνολο των λαθών κατάρρευσης θεωρούνται απαγορευμένα λάθη. Ορισμός 3 (Καλώς συμπεριφερόμενα προγράμματα) Ενα πρόγραμμα λέμε ότι επιδεικνύει καλή συμπεριφορά αν δεν περιλαμβάνει απαγορευμένα λάθη (άρα είναι ασφαλές). Ορισμός 4 (Ισχυρά ελεγχόμενη Γ.Π.) Μία Γ.Π. της οποίας όλα τα επιτρεπόμενα προγράμματα έχουν καλή συμπεριφορά ονομάζεται ισχυρά ελεγχόμενη (strongly checked).

11 Λάθη Εκτέλεσης & Ασφάλεια Ισχυρά Ελεγχόμενη Γ.Π. Για μία ισχυρά ελεγχόμενη Γ.Π. σε σχέση με το σύστημα τύπων της ισχύουν τα εξής: Δε συμβαίνουν λάθη ασταθούς συμπεριφοράς (άρα είναι ασφαλής). Δε συμβαίνει κανένα από τα λάθη κατάρρευσης που θεωρούνται απαγορευμένα (τα επιτρεπτά λάθη κατάρρευσης είναι ευθύνη του προγραμματιστή). Ορισμός 5 ( Ελεγχος Τύπων) Ο Ελεγχος Τύπων είναι ένας αλγόριθμος που σε χρόνο μεταγλώττισης απορρίπτει τα κακώς συμπεριφερόμενα προγράμματα. Ενα πρόγραμμα που περνά τον έλεγχο τύπων λέμε ότι έχει καλώς ορισμένους τύπους (well typed).

12 Λάθη Εκτέλεσης & Ασφάλεια Παραδείγματα Γ.Π. με τύπους και στατικό έλεγχο: ML, Java, Pascal (η Pascal διαθέτει κάποια μη ασφαλή χαρακτηριστικά). Οι Γ.Π. χωρίς τύπους επιβάλουν την καλή συμπεριφορά (άρα και την ασφάλεια) μέσω ελέγχων σε χρόνο εκτέλεσης, όπως π.χ. η LISP. Π.χ. ελέγχονται δυναμικά όλα τα όρια των πινάκων και οι διαιρέσεις και ενδεχόμενη εμφάνιση απαγορευμένου λάθους σηματοδοτεί την ενεργοποιήση διαχειρίσιμης εξαίρεσης. Ακόμη και οι Γ.Π. με στατικό έλεγχο χρειάζεται να διεξάγουν κάποιους ελέγχους σε χρόνο εκτέλεσης για να εγγυηθούν την ασφαλή εκτέλεση, π.χ. οι έλεγχοι των ορίων πινάκων γενικά γίνονται σε χρόνο εκτέλεσης. Αρκετές Γ.Π. αξιοποιούνε τις στατικές δομές τύπων για να διεξάγουνε προηγμένους δυναμικούς ελέγχους, π.χ. την εντολή TYPECASE στη Modula-3 και την εντολή instanceof στη Java.

13 Μη ασφαλή προγράμματα Ο πρωταρχικός σκοπός ενός συστήματος τύπων είναι να απορρίπτει όλα τα λάθη ασταθούς συμπεριφοράς για όλες τις πιθανές εκτελέσεις του προγράμματος (ασφάλεια). Ο δεδηλωμένος σκοπός για τα περισσότερα συστήματα τύπων είναι η πιο γενική ιδιότητα των καλώς συμπεριφερόμενων προγραμμάτων, που έχει ως επακόλουθο την ασφάλεια. Άρα, αυτά τα συστήματα τύπων μπορούν θεωρητικά να αναγνωρίσουν αν ένα πρόγραμμα έχει καλώς ορισμένους τύπους. Κάποιες Γ.Π. με στατικό έλεγχο δεν εγγυώνται ασφαλή εκτέλεση του προγράμματος: το σύνολο των απαγορευμένων λαθών δεν περιλαμβάνει όλα τα πιθανά λάθη ασταθούς συμπεριφοράς. Λέμε ότι αυτές οι Γ.Π. είναι δεν είναι ισχυρά ελεγχόμενες. Π.χ. στη γλώσσα C τέτοια χαρακτηριστικά είναι η αριθμητική δεικτών και οι μετατροπές (casting).

14 Μη ασφαλή προγράμματα Οι περισσότερες Γ.Π. χωρίς τύπους είναι ασφαλείς (π.χ. η LISP), γιατί αλλιώς ο προγραμματισμός θα ήταν πολύ δύσκολος. Οι Γ.Π. assembly είναι χωρίς τύπους και χωρίς ασφάλεια. Με τύπους Χωρίς τύπους Ασφαλείς ML, Java LISP Μη ασφαλείς C Assembly

15 Ιδιότητες Συστημάτων Τύπων Ενα σύστημα τύπων θα πρέπει: να καθιστά αποφασίσιμη την επαλήθευση προγραμμάτων (decidable verifiable), δηλ. να υπάρχει αλγόριθμος που να εξασφαλίζει ότι ένα πρόγραμμα είναι καλώς συμπεριφερόμενο να είναι διάφανο ως προς την ανάπτυξη προγραμμάτων (transparent), δηλ. να μπορούμε να διακρίνουμε αν ένα πρόγραμμα περνάει τον έλεγχο τύπων να επιβάλλει τη λειτουργία του (enforceable) οι δηλώσεις τύπων να ελέγχονται στατικά αν γίνεται ή όταν αυτό δεν είναι εφικτό να ελέγχονται δυναμικά να επαληθεύεται η συνέπεια των προγραμμάτων με τις δηλώσεις τύπων (εξαιρούνται τα σχόλια και άλλες συμβάσεις των Γ.Π.)

16 Θεώρημα Ευρωστίας Τύπων Τυπικός ορισμός συστήματος τύπων (formal type system) είναι η μαθηματική προδιαγραφή της άτυπης περιγραφής που περιέχεται στο εγχειρίδιο μιας Γ.Π. Αν ένα σύστημα τύπων έχει τυποποιηθεί, τότε μπορεί να αποδειχθεί (αν ισχύει) το: Θεώρημα 6 (Ευρωστίας Τύπων) Ολα τα προγράμματα με καλώς ορισμένους τύπους είναι καλώς συμπεριφερόμενα (άρα και ασφαλή). Ενα τέτοιο σύστημα τύπων λέμε ότι είναι εύρωστο.

17 Διαδικασία Ορισμού Συστήματος Τύπων Βήματα για τον τυπικό ορισμό ενός συστήματος τύπων: 1 Ορίζουμε τη σύνταξη των τύπων και των όρων. Οι τύποι εκφράζουν στατική γνώση για τα προγράμματα ενώ οι όροι (εντολές, εκφράσεις κ.α.) εκφράζουν την αλγοριθμική τους συμπεριφορά. 2 Ορίζουμε τους κανόνες εμβέλειας (scoping rules), που αντιστοιχούν την κάθε εμφάνιση ονόματος στο σημείο της δήλωσής του. Οι Γ.Π. με τύπους χρειάζονται κανόνες στατικής εμβέλειας (static scoping), δηλ. οι αντιστοιχίσεις γίνονται πριν από την εκτέλεση. Αν οι αντιστοιχίσεις καθορίζονται απευθείας από τη σύνταξη, τότε λέμε ότι έχουμε λεξική εμβέλεια. Αν δεν υπάρχει στατική εμβέλεια, τότε έχουμε δυναμική εμβέλεια (dynamic scoping).

18 Διαδικασία Ορισμού Συστήματος Τύπων Παράδειγμα Κανόνων Εμβέλειας της C Ενα όνομα έχει τοπική εμβέλεια, αν ορίζεται μέσα σε ένα block, οπότε μπορεί να χρησιμοποιηθεί στο block αυτό και σε όσα περικλείει αρκεί να έχει προηγουμένως δηλωθεί. Κατά την έξοδο από ένα bock τα ονόματα που δηλώνονται σε αυτό δεν είναι πλέον διαθέσιμα. Τα ονόματα των παραμέτρων συνάρτησης έχουν εμβέλεια όλο το block με τον κώδικα της συνάρτησης. Αν η συνάρτηση δηλώνεται αλλά δεν ορίζεται, τότε η εμβέλεια περιορίζεται στο πρωτότυπο της συνάρτησης. Αν ένα block περιέχει ένα άλλο block, οι μεταβλητές του είναι ορατές στο ένθετο block. Αν όμως μια μεταβλητή του ένθετου δηλώνεται με το όνομα μεταβλητής του περικλείοντος block, τότε η ένθετη δήλωση αποκρύπτει μέρος της εμβέλειας της δήλωσης του περικλείοντος block. Μόνο τα ονόματα ετικετών έχουν εμβέλεια συνάρτησης. Η δήλωση ετικέτας υπονοείται από την εμφάνιση της στο πρόγραμμα και είναι ορατή στη συνάρτηση που αυτή εμφανίζεται. Μία ετικέτα μπορεί να χρησιμοποιηθεί σε εντολή goto πριν από την δήλωσή της. Ενα όνομα έχει εμβέλεια αρχείου αν δεν εμφανίζεται μέσα σε block.

19 Διαδικασία Ορισμού Συστήματος Τύπων 3 Ορίζουμε τους κανόνες τύπων. Αυτοί περιγράφουν μία σχέση M : A, που εκφράζει ότι οι όροι M έχουν τύπους A. Οι κανόνες τύπων ορίζονται πάντα ως προς ένα στατικό περιβάλλον τύπων: περιλαμβάνει τους τύπους των ελεύθερων μεταβλητών των διαφόρων μερών του προγράμματος (δηλ. τις πληροφορίες του πίνακα συμβόλων). Ετσι, η σχέση has-type που γράφεται ως Γ M : A σημαίνει ότι «οι όροι M έχουν τύπους A στο περιβάλλον Γ». Τα σύνθετα συστήματα τύπων απαιτούν και τον ορισμό μιας σχέσης subtype-of. 4 Ορίζουμε τη σημασία της γλώσσας ως μία σχέση has-value μεταξύ των όρων της και μιας συλλογής αποτελεσμάτων. Η σημασία της Γ.Π. και το σύστημα τύπων της είναι αλληλένδετα: οι τύποι ενός όρου και το αποτέλεσμά του πρέπει ή να είναι ίδιοι ή να σχετίζονται κατάλληλα (π.χ. ισοδύναμοι τύποι από μία κατάλληλα ορισμένη σχέση equal-type).

20 Συμβολισμός Κανόνων Τύπων Συμβολισμός για τον ορισμό συστήματος τύπων Χρησιμοποιούμε εκφράσεις της μορφής Γ J J : ισχυρισμός με ελεύθερες μεταβλητές δηλωμένες στο Γ που διαβάζεται ως «Γ συνεπάγεται J». Το Γ είναι ένα περιβάλλον τύπων, π.χ. μία διατεταγμένη λίστα μεταβλητών με τους τύπους τους, της μορφής, x 1 : A 1,..., x n : A n. Συμβολίζουμε με το κενό περιβάλλον και με dom(γ) τη συλλογή των μεταβλητών x 1,..., x n που δηλώνονται στο Γ. Εκφράσεις τύπων Γ M : A : ο όρος M έχει τύπο A στο Γ Παραδείγματα: true : Bool : το true έχει τύπο Bool, x : Nat x + 1 : Nat : x + 1 έχει τύπο Nat, αν το x έχει τύπο Nat Λέμε ότι «ένα περιβάλλον είναι καλώς ορισμένο» αν Γ. Μία δοθείσα έκφραση μπορεί να είναι έγκυρη (π.χ. Γ true : Bool) ή άκυρη (π.χ. Γ true : Nat). Η εγκυρότητα των εκφράσεων τύπων προσδιορίζει αν τα προγράμματα έχουν καλώς ορισμένους τύπους.

21 Συμβολισμός Κανόνων Τύπων Κανόνες τύπων Συνάγουν την εγκυρότητα εκφράσεων τύπων με βάση κάποιες άλλες εκφράσεις, που είναι αποδεδειγμένα έγκυρες. Η διαδικασία ξεκινάει από μία τετρριμμένα έγκυρη έκφραση, συνήθως την. Γενική μορφή κανόνων τύπων: Γ J 1... Γ J n Γ J (όνομα κανόνα) Περιλαμβάνουν τις εκφράσεις της υπόθεσης (πάνω από τη γραμμή) και τις εκφράσεις του συμπεράσματος (κάτω από τη γραμμή). Οταν ικανοποιούνται όλες οι υποθέσεις, τότε ισχύει το συμπερασμα. Παραδείγματα: Γ Γ n:nat (Val n) (n=0,1,...) Γ M:Nat Γ N:Nat Γ M+N:Nat (Val +) Ο Val n λέει ότι κάθε αριθμός είναι τύπου Nat σε ένα καλώς ορισμένο περιβάλλον. Ο Val+ δίνει τον τύπο του αθροίσματος αριθμών Nat.

22 Τυπικός Ορισμός Συστήματος Τύπων Ενας θεμελιώδης κανόνας είναι ότι το κενό περιβάλλον είναι καλώς ορισμένο, χωρίς υποθέσεις: (Env ) Ορισμός 7 (Τυπικά ορισμένο σύστημα τύπων) Ενα σύστημα τύπων είναι τυπικά ορισμένο αν αυτό περιγράφεται από μία συλλογή κανόνων τύπων, που υποστηρίζει τη βήμα προς βήμα απόδειξη του τύπου για ένα οποιοδήποτε μέρος προγράμματος. Ορίζουμε το σύστημα τύπων μιας Γ.Π. ανεξάρτητα από τον αλγόριθμο ελέγχου τύπων, σε αντιστοιχία με τη σύνταξη, που ορίζεται ανεξάρτητα από τον αλγόριθμο συντακτικής ανάλυσης. Αυτό σημαίνει ότι είναι πιθανό να ορίσουμε ένα σύστημα τύπων που καθιστά ανέφικτο τον έλεγχο τύπων με έναν αλγόριθμο.

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

24 Καλώς Ορισμένοι Τύποι & Συναγωγή Τύπων Ορισμός 8 (Καλώς Ορισμένος Τύπος) Σε ένα δοθέν σύστημα τύπων ο όρος M έχει καλώς ορισμένο τύπο στο περιβάλλον Γ, αν υπάρχει τύπος A ώστε η έκφραση Γ M : A να είναι έγκυρη, δηλ. τελικά μπορεί να αποδοθεί ένας τύπος στον όρο M. Συναγωγή τύπου (type inference) είναι η ανακάλυψη παραγωγής τύπου για έναν όρο του προγράμματος. Παράδειγμα: Στο σύστημα τύπων με κανόνες (Env ), (Val n), (Val+) συνάγεται τύπος για τον όρο στο κενό περιβάλλον: ο τύπος Nat από την παραγωγή της προηγούμενης διαφάνειας. Λάθος τύπων (typing error) Στο σύστημα τύπων του παραδείγματος προσθέτουμε τον κανόνα: Γ Γ true:bool Στο νέο σύστημα δε μπορούμε να συνάγουμε τύπο για τον όρο 1 + true, επειδή δεν υπάρχει κανόνας για άθροισμα Nat με Bool. Λέμε ότι ο όρος 1 + true δεν έχει καλώς ορισμένο τύπο (ή λάθος τύπου).

25 Καλώς Ορισμένοι Τύποι & Συναγωγή Τύπων Το πρόβλημα της συναγωγής τύπου για έναν όρο είναι αλληλένδετο με τον ορισμό του συστήματος τύπων. Παράδειγμα: Εστω ότι προσθέτουμε τον κανόνα Γ M:Nat Γ N:Bool Γ M+N:Nat στο σύστημα τύπων του προηγούμενου παραδείγματος, με το σκεπτικό ότι ο όρος true ερμηνεύεται ως 1. Τότε, στο νέο σύστημα τύπων μπορούμε να συνάγουμε τύπο για το όρο 1 + true (καλώς ορισμένος). Αν και τα συστήματα τύπων σχεδιάζονται σε αφαιρετικό επίπεδο ως προς τη Γ.Π., η χρησιμότητά τους εξαρτάται από το αν υπάρχουν καλοί, δηλ. αποδοτικοί αλγόριθμοι συναγωγής τύπου. Το πρόβλημα της συναγωγής τύπου για διαδικασιακές Γ.Π. με εμφανείς τύπους (π.χ. Pascal) έχει επιλυθεί με αλγορίθμους που έχουν υλοποιηθεί με επιτυχία. Το πρόβλημα έχει λυθεί και για τα πολυμορφικά χαρακτηριστικά με εμφανείς τύπους σε Γ.Π. όπως οι Ada, ML. Υπάρχουν ακόμη δυσκολίες στην υλοποίηση για χαρακτηριστικά Γ.Π. με υπονοούμενους τύπους.

26 Τυπικά Ορισμένο Σύστημα Τύπων & Ευρωστία Τύπου Ενα χρήσιμο σύστημα τύπων δεν είναι απλά ένα σύνολο κανόνων. Πρέπει να ελεγχθεί η εσωτερική συνέπεια του συστήματος αποδεικνύοντας ένα θεώρημα ευρωστίας τύπου. Ετσι θεμελιώνεται ότι τα προγράμματα με καλώς ορισμένους τύπους αντιστοιχούν σε κάποια σημασιολογική ερμηνεία καλής συμπεριφοράς και με αυτό τον τρόπο τα συστήματα τύπων συναρτώνται με τη σημασία των Γ.Π.

27 Λογισμός λ με τύπους Ορισμός 9 (Συστήματα Τύπων Πρώτης Τάξης) Είναι τα συστήματα τύπων που διαθέτουν οι κλασσικές διαδικασιακές Γ.Π. (Pascal, FORTRAN, Algol68) και δεν περιλμβάνουν δυνατότητες παραμετροποιήσης τύπου, καθώς και αφαιρετικούς τύπους. Λογισμός λ με τύπους Είναι ένα μαθηματικό σύστημα επίδειξης εννοιών Γ.Π. με έναν απλό τρόπο. Περιλαμβάνει ένα συμβολισμό ορισμού συναρτήσεων, ένα αποδεικτικό σύστημα με το οποίο μπορούμε να δείξουμε εξισώσεις μεταξύ εκφράσεων και ένα σύνολο κανόνων υπολογισμού που λέγονται (reductions). Τα reductions χρησιμοποιούνται για υπολογισμό του αποτελέσματος μιας συνάρτησης για μία ή περισσότερες παραμέτρους. Η έκφραση λx.m αναπαριστά μία συνάρτηση με παράμετρο x και αποτέλεσμα M. Εισάγουμε επισημειώσεις τύπων χρησιμοποιώντας της σύνταξη λx : A.M, που σημαίνει ότι η x είναι παράμετρος της συνάρτησης, το A είναι ο τύπος της και M το σώμα της.

28 Σύστημα Τύπων F 1 Ορισμός 10 (Σύστημα Τύπων F 1 για τον λογισμό λ με τύπους) Περιλαμβάνει ένα σύνολο Basic βασικών τύπων, όπως οι τύποι Bool και Nat, καθώς και τύπους συναρτήσεων της μορφής A B, δηλ. συναρτήσεων με παραμέτρους τύπου A και αποτελέσματα τύπου B. Σύνταξη συστήματος τύπων F 1 Θεωρούμε ότι τα A, B είναι τύποι, ενώ τα M, N είναι όροι. A,B ::= K A B M,N ::= x λx : A.M M N K Basic τύπος συνάρτησης μεταβλητή συνάρτηση εφαρμογή

29 Σύστημα Τύπων F 1 Ο ρόλος της Γ.Χ.Σ. σε ένα σύστημα τύπων είναι ο καθορισμός των κανόνων εμβέλειας, δηλαδή να διακρίνονται οι ελεύθερες μεταβλητές στις συμβολοσειρές. Παράδειγμα: Με βάση της γραμματική του F 1 οι εκφράσεις λx : K.x και λy : K.y δε διαφέρουν στη σύνταξη. Η συμβολοσειρά λx : K.x(y) είναι συντακτικά σωστή σύμφωνα με τη Γ.Χ.Σ. του F 1, αλλά δεν έχει καλώς ορισμένους τύπου αφού το K δεν είναι τύπος συνάρτησης.

30 Κανόνες Τύπων Εκφράσεις στο σύστημα τύπων F 1 : Γ το Γ είναι καλώς ορισμένο Γ A ο A είναι καλώς ορισμένος τύπος στο Γ Γ M : A ο M είναι καλώς ορισμένος όρος τύπου A στο Γ

31 Κανόνες Τύπων Ερμηνεία κανόνων του συστήματος τύπων F 1 : Κανόνας Env x: Επεκτείνει το Γ σε ένα μεγαλύτερο περιβάλλον Γ, x : A αν ο A είναι έγκυρος στο Γ. Η x δε θα πρέπει να έχει οριστεί στο Γ. Προσέχουμε να διατηρούμε τις μεταβλητές σε διακριτά περιβάλλοντα, έτσι ώστε π.χ. για την Γ, x : A M : A από τον Val Fun να ξέρουμε ότι η x δεν εμφανίζεται στο dom(γ). Κανόνες Type Const, Type Arrow: Δημιουργούνε τύπους. Κανόνας Val x: Εξάγει την υπόθεση x : A από ένα περιβάλλον (τα Γ και Γ αναφέρονται - παράτυπα - στο ίδιο περιβάλλον). Κανόνας Val Fun: Αποδίδει τον τύπο A B σε μία συνάρτηση, υπό την προϋπόθεση ότι η συνάρτηση παίρνει τον τύπο B όταν δέχεται παράμετρο A. Το περιβάλλον Γ μεγαλώνει. Κανόνας Val App: Εφαρμόζει μία συνάρτηση σε μία παράμετρο.

32 Παραγωγή στο Σύστημα Τύπων Παραγωγή στο σύστημα τύπων F 1 :

33 Κανόνες για Βασικούς Τύπους Βασικοί τύποι στο F 1 : Τύπος Unit για συναρτήσεις χωρίς παραμέτρους ή/και αποτέλεσμα (σε μερικές Γ.Π. ο τύπος λέγεται Void ή Null) Τύπος Bool Γ Γ Unit (Type Unit) Γ Γ unit:unit (Val Unit) Γ Γ Bool (Type Bool) Γ Γ true:bool (Val True) Γ Γ false:bool (Val False) (Val Cond) Γ M:Bool Γ N 1:A Γ N 2:A Γ (if A M then N 1 else N 2):A Στην περίπτωση της if ο έλεγχος τύπων θα πρέπει να συνάγει χωριστά τους τύπους των N 1 και N 2 και στη συνέχεια να βρει έναν τύπο A που να είναι συμβατός και με τους δυο. Ο δείκτης A στο if σημειώνει την πληροφορία για τον έλεγχο τύπων ότι το αποτέλεσμα θα πρέπει να είναι τύπου A.

34 Κανόνες για Βασικούς Τύπους Βασικοί τύποι στο F 1 : Τύπος Nat Ο τύπος Nat δημιουργείται από το 0 και το succ (επόμενος). Στους υπολογισμούς χρησιμοποιούνται τα pred (προηγούμενος) και iszero (έλεγχος για 0).

35 Κανόνες για Οριζόμενους Τύπους Τύπος Product: περιλαμβάνει ζεύγη τιμών, που η πρώτη είναι τύπου A 1 και η δεύτερη τύπου A 2. Τα συστατικά κάθε ζεύγους εξάγονται με τις λειτουργίες προβολής first και second. Γ A 1 Γ A 2 Γ A 1 A (Type Product) 2 Γ M 1 :A 1 Γ M 2 :A 2 (Val Pair) Γ (M 1,M 2 ):A 1 A 2 Γ M:A 1 A 2 Γ first M:A 1 (Val First) Γ M:A 1 A 2 Γ second M:A 2 (Val Second) (Val With) Γ M:A 1 A 2 Γ,x 1 :A 1,x 2 :A 2 N:B Γ (with (x 1 :A 1,X 2 :A 2 ):=M do N):B Η εντολή with αποσυνθέτει ένα ζεύγος M και συνδέει τα συστατικά του με δύο μεταβλητές x 1 και x 2 στην εμβέλεια του όρου N. Ο κανόνας αυτός περιγράφει τις λειτουργίες ταιριάσματος προτύπων της Γ.Π. ML και συνδέεται με το with της Pascal.

36 Κανόνες για Οριζόμενους Τύπους Τύπος Union: ένα στοιχείο τύπου A 1 + A 2 είτε είναι στοιχείο του A 1 με επισήμανση left (δημιουργείται με τον κανόνα inleft), είτε στοιχείο του A 2 με επισήμανση right (κανόνας inright) Γ A 1 Γ A 2 Γ A 1+A 2 (Type Union) Γ M 1:A 1 Γ A 2 Γ inleft A2 M 1:A 1+A 2 (Val inleft) Γ A 1 Γ M 2:A 2 Γ inright A1 M 2:A 1+A 2 (Val inright) Γ M:A 1+A 2 Γ isleft M:Bool (Val isleft) Γ M:A 1+A 2 Γ isright M:Bool (Val isright) Γ M:A 1+A 2 Γ asleft M:A 1 (Val asleft) Γ M:A 1+A 2 Γ asright M:A 2 (Val asright) Γ M:A 1+A 2 Γ,x 1:A 1 N 1:B Γ,x 2:A 2 N 2:B Γ (case B M of x 1:A 1 then N 1 x 2:A 2 then N 2):B (Val Case) Η επισήμανση ελέγχεται με τους κανόνες isleft,isright και ο αντίστοιχος όρος εξάγεται με τους asleft, asright.

37 Κανόνες για Οριζόμενους Τύπους Τύπος Union (... συνέχεια) Αν ο κανόνας asleft εφαρμοστεί λανθασμένα στην τιμή με επισήμανση right, τότε δημιουργείται ένα λάθος κατάρρευσης ή μία εξαίρεση. Το λάθος αυτό δε κατατάσσεται από τη Γ.Π. στα απαγορευμένα. Υποθέτουμε με ασφάλεια ότι οποιοδήποτε αποτέλεσμα του asleft είναι A 1, επειδή η παράμετρος ή έχει επισήμανση left οπότε το αποτέλεσμα θα είναι A 1 ή έχει επισήμανση right οπότε δεν έχουμε αποτέλεσμα. Ο κανόνας (Val Case) είναι μία κομψή περιγραφή σε αντικατάσταση των isleft, isright, asleft, asright και των σχετικών λαθών κατάρρευσης (εξαλείφει την εξάρτηση από τον τύπο Bool). Εκτελείται μία από δύο πιθανές περιπτώσεις, ανάλογα με την επισήμανση του M με περιεχόμενο που μπορεί να αναφέρεται στο x 1 του όρου N 1 ή στο x 2 του όρου N 2 (ο δείκτης B στο case είναι πληροφορία για τον έλεγχο τύπων ότι το αποτέλεσμα θα είναι τύπου B και οι τύποι που συνάγονται για τους N 1, N 2 θε πρέπει να συγκρίνονται ο καθένας απευθείας με τον B).

38 Κανόνες για Οριζόμενους Τύπους Τύπος Record: οριζόμενοι τύποι που υποστηρίζουν την εξαγωγή των συστατικών μιας τιμής ονοματίζοντας τα. Το with έχει αντίστοιχη λειτουργία με την περίπτωση του product.

39 Κανόνες για Οριζόμενους Τύπους Τύπος Variant: οριζόμενοι τύποι unions από διακριτούς ονοματισμένους τύπους. Η λειτουργία is l γενικεύει τις isleft, isright, ενώ η as l γενικεύει αντίστοιχα τις asleft, asright. Γ A 1... Γ A n Γ Variant(l 1:A 1,...,l n:a n) (Type Variant) (διακριτό l i ) Γ A 1... Γ A n Γ M j :A j j 1..n Γ variant (l1 :A 1,...,ln:An)(l j =M j ):Variant(l 1:A 1,...,l n:a n) (Val Variant) (διακριτό l i ) Γ M:Variant(l 1:A 1,...,l n:a n) j 1..n Γ M:Variant(l 1:A 1,...,l n:a n) j 1..n Γ M is l j :Bool Γ M as l j :Bool (Val Variant Is) (διακριτό l i ) (Val Variant As) (διακριτό l i ) (Val Variant Case) Γ M:Variant(l 1:A 1,...,l n:a n) Γ,x 1:A 1 N 1:B... Γ,x n:a n N n:b Γ (case B M of l 1=x 1:A 1 then N 1... l n=x n:a n then N n):b Οπως και στα unions έτσι και εδώ τα is l και as l μπορούν να αντικατασταθούν από την εντολή case.

40 Κανόνες για Οριζόμενους Τύπους Τύπος Reference: χρησιμοποιούνται ως θεμελιώδεις τύποι μεταβλητών διεύθυνσης. Ενα στοιχείο τύπου Ref(A) είναι μία μεταβλητή κελιού που περιέχει στοιχείο τύπου A. Ενα νέο κελί μπορεί να εκχωρηθεί με τον Val Ref, ενώ ένα κελί ενημερώνεται με τον Val Assign ή αποαναφέρεται με τον Val Deref.

41 Τύπος Array Υλοποίηση Array: Array(A) Nat (Nat Ref (A)) Μέγεθος & μία σχέση από δείκτες σε αναφορές λιγότερες από το μέγεθος array A (N, M) let cell 0 : Ref (A) = ref (M)and...and cell N 1 : Ref (A) = ref (M) in (N, λx : Nat.if x = 0 then cell 0 else if else if x = N 1 then cell N 1 else error Ref (A) ) Κατασκευαστής Array για Ν αναφορές με αρχική τιμή Μ bound(m) first M Μέγεθος Array M[N] A if N < first M then deref ((second M)(N)) else error A Προσπέλαση στοιχείου

42 Τύπος Array Υλοποίηση Array.... συνέχεια M[N] := P if N < first M then ((second M)(N)) := P else error Unit Ενημέρωση στοιχείου πίνακα Οι κανόνες τύπων για τις λειτουργίες του Array προκύπτουν από την υλοποιήση του τύπου με βάση τους κανόνες για τα products, τα functions και τα references: Γ A Γ Array(A) (Type Array) Γ N:Nat Γ M:A Γ array(n,m):array(a) (Val Array) Γ M:Array(A) Γ bound M:Nat (Val Array Bound) Γ N:Nat Γ M:Array(A) Γ N:Nat Γ M:Array(A) Γ P:A Γ M[N]:A Γ M[N]:=P:Unit (Val Array Index) (Val Array Update)

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

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

{ int a = 5; { int b = 7; a = b + 3; Σχεδίαση Γλωσσών & Μεταγλωττιστές Ενότητα 1: Γλώσσες με δομή block Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

Διαβάστε περισσότερα

procedure P ( < pars > ) < type> f( < pars > ) begin { < local vars > < local vars > < procedure body> < procedure body> end; }

procedure P ( < pars > ) < type> f( < pars > ) begin { < local vars > < local vars > < procedure body> < procedure body> end; } Σχεδίαση Γλωσσών & Μεταγλωττιστές Ενότητα 2: Εμβέλεια Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που

Διαβάστε περισσότερα

Θέματα Μεταγλωττιστών

Θέματα Μεταγλωττιστών Γιώργος Δημητρίου Ενότητα 2 η : Συστήματα τύπων Συστήματα Τύπων (ΣΤ) Το σύστημα τύπων μιας γλώσσας προγραμματισμού με τύπους είναι ένα σύνολο από κανόνες στους οποίους πρέπει να υπακούουν οι τύποι της

Διαβάστε περισσότερα

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 10: Ισοδυναμία ντετερμινιστικών και μη ντετερμινιστικών αυτομάτων Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

Διαβάστε περισσότερα

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 14: Γραμματικές Χωρίς Συμφραζόμενα Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,

Διαβάστε περισσότερα

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 13: Ελαχιστοποίηση αυτομάτων Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που

Διαβάστε περισσότερα

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 17: Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου

Διαβάστε περισσότερα

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 18: Λήμμα Άντλησης για ΓΧΣ Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που

Διαβάστε περισσότερα

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ενότητα 7: Υπορουτίνες Καθ. Γιάννης Γαροφαλάκης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ και Πληροφορικής Ορισμός Αφαίρεση με χρήση υπορουτινών (subroutine abstraction)

Διαβάστε περισσότερα

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 7: Συναρτήσεις Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 26: Καθολική Μηχανή Turing Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που

Διαβάστε περισσότερα

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 11: Αριθμητική υπολοίπων-δυνάμεις Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 21: Υπολογισμοί ΜΤ - Αναδρομικές Γλώσσες Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

Διαβάστε περισσότερα

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Cretive Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπ Θεωρία Υπολογισμού Ενότητα 11: Κλειστότητα, ΠΑ & καν. εκφράσεις Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Cretive Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Μεταγλωττιστές. Σημασιολογική Ανάλυση. Εργαστήριο 9. Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι

Μεταγλωττιστές. Σημασιολογική Ανάλυση. Εργαστήριο 9. Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι Μεταγλωττιστές Εργαστήριο 9 Σημασιολογική Ανάλυση Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι 2016-2017 Σύνταξη και Σημασιολογία Σε οποιαδήποτε γλώσσα (προγραμματισμού ή μη) υπάρχουν δύο βασικές

Διαβάστε περισσότερα

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

Περιεχόμενα Τι περιγράφει ένα ΣΔ ΣΔ και παραγωγές Θεωρία Υπολογισμού Ενότητα 15: Συντακτικά Δέντρα Επ. Καθ. Π. Κατσαρός Τμήμα Πληροφορικής Επ. Καθ. Π. Θεωρία Υπολογισμού νότητα 15: Συντακτικά Δέντρα Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

2 n N: 0, 1,..., n A n + 1 A Θεωρία Υπολογισμού Ενότητα 5: Τεχνικές απόδειξης & Κλειστότητα Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Μεταφραστές Εισαγωγή Διδάσκων: Επικ. Καθ. Γεώργιος Μανής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Δημήτρης Πλεξουσάκης

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

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 3: Ασυμπτωτικός συμβολισμός Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 5: Αναδρομικές σχέσεις - Υπολογισμός Αθροισμάτων Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

Διαβάστε περισσότερα

ΜΑΘΗΜΑ: Μεταγλωττιστές

ΜΑΘΗΜΑ: Μεταγλωττιστές Comment [h1]: Παράδειγμ α: https://ocp.teiath.gr/modules/ exercise/exercise_result.php?course=pey101&eurid=16 9 ΜΑΘΗΜΑ: Μεταγλωττιστές ΔΙΔΑΣΚΩΝ: Άγγελος Μιχάλας ΤΜΗΜΑ: Τμήμα Μηχανικών Πληροφορικής ΤΕ 1

Διαβάστε περισσότερα

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 4: Δομές Ελέγχου Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό με C++ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στον Προγραμματισμό με C++ Ενότητα # 6: Συναρτήσεις Κωνσταντίνος Κουκουλέτσος Τμήμα Αυτοματισμού Άδειες Χρήσης Το παρόν

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 2: Σύνολα και σχέσεις Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 7β: Όρια Αλγόριθμων Ταξινόμησης Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commos.

Διαβάστε περισσότερα

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 4: Διατάξεις Μεταθέσεις Συνδυασμοί Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας

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

Διαβάστε περισσότερα

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

Μεταγλωττιστές. Ενότητα 2: Τυπικές γλώσσες (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Μεταγλωττιστές Ενότητα 2: Τυπικές γλώσσες (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 8: Πεπερασμένα Αυτόματα Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού. Κεφάλαιο 6 6.1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία σημαντικά στάδια : Σον ακριβή προσδιορισμό του προβλήματος Σην ανάπτυξη του αντίστοιχου αλγορίθμου

Διαβάστε περισσότερα

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 12: Κανονικότητα ή μη των γλωσσών Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,

Διαβάστε περισσότερα

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης 1 Μεταγλωττιστής Πρόγραμμα Διαβάζει προγράμματα δεδομένης γλώσσας (πηγαία γλώσσα) και τα μετατρέπει

Διαβάστε περισσότερα

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

Μεταγλωττιστές. Ενότητα 5: Λεκτική ανάλυση (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Μεταγλωττιστές Ενότητα 5: Λεκτική ανάλυση (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 5: Προτασιακός Λογισμός: Κατασκευή Μοντέλων Τμήμα Επιστήμης Υπολογιστών

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 5: Προτασιακός Λογισμός: Κατασκευή Μοντέλων Τμήμα Επιστήμης Υπολογιστών Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 5: Προτασιακός Λογισμός: Κατασκευή Μοντέλων Τμήμα Επιστήμης Υπολογιστών Άδειες Χρήσης 1. Το παρόν εκπαιδευτικό υλικό υπόκειται στην άδεια χρήσης Creative Commons

Διαβάστε περισσότερα

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 8: Σχέσεις - Πράξεις Δομές Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

Διαβάστε περισσότερα

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 4: Εισαγωγή / Σύνολα

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 4: Εισαγωγή / Σύνολα Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Διακριτά Μαθηματικά Ενότητα 4: Εισαγωγή / Σύνολα Αν. Καθηγητής Κ. Στεργίου e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες

Διαβάστε περισσότερα

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 7: Πεπερασμένη αναπαράσταση γλωσσών Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 3: Σύνολα Συνδυαστική Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

Διαβάστε περισσότερα

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Κεφάλαιο 7: Υποπρογράμματα Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ορισμός Αφαίρεση με χρήση υποπρογραμμάτων (subprogram abstraction) είναι η αντιστοίχιση ενός συνόλου εισόδων σε ένα σύνολο εξόδων

Διαβάστε περισσότερα

Περιεχόμενα 1 Πρωτοβάθμια Λογική Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων ) / 60

Περιεχόμενα 1 Πρωτοβάθμια Λογική Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων ) / 60 Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

Διαβάστε περισσότερα

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ενότητα 2: Mεταφραστές Καθ. Γιάννης Γαροφαλάκης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ και Πληροφορικής Λειτουργία Μετάφρασης ΑΡΧΙΚΗ ΓΛΩΣΣΑ (Source) L A ΓΛΩΣΣΑ

Διαβάστε περισσότερα

Ορισμός Συναρτήσεων στην ΜL

Ορισμός Συναρτήσεων στην ΜL Ορισμός Συναρτήσεων στην ΜL Ονόματα και δεσμεύσεις: ησυνάρτησηval Τα ονόματα σταθερών δεσμεύονται με τιμές σταθερών μέσω ορισμών της συνάρτησης val. val codeof0 = ord 0 val codeof9 = codeof0 + 9 Τα ονόματα

Διαβάστε περισσότερα

Κεφάλαιο 7: Υπορουτίνες

Κεφάλαιο 7: Υπορουτίνες Κεφάλαιο 7: Υπορουτίνες Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ορισμός Αφαίρεση με χρήση υπορουτινών (subroutine abstraction) είναι η αντιστοίχιση ενός συνόλου εισόδων σε ένα σύνολο εξόδων που μπορεί

Διαβάστε περισσότερα

Ηλεκτρονικοί Υπολογιστές

Ηλεκτρονικοί Υπολογιστές ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 5: Εντολές Αντικατάστασης, Συναρτήσεις και Σχόλια στη C++ Ζαχαρούλα Ανδρεοπούλου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 25: Γραμματικές Χωρίς Περιορισμούς Τμήμα Πληροφορικής ΘΥ 25: Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

Διαβάστε περισσότερα

Πληροφορική 2. Γλώσσες Προγραμματισμού

Πληροφορική 2. Γλώσσες Προγραμματισμού Πληροφορική 2 Γλώσσες Προγραμματισμού 1 2 Γλώσσες προγραμματσιμού Επιτρέπουν την κωδικοποίηση των αλγορίθμων Η εκτέλεση ενός προγράμματος θα πρέπει να δίνει τα ίδια αποτελέσματα με την νοητική εκτέλεση

Διαβάστε περισσότερα

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 3: Τύποι Δεδομένων - Τελεστές Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Μαλούτα Θεανώ Σελίδα 1

Μαλούτα Θεανώ Σελίδα 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες

Διαβάστε περισσότερα

Πληροφορική ΙΙ Ενότητα 1

Πληροφορική ΙΙ Ενότητα 1 Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Πληροφορική ΙΙ Ενότητα 1: Εισαγωγή Θεματική Ενότητα: Εισαγωγή στον Προγραμματισμό Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός

Διαβάστε περισσότερα

Υπολογιστικά Συστήματα

Υπολογιστικά Συστήματα Υπολογιστικά Συστήματα Ενότητα 6: Ασκήσεις στη Visual Basic for Applications (VBA) Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

Αφαίρεση στον FP. Πολυμορφισμός Συναρτήσεις υψηλότερης τάξης Οκνηρός και Άπληστος Υπολογισμός

Αφαίρεση στον FP. Πολυμορφισμός Συναρτήσεις υψηλότερης τάξης Οκνηρός και Άπληστος Υπολογισμός Αφαίρεση στον FP Πολυμορφισμός Συναρτήσεις υψηλότερης τάξης Οκνηρός και Άπληστος Υπολογισμός Πολυμορφισμός Θα χρησιμοποιήσουμε σαν παράδειγμα τη συνάρτηση ταυτότητας Ι, που ορίζεται ως: fun I x = x Ο ορισμός

Διαβάστε περισσότερα

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 2:Στοιχεία Μαθηματικής Λογικής Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

Διαβάστε περισσότερα

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 5: Ασκήσεις Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Pascal- Εισαγωγή Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου

Διαβάστε περισσότερα

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( ) ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Μορφές μεταβίβασης ορισμάτων σε συναρτήσεις (και μεθόδους) και οι επιπτώσεις τους Επιστροφή τιμών από κλήση συναρτήσεων Υπερφόρτωση

Διαβάστε περισσότερα

Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης. Λογισμός 3 Ασκήσεις. Μιχάλης Μαριάς Τμήμα Α.Π.Θ.

Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης. Λογισμός 3 Ασκήσεις. Μιχάλης Μαριάς Τμήμα Α.Π.Θ. Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Λογισμός 3 Μιχάλης Μαριάς Τμήμα Α.Π.Θ. Θεσσαλονίκη, 2015 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

Διαβάστε περισσότερα

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

Θεωρία Πιθανοτήτων & Στατιστική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ & Στατιστική Ενότητα η : Τυχαίες Μεταβλητές, Συναρτήσεις Κατανομής Πιθανότητας. Γεώργιος Ζιούτας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών

Διαβάστε περισσότερα

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

Διαβάστε περισσότερα

Δομές Δεδομένων Ενότητα 2

Δομές Δεδομένων Ενότητα 2 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 2: Θέματα Απόδοσης Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 24: Μη Ντεντερμινιστικές Μηχανές Turing Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

Διαβάστε περισσότερα

Μαθηματικά. Ενότητα 3: Εξισώσεις και Ανισώσεις 1 ου βαθμού. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

Μαθηματικά. Ενότητα 3: Εξισώσεις και Ανισώσεις 1 ου βαθμού. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής Μαθηματικά Ενότητα 3: Εξισώσεις και Ανισώσεις 1 ου βαθμού Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Μαθηματικά. Ενότητα 2: Διαφορικός Λογισμός. Σαριαννίδης Νικόλαος Τμήμα Διοίκησης Επιχειρήσεων (Κοζάνη)

Μαθηματικά. Ενότητα 2: Διαφορικός Λογισμός. Σαριαννίδης Νικόλαος Τμήμα Διοίκησης Επιχειρήσεων (Κοζάνη) Μαθηματικά Ενότητα 2: Διαφορικός Λογισμός Σαριαννίδης Νικόλαος Τμήμα Διοίκησης Επιχειρήσεων (Κοζάνη) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5 ΕΛΛΗΝΙΚΟ ΑΝΟΙΧΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Πρόγραµµα σπουδών "ΠΛΗΡΟΦΟΡΙΚΗ" - Θ.Ε. ΠΛΗ11 Τεχνολογία Λογισµικού Ι Κεφάλαιο 5 Βασίλειος Βεσκούκης ιδάκτωρ Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών v.vescoukis@cs.ntua.gr

Διαβάστε περισσότερα

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

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ Ενότητα #7: Μονοτονία- Ακρότατα-Αντιγραφή Εβελίνα Κοσσιέρη Τμήμα Λογιστικής και Χρηματοοικονομικής

Διαβάστε περισσότερα

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 4: Ισοδυναμία, διάταξη, άπειρα σύνολα Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα Ενότητα: Διανυσματικοί Χώροι και Υπόχωροι: Βάσεις και Διάσταση Ανδριανός Ε Τσεκρέκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Διαβάστε περισσότερα

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

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 10: Συναρτήσεις Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Κεφάλαιο 7 ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Ερωτήσεις 1. Να αναφέρετε διαφορές μεταξύ γλωσσών μηχανής και γλωσσών χαμηλού επιπέδου. Οι γλώσσες μηχανής κωδικοποιούν τις εντολές τους με ομάδες

Διαβάστε περισσότερα

Μεταγλωττιστές Ενότητα 1: Εισαγωγή

Μεταγλωττιστές Ενότητα 1: Εισαγωγή Μεταγλωττιστές Ενότητα 1: Εισαγωγή Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,

Διαβάστε περισσότερα

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

Διδακτική της Πληροφορικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 11: Διδακτική της έννοιας της μεταβλητής Σταύρος Δημητριάδης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 3 : Γλώσσες προγραμματισμού. Δρ.

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 3 : Γλώσσες προγραμματισμού. Δρ. 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Πληροφορική II Ενότητα 3 : Γλώσσες προγραμματισμού Δρ. Γκόγκος Χρήστος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Χρηματοοικονομικής

Διαβάστε περισσότερα

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Ενότητα 1: Εισαγωγή. Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Λογική Ενότητα 1: Εισαγωγή Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται στην άδεια χρήσης Creative Commons

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

Διαβάστε περισσότερα

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

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 5: Εντολές επανάληψης Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Συναρτήσεις 60 Ροή ελέγχου Είναι η σειρά µε την οποία εκτελούνται οι εντολές. Μέχρι τώρα, «σειριακή»,

Διαβάστε περισσότερα

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρότυπα Γεγονότων. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρότυπα Γεγονότων. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Πρακτικό Κομμάτι Μαθήματος Πρότυπα Γεγονότων Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ. Ενότητα 5: Εντολές Επανάληψης

Προγραμματισμός Η/Υ. Ενότητα 5: Εντολές Επανάληψης Προγραμματισμός Η/Υ Ενότητα 5: Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Έλεγχος της ροής του προγράμματος

Διαβάστε περισσότερα

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

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ Ενότητα # 1: Εισαγωγή στη Στατιστική Εβελίνα Κοσσιέρη Τμήμα Λογιστικής και Χρηματοοικονομικής ΑΔΕΙΕΣ ΧΡΗΣΗΣ

Διαβάστε περισσότερα

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 2: Μεταβλητές και Σταθερές Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης

Διαβάστε περισσότερα

Μαθηματικά. Ενότητα 3: Ολοκληρωτικός Λογισμός Σαριαννίδης Νικόλαος Τμήμα Διοίκησης Επιχειρήσεων (Κοζάνη)

Μαθηματικά. Ενότητα 3: Ολοκληρωτικός Λογισμός Σαριαννίδης Νικόλαος Τμήμα Διοίκησης Επιχειρήσεων (Κοζάνη) Μαθηματικά Ενότητα 3: Ολοκληρωτικός Λογισμός Σαριαννίδης Νικόλαος Τμήμα Διοίκησης Επιχειρήσεων (Κοζάνη) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

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

ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Ενότητα 11: Καθολική μηχανή Turing Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

Διαβάστε περισσότερα

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13 Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13 ΙΣΤΟΡΙΚΑ Παρουσιάστηκε το 1970 από το Niklaus Wirth Προγενέστερη γλώσσα ήταν η Algol 60 Είναι δομημένη γλώσσα προγραμματισμού υψηλού

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 10 ΟΥ ΚΕΦΑΛΑΙΟΥ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ 1. Πως ορίζεται ο τμηματικός προγραμματισμός; Τμηματικός προγραμματισμός

Διαβάστε περισσότερα

Υπολογιστικά Συστήματα

Υπολογιστικά Συστήματα Υπολογιστικά Συστήματα Ενότητα 3: Βασικά στοιχεία της γλώσσας προγραμματισμού Visual Basic for Applications (VBA) Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Ευφυής Προγραμματισμός

Ευφυής Προγραμματισμός Ευφυής Προγραμματισμός Ιωάννης Χατζηλυγερούδης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Περιεχόμενα ενότητας Συναρτήσεις-Δομές Ελέγχου : 1. Συναρτήσεις Χρήστη 2. Έλεγχος Ροής Προγράμματος 3.

Διαβάστε περισσότερα

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

ΕΠΑΛΗΘΕΥΣΗ ΠΡΟΓΡΑΜΜΑΤΩΝ Ι ΕΠΑΛΗΘΕΥΣΗ ΠΡΟΓΡΑΜΜΑΤΩΝ Ι Η τυπική επαλήθευση βάση μοντέλου είναι κατάλληλη για συστήματα επικοινωνούντων διεργασιών (π.χ. κατανεμημένα συστήματα) όπου το βασικό πρόβλημα είναι ο έλεγχος αλλά γενικά δεν

Διαβάστε περισσότερα

Συστήματα Γνώσης. Θεωρητικό Κομμάτι Μαθήματος Ενότητα 2: Βασικές Αρχές Αναπαράστασης Γνώσης και Συλλογιστικής

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

Διαβάστε περισσότερα

Κατηγορηματικός Λογισμός (ΗR Κεφάλαιο 2.1-2.5)

Κατηγορηματικός Λογισμός (ΗR Κεφάλαιο 2.1-2.5) Κατηγορηματικός Λογισμός (ΗR Κεφάλαιο 2.1-2.5) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στον Κατηγορηματικό Λογισμό Σύνταξη Κανόνες Συμπερασμού Σημασιολογία ΕΠΛ 412 Λογική στην

Διαβάστε περισσότερα

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

Μοντελοποίηση Λογικών Κυκλωμάτων Μοντελοποίηση Λογικών Κυκλωμάτων Ενότητα 7: Η γλώσσα VHDL, Μοντελοποίηση, διαχείριση χρόνου Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα