Κεφάλαιο 10 Λάμβδα λογισμός

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

Download "Κεφάλαιο 10 Λάμβδα λογισμός"

Transcript

1 Κεφάλαιο 10 Λάμβδα λογισμός Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης 1

2 Ιστορική εξέλιξη λ-λογισμού - 1 Αναπτύχθηκε αρχικά από τον Alonzo Church στις αρχές της δεκαετίας του 1930, πολύ πριν αρχίσουν να χρησιμοποιούνται οι ηλεκτρονικοί υπολογιστές. Ήταν μέρος μιας γενικότερης θεωρίας με στόχο τη θεμελίωση μαθηματικών και λογικής [Chur32, Chur33] 2

3 Ιστορική εξέλιξη λ-λογισμού - 2 H γενική θεωρία ήταν ασυνεπής, όπως αποδείχθηκε αργότερα [Klee35] Το τμήμα της, που ασχολήθηκε με συναρτήσεις είχε σημαντικές εφαρμογές στην πληροφορική, κυρίως μετά το 1960 Το τμήμα αυτό είναι ο λάμβδα λογισμός ή λ-λογισμός 3

4 λ-λογισμός Πλήρες υπολογιστικό μοντέλο Δύο πολύ σημαντικά αποτελέσματα Όλες οι αναδρομικές συναρτήσεις παριστάνονται στο λ-λογισμό [Klee35] Ως υπολογιστικό μοντέλο, ο λ-λογισμός είναι ισοδύναμος με τη μηχανή Turing [Turi37]. H μηχανή Turing αποτέλεσε τη βάση των υπολογιστών von Neumann στους οποίους ανήκουν οι σημερινοί υπολογιστές και οδήγησε στη δημιουργία των πρώτων γλωσσών προγραμματισμού 4

5 λ-λογισμός Σχεδιασμός νέων αρχιτεκτονικών υπολογιστών Μηχανές αναγωγής (reduction machines) και Υπολογιστές ροής δεδομένων (data-flow computers) Όταν πρωτο-δημιουργήθηκαν εκτελούσαν αποκλειστικά προγράμματα γραμμένα σε κάποια διάλεκτο του λ-λογισμού. Δημιουργία συναρτησιακού προγραμματισμού John McCarthy σχεδίασε τη γλώσσα προγραμματισμού LISP στα τέλη της δεκαετίας του Αργότερα δημιουργήθηκαν οι Scheme, ML, Miranda, Haskell, κλπ. 5

6 λ- Λογισμός Υπολογιστές και συναρτησιακός προγραμματισμός δεν έτυχαν ευρείας αποδοχής όπως οι υπολογιστές von Neumann και ο προστακτικός προγραμματισμός Οι επιδόσεις των πρώτων μηχανών αναγωγής και οι υλοποιήσεις των συναρτησιακών γλωσσών ήταν χειρότερες από τα παραδοσιακά συστήματα. 6

7 λ-λογισμός Ιδιαίτερα πρόσφορος ως συμβολισμός για την περιγραφή σημασιολογικών ιδιοτήτων των γλωσσών προγραμματισμού. Διευκόλυνε τη μελέτη και απομόνωση προβλημάτων σχεδίασης και υλοποίησης των γλωσσών προγραμματισμού Μηχανισμό κλήσης υπο-προγραμμάτων και δομή συστήματος τύπων 7

8 λ-λογισμός Διατύπωση θεωρίας πεδίων Θεμελίωση ερευνητικού πεδίου της σημασιολογίας γλωσσών προγραμματισμού 8

9 Διαισθητική εισαγωγή Ο λ-λογισμός είναι θεωρία συναρτήσεων Δύο κύριες λειτουργίες Εφαρμογή συνάρτησης F πάνω σε ένα όρισμα Α, που συμβολίζεται με F A Αφαίρεση. Έστω ότι x μεταβλητή και Ε[x] έκφραση, που εξαρτάται από τη x. Η έκφραση λx.e[x] συμβολίζει τη συνάρτηση x E[x] 9

10 Διαισθητική εισαγωγή Η συνάρτηση δέχεται ως όρισμα μία τιμή υ και επιστρέφει ως αποτέλεσμα την τιμή Ε[υ]. Η x δεν εμφανίζεται απαραίτητα στην έκφραση Ε[x]. Αν αυτό δεν συμβαίνει, τότε η λx.e[x] είναι μία σταθερή συνάρτηση. 10

11 Παράδειγμα Η λx. x 2 3x +2 συμβολίζει μία συνάρτηση, που σε κάθε τιμή x απεικονίζει την τιμή x 2 3x +2. Αν η συνάρτηση εφαρμοσθεί στο όρισμα 8, προκύπτει (λx. x 2 3x +2)8 = =42 Η τιμή του ορίσματος αντικαθιστά την παράμετρο x 11

12 Ελεύθερη και Δεσμευμένη Μεταβλητή Η αφαίρεση λx.e[x] δεσμεύει τη μεταβλητή x μέσα στην έκφραση Ε[x]. Μεταβλητή μη δεσμευμένη ονομάζεται ελεύθερη. Παράδειγμα: λx. x 2 3y +2 x δεσμευμένη και y ελεύθερη Παράδειγμα: (λx. x 2 3y +2)(4x + 1) H πρώτη εμφάνιση του x (στο x 2 ) είναι δεσμευμένη, γιατί είναι στο εσωτερικό της αφαίρεσης, ενώ η δεύτερη (στο 4x + 1) είναι ελεύθερη) 12

13 Παράδειγμα Δέσμευσης sinx +cosy cosx siny dx Η μεταβλητή x στο εσωτερικό του ολοκληρώματος είναι δεσμευμένη και κατά συνέπεια η τιμή του ολοκληρώματος δεν εξαρτάται από την τιμή του x έξω από αυτό. Η μεταβλητή y είναι ελεύθερη και η τιμή του ολοκληρώματος εξαρτάται από την τιμή του y έξω από αυτό. 13

14 Λάμβδα όροι Ο λ-λογισμός είναι μία τυπική γλώσσα Λ, η σύνταξη της οποίας δίνεται από τον ακόλουθο επαγωγικό ορισμό: 14

15 Ορισμός 10.1 Έστω V ένα αριθμήσιμο σύνολο μεταβλητών. Το σύνολο Λ των όρων του λ- λογισμού είναι το μικρότερο σύνολο, που ικανοποιεί τις παρακάτω ιδιότητες: x V x Λ Μ,Ν Λ (Μ Ν) Λ x V, Μ Λ (λx.μ) Λ 15

16 λ-όροι Τα στοιχεία του συνόλου Λ ονομάζονται επίσης λ-όροι (λ-terms). Υπάρχουν τριών ειδών: Μεταβλητές (Variables), δηλαδή στοιχεία του συνόλου V Εφαρμογές (Applications), με μορφή (Μ Ν), όπου Μ και Ν είναι λ-όροι Αφαιρέσεις (Abstractions), με μορφή (λx.m), όπου x μεταβλητή και Μ λ-όρος 16

17 λ-όροι Κατά σύμβαση χρησιμοποιούνται μικρά γράμματα του λατινικού αλφαβήτου (x,y,z κλπ) για συμβολισμό μεταβλητών και κεφαλαία (Μ,Ν,F,G, P κλπ) για λ-όρους. 17

18 λ-όροι Χρησιμοποιώντας αφηρημένη σύνταξη BNF και θεωρώντας ότι η συντακτική κλάση των μεταβλητών παριστάνεται με το μητερματικό σύμβολο (var), η γλώσσα Λ των λ-όρων περιγράφεται ισοδύναμα term ::= var ( term term ) ( λ var term ) 18

19 Παράδειγμα 10.1 Οι παρακάτω είναι λ-όροι: (x y) (λx.x) (λx.((λy.(x y)))) (((λx.x)y)(λx.z)) ((λx.(λy.z)) (λx.x)) (λx.((λy.y)(λz.x))) 19

20 Συμβάσεις Για απλοποίηση των λ-όρων και αποφυγή μεγάλου αριθμού παρενθέσεων (με αυστηρή τήρηση ορισμού 10.1) χρησιμοποιούνται οι συμβάσεις Εξωτερικές παρενθέσεις δεν γράφονται λx.x συντομογραφία του (λx.x) Η εφαρμογή είναι αριστερά προσεταιριστική F M 1 M 2 M n συντομογραφία του ( ((F M 1 )M 2 ) M n ) 20

21 Συμβάσεις Η αφαίρεση εκτείνεται όσο περισσότερο είναι δυνατό, δηλαδή ως το επόμενο κλείσιμο παρένθεσης ή το τέλος του όρου: λx. M 1 M 2 M n συντομογραφία του λx. (M 1 M 2 M n ) 21

22 Παράδειγμα 10.2 Ακολουθώντας τις συμβάσεις, οι λ-όροι του παραδείγματος 10.1 γράφονται x y λx.x λx.λy.x y ((λx.x)y)(λx.z) (λx.λy.z) (λx.x) λx.(λy.y)(λz.x) 22

23 Ορισμός 10.2 Η σχέση ταυτότητας στο σύνολο των λ- όρων ορίζεται επαγωγικά ως εξής: x y αν x = y (Μ Ν) (P Q) αν Μ Ρ και Ν Q (λx. M) (λy. N) αν x = y και M N Όπου x = y συμβολίζεται η σχέση ισότητας στο σύνολο V ( δηλαδή x και y είναι η ίδια μεταβλητή). Αν M N, οι όροι Μ,Ν Λ ονομάζονται ταυτόσημοι (identical) 23

24 Μεταβλητές Η μεταβλητή x στην αφαίρεση λx.μ ονομάζεται δεσμεύουσα μεταβλητή (binding variable) Η εμβέλεια (scope) της αφαίρεσης λx είναι ο λ-όρος Μ, εκτός από τυχόν αφαιρέσεις, που αυτός περιέχει και στις οποίες δεσμεύουσα μεταβλητή είναι πάλι η x. 24

25 Μεταβλητές Εμφανίσεις της μεταβλητής x που βρίσκονται στην εμβέλεια κάποιου λx ονομάζονται δεσμευμένες (bound). Εμφανίσεις, που δεν βρίσκονται στην εμβέλεια κανενός λx ονομάζονται ελεύθερες. 25

26 Ορισμός 10.3 Το σύνολο των ελεύθερων μεταβλητών (free variables) ενός λ-όρου Μ Λ συμβολίζεται με FV(M) και ορίζεται επαγωγικά ως εξής: FV(x) = {x} FV(M N) = FV(M) FV(N) FV(λx.M) = FV(M) - {x} 26

27 Παράδειγμα 10.3 Έστω ο παρακάτω όρος: Μ (λx. y x) (λy. x y) Ελεύθερη Δεσμευμένη Δεσμευμένη Ελεύθερη 27

28 Παράδειγμα 10.3 Ακολουθώντας τον ορισμό 10.3 FV(M) = FV(λx.y x)(λy.x y) = FV(λx.y x) FV (λy.x y) = (FV(y x) {x}) (FV(x y) {y}) = ((FV(y) FV(x)) {x}) ((FV(x) FV(y)) {y}) = (({y} {x}) {x}) (({x} {y}) {y}) = ({x,y} {x}) ({x,y} {y}) = {y} {x} = {x,y} 28

29 Ορισμός 10.4 Ένας λ-όρος Μ Λ ονομάζεται κλειστός λ-όρος (closed λ-term ή combinator) αν FV(M) =. Το σύνολο των κλειστών λ- όρων συμβολίζεται με Λ ο. 29

30 Παράδειγμα 10.4 Οι ακόλουθοι λ-όροι είναι κλειστοί και στη βιβλιογραφία ονομάζονται πρότυποι κλειστοί όροι (standard combinators). I λx. x K λx. λy. x K * λx. λy. y S λx. λy. λz. (x z)(y z) 30

31 Αντικατάσταση Βασική πράξη συμβολικής επεξεργασίας των λ-όρων Επηρεάζει ελεύθερες μεταβλητές Ο συμβολισμός Μ[x := N] παριστάνει το αποτέλεσμα αντικατάστασης στον όρο Μ όλων των ελεύθερων εμφανίσεων της μεταβλητής x με τον όρο Ν. 31

32 Ορισμός 10.5 Η αντικατάσταση της μεταβλητής x V στον όρο Μ Λ με τον όρο Ν Λ συμβολίζεται με Μ[x := Ν] και ορίζεται επαγωγικά ως εξής: x[x:=n] N y[x:=n] y (P Q) [x:=n] P[x:=N] Q[x:=N] (λx.p) [x:=n] λx.p (λy.p) [x:=n] λy.p [x:=n] αν (y FV(N) ή x FV(P)) (λy.p) [x:=n] λz.p [y:=z] [x:=n] αν y FV(N) και x FV(P), όπου z FV(P) FV(N) 32

33 Παρατηρήσεις Αντικαθίστανται μόνο οι ελεύθερες εμφανίσεις μιας μεταβλητής Στο αποτέλεσμα της αντικατάστασης καμία από τις ελεύθερες μεταβλητές του όρου Ν δεν θα γίνει δεσμευμένη Η δέσμευση ελεύθερης μεταβλητής του όρου Ν θα μπορούσε να γίνει μόνο μέσω του τελευταίου κανόνα, στην περίπτωση, που y FV(N) και x FV(P). Ο κανόνας μεριμνά για μετονομασία της δεσμεύουσας μεταβλητής, προκειμένου να αποφευχθεί αυτό το ενδεχόμενο. 33

34 Παρατηρήσεις Στον τελευταίο κανόνα η επιλογή της μεταβλητής z V είναι ελεύθερη υπό την προϋπόθεση ότι z FV(P) FV(N) Για τον μονοσήμαντο ορισμό του αποτελέσματος της αντικατάστασης Μ[x:=N] πρέπει σε αυτό τον κανόνα να καθορίζεται επακριβώς ο τρόπος επιλογής της μεταβλητής αυτής. Τα στοιχεία του συνόλου V είναι αριθμημένα και επιλέγεται ως z το πρώτο, που ικανοποιεί την z FV(P) FV(N) 34

35 Μετατροπές Τρία είδη μετατροπής (α,β και η) Κάθε είδος μετατροπής περιγράφεται από τον κανόνα Μ χ N όπου χ {α,β,η} και Μ,Ν Λ. Ο όρος Μ ονομάζεται χ-redex ή απλά redex και ο Ν όρος contractum. 35

36 Ορισμός 10.6 Μία σχέση πάνω στο Λ ονομάζεται συμβατή (compatible) αν για κάθε x V και για κάθε Μ,Ν,Ρ Λ ισχύουν οι παρακάτω ιδιότητες: Μ Ν (Μ Ρ) (Ν Ρ) Μ Ν (Ρ Μ) (Ρ Ν) Μ Ν (λx. M) (λx. Ν) Η σχέση ταυτότητας μεταξύ των λ-όρων είναι συμβατή. 36

37 Ορισμός 10.7 Μία σχέση αναγωγής (reduction relation) είναι μία συμβατή, ανακλαστική και μεταβατική σχέση πάνω στο Λ. 37

38 Ορισμός 10.8 Μία σχέση συμφωνίας (congruence relation) είναι μία συμβατή σχέση ισοδυναμίας πάνω στο Λ. (Μία σχέση ονομάζεται σχέση ισοδυναμίας (equivalence relation) αν είναι ανακλαστική, μεταβατική και συμμετρική.) 38

39 Ορισμός 10.9 Η σχέση α ορίζεται ως η μικρότερη συμβατή σχέση πάνω στο Λ για την οποία για κάθε Μ Λ και για κάθε x,y V τέτοια ώστε y FV(M) ισχύει λx.m α λy.m[x:=y] Ο περιορισμός y FV(M) εξασφαλίζει ότι η μετονομασία της δεσμεύουσας μεταβλητής δεν προκαλεί δέσμευση των μεταβλητών του όρου Μ, που ήταν αρχικά ελεύθερες. 39

40 Παράδειγμα 10.5 Οι παρακάτω α-μετατροπές είναι σωστές: λx.x α λy.y λx.z x α λy.z y λx.λy.z x y α λy.λw.z y w Στην τρίτη μετατροπή, η αντικατάσταση (λy.z x y)[x:=y] προκάλεσε τη μετονομασία της δεσμεύουσας μεταβλητής, προκειμένου να μη δεσμευθεί στο αποτέλεσμα της αντικατάστασης η ελεύθερη εμφάνιση της y. 40

41 Παράδειγμα 10.5 Η παρακάτω μετατροπή είναι λανθασμένη: λx.λz.z x y α λy.λz.z y y γιατί δεν πληρείται ο περιορισμός y FV(λz.z x y) 41

42 Ορισμός Η σχέση β ορίζεται ως η μικρότερη συμβατή σχέση πάνω στο Λ για την οποία για κάθε Μ, Ν Λ και για κάθε x,y V ισχύει (λx.m)ν β M[x:=Ν] 42

43 Παράδειγμα 10.6 Οι παρακάτω β-μετατροπές είναι σωστές: (λx.z x) w β z w (λx.λy.z x y) w β λy.z w y (λy.z y (λx.x y)) w β z w (λx.x w) 43

44 Παράδειγμα 10.6 Η επόμενη μετατροπή είναι λανθασμένη (λx.λy.z x y) (w y) β λy.z (w y) y γιατί για να γίνει αντικατάσταση (λy.z x y) [x:=w y] πρέπει να μετονομασθεί η δεσμεύουσα μεταβλητή y, διαφορετικά η εμφάνιση της y στον όρο w y θα δεσμευόταν. Το σωστό αποτέλεσμα της παραπάνω β-μετατροπής είναι: (λx.λy.z x y) (w y) β λt.z (w y) t όπου t νέα μεταβλητή. 44

45 Ορισμός Η σχέση n ορίζεται ως η μικρότερη συμβατή σχέση πάνω στο Λ για την οποία για κάθε Μ Λ και για κάθε x V τέτοια ώστε x FV(M) ισχύει λx.m x n M 45

46 Παράδειγμα 10.7 Οι παρακάτω n-μετατροπές είναι σωστές: λx.z x n z λy.z x y n z x Όχι όμως η: λx.z x x n z x γιατί δεν πληρείται το x FV(z x) 46

47 Μετατροπή, αναγωγή και ισότητα Οι τρεις κανόνες μετατροπής (α), (β) και (n) ορίζουν τρεις βασικές σχέσεις μετατροπής α, β, n για το λ-λογισμό. Η συνολική σχέση μετατροπής M N θα υποδηλώνει ότι ο όρος Μ μετατρέπεται σε ένα βήμα στον όρο Ν με έναν από τους τρεις κανόνες. 47

48 Ορισμός Με συμβολίζεται η ένωση των σχέσεων α, β, n, δηλαδή η σχέση ορίζεται ως η μικρότερη σχέση για την οποία ισχύουν: Μ α Ν Μ Ν Μ β Ν Μ Ν Μ n Ν Μ Ν 48

49 Συμβολισμός Μ Ν ο Ν 1 Ν 2... Ν n-1 Ν n Ν Ο όρος Μ μετατρέπεται στον όρο Ν με ακολουθία βημάτων, πιθανώς κενή. Η σχέση συμβολίζεται Μ Ν Αν n =1 τότε η μετατροπή γίνεται σε ένα βήμα Μ Ν και άρα η σχέση εμπεριέχει την. Αν n=0, η ακολουθία είναι κενή και δε συμβαίνει μετατροπή, δηλαδή Μ Ν και άρα η σχέση εμπεριέχει την. 49

50 Ορισμός Με συμβολίζεται το ανακλαστικό και μεταβατικό κλείσιμο της σχέσης. Δηλαδή, η σχέση ορίζεται ως η μικρότερη σχέση για την οποία ισχύουν: Μ Ν Μ Ν Μ Μ 50

51 Παρατηρήσεις Η σχέση είναι σχέση αναγωγής (ορισμός 10.7). Όταν ισχύει Μ Ν λέμε ότι ο όρος Μ ανάγεται στον όρο Ν. Όταν Μ Ν, όλα τα βήματα στην ακολουθία μετατροπής έχουν την ίδια κατεύθυνση, από αριστερά προς δεξιά. 51

52 Παρατηρήσεις Αν επιτραπεί η ύπαρξη «αντίστροφων βημάτων, όπως Μ Ν ο Ν 1 Ν 2 Ν 3 Ν 4 Ν 5 Ν 6 Ν Τότε οδηγούμαστε σε μία γενικότερη σχέση, που συμβολίζουμε με =. Η σχέση αυτή, εμπεριέχει τις, και. 52

53 Ορισμός Με = συμβολίζεται η σχέση ισοδυναμίας, που προκύπτει από την. Δηλαδή η σχέση = ορίζεται ως η μικρότερη σχέση για την οποία ισχύουν: Μ Ν Μ = Ν Μ = Ν Ν = Μ Μ = Ν, Ν = Ρ Μ = Ν 53

54 Σχέσεις =, Η σχέση = είναι σχέση συμφωνίας (ορισμός 10.8). Όταν ισχύει Μ=Ν, ο όρος Μ είναι ίσος με τον όρο Ν. Με τη σχέση ισότητας Μ=Ν δεν εννοείται ότι οι δύο όροι ταυτίζονται, δηλαδή δεν ισχύει Μ Ν (ορισμός 10.2). Η διάκριση των δύο σχέσεων και η επιλογή του συμβόλου = για τη σχέση συμφωνίας του ορισμού ενδέχεται να μπερδέψει τον αναγνώστη. 54

55 Κανονικές μορφές λ-λογισμός θεωρείται ως υπολογιστικό μοντέλο επεξεργασίας συναρτήσεων Σχέσεις μετατροπής παριστάνουν την πραγματοποίηση βημάτων επεξεργασίας πάνω στους λ- όρους Αποσκοπούν στον υπολογισμό κάποιου αποτελέσματος 55

56 β - Μετατροπή Κατ εξοχήν υπολογιστική πράξη, αφού διαισθητικά παριστάνει εφαρμογή μίας συνάρτησης σε κάποιο όρισμα 56

57 α - Μετατροπή Δεν προάγει τη διαδικασία υπολογισμού. Τα ονόματα των δεσμευμένων μεταβλητών δεν έχουν ουσιαστική σημασία. Η μετονομασία των μεταβλητών, που επιτελείται μέσω της α-μετατροπής δεν αποτελεί ουσιαστικό υπολογιστικό βήμα 57

58 η μετατροπή Δεν συμβάλλει άμεσα στην υπολογιστική διαδικασία. Υλοποιεί έναν μηχανισμό για την υλοποίηση λ-όρων, που παριστάνουν συναρτήσεις 58

59 Παρατηρήσεις Η σχέση μετατροπής M N παριστάνει ένα βήμα στη διαδικασία υπολογισμού Η σχέση Μ Ν παριστάνει (πιθανώς κενή) ακολουθία από τέτοια βήματα. Όταν Μ Ν μπορεί να θεωρηθεί ότι ο όρος Ν προέκυψε κατά την αποτίμηση του όρου Μ. Αποτίμηση ενός όρου είναι η διαδοχική εφαρμογή κανόνων μετατροπής σε αυτόν. 59

60 Κανονικές μορφές Όταν σε έναν όρο Μ δεν εφαρμόζεται κανένα αμιγώς υπολογιστικό βήμα, δηλαδή καμία β- ή η-μετατροπή, τότε η αποτίμηση του θεωρείται ολοκληρωμένη και ο όρος είναι τελικό αποτέλεσμα. Τέτοιοι πλήρως αποτιμημένοι όροι ονομάζονται κανονικές μορφές. 60

61 Ορισμός Ένας όρος Μ Λ είναι σε κανονική μορφή (normal form) όταν δεν περιέχει κανένα β- redex ή n-redex. 61

62 Παράδειγμα 10.8 Οι όροι λx.x και λf.f (λx.x f) είναι σε κανονική μορφή. Αντίθετα ο όρος λz.(λf.λx.f z x) (λy.y) δεν είναι σε κανονική μορφή, γιατί περιέχει το β-redex: (λf.λx.f z x)(λy.y) β λx. (λy.y) z x 62

63 Παρατήρηση Στις κανονικές μορφές δεν λαμβάνεται υπόψη η α-μετατροπή. Αυτό είναι σύμφωνο με τη θεώρηση του λ-λογισμού ως υπολογιστικού μοντέλου. Αν δεν συνέβαινε, τότε απλοί όροι όπως ο λx.x δεν θα ήταν σε κανονική μορφή λόγω δυνατής μετονομασίας κάποιας δεσμεύουσας μεταβλητής. 63

64 Παρατήρηση Η σχέση συμφωνίας = α βάσει της οποίας όλοι οι όροι, που προκύπτουν με α- μετατροπές είναι ισοδύναμοι, αποτελεί θεμελιώδη σχέση ισοδυναμίας μεταξύ κανονικών μορφών. Το γεγονός αυτό αποδίδεται και από την επόμενη πρόταση. 64

65 Πρόταση 10.1 Αν ο όρος Μ Λ είναι σε κανονική μορφή και ισχύει Μ Ν για κάποιον όρο Ν Λ, τότε Μ = α Ν. 65

66 Πρόταση Σχόλια Υπάρχουν λ-όροι η αποτίμηση των οποίων οδηγεί, μετά από διαδοχικές μετατροπές σε κάποια κανονική μορφή. Υπάρχουν όροι για τους οποίους αυτό δεν ισχύει και η αποτίμηση τους ενδέχεται να συνεχίζεται επ άπειρον χωρίς να καταλήγει σε κανονική μορφή. 66

67 Ορισμός Ένας όρος Μ Λ λέμε ότι έχει κανονική μορφή αν για κάποιον όρο Ν Λ, ισχύει Μ Ν και ο Ν είναι σε κανονική μορφή. Στην περίπτωση αυτή, ο όρος Μ ονομάζεται κανονικοποιήσιμος (normalizing). 67

68 Παράδειγμα 10.9 Ο όρος λz. (λf.λx.fzx)(λy.y) στο παράδειγμα 10.8 δεν είναι σε κανονική μορφή. Εφαρμόζοντας διαδοχικά βήματα λz.(λf.λx.fzx)(λy.y) β λz.λx. (λy.y)zx β λz. λx.zx η λz. z και άρα λz. (λf.λx.fzx)(λy.y) λz. z Καθώς λz.z σε κανονική μορφή και ο αρχικός όρος έχει κανονική μορφή. 68

69 Παράδειγμα Έστω ο όρος Ω (λx. x x) (λx. x x) σε μη κανονική μορφή. Ο όρος περιέχει μόνο ένα β-redex και η μόνη μετατροπή, που μπορεί να εφαρμοσθεί είναι η: Ω (λx. x x) (λx. x x) β (λx. x x) (λx. x x) Ω Σε ένα βήμα μετατροπής, ο όρος Ω μετατρέπεται πάλι στον εαυτό του. Η διαδικασία αποτίμησης δεν τερματίζεται και ο όρος Ω δεν έχει κανονική μορφή. Εδώ η διαδικασία αποτίμησης δεν προοδεύει. 69

70 Παράδειγμα Έστω ο όρος Μ (λx. x x y)(λx. x x y), με ένα μόνο β-redex. Η μόνη ακολουθία μετατροπών, που εφαρμόζεται είναι: Μ (λx. x x y)(λx. x x y) β (λx. x x y)(λx. x x y) y β (λx. x x y)(λx. x x y) y y M y M y y β (λx. x x y)(λx. x x y) y y y M y y y β. Κάθε αποτέλεσμα δεν είναι σε κανονική μορφή και έχει μόνο ένα β-redex. 70

71 Παράδειγμα Έστω ο όρος Μ = (λx. (λy. x y) z) w με δύο β-redex για τις δύο αφαιρέσεις με δεσμεύουσες μεταβλητές x και y. Μετατρέποντας πρώτα το πρώτο από αυτά, προκύπτει η αποτίμηση: Μ β (λy. w y) z β w z Μετατρέποντας τα με την αντίστροφη σειρά προκύπτει η αποτίμηση: Μ β (λy. x z) w β w z 71

72 Παράδειγμα Έστω ο όρος Μ = (λz. y) ((λx. x x)(λx. x x)) που περιέχει τον όρο Ω του παραδείγματος Ο όρος Μ περιέχει δύο β-redex για τις δύο αφαιρέσεις με δεσμεύουσες μεταβλητές z και την πρώτη από τις δύο x. Μετατρέποντας το πρώτο, οδηγούμαστε σε κανονική μορφή: M β y Μετατρέποντας το δεύτερο, οδηγούμαστε πάλι στον ίδιο όρο, όπως με τη μετατροπή του Ω: M β (λz.y) ((λx. x x)(λx. x x)) Μ 72

73 Ορισμός Ένας όρος Μ ονομάζεται ισχυρά κανονικοποιήσιμος (strongly normalizing) αν όλες οι ακολουθίες μετατροπής, που ξεκινούν με τον Μ καταλήγουν σε κανονική μορφή. 73

74 Ορισμός Η στρατηγική κατά την οποία επιλέγεται για μετατροπή κάθε φορά το αριστερότερο redex ενός όρου, δηλαδή αυτό του οποίου το σύμβολο λ βρίσκεται όσο το δυνατόν πιο αριστερά, ονομάζεται στρατηγική της αναγωγής κανονικής σειράς (normal order reduction strategy) 74

75 Θεώρημα 10.1 (Church-Rosser) Έστω όροι Μ, Ν 1,Ν 2 Λ τέτοιοι ώστε Μ Ν 1 και Μ Ν 2.Τότε υπάρχει όρος Ν Λ τέτοιος ώστε Ν 1 Ν και Ν 2 Ν. 75

76 Μ Διάγραμμα Ν 1 Ν 2 Ν 76

77 Πρόταση 10.2 Αν Μ 1 = Μ 2, τότε υπάρχει ένας όρος Ν τέτοιος ώστε Μ 1 Ν και Μ 2 Ν. 77

78 Πρόταση 10.3 Κάθε όρος Μ έχει το πολύ μία κανονική μορφή. 78

79 Απόδειξη της πρότασης 10.3 Έστω ότι όρος Μ έχει δύο κανονικές μορφές Ν 1 και Ν 2, τότε ισχύει ς ώστε Μ Ν 1 και Μ Ν 2 και άρα Ν 1 = Ν 2. Από την πρόταση 10.2 προκύπτει ότι υπάρχει όρος Ρ τέτοιος ώστε Ν 1 Ρ και Ν 2 Ρ. Όμως από την πρόταση 10.1 συνεπάγεται ότι Ν 1 = α Ρ και Ν 2 = α Ρ και άρα Ν 1 = α Ν 2. 79

80 Θεώρημα 10.2 Κανονικοποίηση Normalization Αν ο όρος Μ έχει κανονική μορφή, τότε η στρατηγική της αναγωγής κανονικής σειράς οδηγεί σε αυτήν. 80

81 Θεώρημα 10.3 Σταθερό σημείο Fixed point ii) iii) Για κάθε όρο F Λ υπάρχει όρος Χ Λ τέτοιος ώστε να ισχύει F X = X Υπάρχει ένας τελεστής σταθερού σημείου, δηλαδή ένας όρος Υ Λ τέτοιος ώστε για κάθε F Λ να ισχύει F(Υ F)= Υ F. 81

82 Απόδειξη Θεωρήματος 10.3 i) Έστω W λx. F(x x) και X W W. Τότε ισχύει X W W (λx. F(x x)) W β F(W W) F X ii) Έστω ο κλειστός όρος Υ Λ, που ορίζεται ως Υ λf (λx.f (x x)) (λx.f(x x)) και έστω F Λ. Χρησιμοποιώντας την απόδειξη του i) έχουμε ΥF (λf (λx.f (x x)) (λx.f(x x))) F β (λx.f (x x)) (λx.f (x x)) X Καθώς Χ = FX, από τη συμβατότητα της σχέσης = προκύπτει Υ F=F(Υ F) 82

83 Ορισμός Πως μπορούμε να αναπαραστήσουμε τις λογικές τιμές στο λάμβδα-λογισμό; true λx. λy. x false λx. λy. y 83

84 Ορισμός Πως αναπαριστούμε τους λογικούς τελεστές; not λz. z false true 84

85 Θεώρημα 10.4 i) not true = false ii) not false = true Απόδειξη (μόνο του πρώτου, παρόμοια γίνεται και του δεύτερου) not true (λz.z false true) true β true false true (λx. λy. x) false true β false 85

86 Ορισμός cond λz. λx. λy. z x y if B then N else M cond B N M Αποδεικνύεται εύκολα ότι η παραπάνω δομή πληροί τις απαιτούμενες ιδιότητες. 86

87 Θεώρημα 10.5 Για κάθε Ν, Μ ισχύουν τα παρακάτω ii) if true then N else M = N iii) if false then N else M = M Απόδειξη (του πρώτου) if true then N else Μ cond true N M (λz. λx. λy. z x y) true N M β true N M (λx. λy. x) N M β N 87

88 Διατεταγμένα ζεύγη Στον λ-λογισμό κωδικοποιούνται διατεταγμένα ζεύγη όρων (που με τη σειρά τους κωδικοποιούν άλλα μαθηματικά αντικείμενα). Μία τέτοια κωδικοποίηση γίνεται μέσω του pair. Ο συμβολισμός Ν,Μ χρησιμοποιείται για διευκόλυνση στη γραφή όρων, που κωδικοποιούν διατεταγμένα ζεύγη. 88

89 Ορισμοί και pair λx. λy. λz. z x y Ν, Μ pair N M Οι πράξεις fst και snd, που επιστρέφουν το πρώτο και το δεύτερο στοιχείο ενός διατεταγμένου ζεύγους κωδικοποιούνται ως: fst λz. z true snd λz. z false Αποδεικνύεται ότι οι πράξεις πληρούν απαιτούμενες ιδιότητες και άρα η δομή Ν,Μ χρησιμεύει ως διατεταγμένο ζεύγος. 89

90 Θεώρημα 10.6 Για κάθε Ν, Μ Λ ισχύουν τα εξής: i) fst Ν,Μ = N ii) snd Ν,Μ = M 90

91 Θεώρημα 10.6 Απόδειξη (μόνο του πρώτου) fst Ν,Μ (λz.z true) Ν,Μ β Ν,Μ true pair N M true (λz. λx. λy. z x y) N M true β true N M (λx. λy. x) N M β N 91

92 Φυσικοί αριθμοί Έχουν προταθεί πολλές διαφορετικές κωδικοποιήσεις των φυσικών αριθμών στον λ-λογισμό. Η πρώτη και η πιο γνωστή από αυτές είναι τα αριθμοειδή του Church. 92

93 Ορισμός Έστω φυσικός αριθμός n N και όροι F, A Λ. Ο όρος F n (A) Λ ορίζεται επαγωγικά ως: F 0 (A) Α F n+1 (A) F (F n (A)) Ο ορισμός του F n (A) θα μπορούσε ισοδύναμα να δοθεί με τη μορφή F n+1 (A) F n (F A). Με επαγωγή αποδεικνύεται ότι F n (FA) F (F n (A)) και F n (F m (A)) F n+m (A). 93

94 Ορισμός (Αριθμοειδή του Church Church numerals) Για κάθε φυσικό αριθμό n N ορίζεται ένας όρος c n Λ ως: c n λf. λx. f n (x) 94

95 Ορισμός Το αριθμοειδές, που αντιστοιχεί στον αριθμό 0 είναι το c 0 λf. λx. x, στον αριθμό 1 το c 1 λf. λx. f x, στον αριθμό 2 το c 2 λf. λx. f (f x) κοκ. Όλα τα αριθμοειδή είναι σε β-κανονική μορφή (μάλιστα όλα εκτός του c 1 είναι και σε n-κανονική μορφή). Ούτε όλοι οι λ-όροι είναι αριθμοειδή, ούτε όλοι ανάγονται σε αριθμοειδή. 95

96 Ορισμός succ λn. λf. λx. n f (f x) A + λn. λm. λf. λx. n f (m f x) A * λn. λm. λf. n (m f) A exp λn. λm. m n Το θεώρημα 10.7 αποδεικνύει την ορθότητα της κωδικοποίησης πράξεων του παραπάνω ορισμού. Για την απόδειξη του είναι χρήσιμο το ακόλουθο λήμμα. 96

97 Λήμμα 10.1 Για κάθε n,m N και για κάθε x,y Λ ισχύουν τα εξής: ii) iii) iv) c n f (c m f x ) = c n+m f x (c n x) m (y) = x nm (y) Αν m>0, τότε (c n ) m (x) = c n m x 97

98 Λήμμα 10.1 Απόδειξη i) c n f (c m f x ) (λf. λx.f n (x)) f ((λf. λx.f m (x))) f x) β (λf. λx.f n (x)) f (f m (x)) β (f n (f m (x)) f n+m (x) β (λf. λx.f n+m (x)) f x c n+m f x 98

99 Λήμμα 10.1 Απόδειξη ii) (c n x) m+1 (y) c n x((c n x) m (y)) = c n x(x nm (y)) (επαγωγική υπόθεση) (λf. λx.f n (x)) x (x nm (y)) β x n (x nm (y)) x n+nm (y) x n(1+m) (y) 99

100 Λήμμα 10.1 Απόδειξη iii) (c n ) m+1 (x) c n ((c n ) m (x)) = c n (c n m x) (επαγωγική υπόθεση) (λf. λx.f n (x)) (c n m x) β λy. (c n m x) n (y) = λy. x n m n (y) (λήμμα 10.1(ii)) λy. x n m+1 (y) β (λ f.λx. f n m+1 (x))x c n m+1 x 100

101 Θεώρημα 10.7 Για κάθε n,m N ισχύουν τα εξής: i) succ c n = c n+1 ii) A + c n c m = c n+m iii) A * c n c m = c nm m iv) Αν m>0 τότε A exp c n c m = c n 101

102 Θεώρημα 10.7 Απόδειξη i) succ c n (λn. λf. λx. n f (f x)) (λf. λx. f n (x)) β λf. λx. (λf. λx. f n (x)) f (f x) β λf. λx. f n (f x) c n+1 102

103 Θεώρημα 10.7 Απόδειξη ii) A + c n c m (λn. λm. λf. λx. n f (m f x)) c n c m β λf. λx. c n f (c m f x) = λf. λx. c n+m f x (λήμμα 10.1 (i)) n c n+m 103

104 Θεώρημα 10.7 Απόδειξη iii) A * c n c m (λn. λm. λf. λx. n (m f)) c n c m β λf. c n f (c m f) λf. (λf. λx. f n (x)) (c m f ) β λf. λx. (c m f ) n (x) = λf. λx.f mn (x) (λήμμα 10.1 (ii)) c nm 104

105 Θεώρημα 10.7 Απόδειξη iv) A exp c n c m (λn. λm. m n) c n c m β c m c n (λf. λx.f m (x)) (c n ) β λx.(c n ) m (x) = λx.c n m x (λήμμα 10.1 (iii)) n c n m 105

106 Λάμβδα λογισμός και πέρασμα παραμέτρων Η σχέση ομοιότητας του λ-λογισμού με τις γλώσσες προγραμματισμού δεν περιορίζεται στην εκφραστική του ικανότητα ως προγραμματιστικού μοντέλου. Οι στρατηγικές αναγωγής λ-όρων είναι πολύ στενά συνδεδεμένες με μεθόδους περάσματος παραμέτρων των γλωσσών προγραμματισμού. 106

107 Αναλογία λ-λογισμού και γλωσσών προγραμματισμού Οι λ-όροι αντιστοιχούν σε εκφράσεις ή εντολές Η αφαίρεση και η εφαρμογή αντιστοιχούν στον ορισμό και την κλήση συναρτήσεων ή διαδικασιών και Η διαδικασία της αναγωγής αντιστοιχεί στην αποτίμηση εκφράσεων ή την εκτέλεση εντολών. 107

108 Οκνηρή αποτίμηση (lazy evaluation) Τερματισμός της αποτίμησης μιας έκφρασης πριν προκύψει πλήρως αποτιμημένο αποτέλεσμα. Υποστήριξη από γλώσσες συναρτησιακού προγραμματισμού Haskell και Miranda 108

109 Οκνηρή αποτίμηση Τερματισμός όταν το αποτέλεσμα είναι τιμή (value). Η ακριβής μορφή των τιμών διαφέρει από γλώσσα σε γλώσσα Αριθμητικές και λογικές σταθερές, καθώς και συναρτησιακές αφαιρέσεις είναι τιμές. Στον λ-λογισμό μόνο οι αφαιρέσεις θεωρούνται τιμές 109

110 Αναγωγή Κανονικής Μορφής Η στρατηγική της αναγωγής κανονικής σειράς σχετίζεται στενά με την οκνηρή αποτίμηση. Η μετατροπή κάθε φορά του αριστερότερου β-redex σημαίνει ότι δεν έχει προηγηθεί μετατροπή μέσα στον όρο, πάνω στον οποίο εφαρμόζεται η αφαίρεση, που αντιστοιχεί σε αυτό το β redex. 110

111 Αναλογία με Οκνηρή Αποτίμηση Κατ αναλογία στην οκνηρή αποτίμηση μία συνάρτηση καλείται χωρίς να προηγηθεί αποτίμηση των παραμέτρων της. Στην γλώσσα προγραμματισμού Algol 60, η συμπεριφορά αυτή επιτυγχάνεται με τη μέθοδο του περάσματος παραμέτρων κατ όνομα (call by name). 111

112 Παράδειγμα Η στρατηγική της αναγωγής κανονικής σειράς οδηγεί τελικά την αναγωγή του όρου (λx.λy.y)ω στην τιμή λy.y Το ίδιο αποτέλεσμα προκύπτει στη γλώσσα Algol 60, αν ορισθούν οι συναρτήσεις και στη συνέχεια αποτιμηθεί η έκφραση f(g) στον επόμενο κώδικα: 112

113 Παράδειγμα integer procedure f (x); integer x; begin f :=42 end; integer procedure g; begin while true do g := 7 end; 113

114 Παράδειγμα Το αποτέλεσμα είναι 42, γιατί κατά την αποτίμηση δε χρειάζεται να γίνει η κλήση στη συνάρτηση g, που δεν τερματίζεται Η αποτίμηση όμως της έκφρασης f(g) δεν θα τερματιζόταν σε κάποιες άλλες γλώσσες προγραμματισμού Pascal, C, κλπ. 114

115 Πρόθυμη Αποτίμηση Στις γλώσσες αυτές το πέρασμα παραμέτρων γίνεται κατ αξία (by value) και η τιμή της παραμέτρου g αποτιμάται πριν κληθεί η συνάρτηση f. Η κλήση της g οδηγεί σε μη τερματισμό. Πρόθυμη αποτίμηση (eager evaluation) είναι η αποτίμηση κατά την οποία οι παράμετροι αποτιμώνται πριν γίνει η κλήση στη συνάρτηση. 115

116 Πρόθυμη αποτίμηση στο λ-λογισμό Στον λ-λογισμό, το ανάλογο της πρόθυμης αποτίμησης και του περάσματος παραμέτρων κατ αξία είναι μία στρατηγική αποτίμησης που κατά την αποτίμηση του όρου (λx.λy.y)ω θα αποτιμούσε πρώτα τον όρο Ω. 116

117 Πρόθυμη αποτίμηση στο λ-λογισμό Τέτοιου είδους στρατηγικές προκύπτουν υποχρεωτικά αν στον κανόνα της β- μετατροπής (λx.m) N β M[ x:=n ] Προσθέσουμε τον περιορισμό ότι ο όρος Ν πρέπει να είναι τιμή. 117

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

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

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

x E[x] x xµº λx. E[x] λx. x 2 3x +2

x E[x] x xµº λx. E[x] λx. x 2 3x +2 ¾ λ¹ ÐÓÒ Ó ÙÖ ½ ¼ º õ ¹ ¹ ÙÖ ¾ ÙÖ º ÃÐ ¹ ½ ¼º ¹ Ð Ñ ÐÙÐÙ µ λ¹ λ¹ ÐÙÐÙ µº λ¹ º ý ½ ¼ ø λ¹ ÃÐ º λ¹ ÌÙÖ Ò ÌÙÖ º ÌÙÖ Ò ÚÓÒ Æ ÙÑ ÒÒ ¹ ÇÊÌÊ Æ Ä Çĺ ý λ¹ ¹ º Ö ÙØ ÓÒ Ñ Ò µ Ø ¹ ÓÛ ÓÑÔÙØ Ö µ ¹ λ¹ º λ¹ ÙÒØ ÓÒ Ð

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

Εφαρμογές της Λογικής στην Πληροφορική

Εφαρμογές της Λογικής στην Πληροφορική Σχολή Εφαρμοσμένων Μαθηματικών και Φυσικών Επιστημών Εθνικό Μετσόβιο Πολυτεχνείο Εφαρμογές της Λογικής στην Πληροφορική Ενότητα 2 Πέτρος Στεφανέας, Γεώργιος Κολέτσος Άδεια Χρήσης Το παρόν εκπαιδευτικό

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

{1 x2 }, 1 + x + + xn +

{1 x2 }, 1 + x + + xn + ΛΟΓΙΚΗ ΚΑΙ ΣΥΝΑΡΤΗΣΙΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΠΡΟΚΑΤΑΡΚΤΙΚΑ Η έννοια της συνάρτησης. Η έννοια της συνάρτησης είναι κεντρική έννοια στα Μαθηματικά και στην Πληροφορική, καθώς και στην εξέλιξη αυτών των δύο επιστημών.

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

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

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

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

Σχήματα McCarthy I. Το σχήμα McCarthy είναι ένα γενικότερο προγραμματιστικό σχήμα:

Σχήματα McCarthy I. Το σχήμα McCarthy είναι ένα γενικότερο προγραμματιστικό σχήμα: Σχήματα McCarthy I Το σχήμα McCarthy είναι ένα γενικότερο προγραμματιστικό σχήμα: f(x, y) = if g(...) = 0 then h(...) else k(...) όπου g(...), h(...) και k(...) είναι όροι-συναρτήσεις που κατασκευάζονται

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

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

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

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

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

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

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

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

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

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

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i. Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

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

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

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

The λ-calculus. Lecturer: John Wickerson. Phil Wadler

The λ-calculus. Lecturer: John Wickerson. Phil Wadler The λ-calculus Lecturer: John Wickerson Phil Wadler A tiny bit of Java expr ::= expr + expr expr < expr x n block ::= cmd { cmd... cmd } cmd ::= expr; if(cmd) block else block; if(cmd) block; try{cmd}

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

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

ΠΕΤΡΟΣ ΣΤΕΦΑΝΕΑΣ ΓΙΩΡΓΟΣ ΚΟΛΕΤΣΟΣ ΕΦΑΡΜΟΓΕΣ ΤΗΣ ΛΟΓΙΚΗΣ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΠΕΤΡΟΣ ΣΤΕΦΑΝΕΑΣ ΓΙΩΡΓΟΣ ΚΟΛΕΤΣΟΣ ΕΦΑΡΜΟΓΕΣ ΤΗΣ ΛΟΓΙΚΗΣ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΠΕΤΡΟΣ ΣΤΕΦΑΝΕΑΣ ΓΕΩΡΓΙΟΣ ΚΟΛΕΤΣΟΣ Εφαρμογές της Λογικής στην Πληροφορική Εφαρμογές της Λογικής στην Πληροφορική Συγγραφή Πέτρος

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

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στις βασικές έννοιες που σχετίζονται με τη λεξική ανάλυση. Στη δήλωση ορισμό κανονικών εκφράσεων

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στις βασικές έννοιες που σχετίζονται με τη λεξική ανάλυση. Στη δήλωση ορισμό κανονικών εκφράσεων ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ 2 Ο Εργαστηριακό Μάθημα Λεξική Ανάλυση Σκοπός: Το μάθημα αυτό αναφέρεται: Στις βασικές έννοιες που σχετίζονται με τη λεξική ανάλυση Στη δήλωση ορισμό κανονικών εκφράσεων Θεωρία Πρόλογος

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

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

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

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

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

Foundations of Computer Science ENGR 3520 Fall 2013 Thursday, Nov 21, 2013

Foundations of Computer Science ENGR 3520 Fall 2013 Thursday, Nov 21, 2013 Foundations of Computer Science Lecture Notes ENGR 3520 Fall 2013 Thursday, Nov 21, 2013 λ-calculus λ-terms. A λ-term is either: A variable x, y, z,... λx.m M N (M) (where x is a variable and M a λ-term)

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

Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4)

Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4) Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4) Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Η διαδικαστική γλώσσα προγραμματισμού WHILE Τριάδες Hoare Μερική και Ολική Ορθότητα Προγραμμάτων Κανόνες

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

Κεφάλαιο 5 Αξιωματική Σημασιολογία και Απόδειξη Ορθότητας Προγραμμάτων

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

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

Εφαρμογές της Λογικής στην Πληροφορική

Εφαρμογές της Λογικής στην Πληροφορική Σχολή Εφαρμοσμένων Μαθηματικών και Φυσικών Επιστημών Εθνικό Μετσόβιο Πολυτεχνείο Εφαρμογές της Λογικής στην Πληροφορική Ενότητα 3 Πέτρος Στεφανέας, Γεώργιος Κολέτσος Άδεια Χρήσης Το παρόν εκπαιδευτικό

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΚΕΦΑΛΑΙΟ 2 2.4 Βασικές συνιστώσες/εντολές ενός αλγορίθμου 2.4.1 Δομή ακολουθίας ΚΕΦΑΛΑΙΟ 7 7.1 7.9 Σταθερές (constants): Προκαθορισμένες τιμές που παραμένουν

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

n true false if t then t else t u t t b t emptylist cons t t t t λx.t u ::= head tail isempty

n true false if t then t else t u t t b t emptylist cons t t t t λx.t u ::= head tail isempty Συναρτησιακός Προγραµµατισµός 2008 Τρίτο Φύλλο Ασκήσεων - Project Το project αυτό µπορεί να γίνει από οµάδες 1-3 ατόµων και αντιστοιχεί στο 15% του ϐαθµού στο µάθηµα. Συνολικό Αθροισµα Βαθµών: 150 Προθεσµία

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

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Pascal, απλοί τύποι, τελεστές και εκφράσεις Pascal, απλοί τύποι, τελεστές και εκφράσεις 15 Νοεμβρίου 2011 1 Γενικά Στην standard Pascal ορίζονται τέσσερις βασικοί τύποι μεταβλητών: integer: Παριστάνει ακέραιους αριθμούς από το -32768 μέχρι και το

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

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

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

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

Τυποποίηση και Τερματισμός στο λ-λογισμό

Τυποποίηση και Τερματισμός στο λ-λογισμό ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Τυποποίηση και Τερματισμός στο λ-λογισμό ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΙΩΑΝΝΗΣ ΚΟΚΚΙΝΗΣ

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

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

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

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

Εισαγωγή στο Συναρτησιακό Προγραμματισμό

Εισαγωγή στο Συναρτησιακό Προγραμματισμό Εισαγωγή στο Συναρτησιακό Προγραμματισμό Γιάννης Κασσιός Σε αυτό το μάθημα θα εξερευνήσουμε ένα σπουδαίο μοντέλο προγραμματισμού, το συναρτησιακό προγραμματισμό. Θα δούμε το συναρτησιακό προγραμματισμό

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

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

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

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

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

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

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

Πολλοί τρόποι περιγραφής αλγορίθμων. Όλοι είναι μηχανιστικά ισοδύναμοι και ειδικά ισοδύναμοι με μερικές αναδρομικές συναρτήσεις.

Πολλοί τρόποι περιγραφής αλγορίθμων. Όλοι είναι μηχανιστικά ισοδύναμοι και ειδικά ισοδύναμοι με μερικές αναδρομικές συναρτήσεις. Θέση Church-Turing I Πολλοί τρόποι περιγραφής αλγορίθμων. Όλοι είναι μηχανιστικά ισοδύναμοι και ειδικά ισοδύναμοι με μερικές αναδρομικές συναρτήσεις Θέση Church-Turing: Όλες οι υπολογίσιμες συναρτήσεις

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

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων 1 Είσοδος/Έξοδος Είσοδος/Έξοδος ανάλογα με τον τύπο του προγράμματος Πρόγραμμα

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

Κεφάλαιο 9 Συναρτησιακός προγραμματισμός Υπολογισμός με συναρτήσεις

Κεφάλαιο 9 Συναρτησιακός προγραμματισμός Υπολογισμός με συναρτήσεις Κεφάλαιο 9 Συναρτησιακός προγραμματισμός Υπολογισμός με συναρτήσεις Σύνοψη Σκοπός του κεφαλαίου αυτού είναι η εισαγωγή του αναγνώστη στη φιλοσοφία του συναρτησιακού προγραμματισμού. Ο συναρτησιακός προγραμματισμός

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

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

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ Μάθημα 7 - Υποπρογράμματα Εργαστήριο 11 Ο TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ Βασικές Έννοιες: Υποπρόγραμμα, Ανάλυση προβλήματος, top down σχεδίαση, Συνάρτηση, Διαδικασία, Παράμετρος, Κλήση συνάρτησης, Μετάβαση

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

(a) = lim. f y (a, b) = lim. (b) = lim. f y (x, y) = lim. g g(a + h) g(a) h g(b + h) g(b)

(a) = lim. f y (a, b) = lim. (b) = lim. f y (x, y) = lim. g g(a + h) g(a) h g(b + h) g(b) 1 ΑΝΑΛΥΣΗ ΙΙ Μερική Παράγωγος Μερικές Παράγωγοι Ορισμός 1: a) Εστω f(x y) : U R R μία συνάρτηση δύο μεταβλητών και (a b) ένα σημείο του U. Θεωρούμε ότι μεταβάλλεται μόνο το x ένω το y παραμένει σταθερό

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

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

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

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

Κεφάλαιο 3 Η Σημασιολογία των Γλωσσών Προγραμματισμού

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Τελικές εξετάσεις 3 Ιανουαρίου 27 Διάρκεια εξέτασης: 3 ώρες (2:-5:) ΘΕΜΑ ο

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

Αριθμητική Ανάλυση και Εφαρμογές

Αριθμητική Ανάλυση και Εφαρμογές Αριθμητική Ανάλυση και Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 07-08 Πεπερασμένες και Διαιρεμένες Διαφορές Εισαγωγή Θα εισάγουμε την έννοια των διαφορών με ένα

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Σύνολα Συναρτήσεις και Σχέσεις Γραφήματα Λέξεις και Γλώσσες Αποδείξεις ΕΠΛ 211 Θεωρία

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

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης ΚΕΦΑΛΑΙΟ 1ο 3ο 1. Συμπληρώστε τα κενά με τη λέξη που λείπει. α. Ένα πρόβλημα το χωρίζουμε σε άλλα απλούστερα, όταν είναι ή όταν έχει τρόπο επίλυσης. β. Η επίλυση ενός προβλήματος προϋποθέτει την του. γ.

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

Μηχανές Turing (T.M) I

Μηχανές Turing (T.M) I Μηχανές Turing (T.M) I Οι βασικές λειτουργίες μιας TM είναι: Διάβασε το περιεχόμενο του τρέχοντος κυττάρου Γράψε 1 ή 0 στο τρέχον κύτταρο Κάνε τρέχον το αμέσως αριστερότερο ή το αμέσως δεξιότερο κύτταρο

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

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 2 η Τύποι Δεδομένων Δήλωση Μεταβλητών Έξοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα

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

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

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

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

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ ) Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ. 25 48) Τι είναι αλγόριθμος; Γ ΛΥΚΕΙΟΥ Αλγόριθμος είναι μία πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρονικό διάστημα,

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

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

f(t) = (1 t)a + tb. f(n) =

f(t) = (1 t)a + tb. f(n) = Παράρτημα Αʹ Αριθμήσιμα και υπεραριθμήσιμα σύνολα Αʹ1 Ισοπληθικά σύνολα Ορισμός Αʹ11 (ισοπληθικότητα) Εστω A, B δύο μη κενά σύνολα Τα A, B λέγονται ισοπληθικά αν υπάρχει μια συνάρτηση f : A B, η οποία

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

Η γλώσσα προγραμματισμού Strange

Η γλώσσα προγραμματισμού Strange Προγραμματιστική άσκηση: Η γλώσσα προγραμματισμού Strange Η Strange είναι μια μικρή γλώσσα προγραμματισμού. Παρόλο που οι προγραμματιστικές της ικανότητες είναι μικρές, η εκπαιδευτική αυτή γλώσσα περιέχει

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

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

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

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

Ε π ι μ έ λ ε ι α Κ Ο Λ Λ Α Σ Α Ν Τ Ω Ν Η Σ

Ε π ι μ έ λ ε ι α Κ Ο Λ Λ Α Σ Α Ν Τ Ω Ν Η Σ Ε π ι μ έ λ ε ι α Κ Ο Λ Λ Α Σ Α Ν Τ Ω Ν Η Σ 1 Συναρτήσεις Όταν αναφερόμαστε σε μια συνάρτηση, ουσιαστικά αναφερόμαστε σε μια σχέση ή εξάρτηση. Στα μαθηματικά που θα μας απασχολήσουν, με απλά λόγια, η σχέση

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

8 FORTRAN 77/90/95/2003

8 FORTRAN 77/90/95/2003 ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 1: Εισαγωγή... 17 1.1. Ανασκόπηση της ιστορίας των υπολογιστών... 18 1.2. Πληροφορία και δεδομένα... 24 1.3. Ο Υπολογιστής... 26 1.4. Δομή και λειτουργία του υπολογιστή... 28 1.5.

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

A2. Να γράψετε για κάθε περίπτωση τον αριθμό της πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή.

A2. Να γράψετε για κάθε περίπτωση τον αριθμό της πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή. ΜΑΘΗΜΑ / ΤΑΞΗ : ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ/Γ' ΕΠΑ.Λ. ΗΜΕΡΟΜΗΝΙΑ: 17-1-2016 ΕΠΙΜΕΛΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ: Ι.ΜΙΧΑΛΕΑΚΟΣ-Χ.ΠΑΠΠΑ-Α.ΚΑΤΡΑΚΗ ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις προτάσεις που ακολουθούν, γράφοντας δίπλα

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

Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός. Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός

Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός. Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός 7 Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός Σχεσιακή Άλγεβρα H Σχεσιακή Άλγεβρα (relational algebra) ορίζει ένα σύνολο πράξεων που εφαρμόζονται σε μία ή περισσότερες σχέσεις

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

Σύνολα, Σχέσεις, Συναρτήσεις

Σύνολα, Σχέσεις, Συναρτήσεις Κεφάλαιο 2 Σύνολα, Σχέσεις, Συναρτήσεις Τα σύνολα, οι σχέσεις και οι συναρτήσεις χρησιμοποιούνται ευρύτατα σε κάθε είδους μαθηματικές αναπαραστάσεις και μοντελοποιήσεις. Στη θεωρία υπολογισμού χρησιμεύουν,

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

α. Λογικό διάγραμμα είναι η μέθοδος που χρησιμοποιεί απλά σχήματα που υποστηρίζονται με απλές λέξεις για την αναπαράσταση συγκεκριμένων λειτουργιών.

α. Λογικό διάγραμμα είναι η μέθοδος που χρησιμοποιεί απλά σχήματα που υποστηρίζονται με απλές λέξεις για την αναπαράσταση συγκεκριμένων λειτουργιών. ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ ΕΠΑΛ (Α ΟΜΑΔΑ) & ΜΑΘΗΜΑΤΑ ΕΙΔΙΚΟΤΗΤΑΣ ΣΑΒΒΑΤΟ 16/04/2016 - ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (ΑΠΟΦΟΙΤΟΙ) ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6) ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις προτάσεις

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

K15 Ψηφιακή Λογική Σχεδίαση 4+5: Άλγεβρα Boole

K15 Ψηφιακή Λογική Σχεδίαση 4+5: Άλγεβρα Boole K15 Ψηφιακή Λογική Σχεδίαση 4+5: Άλγεβρα Boole Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Ορισμός της δίτιμης άλγεβρας Boole Περιεχόμενα 1 Ορισμός της

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

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος 2012-13 Κων/νος Φλώρος Απλοί τύποι δεδομένων Οι τύποι δεδομένων προσδιορίζουν τον τρόπο παράστασης των

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

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

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

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

Πρόβλημα 29 / σελίδα 28

Πρόβλημα 29 / σελίδα 28 Πρόβλημα 29 / σελίδα 28 Πρόβλημα 30 / σελίδα 28 Αντιμετάθεση / σελίδα 10 Να γράψετε αλγόριθμο, οποίος θα διαβάζει τα περιεχόμενα δύο μεταβλητών Α και Β, στη συνέχεια να αντιμεταθέτει τα περιεχόμενά τους

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

Pascal. 15 Νοεμβρίου 2011

Pascal. 15 Νοεμβρίου 2011 Pascal 15 Νοεμβρίου 011 1 Procedures σε Pascal Στην Pascal μπορούμε να ορίσουμε διαδικασίες (procedures). Αυτές είναι ομάδες εντολών οι οποίες έχουν ένα όνομα. Γράφοντας το όνομα μιας διαδικασίας μπορούμε

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Εκφράσεις και Λίγες Εντολές Οι εκφράσεις της C Τελεστές Απλές και σύνθετες εντολές Εντολές ελέγχου (επιλογής) Εισαγωγή σε

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

Αρχές Γλωσσών Προγραμματισμου Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2015 Χρήστος Νομικός ( Τμήμα Μηχανικών Αρχές

Αρχές Γλωσσών Προγραμματισμου Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2015 Χρήστος Νομικός ( Τμήμα Μηχανικών Αρχές Αρχές Γλωσσών Προγραμματισμου Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2015 Χρήστος Νομικός ( Τμήμα Μηχανικών Αρχές Η/Υ και Γλωσσών Πληροφορικής Προγραμματισμου Πανεπιστήμιο

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

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Μεταβλητές- Τύποι- Τελεστές Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Μεταβλητές- Τύποι- Τελεστές Μεταβλητές 2 Δήλωση μεταβλητών Η δήλωση (declaration) πληροφορεί το μεταγλωττιστή για το όνομα και

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

Α3. Ποια είναι τα πλεονεκτήματα του Δομημένου προγραμματισμού; (Μονάδες 10)

Α3. Ποια είναι τα πλεονεκτήματα του Δομημένου προγραμματισμού; (Μονάδες 10) ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 08 / 02 / 2015 ΕΠΙΜΕΛΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ: Ι. ΜΙΧΑΛΕΑΚΟΣ Γ.ΝΙΤΟΔΑΣ ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς από τις

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

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

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Συναρτήσεις (Functions) Οι βασικές λειτουργικές ενότητες ενός προγράμματος C Καλούνται με ορίσματα που αντιστοιχούνται σε

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

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με:

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με: Αλγόριθμοι 2.2.1. Ορισμός: Αλγόριθμος είναι μια πεπερασμένη σειρά εντολών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Τα κυριότερα χρησιμοποιούμενα

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013 ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013 ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις προτάσεις που ακολουθούν, γράφοντας δίπλα στο γράμμα που αντιστοιχεί σε κάθε πρόταση τη

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr 1 Πώς δημιουργούμε πρόγραμμα Η/Υ; 1. Ανάλυση του προβλήματος 2. Επινόηση & Σχεδιασμός

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

Outline. 4 Object-Oriented Programming

Outline. 4 Object-Oriented Programming Προγραμματισμός Ηλεκτρονικών Υπολογιστών Φιλοσοφίες γλωσσών προγραμματισμού Διδάσκων: Στάθης Ζάχος Επιμέλεια Διαφανειών: Μάκης Αρσένης CoReLab ΣΗΜΜΥ - Ε.Μ.Π. Ιανουάριος 2016 ιδάσκων: Στάθης Ζάχος ( CoReLab

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

Μεταγλωττιστές Βελτιστοποίηση

Μεταγλωττιστές Βελτιστοποίηση Μεταγλωττιστές Βελτιστοποίηση Νίκος Παπασπύρου nickie@softlab.ntua.gr Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχ. Υπολογιστών Εργαστήριο Τεχνολογίας Λογισμικού Πολυτεχνειούπολη, 15780

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

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

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

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

ΑΝΑΛΥΣΗ 2. Μ. Παπαδημητράκης.

ΑΝΑΛΥΣΗ 2. Μ. Παπαδημητράκης. ΑΝΑΛΥΣΗ Μ. Παπαδημητράκης. 1 ΕΒΔΟΜΟ ΜΑΘΗΜΑ Θα γυρίσουμε πίσω για να κάνουμε μια απόδειξη που είχαμε παραλείψει σε κάποιο προηγούμενο παράδειγμα. Παράδειγμα. Έστω ξ [, b] και η συνάρτηση { 0, αν x [, b],

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

- Αναπαράσταση ακέραιας τιµής : - Εύρος ακεραίων : - Ακέραιοι τύποι: - Πράξεις µε ακεραίους (DIV - MOD)

- Αναπαράσταση ακέραιας τιµής : - Εύρος ακεραίων : - Ακέραιοι τύποι: - Πράξεις µε ακεραίους (DIV - MOD) Η Γλώσσα Pascal Χαρακτηριστικά Τύποι Δεδοµένων Δοµή προγράµµατος 1. Βασικές έννοιες Χαρακτηριστικά της γλώσσας Pascal Γλώσσα προγραµµατισµού Συντακτικό Σηµασιολογία Αλφάβητο της γλώσσας Pascal (Σύνολο

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

Πολλοί τρόποι περιγραφής αλγορίθμων. Όλοι είναι μηχανιστικά ισοδύναμοι και ειδικά ισοδύναμοι με μερικές αναδρομικές συναρτήσεις

Πολλοί τρόποι περιγραφής αλγορίθμων. Όλοι είναι μηχανιστικά ισοδύναμοι και ειδικά ισοδύναμοι με μερικές αναδρομικές συναρτήσεις Θέση Church-Turing Κανονική μορφή Kleene Θέση Church-Turing I Πολλοί τρόποι περιγραφής αλγορίθμων Όλοι είναι μηχανιστικά ισοδύναμοι και ειδικά ισοδύναμοι με μερικές αναδρομικές συναρτήσεις Θέση Church-Turing:

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

Ισότητα, Αλγεβρικές και Αναλυτικές Ιδιότητες Πραγματικών Ακολουθιών

Ισότητα, Αλγεβρικές και Αναλυτικές Ιδιότητες Πραγματικών Ακολουθιών Ισότητα, Αλγεβρικές και Αναλυτικές Ιδιότητες Πραγματικών Ακολουθιών Συμβολισμοί Σε αναλογία με τους ορισμούς συμβολίζουμε μια ακολουθία: 1 είτε μέσω του διανυσματικού ορισμού, παραθέτοντας αναγκαστικά

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

ΚΕΦΑΛΑΙΟ 3 ΤΟ ΔΙΩΝΥΜΙΚΟ ΘΕΩΡΗΜΑ

ΚΕΦΑΛΑΙΟ 3 ΤΟ ΔΙΩΝΥΜΙΚΟ ΘΕΩΡΗΜΑ ΚΕΦΑΛΑΙΟ 3 ΤΟ ΔΙΩΝΥΜΙΚΟ ΘΕΩΡΗΜΑ Εισαγωγή Οι αριθμοί που εκφράζουν το πλήθος των στοιχείων ανά αποτελούν ίσως τους πιο σημαντικούς αριθμούς της Συνδυαστικής και καλούνται διωνυμικοί συντελεστές διότι εμφανίζονται

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

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Η έννοια του συνδυαστικού

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

Δώστε έναν επαγωγικό ορισμό για το παραπάνω σύνολο παραστάσεων.

Δώστε έναν επαγωγικό ορισμό για το παραπάνω σύνολο παραστάσεων. Εισαγωγή στη Λογική Α Τάξης Σ. Κοσμαδάκης Συντακτικό τύπων Α τάξης Α Θεωρούμε δεδομένο ένα λεξιλόγιο Λ, αποτελούμενο από (1) ένα σύνολο συμβόλων για σχέσεις, { R, S,... } (2) ένα σύνολο συμβόλων για συναρτήσεις,

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

Βασικές έννοιες προγραμματισμού

Βασικές έννοιες προγραμματισμού Βασικές έννοιες προγραμματισμού Αλφάβητο Γράμματα Κεφαλαία Ελληνικά ( Α Ω ) Πεζά Ελληνικά ( α ω ) Κεφαλαία Λατινικά ( A Z ) Πεζά Ελληνικά ( a z) Ψηφία 0-9 Ειδικοί χαρακτήρες ( +, -, *,/, =,.,,!, κενό )

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

Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης. Οταν το πρόβλημα έχει πεπερασμ

Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης. Οταν το πρόβλημα έχει πεπερασμ Μαθηματικά Πληροφορικής 4ο Μάθημα Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης.

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

Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης. Οταν το πρόβλημα έχει πεπερασμ

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

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

Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια) Εξαντλητική μέθοδος

Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια) Εξαντλητική μέθοδος Μορφές αποδείξεων Μαθηματικά Πληροφορικής ο Μάθημα Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης.

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

Πρόβλημα είναι μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής.

Πρόβλημα είναι μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής. Κεφάλαιο 2 - Πρόβλημα 2.1.1. Η έννοια του προβλήματος Πρόβλημα είναι μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής. 2.1.2. Κατηγορίες προβλημάτων

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Η ΓΛΩΣΣΑ PASCAL ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Απλοί ή στοιχειώδης Τ.Δ. Ακέραιος τύπος Πραγματικός τύπος Λογικός τύπος Χαρακτήρας Σύνθετοι Τ.Δ. Αλφαριθμητικός 1. Ακέραιος (integer) Εύρος: -32768 έως 32767 Δήλωση

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΝΕΟ ΚΑΙ ΠΑΛΑΙΟ ΣΥΣΤΗΜΑ

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΝΕΟ ΚΑΙ ΠΑΛΑΙΟ ΣΥΣΤΗΜΑ ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΠΑΝΕΛΛΑ ΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ ΚΑΙ HMEΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ (ΟΜΑ Α A ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙ ΙΚΟΤΗΤΑΣ ΟΜΑ Α Β ) ΣΑΒΒΑΤΟ 28 ΜΑΪΟΥ 2016 ΕΞΕΤΑΖΟΜΕΝΟ

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

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

Αναδρομή Ανάλυση Αλγορίθμων

Αναδρομή Ανάλυση Αλγορίθμων Αναδρομή Ανάλυση Αλγορίθμων Παράδειγμα: Υπολογισμός του παραγοντικού Ορισμός του n! n! = n x (n - 1) x x 2 x 1 Ο παραπάνω ορισμός μπορεί να γραφεί ως n! = 1 αν n = 0 n x (n -1)! αλλιώς Παράδειγμα (συνέχ).

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

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

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

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

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

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

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

ΜΑΘΗΜΑΤΙΚΑ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ ΘΕΤΙΚΩΝ ΣΠΟΥΔΩΝ ΣΠΟΥΔΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ. Το 1ο Θέμα στις πανελλαδικές εξετάσεις

ΜΑΘΗΜΑΤΙΚΑ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ ΘΕΤΙΚΩΝ ΣΠΟΥΔΩΝ ΣΠΟΥΔΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ. Το 1ο Θέμα στις πανελλαδικές εξετάσεις Επιμέλεια Καραγιάννης Β. Ιωάννης Σχολικός Σύμβουλος Μαθηματικών ΜΑΘΗΜΑΤΙΚΑ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ ΘΕΤΙΚΩΝ ΣΠΟΥΔΩΝ ΣΠΟΥΔΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Το ο Θέμα στις πανελλαδικές εξετάσεις Ερωτήσεις+Απαντήσεις

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

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ 1. Έστω ότι ο καθηγητής σας δίνει δύο αριθμούς και σας ζητάει να του πείτε πόσο είναι το άθροισμά τους. Διατυπώστε

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

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

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

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

h(x, y) = card ({ 1 i n : x i y i

h(x, y) = card ({ 1 i n : x i y i Κεφάλαιο 1 Μετρικοί χώροι 1.1 Ορισμός και παραδείγματα Ορισμός 1.1.1 μετρική). Εστω X ένα μη κενό σύνολο. Μετρική στο X λέγεται κάθε συνάρτηση ρ : X X R με τις παρακάτω ιδιότητες: i) ρx, y) για κάθε x,

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

P(n, r) = n! P(n, r) = n r. (n r)! n r. n+r 1 r n!

P(n, r) = n! P(n, r) = n r. (n r)! n r. n+r 1 r n! Διακριτά Μαθηματικά Σύνοψη Θεωρίας Τυπολόγιο Αναστασία Κόλλια 20/11/2016 1 / 55 Κανόνες γινομένου και αθροίσματος Κανόνας αθροίσματος: Αν ένα γεγονός μπορεί να συμβεί κατά m τρόπους και ένα άλλο γεγονός

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

ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ Α. β. Οι πληροφορίες είναι δεδομένα τα οποία δεν έχουν υποστεί επεξεργασία.

ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ Α. β. Οι πληροφορίες είναι δεδομένα τα οποία δεν έχουν υποστεί επεξεργασία. ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ ΕΠΑΛ (ΟΜΑΔΑ Α ) & ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΕΠΑΛ (ΟΜΑΔΑ Β ) ΘΕΜΑ Α ΚΥΡΙΑΚΗ 16/04/2014- ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΝΝΕΑ (9) ΕΚΦΩΝΗΣΕΙΣ Α1. Να χαρακτηρίσετε

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

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου ΕΣΔ 516 Τεχνολογίες Διαδικτύου Εισαγωγή στην PHP Περιεχόμενα Περιεχόμενα PHP και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις Παράδειγματα 1 Βιβλιογραφία Ενότητας Βιβλιογραφία [Lane 2004]: Chapter

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

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

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

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

Υπολογίσιμες Συναρτήσεις

Υπολογίσιμες Συναρτήσεις Υπολογίσιμες Συναρτήσεις Σ Π Υ Ρ Ι Δ Ω Ν Τ Ζ Ι Μ Α Σ Δ Τ Ο Μ Ε Α Σ Τ Μ Η Μ Α Μ Α Θ Η Μ Α Τ Ι Κ Ω Ν Σ Χ Ο Λ Η Θ Ε Τ Ι Κ Ω Ν Ε Π Ι Σ Τ Η Μ Ω Ν Π Α Ν Ε Π Ι Σ Τ Η Μ Ι Ο Ι Ω Α Ν Ν Ι Ν Ω Ν Υπολογίσιμες Συναρτήσεις

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

Στην εντολή while η επανάληψη συνεχίζεται όσο η λογική έκφραση έχει τιμή false.

Στην εντολή while η επανάληψη συνεχίζεται όσο η λογική έκφραση έχει τιμή false. ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ ΕΠΑΛ (ΟΜΑΔΑ Α ) & ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΕΠΑΛ (ΟΜΑΔΑ Β ) ΤΕΤΑΡΤΗ 08/04/2015 - ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6) ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις

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