ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-1

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

Download "ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-1"

Transcript

1 Εισαγωγή στη SPIN Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: O model-checker SPIN H γλώσσα προδιαγραφής συστημάτων Promela Εντολές, διεργασίες και μοντέλο επικοινωνίας Σημασιολογία εκτέλεσης ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-1

2 Spin και μοντελοέλεγχος Ο μοντελοέλεγχος είναι ένα σύνολο από αυτοματοποιημένες τεχνικές οι οποίες ελέγχουν κατά πόσο μοντέλα συστημάτων ικανοποιούν επιθυμητές ιδιότητες. Ένας μοντελοελεγκτής (model-checker) επαληθεύει κατά πόσο, για ένα σύστημα M και μια ιδιότητα Φ, Μ = Φ. Το εργαλείο SPIN είναι ένας από τους πιο αποδοτικούς μοντελοελεγκτές. Ελέγχει ιδιότητες της LTL και για την αυτοματοποιημένη επαλήθευση χρησιμοποιεί αλγόριθμους αυτομάτων. Αναπτύχθηκε στα Bell Laboratories. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-2

3 Βασική δομή της Spin PLTL parser and translator Verifier Generator Optimized Model Checker Executable On-the-Fly Verifier Xspin Promela Interactive front end parser Simulation Syntax Error Reports ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-3

4 Spin SPIN (Simple Promela Interpreter) Γλώσσα μοντελοποίησης συστημάτων: Promela (Protocol/Process Meta Language) Γλώσσα προδιαγραφής συστημάτων με πεπερασμένο αριθμό καταστάσεων (όχι γλώσσα προγραμματισμού) χαλαρά βασισμένη στην άλγεβρα διεργασιών CSP δυναμική δημιουργία παράλληλων διεργασιών επικοινωνία ανάμεσα σε διεργασίες μπορεί να γίνει είτε συγχρονισμένα είτε ασύγχρονα (μέσω buffer) στοιχεία από τη γλώσσα C ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-4

5 Spin Σημαντικότερα versions Στοιχεία επιτυχίας 1.0 Jan 1991 αρχικό version, Holzmann Jan 1995 partial-order reduction 3.0 Apr 1997 ελαχιστοποίηση του αυτομάτου του μοντέλου εισαγωγή κώδικα C Multi-core support ανάλυση συστημάτων με το πάτημα ενός κουμπιού πολύ αποδοτική υλοποίηση καλή γραφική διασύνδεση καλή υποστήριξη περιέχει τα αποτελέσματα έρευνας 2+ δεκαετιών στην αυτοματοποιημένη επαλήθευση συστημάτων (πολλοί αλγόριθμοι βελτιστοποίησης) ACM Software Systems Award, 2001 Gerard Holzmann ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-5

6 Promela Ένα μοντέλο της Promela περιέχει δηλώσεις τύπων δηλώσεις καναλιών δηλώσεις καθολικών μεταβλητών mtype = {OK, READY, ACK int name; typedef type1 type2 channel ch = {s of type δηλώσεις διεργασιών δήλωση αρχικής διεργασίας proctype p (args) {statements [init process] Μοντέλα της Promela αντιστοιχούν σε δυνατόν μεγάλα αλλά πεπερασμένα συστήματα μεταβάσεων. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-6

7 Τύποι δεδομένων bit/bool 0,1 byte short int Δηλώσεις μεταβλητών byte name1, name2=4, name3; int arr1[5]; Δηλώσεις νέων τύπων mtype = {OK, READY, ACK mtype status = OK Δομές typedef Msg{ byte a[2], b; short c ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-7

8 Εκφράσεις και εντολές Στην Promela οι συνθήκες μπορούν να χρησιμοποιηθούν ως εντολές: π.χ. η συνθήκη (a == b) εκτελείται όταν τα a και b εξισωθούν. /* Τα σχόλια μπαίνουν σε παρενθέσεις */ Μία εντολή σε οποιοδήποτε σημείο του μοντέλου μπορεί να ονομαστεί από μία ετικέτα. Μία ετικέτα μπορεί να είναι μία ακολουθία χαρακτήρων ακολουθούμενη από :. Οι ετικέτες end, progress, accept, έχουν ειδική σημασία. Σταθερές: #define NAME 5 Εκφράσεις: αριθμητικές (+, -, *, /, %), συγκρίσεις (>, >=, <, <=, ==,!=) Boolean (&&,,!), ανάθεση (=) αύξηση/μείωση (++, --) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-8

9 Διεργασίες Ένας τύπος διεργασίας (proctype) περιέχει ένα όνομα μία λίστα από τυπικές παραμέτρους δηλώσεις τοπικών μεταβλητών μία ακολουθία εντολών proctype A () { byte state; state = 3 byte state; proctype B () { state t = state t 1 proctype C(){ (state == 1) -> state = 3 ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-9

10 Διεργασίες Μία δήλωση διεργασίας απλά ορίζει μια συμπεριφορά διεργασίας, δεν την εκτελεί. Εκτέλεση διεργασίας πρέπει να δηλωθεί ρητά μέσω του τελεστή run. Ο τελεστής run επιστρέφει τον αριθμό της διεργασίας που ξεκίνησε. Σε ένα μοντέλο της Promela, αρχικά εκτελείται λί μόνο η διεργασία με όνομα init. Διεργασίες μπορούν να δημιουργηθούν από οποιαδήποτε διεργασία σε οποιοδήποτε σημείο κατά την εκτέλεση ενός μοντέλου. Διεργασίες μπορούν επίσης να δημιουργηθούν όταν δηλωθούν ως active πριν από τη δήλωση proctype. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-10

11 Παράδειγμα byte state = 1; proctype A(){ byte tmp; (state==1) -> tmp = state; tmp = tmp+1; state = tmp proctype B(){ byte tmp; (state==1) -> tmp = state; tmp = tmp-1; state = tmp init{ run A(); run B() ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-11

12 Ο αλγόριθμος αμοιβαίου αποκλεισμού του Dekker #define true 1 #define false 0 #define Aturn false #define Bturn true bool x, y, t; proctype A(){ x = true; t = Bturn; (y == false t == Aturn); /* critical section */ x = false proctype B(){ y = true; t = Aturn; (x == false t == Bturn); /* critical section */ y = false init{ run A(); run B() ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-12

13 Ατομικές ακολουθίες Η λέξη κλειδί atomic έχει ως αποτέλεσμα τη δημιουργία ατομικών εντολών, δηλαδή, εκτελεί την ακολουθία εντολών στην οποία αναφέρεται ως μία αδιάσπαστη οντότητα. Ποιες οι δυνατές εκτελέσεις του πιο κάτω μοντέλου; byte state = 1 proctype Α () { atomic{ (state == 1) -> state = state 1 proctype B (){ atomic{ (state == 1) -> state = state + 1 init { run A(); run B(); ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-13

14 Κανάλια μηνυμάτων Στην Promela είναι δυνατή η δημιουργία καναλιών τα οποία χρησιμοποιούνται για μεταφορά μηνυμάτων ανάμεσα σε διεργασίες. Η δήλωση chan Transfer = [x] of {type 1, type 2,, type n δημιουργεί το κανάλι Transfer που μπορεί να κρατήσει μέχρι x μηνύματα-πλειάδες n στοιχείων τύπου (type 1, type 2,, type n ). Η εντολή Τransfer!expr στέλνει την τιμή του expr στο κανάλι Transfer, ενώ η εντολή Trasfer?y λαμβάνει ένα μήνυμα από το κανάλι Transfer και τοποθετεί την τιμή αυτή στη μεταβλητή y. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-14

15 H επικοινωνία είναι FIFO. Κανάλια μηνυμάτων Κανάλια μπορούν να είναι αντικείμενα μηνυμάτων: chan queue = [3] of {mtype,chan,int queue!ready, Transfer, 1 ή queue!ready(transfer, 1) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-15

16 Παράδειγμα proctype A(chan q1){ chan q2; q1?q2; q2!123 proctype B(chan q3){ int x; q3?x; printf("x = %d\n", x) init { chan qname = [1] of { chan ; chan qforb = [1] of { int ; run A(qname); run B(qforb); qname!qforb ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-16

17 Κανάλια μηνυμάτων Ειδική περίπτωση όταν x (το μέγεθος του καναλιού) = 0. Για παράδειγμα chan port = [0] of {byte είναι ένα συγχρονισμένο κανάλι. Το κανάλι μπορεί να διαβιβάσει αλλά όχι να αποθηκεύσει μηνύματα. Επομένως εξαναγκάζει τον αποστολέα να περιμένει μέχρις ότου κάποιος είναι έτοιμος να συγχρονιστεί. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-17

18 #define p 0 #define v 1 Παράδειγμα chan sema = [0] of { bit ; proctype dijkstra(){ byte count = 1; do :: (count == 1) -> sema!p; count = 0 :: (count == 0) -> sema?v; count = 1 od proctype user(){ do :: sema?p; /* critical section begins */ sema!v /* non-critical section */ od init{ run dijkstra(); run user(); run user(); run user() ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-18

19 Εντολές Μία εντολή μπορεί να βρίσκεται σε μια από τις καταστάσεις εκτελέσιμη, αν η εντολή μπορεί να εκτελεστεί άμεσα blocked, αν δεν μπορεί να εκτελεστεί Μια ανάθεση είναι πάντα εκτελέσιμη. Οι εκφράσεις είναι επίσης νόμιμες εντολές. Μια έκφραση είναι εκτελέσιμη αν η τιμή της είναι άνιση του μηδενός 2 < 3 πάντα εκτελέσιμη x < 27 εκτελέσιμη μόνο αν η τιμή του x είναι μικρότερη του x εκτελέσιμη μόνο αν η τιμή του x είναι άνιση με 3 ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-19

20 Εντολές Η εντολή skip είναι πάντα εκτελέσιμη δεν κάνει τίποτα, απλά αυξάνει το process counter της διεργασίας Ο τελεστής run είναι εκτελέσιμος μόνο αν είναι δυνατόν να δημιουργηθεί μια νέα διεργασία. Η εντολή printf είναι πάντα εκτελέσιμη. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-20

21 Επιλογή if if :: x%2==1 -> z=z*y; x-- Έλεγχος ροής :: x%2==0 -> y=y*y; x=x/2 fi Γενικά, αν υπάρχουν περισσότερες από μια αληθείς συνθήκες η Spin διαλέγει τυχαία μια από τις εκτελέσιμες επιλογές. Αν δεν υπάρχει καμιά αληθής επιλογή η εντολή if μπλοκάρεται. Λέξη κλειδί else Μπορεί να χρησιμοποιηθεί ως συνθήκη. Γίνεται εκτελέσιμη αν καμιά από τις υπόλοιπες συνθήκες δεν είναι εκτελέσιμη. if :: x==1 -> x-- :: else -> skip fi ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-21

22 Επανάληψη do και εντολή goto Έλεγχος ροής do :: x>y -> x=x-y :: y>x -> y=y-x :: else goto outside od; outside: H εντολή break επιτρέπει τη διαφυγή από ένα do-loop. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-22

23 Ποια η διαφορά των πιο κάτω βρόχων byte count; byte count; proctype counter(){ proctype counter(){ do do :: count = count + 1 :: (count!= 0) -> :: count = count - 1 if :: (count == 0) -> break :: count = count + 1 od :: count = count - 1 fi :: (count == 0) -> break od ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-23

24 Η εντολή timeout Πολλά πρωτόκολλα χρησιμοποιούν ρολόγια ή μηχανισμούς timeout για να ξαναστείλουν μηνύματα ή acknowledgements. H Promela δεν παρέχει στοιχεία πραγματικού χρόνου, αλλά Η λέξη κλειδί timeout επιτρέπει την απόδραση από καταστάσεις αδιεξόδου: παίρνει την τιμή 1 όταν καμιά άλλη εντολή δεν μπορεί να εκτελεστεί. Η πιο κάτω διεργασία κάνει reset το σύστημα όταν αυτό κολλήσει. proctype watchdog(){ do :: timeout -> guard!reset od ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-24

25 Ετικέτες στην Promela Για διευκόλυνση ανίχνευσης αδιεξόδων και προόδου, κατά την εκτέλεση ενός μοντέλου στην Promela, παρέχονται (διαδικασίες και) ειδικές ετικέτες οι οποίες μπορούν να χρησιμοποιηθούν για να ξεχωρίσουν ανάμεσα σε φυσιολογική αδράνεια και αδιέξοδα, και σημαντικά κομμάτια κώδικα που υποδηλώνουν πρόοδο κατά την εκτέλεση Για σήμανση ότι μια αδρανής κατάσταση δεν αποτελεί αδιέξοδο αλλά αναμονή για νέα δεδομένα, μπορεί να χρησιμοποιηθεί η ετικέτα end ή οποιαδήποτε συμβολοσειρά αρχίζει με τους χαρακτήρες end (π.χ. end2). Η ίδια ετικέτα μπορεί να χρησιμοποιηθεί για να δείξει ότι μια κατάσταση μπορεί να θεωρηθεί ως τελική (αν όλες οι υπόλοιπες διεργασίες έχουν τερματίσει). Για σήμανση ότι κάποιο κομμάτι κώδικα πρέπει να εκτελεσθεί για να σημειωθεί πρόοδος στο μοντέλο μπορεί να χρησιμοποιηθεί η η ετικέτα progress ή οποιαδήποτε συμβολοσειρά αρχίζει με τους χαρακτήρες progress (π.χ. progresstwo). ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-25

26 Ετικέτες στην Promela proctype dijkstra(){ byte count = 1; end: do :: (count == 1) -> progress: sema!p; count = 0 :: (count == 0) -> sema?v; count = 1 od ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-26

27 Σημασιολογία παρεμβαλλόμενης διάταξης Διεργασίες στην Promela εκτελούνται ταυτόχρονα με σημασιολογία παρεμβαλλόμενης διάταξης. Εντολές των διεργασιών θεωρούνται ως ατομικές. Αν σε κάποια στιγμή υπάρχουν περισσότερες από μια εκτελέσιμες εντολές σε ενεργές παράλληλες διεργασίες, μία από αυτές επιλέγεται τυχαία για εκτέλεση. Οι μόνες εντολές που εκτελούνται ταυτόχρονα, αφορούν τις εντολές που απαρτίζουν μια συγχρονισμένη επικοινωνία. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-27

28 Ιδιότητες Με τη Spin μπορούμε να ελέγξουμε τους πιο κάτω τύπους ιδιοτήτων ισχυρισμούς ύπαρξη αδιεξόδων ύπαρξη νεκρού κώδικα ιδιότητες ζωτικότητας Κύκλοι έλλειψης προόδου Αποδεκτοί κύκλοι ιδιότητες γραμμικής λογικής (LTL) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-28

29 Ισχυρισμοί Η εντολή assert(expr) χρησιμοποιείται συχνά σε μοντέλα της Promela για έλεγχο κατά πόσο ιδιότητες ικανοποιούνται σε κάποιες καταστάσεις. Αν η τιμή της έκφρασης expr υπολογισθεί ως 0 η Spin θα τερματίσει την εκτέλεση με μήνυμα λάθους, αφού η πρόταση expr παραβιάζεται. Η εντολή assert(expr) είναι πάντα εκτελέσιμη. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-29

30 Αμοιβαίος Αποκλεισμός Χρήση ισχυρισμού bool busy; byte mutex; proctype P(int i){ (!busy) -> busy = true; mutex++; printf( P%d in critical section\n, i); mutex--; busy = false; active proctype invariant(){ assert (mutex <= 1) Ισχυρισμός μαρκάρουμε την επιλογή Assertions στα Verification Options init{ run P(0); run P(1) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-30

31 Ιδιότητες Με τη Spin μπορούμε να ελέγξουμε τους πιο κάτω τύπους ιδιοτήτων ισχυρισμούς ύπαρξη αδιεξόδων ύπαρξη νεκρού κώδικα ιδιότητες ζωτικότητας Κύκλοι έλλειψης προόδου Αποδεκτοί κύκλοι ιδιότητες γραμμικής λογικής (LTL) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-31

32 Αμοιβαίος Αποκλεισμός Εντοπισμός αδιεξόδου bit x, y; byte mutex; active proctype A(){ active proctype B(){ x=1; y=1; (y==0) -> mutex++; (x==0) -> mutex++; printf( P%d in critical printf( P%d in critical section\n, _pid); section\n,_pid); mutex--; mutex--; x=0; y=0; active proctype invariant(){ assert (mutex <= 1) Πιθανό αδιέξοδο μαρκάρουμε την επιλογή Invalid Endstates στα Verification Options ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-32

33 #define p 0 #define v 1 chan sema = [0] of { bit ; Παράδειγμα proctype dijkstra(){ end: do :: sema!p; sema?v Αποδεκτό αδιέξοδο od proctype user(){ sema?p; /* critical section */ sema!v init{ run dijkstra(); run user(); run user(); run user() ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-33

34 Ιδιότητες Με τη Spin μπορούμε να ελέγξουμε τους πιο κάτω τύπους ιδιοτήτων ισχυρισμούς ύπαρξη αδιεξόδων ύπαρξη νεκρού κώδικα ιδιότητες ζωτικότητας Κύκλοι έλλειψης προόδου Αποδεκτοί κύκλοι ιδιότητες γραμμικής λογικής (LTL) Η SPIN ενημερώνει για μη εφικτές καταστάσεις ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-34

35 Ιδιότητες Με τη Spin μπορούμε να ελέγξουμε τους πιο κάτω τύπους ιδιοτήτων ισχυρισμούς ύπαρξη αδιεξόδων ύπαρξη νεκρού κώδικα ιδιότητες ζωτικότητας Κύκλοι έλλειψης προόδου Αποδεκτοί κύκλοι ιδιότητες γραμμικής λογικής (LTL) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-35

36 Ο αλγόριθμος αμοιβαίου αποκλεισμού του Dekker byte mutex; bool x, y; mtype t = Aturn; active proctype A(){ do :: x = true; t = Bturn; (!y t == Aturn); mutex++; /* critical section */ mutex--; x = false od active proctype B(){ do :: y = true; t = Aturn; (!x t == Bturn); progress: mutex ++; /* critical section */ mutex--; y = false Υπάρχει κύκλος όπου δεν active proctype invariant(){ σημειώνεται πρόοδος στη assert (mutex <= 1) διεργασία Β μαρκάρουμε την επιλογή Non-progress cycles στα Verification Options ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-36

37 Ιδιότητες Με τη Spin μπορούμε να ελέγξουμε τους πιο κάτω τύπους ιδιοτήτων ισχυρισμούς ύπαρξη αδιεξόδων ύπαρξη νεκρού κώδικα ιδιότητες ζωτικότητας Κύκλοι έλλειψης προόδου Αποδεκτοί κύκλοι ιδιότητες γραμμικής λογικής (LTL) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-37

38 LTL στην SPIN Η SPIN επιτρέπει τον μοντελοέλεγχο LTL ιδιοτήτων. Η σύνταξη που χρησιμοποιείται έχει ως εξής: f ::= true, false propositional symbols (p, q, κλπ) ( f ) unary f f 1 binary f 2 unary ::= [] (G) binary ::= U <> (F) && (λογικό και) X (λογικό ή)! (λογική άρνηση) -> (λογική συνεπαγωγή) <-> (λογική ισοδυναμία) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-38

39 XSpin H Xspinεπιτρέπει στο χρήστη τα εξής: Σύνταξη μοντέλων στην Promela Προσομοίωση μοντέλων της Promela τυχαιοποιημένες προσομοιώσεις προσομοιώσεις ςμε αλληλεπίδραση η Επαλήθευση μοντέλων της Promela έλεγχος LTL ιδιοτήτων έλεγχος ισχυρισμών και εύρεση αδιεξόδων, κλπ Επιπλέον προσφέρει Εισηγήσεις για απλοποίηση μοντέλων γραφικό user interface με γραφική παράθεση των συστημάτων μεταβάσεων που αντιστοιχούν σε διεργασίες Property manager για LTL ιδιότητες ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-39

40 Εκλογή αρχηγού Ένας κατευθυνόμενος δακτύλιος από επεξεργαστές. Κάθε ένας έχει μια μοναδική τιμή. Επικοινωνία γίνεται στη φορά των δεικτών του ρολογιού. Ο αρχηγός εκλέγεται ως ο επεξεργαστής με τη μέγιστη τιμή. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-40

41 Παράδειγμα ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-41

42 Βασική ιδέα αλγορίθμου Αρχικά όλες οι διεργασίες είναι ενεργές. Αν κάποια διεργασία αντιληφθεί πως η τιμή της δεν είναι η μέγιστη μγ γίνεται αδρανής. Μια αδρανής διεργασία απλά μεταφέρει τιμές σε δεξιόστροφη φορά. Ο αλγόριθμος εκτελείται σε φάσεις. Σε κάθε φάση κάθε διεργασία στέλνει κάποια τιμή προς τα δεξιά. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-42

43 Βασική ιδέα (συν.) Bήμα 1: Κάθε διεργασία, λαμβάνοντας κάποια τιμή από τα αριστερά τη συγκρίνει με την τωρινή της τιμή Αν είναι η ίδια, αυτή είναι και η μέγιστη. Αν δεν είναι η ίδια στέλνει την τιμή που μόλις έλαβε στα δεξιά. Βήμα 2: Όταν λάβει τη δεύτερη τιμή συγκρίνει τις τρεις τιμές, δηλαδή την τιμή της ίδιας της διεργασίας και τις τιμές των δύο ενεργών διεργασιών στα αριστερά. Αν η πρώτη αριστερή ενεργή διεργασία έχει τη μέγιστη τιμή, τότε κρατά αυτή την τιμή και επιστρέφει στο Βήμα 1. Διαφορετικά γίνεται αδρανής. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-43

44 Παράδειγμα ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-44

45 Ψευδοκώδικας active: d = my_number; do forever send(d); receive(e); if (e = d) then send to all processes and STOP end send(e); receive(f); if e>=max(d,f) then d = e else goto relay relay: do forever receive(d); send(d); end ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-45

46 Ανάλυση αλγορίθμου Αφού μοντελοποιήσουμε τον αλγόριθμο στη Promela, μπορούμε να ελέγξουμε ιδιότητες όπως: Η μέγιστη τιμή τελικά θα βρεθεί. Ο αλγόριθμος βρίσκει ακριβώς μια μέγιστη τιμή. Από τη στιγμή που βρίσκεται η μέγιστη τιμή εξακολουθεί να υπάρχει και δεν αλλάζει η τιμή της. Η μέγιστη τιμή είναι πάντα ίση με 5. Δείτε την υλοποίηση (αρχείο leader) και ιδιότητες για ανάλυση (αρχείο leader.ltl) στο distribution της SPIN. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-46

47 To πρόβλημα με τους hippies Τέσσερα άτομα (Nicolas, John, Dave and Peter) βρίσκονται μέσα σε μια σπηλιά κρατώντας μια λάμπα πετρελαίου. Πέ Πρέπει να διασχίσουν ένα στενό πέρασμα όπου μόνο ένα ή δύο άτομα μπορούν να περάσουν την ίδια στιγμή. Επίσης δεν είναι ασφαλές να περάσουν χωρίς φως. Τα τέσσερα άτομα μπορούν να περάσουν το πέρασμα σε διαφορετικούς χρόνους: ο Nicolas σε 5 λεπτά, ο John σε 10, ο Dave σε 20 και ο Peter σε 25. Όταν δύο άτομα περνούν μαζί από το πέρασμα, ο χρόνος που χρειάζονται είναι ο μεγαλύτερος από τους χρόνους τους. Το λάδι στη λάμπα μπορεί να παρέχει φως μόνο για 60 λεπτά. Είναι δυνατή η διάσχιση σε χρόνο <= 60; ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-47

48 Μοντέλο Spin (1) chan out-of-cave = [0] of {hippie, hippie ; chan into-cave = [0] of {hippie ; chan stopwatch = [0] of {hippie ; byte time ; proctype Out() { bit here[n] ; hippie h1, h2 ; here[0]=1; here[1]=1; here[2]=1; here[3]=1; do :: select_hippie(h1) ; select_hippie(h2) ; out-of-cave! h1, h2 ; if all_gone -> break fi; into-cave? h1 ; here[h1] = 1 ; stopwatch! h1 ; od ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-48

49 Μοντέλο Spin (2) proctype In() { bit here[n] ; hippie h1, h2 ; do :: out-of-cave? h1, h2 ; stopwatch! max(h1,h2) ; here[h1] = 1 ; here[h2] = 1 ; if all_here -> break fi; select_hippie(h1); into-cave! h1 ; od ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-49

50 Μοντέλο Spin (3) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-50

51 Μοντέλο Spin (4) proctype Timer() { end: do :: stopwatch? 0 -> time=time+5 ; :: stopwatch? 1 -> time=time+10 :: stopwatch? 2 -> time=time+20; :: stopwatch? 3 -> time=time+25; od init { atomic { run Out(); run In(); run Timer(); Ελέγχουμε την ιδιότητα <> (time>60) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-51

52 Αλγόριθμος Προσομοίωσης (simulation) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-52

53 Αλγόριθμος Επαλήθευσης ιδιότητες κατάστασης Η Spin χρησιμοποιεί κατά βάθος διερεύνηση για να διασχίσει το σύστημα καταστάσεων ενός μοντέλου. Ο έλεγχος της όποιας ιδιότητας δό γίνεται ταυτόχρονα με την κατασκευή του μοντέλου (επαλήθευση on-the-fly) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-53

54 Αλγόριθμος Επαλήθευσης ιδιότητες εκτέλεσης Το μοντέλο και η άρνηση της ιδιότητας μοντελοποιούνται ως: αυτόματα. Αν τομή των γλωσσών των δύο αυτομάτων, Χ, είναι κενή η ιδιότητα ικανοποιείται από το μοντέλο. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-54

55 Αποθήκευση καταστάσεων ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-55

56 Αναφορές από SPIN ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-56

57 Αλγόριθμοι Ελαχιστοποίησης (1) Η Spin υποστηρίζει διάφορους αλγόριθμους ελαχιστοποίησης του συστήματος καταστάσεων: partial order reduction bitstate hashing minimised automaton encoding of states state tt vector compression dataflow analysis slicing algorithm ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-57

58 Αλγόριθμοι Ελαχιστοποίησης (2) Partial Order Reduction Βασίζεται στην παρατήρηση ότι η ικανοποίηση κάποιας ιδιότητας συχνά δεν εξαρτάται από τη σειρά με την οποία εκτελούνται διάφορες εντολές => είναι αρκετό να θεωρήσουμε μόνο ένα υποσύνολο των δυνατών εκτελέσεων. Ο αλγόριθμος εκτελεί ατομικά τις «τοπικές» ς μεταβάσεις των διεργασιών όπου τοπικές μεταβάσεις περιλαμβάνουν: Αναθέσεις και άλλες προσβάσεις σε τοπικές μεταβλητές Επικοινωνίες σε κανάλια τα οποία χρησιμοποιούνται από αποκλειστικά δύο διεργασίες. Οι υπόλοιπες εκτελέσεις καλύπτονται από μια μορφή συρροής. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-58

59 Αλγόριθμοι Ελαχιστοποίησης (3) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-59

60 Bit-state hashing Αλγόριθμοι Ελαχιστοποίησης (4) Μόνο ένα δυφίο χρησιμοποιείται για την αποθήκευση μιας προσβάσιμης κατάστασης. Για οποιαδήποτε κατάσταση, μια συνάρτηση κατακερματισμού χρησιμοποιείται για υπολογισμό της διεύθυνσης στον πίνακα κατακερματισμού μ Δεν γίνεται έλεγχος για συγκρούσεις Συντελεστής φορτίου = # existing bits / # reached states Στόχος: χςσυντελεστής φρ φορτίου > 100 ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-60

61 Αλγόριθμοι Ελαχιστοποίησης (5) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-61

62 Αμετάβλητες συνθήκες []P, όπου η P είναι μια ιδιότητα κατάστασης. Παραδείγματα: [] mutex! = 2 []!aflag H Spin προσφέρει (τουλάχιστον) 7 τρόπους ανάλυσης τέτοιων ιδιοτήτων. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-62

63 Προτάσεις 1 + 2: monitor διεργασία Προσθέτουμε την πιο κάτω διεργασία στον κώδικά μας. Δύο παραλλαγές: Η διεργασία δημιουργείται πρώτη Η διεργασία δημιουργείται τελευταία ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-63

64 Πρόταση 3: διεργασία με φρουρό Η πιο κάτω πρόταση αποφεύγει την συνεχή ενεργοποίηση του assert το οποίο γίνεται εκτελέσιμο μόνο όταν η P γίνει ψευδής. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-64

65 Πρόταση 4: διεργασία με do H πιο κάτω διεργασία φαίνεται λιγότερο αποδοτική από λειτουργική άποψη, αλλά ο αριθμός των καταστάσεων είναι μειωμένος. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-65

66 Πρόταση 5 never claim ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-66

67 Πρόταση 6 - LTL Ελέγχουμε την αμετάβλητη συνθήκη ως [] P. H Spinμεταφράζει την ιδιότητα στο πιο κάτω never claim. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-67

68 Πρόταση 7 - unless Εσωκλείουμε τον κορμό τουλάχιστον μιας διεργασίας ως εξής: + Η ιδιότητα Ρ μπορεί να χρησιμοποιήσει τοπικές μεταβλητές. + Δεν χρειάζεται να ορίσουμε καινούρια διεργασία - Απαιτεί την αλλαγή του κώδικα - Πιθανόν να έρθει σε σύγκρουση με το partial-order reduction - Η διεργασία δεν τερματίζει ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-68

69 Αποτελέσματα Πειραμάτων ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-69

70 Αποτελέσματα Πειραμάτων ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-70

71 Αποτελέσματα Πειραμάτων ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-71

72 Αποτελέσματα Πειραμάτων ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-72

73 Further Reading Basic Spin Manual: Guidelines for verification with Xspin : A sample set of exercises with Spin: Spin Online References: ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-73

Εισαγωγή στο εργαλείο SPIN

Εισαγωγή στο εργαλείο SPIN Εισαγωγή στο εργαλείο SPIN Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: O model-checker SPIN H γλώσσα προδιαγραφής συστημάτων Promela Εντολές, διεργασίες και μοντέλο επικοινωνίας Σημασιολογία εκτέλεσης

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 664: Ανάλυση και Επαλήθευση Συστημάτων ΕΝΔΙΑΜΕΣΗ ΕΞΕΤΑΣΗ ΗΜΕΡΟΜΗΝΙΑ : Πέμπτη, 21 Μαρτίου 2013 ΔΙΑΡΚΕΙΑ : 14:00 16:00 ΔΙΔΑΣΚΟΥΣΑ : Άννα Φιλίππου Ονοματεπώνυμο:

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

Αυτοματοποιημένη Επαλήθευση

Αυτοματοποιημένη Επαλήθευση Αυτοματοποιημένη Επαλήθευση Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Έλεγχος Μοντέλου Αλγόριθμοι γράφων Αλγόριθμοι αυτομάτων Αυτόματα ως προδιαγραφές ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 4-1

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

ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-1

ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-1 To εργαλείο UPPAAL Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Εισαγωγή στo εργαλείο UPPAAL Γλώσσα Μοντελοποίησης Ο προσομοιωτής Ο επαληθευτής ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-1 Εισαγωγή

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

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

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

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

Ανάλυση της Ορθότητας Προγραμμάτων

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

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

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

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών Λειτουργικά Αριστείδης Ηλίας Συστήματα Ι Φ ρ ο ν τ ι σ τ ή ρ ι ο Shell Scripting Εισαγωγή Ένα shell script είναι μια λίστα εντολών που εκτελούνται ακολουθιακά Εκτελούνται ανάλογα με το κέλυφος και για

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

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης Στόχοι και αντικείμενο ενότητας Έλεγχος ροής προγράμματος (βλ. ενότητα #4) Δομή επανάληψης #5.. Εντολές Επανάληψης Προτάσεις επανάληψης Εντολές while, do while Εντολή for Περί βρόχων (loops) Τελεστές,

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

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

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Νέο Πρόγραμμα

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

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Εκλογή αρχηγού και κατασκευή BFS δένδρου σε σύγχρονο γενικό δίκτυο Παναγιώτα Παναγοπούλου Περίληψη Εκλογή αρχηγού σε γενικά δίκτυα Ορισμός του προβλήματος Ο αλγόριθμος FloodMax

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

Αυτόματος έλεγχος μοντέλων με το εργαλείο SPIN : Εφαρμογή σε μοντέλο συγχρονισμού αντικειμενοστρεφούς λογισμικού

Αυτόματος έλεγχος μοντέλων με το εργαλείο SPIN : Εφαρμογή σε μοντέλο συγχρονισμού αντικειμενοστρεφούς λογισμικού Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Τμήμα Πληροφορικής, Ακαδημαϊκό Έτος 2003-2004 Θέμα Διπλωματικής Εργασίας : Αυτόματος έλεγχος μοντέλων με το εργαλείο SPIN : Εφαρμογή σε μοντέλο συγχρονισμού αντικειμενοστρεφούς

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

Ανάλυση της Ορθότητας Προγραμμάτων

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

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

Λύσεις Σειράς Ασκήσεων 5

Λύσεις Σειράς Ασκήσεων 5 Άσκηση 1 (α) {x = 12 y = 7} skip {y = 7} Λύσεις Σειράς Ασκήσεων 5 Η προδιαγραφή αυτή είναι ορθή τόσο με την έννοια της μερικής ορθότητας όσο και με την έννοια της ολικής ορθότητας. Αυτό οφείλεται στο γεγονός

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi Προϋποθέσεις για Αµοιβαίο Αποκλεισµό Μόνο µία διεργασία σε κρίσιµο τµήµασεκοινό πόρο Μία διεργασία που σταµατά σε µη κρίσιµο σηµείο δεν πρέπει να επιρεάζει τις υπόλοιπες διεργασίες εν πρέπει να υπάρχει

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

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

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

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

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων Κ Σ Ι Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων Παναγιώτα Παναγοπούλου Άσκηση 1. Υποθέστε ότι οι διεργασίες ενός σύγχρονου κατανεμημένου συστήματος έχουν μοναδικές ταυτότητες (UIDs), γνωρίζουν ότι είναι συνδεδεμένες

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

Λύσεις Σειράς Ασκήσεων 5

Λύσεις Σειράς Ασκήσεων 5 Άσκηση Λύσεις Σειράς Ασκήσεων 5 Έστω P και Q συνθήκες και S ένα πρόγραμμα. Να εξηγήσετε με λόγια τις πιο κάτω προδιαγραφές (i) με την έννοια της μερικής ορθότητας και (ii) με την έννοια της ολικής ορθότητας.

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

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Εκλογή αρχηγού σε γενικά δίκτυα 20 Οκτωβρίου 2016 Παναγιώτα Παναγοπούλου Εκλογή αρχηγού σε γενικά δίκτυα Προηγούμενη διάλεξη Σύγχρονα Κατανεμημένα Συστήματα Μοντελοποίηση συστήματος Πρόβλημα εκλογής αρχηγού

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

Σειρά Προβλημάτων 1 Λύσεις

Σειρά Προβλημάτων 1 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 1 Λύσεις (α) Χρησιμοποιούμε τις επιπλέον μεταβλητές PC i, (program counters) οι οποίες παίρνουν ως τιμές ονόματα των γραμμών του κώδικα όπως φαίνεται πιο κάτω. Process P i :

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

Τυπικές Μέθοδοι Ανάλυσης Συστημάτων: Ο Ελεγκτής Μοντέλων SPIN

Τυπικές Μέθοδοι Ανάλυσης Συστημάτων: Ο Ελεγκτής Μοντέλων SPIN Τμήμα Πληροφορικής Α.Π.Θ. Μεταπτυχιακό Πρόγραμμα Σπουδών Ακαδημαϊκό Έτος 2006 2007 2007 Τυπικές Μέθοδοι Ανάλυσης Συστημάτων: Ο Ελεγκτής Μοντέλων SPIN Τρίτη 24 Απριλίου 2007 Ιστορική αναδρομή: Το κόστος

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

Ψευδοκώδικας. November 7, 2011

Ψευδοκώδικας. November 7, 2011 Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε

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

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

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY120) #6 εκτέλεση σε επανάληψη 1 Σπύρος Λάλης Εκτέλεση σε επανάληψη: while while () lexpr body true false Όσο η λογική συνθήκη επανάληψης lexpr αποτιμάται σε μια τιμή

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

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

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

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

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

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

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή Στόχοι και αντικείμενο ενότητας Η έννοια του Τελεστή #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Εκφράσεις Προτεραιότητα Προσεταιριστικότητα Χρήση παρενθέσεων Μετατροπές Τύπων Υπονοούμενες και ρητές μετατροπές

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

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Ο κώδικας δεν εκτελείται «μόνος του» Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα

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

Στοιχειώδης προγραμματισμός σε C++

Στοιχειώδης προγραμματισμός σε C++ Στοιχειώδης προγραμματισμός σε C++ Σύντομο Ιστορικό. Το πρόγραμμα Hello World. Ο τελεστής εξόδου. Μεταβλητές και δηλώσεις τους. Αντικείμενα, μεταβλητές, σταθερές. Ο τελεστής εισόδου. Θεμελιώδεις τύποι.

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

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

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Νέο Πρόγραμμα

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

Διάλεξη 10: Αλγόριθμοι Αμοιβαίου Αποκλεισμού σε περιβάλλον ανταλλαγής μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 10: Αλγόριθμοι Αμοιβαίου Αποκλεισμού σε περιβάλλον ανταλλαγής μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Διάλεξη 10: Αλγόριθμοι Αμοιβαίου Αποκλεισμού σε περιβάλλον ανταλλαγής μηνυμάτων ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Τι θα δούμε σήμερα Αλγόριθμος Χρήση Συντονιστή Αλγόριθμος του Lamport Αλγόριθμος LeLann:

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

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

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

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

Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα:

Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Χρονικά αυτόματα Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Συστήματα πραγματικού Χρόνου Διακριτός και συνεχής χρόνος Χρονικά αυτόματα Χρονική CTL ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 7-1 Συστήματα

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

FORTRAN και Αντικειμενοστραφής Προγραμματισμός FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών

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

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

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

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

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

Σειρά Προβλημάτων 1 Λύσεις

Σειρά Προβλημάτων 1 Λύσεις ΕΠΛ664: Ανάλυση και Επαλθευση Συστημάτων Τμμα Πληροφορικς Άσκηση 1 Σειρά Προβλημάτων 1 Λύσεις (α) Χρησιμοποιούμε τις επιπλέον μεταβλητές PC0, PC1, (program counters) οι οποίες παίρνουν ως τιμές ονόματα

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

ΗΥ-150. Προγραμματισμός

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr 1 Βρόχοι Επανάληψη (Loop) Η επανάληψη ενός συνόλου εντολών για όσες φορές επιθυμούμε ή

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

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

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

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

3. Εκφράσεις και έλεγχος ροής

3. Εκφράσεις και έλεγχος ροής 3. Εκφράσεις και έλεγχος ροής Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να διακρίνετε ανάμεσα σε μεταβλητές μέλη και αυτόματες μεταβλητές Να περιγράφετε την αρχικοποίηση των μεταβλητών μελών Να αναγνωρίζετε

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

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

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

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επανάληψης. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επανάληψης. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Δομή Επανάληψης Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Δομή Επανάληψης Επανάληψη με αρίθμηση DO = ,

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

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

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

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

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

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

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

Εντολές ελέγχου ροής if, for, while, do-while

Εντολές ελέγχου ροής if, for, while, do-while Εντολές ελέγχου ροής if, for, while, do-while 1 Μαρτίου 014 1 Εντολές εκτέλεσης υπό συνθήκη Μπορούμε να εκτελέσουμε εντολές της γλώσσας σε περίπτωση που κάποια συνθήκη ισχύει χρησιμοποιώντας την εντολή

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

Οι εντολές ελέγχου της ροής ενός προγράμματος.

Οι εντολές ελέγχου της ροής ενός προγράμματος. Κεφάλαιο ΙΙI: Οι εντολές ελέγχου της ροής ενός προγράμματος 31 Εντολές ελέγχου της ροής Στο παρόν κεφάλαιο ασχολούμαστε με την σύνταξη των εντολών της C οι οποίες εισάγουν λογική και ελέγχουν την ροή εκτέλεσης

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

for for for for( . */

for for for for( . */ Εισαγωγή Στον Προγραµµατισµό «C» Βρόχοι Επανάληψης Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Ο βρόχος for Η εντολή for χρησιµοποιείται

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

Ιδιοκτησία Αντικειµένου

Ιδιοκτησία Αντικειµένου Software Transactional Memory H STM υποστηρίζει την εκτέλεση δοσοληψιών από τις διεργασίες, οι οποίες περιέχουν λειτουργίες που ο χρήστης θέλει να εκτελέσει στα διαµοιραζόµενα αντικείµενα. H STM εγγυάται

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

Ακολουθιακές εντολές. (Peter Ashenden, The Students Guide to VHDL)

Ακολουθιακές εντολές. (Peter Ashenden, The Students Guide to VHDL) Ακολουθιακές εντολές (Peter Ashenden, The Students Guide to VHDL) Εντολή If Τα βασικά χαρακτηριστικά της είναι τα εξής: Μπορεί να χρησιµοποιηθεί για τον έλεγχο µίας ή περισσοτέρων συνθηκών. Η πρώτη συνθήκη

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

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

Στόχοι και αντικείμενο ενότητας. Βασικές κατασκευές ΓΠ. Έλεγχος ροής προγράμματος. #4.. Εντολές Επιλογής

Στόχοι και αντικείμενο ενότητας. Βασικές κατασκευές ΓΠ. Έλεγχος ροής προγράμματος. #4.. Εντολές Επιλογής Στόχοι και αντικείμενο ενότητας Βασικές κατασκευές Γλωσσών Προγραμματισμού (ΓΠ) Δομές ελέγχου ροής προγράμματος #4.. ντολές πιλογής Προτάσεις διακλάδωσης υπό συνθήκη ντολές if, if Φωλιασμένα (nested) if

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

Σειρά Προβλημάτων 1 Λύσεις

Σειρά Προβλημάτων 1 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 1 Λύσεις (α) Χρησιμοποιούμε τις επιπλέον μεταβλητές PC 0, PC 1, (program counters) οι οποίες παίρνουν ως τιμές ονόματα των γραμμών του κώδικα όπως φαίνεται πιο κάτω. P[0] P[1]

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07 Ακαδ έτος 2007-2008 ΠΛΗΡΟΦΟΡΙΚΗ Ι Φερεντίνος 22/11/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με ΑΜ σε 3, 7, 8 & 9 22/11/07 Παράδειγμα με if/else if και user input: import javautil*; public class Grades public

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

ΗΥ-150. Προγραμματισμός

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

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

CTL - Λογική Δένδρου Υπολογισμού (ΗR Κεφάλαιο 3.4)

CTL - Λογική Δένδρου Υπολογισμού (ΗR Κεφάλαιο 3.4) CTL - Λογική Δένδρου Υπολογισμού (ΗR Κεφάλαιο 3.4) Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Διακλαδωμένες Χρονικές λογικές CTL σύνταξη και ερμηνεία Έλεγχος μοντέλου για τη CTL Σύγκριση των PLTL

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

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

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

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

Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις. (Διάλεξη 8)

Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις. (Διάλεξη 8) Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις (Διάλεξη 8) 8-1 Τι θα δούμε σήμερα Η εντολή if else Η εντολή if else ιf - -else H εντολή switch Λογικές παραστάσεις Σχεσιακοί

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

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος

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

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα Τµήµα Διοίκησης Επιχειρήσεων Τει Δυτικής Ελλάδας Μεσολόγγι Δρ. Α. Στεφανή Διάλεξη 5 2 Εγκυροποίηση Λογισµικού Εγκυροποίηση Λογισµικού

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

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

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

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

Διαγράμματα UML στην Ανάλυση. Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων

Διαγράμματα UML στην Ανάλυση. Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων Διαγράμματα UML στην Ανάλυση Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων περιεχόμενα παρουσίασης Διαγράμματα επικοινωνίας Διαγράμματα ακολουθίας Διαγράμματα

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

Λύσεις Σειράς Ασκήσεων 4

Λύσεις Σειράς Ασκήσεων 4 Άσκηση 1 Λύσεις Σειράς Ασκήσεων 4 Θεωρήστε το σύνολο των ατομικών προτάσεων ΑΡ = {α, π, ε} που αντιστοιχούν στις ενέργειες αποστολής μηνύματος, παραλαβής μηνύματος και επιστροφής αποτελέσματος που εκτελούνται

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

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Χρονικά αυτόµατα Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Συστήµατα πραγµατικού Χρόνου ιακριτός και συνεχής χρόνος Χρονικά αυτόµατα Χρονική CTL ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστηµάτων 12-1 Συστήµατα

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

Ατοµική ιπλωµατική Εργασία ΜΟΝΤΕΛΟ-ΕΛΕΓΧΟΣ ΑΛΓΟΡΙΘΜΟΥ ΣΥΝΟΧΗΣ ΜΝΗΜΗΣ ΓΙΑ ΠΟΛΥΠΥΡΗΝΟΥΣ ΕΠΕΞΕΡΓΑΣΤΕΣ ΜΕ ΤΟ ΕΡΓΑΛΕΙΟ SPIN. Χριστοδουλίδης Ανδρέας Χρίστος

Ατοµική ιπλωµατική Εργασία ΜΟΝΤΕΛΟ-ΕΛΕΓΧΟΣ ΑΛΓΟΡΙΘΜΟΥ ΣΥΝΟΧΗΣ ΜΝΗΜΗΣ ΓΙΑ ΠΟΛΥΠΥΡΗΝΟΥΣ ΕΠΕΞΕΡΓΑΣΤΕΣ ΜΕ ΤΟ ΕΡΓΑΛΕΙΟ SPIN. Χριστοδουλίδης Ανδρέας Χρίστος Ατοµική ιπλωµατική Εργασία ΜΟΝΤΕΛΟ-ΕΛΕΓΧΟΣ ΑΛΓΟΡΙΘΜΟΥ ΣΥΝΟΧΗΣ ΜΝΗΜΗΣ ΓΙΑ ΠΟΛΥΠΥΡΗΝΟΥΣ ΕΠΕΞΕΡΓΑΣΤΕΣ ΜΕ ΤΟ ΕΡΓΑΛΕΙΟ SPIN Χριστοδουλίδης Ανδρέας Χρίστος ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Μάιος 2010 ΠΑΝΕΠΙΣΤΗΜΙΟ

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επιλογής. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επιλογής. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Δομή Επιλογής Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Δομή Επιλογής (Απόφασης) Εκτέλεση υπό συνθήκη IF THEN IF THEN ELSE IF THEN

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

Βασικές Δομές μοντέλων Petri Nets. C.A. Petri

Βασικές Δομές μοντέλων Petri Nets. C.A. Petri Βασικές Δομές μοντέλων Petri Nets C.A. Petri - 1962 Γιατί χρήση Petri model? Φυσικό Πρόβλημα! Μοντέλο Petri abstract Software Simulation ανάλυση σε μοντέλο Petri Net Βασικές δομές μοντέλων Petri Διαδοχική

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

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Πρόγραμμα και εκτέλεση προγράμματος Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα

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

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

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

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

Λύσεις Σειράς Ασκήσεων 5

Λύσεις Σειράς Ασκήσεων 5 Άσκηση 1 Λύσεις Σειράς Ασκήσεων 5 Να υπολογίσετε τις ασθενέστερες προσυνθήκες έτσι ώστε οι πιο κάτω προδιαγραφές να είναι ορθές σύμφωνα (i) με την έννοια της μερικής ορθότητας και (ii) με την έννοια της

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

ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-1

ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-1 Εισαγωγή Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Ο ρόλος της ανάλυσης και επαλήθευσης συστημάτων Τεχνικές ανάλυσης συστημάτων Στόχοι του μαθήματος ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-1

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

Προγραµµατισµός Η/Υ. Μέρος2

Προγραµµατισµός Η/Υ. Μέρος2 Προγραµµατισµός Η/Υ Μέρος2 Περιεχόμενα Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής Αλγόριθμος Ψευδοκώδικας Παραδείγματα Αλγορίθμων Γλώσσες προγραμματισμού 2 Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής

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

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC Αρχιτεκτονική Πλατφόρμας Μπορεί να μοντελοποιηθεί σαν ένα σύνολο από διασυνδεδεμένα κομμάτια: 1. Στοιχεία επεξεργασίας (processing

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

ιαφάνειες παρουσίασης #3

ιαφάνειες παρουσίασης #3 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ http://www.corelab.ece.ntua.gr/courses/programming/ ιδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα

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

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 6 η Βρόχοι Επανάληψης Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή

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

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας

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

Δομές ελέγχου ροής προγράμματος

Δομές ελέγχου ροής προγράμματος Δομές ελέγχου ροής προγράμματος Υπάρχουν δύο είδη δομών ελέγχου ροής (control flow): Οι δομές επιλογής και Οι δομές επανάληψης Δομές ελέγχου ροής προγράμματος Είδος δομής Δομές επιλογής Δομή ελέγχου ροής

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

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

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

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

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 3: Προγραμματισμός σε JAVA I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Στοιχειώδης Προγραμματισμός - Προγραμματισμός με Συνθήκες - Προγραμματισμός με Βρόγχους

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

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Συναίνεση και Σφάλματα Διεργασιών Παναγιώτα Παναγοπούλου Περίληψη Συναίνεση με σφάλματα διεργασιών Το πρόβλημα Ο αλγόριθμος FloodSet Επικύρωση δοσοληψιών Ορισμός του προβλήματος

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

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Εργαστήριο 3: 3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Η C++, όπως όλες οι γλώσσες προγραμματισμού, χρησιμοποιεί τελεστές για να εκτελέσει τις αριθμητικές και λογικές λειτουργίες.

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 4ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΟΙ ΤΕΛΕΣΤΕΣ ΣΥΓΚΡΙΣΗΣ Με τους τελεστές σύγκρισης, συγκρίνουμε τις

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

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών Java

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

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

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

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

Εργαστήριο Αρχιτεκτονικής Υπολογιστών Ι. Εισαγωγή στη VHDL

Εργαστήριο Αρχιτεκτονικής Υπολογιστών Ι. Εισαγωγή στη VHDL Εργαστήριο Αρχιτεκτονικής Υπολογιστών Ι Εισαγωγή στη VHDL Εισαγωγή Very High Speed Integrated Circuits Hardware Description Language ιαφορές από γλώσσες προγραμματισμού: παράλληλη εκτέλεση εντολών προσδιορισμός

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

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

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

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

Άλγεβρες Διεργασιών και Σχέσεις Ισοδυναμίας

Άλγεβρες Διεργασιών και Σχέσεις Ισοδυναμίας Άλγεβρες Διεργασιών και Σχέσεις Ισοδυναμίας Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Σχέσεις ισοδυναμίας trce equivlence filure equivlence strong isimultion wek isimultion ΕΠΛ 664 Ανάλυση και Επαλήθευση

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

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 ❶ Προετοιµασία για το 1 ο Εργαστήριο

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 Κατασκευαστές (Constructors) Ειδικός τύπος μεθόδων, οι οποίες: - είναι public και έχουν το ίδιο όνομα με αυτό της κλάσης - χρησιμοποιούνται για να αρχικοποιήσουν κάποιες

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

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου Σκοπός και περίγραμμα της Ενότητας 4 Σκοπός της παρουσίασης Να μελετήσουμε τις συναρτήσεις που ελέγχουν την ροή και την εκτέλεση ενός προγράμματος Σύνοψη

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

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράµµατα «γράφονται» χρησιµοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαµβάνει

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

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Συναίνεση με σφάλματα διεργασιών Κατανεμημένα Συστήματα Ι 5η Διάλεξη 10 Νοεμβρίου 2016 Παναγιώτα Παναγοπούλου Κατανεμημένα Συστήματα Ι 5η Διάλεξη 1 Συναίνεση με σφάλματα διεργασιών Προηγούμενη διάλεξη

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

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό 5 ο Εργαστήριο Λογικοί Τελεστές, Δομές Ελέγχου Λογικοί Τελεστές > μεγαλύτερο = μεγαλύτερο ή ίσο!= διαφορετικό Οι λογικοί τελεστές χρησιμοποιούνται για να ελέγξουμε

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 4: Δείκτες και Πίνακες Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Πίνακες Δεικτών, Παραδείγματα, Πολυδιάστατοι πίνακες Πέρασμα παραμέτρων σε προγράμματα C Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες:

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εντολές ελέγχου ροής προγράμματος (if-else & switch) Η εντολή if-else Η εντολή if-else υπάρχει σχεδόν σε όλες τις γλώσσες προγραμματισμού. Χρησιμοποιείται για τον έλεγχο της

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

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 7: Δομές Επανάληψης - Αναγνωσιμότητα 19/10/2015 Επανάληψη εκτέλεσης: while 2 while () lexpr true false body Όσο η λογική συνθήκη επανάληψης lexpr αποτιμάται

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

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

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

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Python scripts Ένα πρόγραμμα στην Python (συχνά αποκαλείται script) αποτελείται από μία ακολουθία ορισμών και εντολών. H ακολουθία των ορισμών και

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