ΚΕΦΑΛΑΙΟ 6: Γλώσσες Προγραμματισμού

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

Download "ΚΕΦΑΛΑΙΟ 6: Γλώσσες Προγραμματισμού"

Transcript

1 ΚΕΦΑΛΑΙΟ 6: Γλώσσες Προγραμματισμού 6.1 Ιστορική εξέλιξη 6.2 Παραδοσιακές έννοιες προγραμματισμού 6.3 Διαδικασιακές μονάδες 6.4 Υλοποίηση γλώσσας 6.5 Αντικειμενοστρεφής προγραμματισμός 6.6 Προγραμματισμός ταυτόχρονων δραστηριοτήτων 6.7 Δηλωτικός προγραμματισμός Οι διαφάνειες βασίζονται σε μεγάλο βαθμό σε αυτές που συνοδεύονται με το προτεινόμενο σύγγραμμα, καθώς και στις διαφάνειες προηγούμενων ετών του κ. Κουρκουμπέτη. 1

2 Γλώσσες προγραμματισμού Γλώσσα Προγραμματισμού: Εργαλείο για αναπαράσταση των αλγορίθμων προσιτό στους ανθρώπους εύκολα μετατρέπεται σε γλώσσα μηχανής που είναι κατανοητή από τον Η/Υ 2

3 Πρώτη Γενιά: Γλώσσα Μηχανής Γλώσσα μηχανής: οι εντολές αναπαριστώνται με δυαδικό σύστημα Κάθε εντολή αναπαρίσταται ως μια ακολουθία από δυαδικά ψηφία Το πρόγραμμα ήταν μια σειρά από τέτοιες εντολές, π.χ. Εξαιρετικά δύσκολο το γράψιμο και η κατανόηση προγραμμάτων Συχνά σφάλματα Δύσκολη αποσφαλμάτωση (debugging) 3

4 Δεύτερη γενιά: γλώσσα assembly Ένα μνημονικό σύστημα για την αναπαράσταση προγραμμάτων Χρήση μνημονικών (mnemonic) ονομάτων για την αναπαράσταση εντολών. Ονόματα για όλους τους καταχωρητές. Τα αναγνωριστικά (identifiers) είναι περιγραφικά ονόματα για τις θέσεις μνήμης, τα οποία επιλέγονται από τον προγραμματιστή. Υπάρχει ακριβής 1-1 αντιστοιχία μεταξύ των εντολών της μηχανής και των εντολών assembly. Η μετάφραση από γλώσσα assembly σε γλώσσα μηχανής γίνεται από ένα πρόγραμμα που ονομάζεται assembler 4

5 Παράδειγμα γλώσσας assembly Γλώσσα μηχανής Γλώσσα assembly 156C 166D CE C000 LD R5, Price LD R6, ShippingCharge ADDI R0, R5 R6 ST R0, TotalCost HLT 5

6 Μειονεκτήματα της Assembly O προγραμματιστής πρέπει να σκέφτεται πάλι σε γλώσσα μηχανής (απλά αλλάζει η αναπαράσταση και η σύνταξη των εντολών) Η assembly είναι εγγενώς εξαρτημένη από τη μηχανή (οι εντολές ενός προγράμματος σε assembly εκφράζονται με ιδιότητες εγγενείς στην τεχνολογία της συγκεκριμένης μηχανής) Δύσκολη έως αδύνατη φορητότητα (portability) (μεταφορά του ίδιου προγράμματος ώστε να είναι σωστό σε μια άλλη μηχανή) Τα αρχέτυπα (εντολές) είναι χαμηλού επιπέδου (πολύ κοντά στο hardware) Δεν διευκολύνει στον γενικό σχεδιασμό ενός προγράμματος (γιατί αποτελείται από μικροεντολές που συνδέονται με πολύ μικρές λειτουργίες του Η/Υ) 6

7 Τρίτη γενιά γλωσσών Βασίζεται σε (σχετικά μικρό αριθμό από αρχέτυπα (primitives) υψηλού επιπέδου, π.χ. Ανεξάρτητες από τη μηχανή (τις περισσότερες φορές) Παραδείγματα: FORTRAN, COBOL Κάθε αρχέτυπο ανταποκρίνεται σε μία μικρή ακολουθία εντολών γλώσσας μηχανής. Μεταφράζεται σε γλώσσα μηχανής από ένα πρόγραμμα που λέγεται compiler (μεταγλωττιστής) Εναλλακτικά αντί για compiler υπάρχει ο ερμηνευτής (interpreter) Εκτελεί τις εντολές καθώς τις μεταφράζει, ενώ ο compiler πρώτα μεταφράζει όλες τις εντολές του προγράμματος σε γλώσσα μηχανής και μετά τις εκτελεί 7

8 Η εξέλιξη των προγραμματιστικών μοντέλων 8

9 Προγραμματιστικά μοντέλα Διαφορετικές φιλοσοφίες στον προγραμματισμό Προστακτικό (imperative) ή διαδικαστικό (procedural) μοντέλο: η διαδικασία προγραμματισμού είναι μια ακολουθία από εντολές, που όταν εκτελεστούν, επενεργούν στα δεδομένα και παράγουν το επιθυμητό αποτέλεσμα Υπονοεί ότι πρέπει να βρεθεί ο αλγόριθμος για την επίλυση του προβλήματος και έπειτα ο αλγόριθμος να αναπαρασταθεί σαν μια ακολουθία από εντολές Το πιο παραδοσιακό από τα μοντέλα Παραδείγματα: FORTRAN (για αριθμητικούς υπολογισμούς) COBOL (για επιχειρησιακές εφαρμογές ), BASIC, C, Pascal (γενικής χρήσης) Ada (η επίσημη γλώσσα ανάπτυξης στρατιωτικών εφαρμογών από το Υπ. Άμυνας των ΗΠΑ, επίσης για εναέριες εφαρμογές) 9

10 Προγραμματιστικά μοντέλα (2) Δηλωτικό (declarative) μοντέλο: ο προγραμματιστής πρέπει να περιγράψει το πρόβλημα προς επίλυση, και όχι τον αλγόριθμο Εφαρμόζει ένα γενικό αλγόριθμο επίλυσης προβλημάτων Ο προγραμματιστής πρέπει να περιγράψει κατάλληλα το πρόβλημα Χρήση για προσομοίωση συστημάτων (οικονομία, πολιτική, μετεωρολογία, περιβάλλον) για π.χ. πρόγνωση Ο προγραμματιστής περιγράφει τι θέλει να προσομοιωθεί, ο αλγόριθμος πρόγνωσης υπάρχει στην γλώσσα Παραδείγματα: Prolog: τομέας τεχνητής νοημοσύνης Ο τομέας μαθηματικών της Επίσημης Λογικής (Formal Logic) έδωσε ώθηση σε αυτές τις γλώσσες 10

11 Προγραμματιστικά μοντέλα (3) Συναρτησιακό (functional) μοντέλο: Το πρόγραμμα είναι μια οντότητα που δέχεται εισόδους και βγάζει εξόδους (όπως η συνάρτηση) Πρόγραμμα = συνάρτηση που μετασχηματίζει εισόδους σε εξόδους Το πρόγραμμα κατασκευάζεται συνδέοντας μικρότερες ενότητες (συναρτήσεις) Προγραμματισμός: σύνθεση αυτής της συνάρτησης από απλούστερες Έξοδοι από μια συνάρτηση χρησιμοποιούνται ως είσοδοι σε άλλες συναρτήσεις Ο προγραμματισμός έγκειται στο χτίσιμο μεγάλων συναρτήσεων από μικρότερες Παραδείγματα: LISP Συμβολισμός για την συνάρτηση f(x,y,z): (f x y z) Μεγάλο πλεονέκτημα σε σχέση με τις προστακτικές γλώσσες προγραμματισμού: δεν χρειάζονται πολλές μεταβλητές και συνεπώς καταναλώνεται πολύ λιγότερος χώρος στη μνήμη για το πρόγραμμα 11

12 Παράδειγμα Συναρτησιακού Μοντέλου Γλώσσας Προγραμματισμού Σε μια imperative γλώσσα προγραμματισμού θα ήταν (Find_diff (Find_sum Old_balance Credits) (Find_sum Debits)) 12

13 Προγραμματιστικά μοντέλα (4) Αντικειμενο- στραφές (object- oriented) μοντέλο / Object- oriented Programming Κατά βάση προστακτικό μοντέλο Μονάδες δεδομένων = ενεργά αντικείμενα Κάθε αντικείμενο μπορεί να επενεργεί στον εαυτό του ή σε άλλα αντικείμενα Παράδειγμα 1: Graphical User Interface Κάθε εικονίδιο είναι ένα αντικείμενο Κάθε αντικείμενο περιλαμβάνει διαδικασίες (μεθόδους, methods) που ορίζουν πως αποκρίνεται σε διάφορα γεγονότα Παράδειγμα 2: λίστα ονομάτων Παραδοσιακός προγραμματισμός: λίστα = σύνολο δεδομένων, προγραμματιστής υπεύθυνος να κατασκευάσει αλγόριθμο προσπέλασης OOP: λίστα = αντικείμενο = δεδομένα + διαδικασίες χειρισμού (εισαγωγή ή αφαίρεση στοιχείου στη λίστα, ταξινόμηση, αναζήτηση) 13

14 Αντικειμενο- στραφές μοντέλο Κλάση (class) αντικειμένων: το σύνολο ιδιοτήτων που χαρακτηρίζουν ίδια αντικείμενα (που ανήκουν στην ίδια κλάση) Ορίζεται μια κλάση αντικειμένων π.χ. Εικονίδιο, δορυφόρος, σταθμός βάσης Έπειτα ορίζονται αντικείμενα π.χ. icon1, icon2 σαν εκδοχές (instances) της κλάσης Το μοντέλο OOP είναι μοντέλο δομημένου προγραμματισμού όπου ο προγραμματισμός γίνεται χτίζοντας το πρόγραμμα με μπλοκ Παραδείγματα: C++, Visual Basic, Java, C# 14

15 Σεναριακές Γλώσσες προγραμματισμού Σεναριακές Γλώσσες προγραμματισμού (scripting languages): χρησιμοποιούνται για να κάνουν μικρές διαχειριστικές εργασίες στον υπολογιστή Σενάριο (script): κομμάτι κώδικα που υλοποιεί την συγκεκριμένη εργασία Π.χ. Ο διαχειριστής ενός συστήματος γράφει ένα πρόγραμμα για να καταγράψει τις εργασίες που χρειάζεται να γίνουν για αρχειοποίηση Ή ένα script για ανάγνωση και δεικτειοδότηση (indexing) εικόνων από μια φωτογραφική μηχανή Γλώσσες: Perl, PHP 15

16 Η σύνθεση ενός τυπικού προστακτικού προγράμματος (Declarative statements) (imperative statements) Υπάρχουν και σχόλια (comments) που βελτιώνουν την αναγνωσιμότητα 16

17 Τύποι και Δηλώσεις μεταβλητών σε C, C++, C# και Java Μεταβλητή (variable): όνομα που υποδηλώνει μια θέση μνήμης Αν αλλάξει η τιμή που είναι αποθηκευμένη σε αυτή τη θέση μνήμης, αλλάζει και η τιμή που σχετίζεται με την μεταβλητή Τύποι (types) Δεδομένων Ακέραιος (integer): Ακέραιος αριθμός Πραγματικός (real): Αριθμοί με δεκαδικά ψηφία Χαρακτήρες (character): Σύμβολα Boolean: Αληθές/ψευδές Δηλώσεις Μεταβλητών float Length, Width; int Price, Tax, Total; char Symbol 17

18 Δομές δεδομένων (Data structures) Δομές δεδομένων: Νοητικά σχήματα για τη διάταξη δεδομένων Οι αλγόριθμοι προτιμούν τα δεδομένα να είναι δομημένα (για μεγαλύτερη αποδοτικότητα) Πίνακες (arrays) Λίστες (lists) Δένδρα (trees) Πως τα υλοποιούμε στη μνήμη; 18

19 Πίνακες Δομή δεδομένων: α11 α12 α13 α21 α22 α23 γραμμή 1 γραμμή 2 γραμμή 3 Μνήμη: αρχή του πίνακα... γραμμή 1 γραμμή 2 γραμμή

20 Παράδειγμα: Ένας 2- διάστατος πίνακας 2 γραμμών και 9 στηλών int Scores[2][9] στην C INTEGER Scores(2,9) στην Fortran Πάνω αριστερά στοιχείο του πίνακα: Scores[0][0] στην C, Scores(1,1) στην FORTRAN 20

21 Λίστες Λίστα: ακολουθία από records (int ή πιο σύνθετα records, βλ. Παρακάτω) Λίστα: 10, 12, 6, 7 πρόσθεση μέλους: 10, 12, 2, 6, 7 pointer (δείκτης) nil nil

22 Δένδρα T Α Δομή δεδομένων: A B C Β nil nil D E C Υλοποίηση στη μνήμη: D nil nil E nil nil 22

23 Ετερογενής πίνακας (structure) Eτερογενής πίνακας ή Δομή (structure) ή record. Μπλοκ δεδομένων με στοιχεία (πεδία) Ενδεχομένως διαφορετικού τύπου Employee.Name Employee.Age Employee.SkillRating 23

24 Παράδειγμα Ετερογενούς πίνακα δεδομένων 24

25 Σταθερές (constants) και δηλώσεις ανάθεσης Καλύτερα να δηλώνονται στην αρχή του προγράμματος Αν χρειαστεί να αλλαχθούν, θα αλλαχθούν μόνο εκεί Δηλώσεις ανάθεσης (assignment statements) Μπορεί να διαφέρουν σε διαφορετικές γλώσσες, π.χ. Αριθμητικές πράξεις Τηρείται η προτεραιότητα τελεστών (operator precedence) 2*4 + 6 / 2 = 11 Ο ίδιος τελεστής μπορεί να έχει διαφορετικές λειτουργίες π.χ. + κάνει πρόσθεση (αν έχει ως τελεστέους αριθμούς) ή συνένωση (concatenation) από strings (αν έχει ως τελεστέους strings) Αυτή η «διπλή» λιτουργία λέγεται υπερφόρτωση τελεστή (operator overloading) 25

26 Δομές ελέγχου και οι αναπαραστάσεις τους στις γλώσσες C, C++, C#, και Java

27 Η δομή βρόχου for και η αναπαράσταση της στις γλώσσες C++, C# και Java 27

28 Διαδικασίες (procedures) Διαδικασία (procedure): μια σειρά από εντολές που υλοποιούν μια εργασία Μπορεί να χρησιμοποιηθεί ως αυτούσια προγραμματιστική μονάδα 28

29 Διαδικασίες (2) Έχουν τη δομή ενός συνήθους προγράμματος (κεφαλίδα, δήλωση μεταβλήτών, σειρά εντολών) Μεταβλητές: Τοπικές (local), χρησιμοποιούνται και αλλάζουν μόνο εντός της διαδικασίας Ολικές (global), χρησιμοποιούνται και αλλάζουν μέσα σε όλο το πρόγραμμα Εύρος ή εμβέλεια (scope) μιας μεταβλητής: το μέρος του προγράμματος που μπορεί μια μεταβλητή να χρησιμοποιηθεί Κλήση: απλά με το όνομα 29

30 Παράδειγμα Διαδικασίας Παράμετροι (parameters): ορίσματα Τυπικές (formal) παράμετροι: οι παράμετροι που χρησιμοποιούνται εντός της διαδικασίας Πραγματικές (actual) παράμετροι: οι τιμές που ανατίθενται στις τυπικές παραμέτρους όταν καλείται η διαδικασία από το κυρίως πρόγραμμα 30

31 Πέρασμα παραμέτρων Περιγραφή διαδικασίας: Κλήση διαδικασίας με κατάλληλες παραμέτρους: Πέρασμα παραμέτρων κατά τιμή ή αξία (Passed by value) Ένα αντίγραφο των δεδομένων που παριστάνεται με τις πραγματικές παραμέτρους δίνεται στην διαδικασία Αλλαγή των δεδομένων από την διαδικασία: αλλάζει μόνο τα δεδομένα στο αντίγραφο, και όχι αυτά στο κυρίως (καλόν) πρόγραμμα Πέρασμα παραμέτρων κατ αναφορά (passed by reference) Δίνεται στην διαδικασία απευθείας πρόσβαση στις τιμές των πραγματικών παραμέτρων, δηλ. δίνονται στην διαδικασία οι διευθύνσεις των πραγματικών παραμέτρων Αλλαγή των δεδομένων από την διαδίκασία αλλάζει τα δεδομένα στο κυρίως πρόγραμμα Η μέθοδος χρησιμοποιείται αν ο σκοπός της διαδικασίας είναι η αλλαγή των δεδομένων (π.χ. ταξινόμηση μιας λίστας) 31

32 Παράδειγμα: Πέρασμα παραμέτρων κατά αξία Actual = 5 Κλήση διαδικασίας: 32

33 Παράδειγμα: Πέρασμα παραμέτρων κατ αναφορά Actual = 5 Κλήση διαδικασίας: 33

34 Παράδειγμα Συνάρτησης Διαφορά από την Διαδικασία: Η συνάρτηση (function) πάντα επιστρέφει μια τιμή 34

35 Υλοποίηση γλώσσας: Μετάφραση Πρόγραμμα- πηγή (source program): το πρόγραμμα στην αρχική του μορφή Μετάφραση: μετατροπή προγράμματος από τη μια γλώσσα στην άλλη Πρόγραμμα- αντικείμενο (object- program): το αποτέλεσμα της μετάφρασης Χρειαζόμαστε μετάφραση για: εντολές σε γλώσσα υψηλού επιπέδου δομές δεδομένων (υψηλού επιπέδου) i:=0; while i<n do {A[i]:=B[i]; i:=i+1} δύο στρατηγικές: διερμηνεία (interpretation) μεταγλωττισμός (compilation) 35

36 Διερμηνεία Διερμηνευτής (interpreter): Μεταφράζει και εκτελεί το πρόγραμμα υψηλού επιπέδου εντολή προς εντολή ξεκίνα από την αρχή του προγράμματος υψηλού επιπέδου Repeat μετάφρασε την επόμενη εντολή υψηλού επιπέδου εκτέλεσε την μετάφραση της εντολής με τα αντίστοιχα δεδομένα until τέλος προγράμματος 36

37 Μεταγλωττισμός Μεταγλωττιστής (Compiler): μεταφράζει μία φορά το πρόγραμμα υψηλού επιπέδου (source program) σε πρόγραμμα γλώσσας μηχανής / πρόγραμμα- αντικείμενο (object program) ξεκίνα από την αρχή του προγράμματος υψηλού επιπέδου Repeat μετάφρασε την επόμενη εντολή υψηλού επιπέδου until τέλος προγράμματος κάνε τις τελικές αλλαγές στον μεταφρασμένο κώδικα ώστε να είναι έτοιμος για εκτέλεση 37

38 Μεταγλωττισμός vs. Διερμηνεία Interpreters ταχύτητα όχι σημαντική λίγη μνήμη ανακάλυψη λαθών (debugging) Compilers ταχύτητα σημαντική 38

39 Η διαδικασία της μεταγλώττισης Λεκτικός Αναλυτής Συντακτικός Αναλυτής Γεννήτρια κώδικα Πρόγραμμα αντικείμενο Πηγαίο Πρόγραμμα 39

40 Μεταγλώττιση Λεκτικός αναλυτής (lexical analyzer): διαβάζει το πρόγραμμα χαρακτήρα προς χαρακτήρα, αναγνωρίζει συμβολικές οντότητες Συμβολική οντότητα (token) Ταξινόμηση tokens σε κατηγορίες (τελεστές, σύμβολα, αριθμητικές τιμές, κλπ) Συντακτικός αναλυτής (parser): συντάσσει τα tokens σε προτάσεις και statements Αναγνώριση της γραμματικής δομής του προγράμματος Αναγνώριση του ρόλου κάθε token Παράδειγμα σύνταξης στα αγγλικά: Δεσμευμένες λέξεις (reserved words) Ο parser χρησιμοποιεί την Γραμματική (grammar) της γλώσσας Γραμματική: σύνολο από συντακτικούς κανόνες 40

41 Περιγραφή σύνταξης Α. Διαγράμματα σύνταξης Λογική Παράσταση Εντολή if then else Εντολή Β.Κανόνες BNF ifstmt - > if log_exp then stmt if log_exp then stmt else stmt If x<1 then y=2 else z=1 41

42 Παράδειγμα γραμματικής Ο Γιάννης είναι καλός μαθητής και έχει κακό χαρακτήρα Γραμματική (σύνταξη): προτ - > απλή_προτ σύνθ_προτ απλή_προτ - > υποκ ρήμα επίθ αντικ υποκ ρήμα αντικ σύνθ_προτ - > απλή_προτ και απλή_προτ απλή_προτ και σύνθ_προτ Βασικοί τύποι λέξεων (τερματικά σύμβολα): {υποκ, ρήμα, επίθ, αντικ, και} Λεξικογραφική περιγραφή: υποκ - > Γιάννης, Κώστας, άνδρας ρήμα - > έχει, κάνει,... 42

43 Ορισμός σύνταξης BNF Γραμματικές: BNF σύνταξη (Backus- Naur Form) κανόνες παραγωγής, τερματικά, μη- τερματικά σύμβολα τερματικά σύμβολα (terminals, tokens): στοιχειώδη σύμβολα, δεν αναλύονται περισσότερο ( τύποι λέξεων...) μη- τερματικά σύμβολα (non- terminals): συντακτικές κατηγορίες (προτάσεις, υπο- προτάσεις,...), δηλ. αυτά που μπορούν να αναλυθούν περαιτέρω με άλλα διαγράμματα δυνατότητα αναδρομικών ορισμών Γλώσσα: σύνολο σωστών ακολουθιών τερματικών συμβόλων 43

44 Διαγράμματα σύνταξης για τη δομή μίας απλής αλγεβρικής παράστασης x+y*z E -> T+E T-E T T -> F*T F/T F F -> x y z 44

45 Το δέντρο συντακτικής ανάλυσης για τη συμβολοσειρά x+y*z E - > T+E T- E T T - > F*T F/T F F - > x y z 45

46 Παράδειγμα γλώσσας Γλώσσα = απλές αριθμητικές εκφράσεις με 0,...,9 και +,-,*,/ E - > E + E E E E * E E / E - E E - > *5 είναι σωστή πρόταση; 6+*4 είναι σωστή πρόταση; Σημασία πρότασης; 9 E E - E E E 2 * 5 συντακτικό δέντρο Σωστή πρόταση: υπάρχει προτασιακό δέντρο που να την δικαιολογεί 46

47 Ασάφεια στην Γραμματική E - > E + E E E E * E E / E - E E - > τι σημαίνει 9-2*5 ; E E 9 E E 2 * 5 2 συντακτικά δέντρα! ποιο από τα δύο εννοούμε; E - E 9 E E - E * 2 E 5 47

48 Συντακτικός αναλυτής Ο συντακτικός αναλυτής κατασκευάζει ένα συντακτικό δέντρο (parse tree) για το πηγαίο πρόγραμμα Το δέντρο παριστάνει την ερμηνεία του αναλυτή για την γραμματική σύνθεση του προγράμματος Γι αυτό πρέπει οι συντακτικοί κανόνες μιας γλώσσας να είναι μονοσήμαντοι, δηλ. μια σειρά από εντολές να μην οδηγεί σε 2 ή περισσότερα δυνατά συντακτικά δέντρα Ο συντακτικός αναλυτής διαχωρίζει τις δηλωτικές από τις προστακτικές εντολές Κατασκευάζει τον πίνακα συμβόλων (symbol table) με μεταβλητές, σταθερές, τύπους δεδομένων Χρησιμοποιεί τους τύπους δεδομένων για να ερμηνεύσει μια εντολή π.χ. z ß x + y, δηλ. τι τύπος είναι το x και το y (int, float, char) Ακολούθως, δίνει ανάλογο σήμα στην γεννήτρια κώδικα για να κατασκευάσει την κατάλληλη εντολή (ή ακολουθία εντολών) σε γλώσσα μηχανής 48

49 Παράδειγμα ασαφούς γραμματικής Θεωρείστε την εντολή: Μπορεί να ερμηνευτεί και με τα δυο δέντρα Ασάφεια (ambiguity) Σε ποιο if αναφέρεται το else; Στον ψευδοκώδικα αποφεύγουμε το μπέρδεμα ως εξής: 49

50 Παράδειγμα Συντακτική ανάλυση συντακτικό δένδρο condition relation statement conditional statement assignment expression operator if id neq num then set id to id + id b if b x b! = b 1 b thenb setb y b to bx + y Λεκτική ανάλυση 50

51 Οι φάσεις της μεταγλώττισης πηγαίο πρόγραμμα σε γλώσσα υψηλού επιπέδου αφαιρεί άχρηστη πληροφορία Λεκτική ανάλυση... bif bx17=bmaxb-3... blank space πίνακας αριθμ. σταθερών τιμή θέση L if id eq id - num nil Συντακτική ανάλυση nil nil G όνομα Γεννήτρια κώδικα πίνακας συμβόλων x17 integer 1445 max integer 1447 αντικείμενο πρόγραμμα σε γλώσσα μηχανής συντακτικό δένδρο τύπος θέση στη μνήμη y integer

52 Συντακτική ανάλυση abcdbwbwbw Λεκτική ανάλυση Συντακτική ανάλυση Γεννήτρια κώδικα tokens Γραμματική G Κατασκευή συντακτικού δένδρου (parse tree) bottom up αρχικό σύμβολο top - down Πίνακας συμβόλων τερματικά (tokens) κανόνας της γραμματικής 52

53 Γεννήτρια κώδικα Κατασκευάζει τις εντολές σε γλώσσα μηχανής που υλοποιούν τις εντολές που αναγνωρίζονται από τον συντακτικό αναλυτή Βελτιστοποίηση κώδικα (code optimization) Π.χ. Ελαχιστοποίηση του αριθμού των εντολών σε γλώσσα μηχανής που υλοποιούν μια σειρά εντολών Στο παραπάνω, μετά την 1 η εντολή και πριν την 2 η, αναγνωρίζει η γεννήτρια κώδικα ότι οι x, z υπάρχουν ήδη σε καταχωρητές 53

54 Γεννήτρια κώδικα (2) condition relation statement conditional statement assignment expression operator if id neq num then set id to id + id 1000 load R load R subtract R0 R0 R jumpzero load R load R add R1 R1 R store R x integer y integer 1457 module generate-expression(t) A1:= & of left child generate load R1 A1 A2:= & of right child generate load R2 A2 if op = + then generate add R1 R1 R2 else generate subtract R1 R1 R2 54

55 Διαδικασία Μετάφρασης Διαρκής αλληλεπίδραση και ανταλλαγή μηνυμάτων μεταξύ των διαφόρων σταδίων 55

56 Ολόκληρη η διαδικασία προετοιμασίας ενός προγράμματος για εκτέλεση Μετάφραση Σύνδεση Φόρτωση Εκτελέσιμο Πηγαίο Πρόγραμμα Υπομονάδα Πρόγραμμα Πρόγραμμα αντικείμενο φόρτωσης 56

57 Αντικειμενοστραφής προγραμματισμός Αντικείμενο (object): μία αυτόνομη προγραμματιστική μονάδα που περιέχει τόσο δεδομένα όσο και διαδικασίες Στις γλώσσες αντικειμενοστραφούς προγραμματισμού (C++, Java) το σημαντικό είναι η σωστή περιγραφή των αντικειμένων Κλάση (class): ένα πρότυπο για όλα τα αντικείμενα του ίδιου τύπου Ένα αντικείμενο ονομάζεται στιγμιότυπο (instance) της κλάσης. Ορισμός αντικειμένων στην C++: Java: 57

58 Στοιχεία ενός αντικειμένου Μεταβλητή στιγμιότυπου (instance variable) είναι μία μεταβλητή που βρίσκεται στο εσωτερικό ενός αντικειμένου. Π.χ. RemainingPower Μέθοδος (method) είναι μία διαδικασία στο εσωτερικό ενός αντικειμένου. Μπορεί να χειριστεί τις μεταβλητές στιγμιότυπου ενός αντικειμένου. Π.χ. turnright(), turnleft(), fire() 58

59 Μέθοδος Κατασκευής Μέθοδος κατασκευής (constructor): μία ειδική μέθοδος που εκτελείται αυτόματα κατά τη δημιουργία ενός αντικειμένου από την κλάση. Ίδιο όνομα με το αντικείμενο Βοηθά στην διαφορετική αρχικοποίηση ή ανάθεση διαφορετικών παραμέτρων σε αντικείμενα της ίδιας κλάσης 59

60 Πρόσθετες ιδέες Η κληρονομικότητα (inheritance) επιτρέπει σε μία κλάση να περιλαμβάνει ιδιότητες κάποιας προηγούμενης κλάσης Ο πολυμορφισμός (polymorphism) επιτρέπει σε μία μέθοδο που κάνει κλήση να ερμηνευτεί κατά περίπτωση από το αντικείμενο που λαμβάνει την κλήση. Π.χ. Η μέθοδος σχεδιασμού ενός σχήματος ερμηνεύεται ανάλογα με το σχήμα Αντίστοιχο σαν ιδέα με την υπερφόρτωση τελεστών 60

61 Ενθυλάκωση Ενθυλάκωση (encapsulation) είναι ένας τρόπος περιορισμού της πρόσβασης στις εσωτερικές ιδιότητες ενός αντικειμένου. Μόνο το ίδιο το αντικείμενο μπορεί να έχει πρόσβαση και να αλλάξει τις ιδιότητες. Μπορεί να είναι: Ιδιωτική Δημόσια. 61

62 Προγραμματισμός Ταυτόχρονων Δραστηριοτήτων Παράλληλη (ή ταυτόχρονη) επεξεργασία (concurrent processing) ταυτόχρονη εκτέλεση πολλών διεργασιών Η πραγματική ταυτόχρονη επεξεργασία απαιτεί την ύπαρξη πολλών CPU Μπορεί να προσομοιωθεί μέσω χρονομερισμού (time- sharing) στην περίπτωση μίας μόνο CPU Java: πολλαπλά νήματα (threads) Ζητήματα: Δημιουργία threads Σταμάτημα και επανεκκίνηση threads Επικοινωνία μεταξύ 2 ή περισσότερων threads (π.χ. Ένα thread χρειάζεται να ξεκινήσει όταν ένα άλλο thread έχει φτάσει σε ένα συγκεκριμένο σημείο) 62

63 Παραγωγή νημάτων 63

64 Διάδραση μεταξύ διεργασιών Αμοιβαίος αποκλεισμός (mutual exclusion) είναι μία μέθοδος που εξασφαλίζει ότι τα δεδομένα μπορούν να προσπελαστούν από μία μόνο διεργασία τη φορά. Aναγνώριση κρίσιμων περιοχών (critical regions): περιοχές του προγράμματος που δεν μπορούν να χρησιμοποιούνται από 2 ή περισσότερα threads ταυτόχρονα Αυτοελεγχόμενο (monitoring) λέγεται ένα στοιχείο δεδομένων με τη δυνατότητα να ελέγχει την πρόσβαση στον εαυτό του Ο έλεγχος υπάρχει μόνο σε ένα σημείο του προγράμματος Αντί τα νήματα να προσέχουν να μην παίρνουν πρόσβαση σε ένα στοιχείo δεδομένων (ο έλεγχος είναι μοιρασμένος σε διαφορετικά σημεία του προγράμματος) 64

65 Δηλωτικός προγραμματισμός (Declarative Programming) Επίλυση (resolution): ο συνδυασμός δύο ή περισσοτέρων προτάσεων για την παραγωγή μίας νέας πρότασης (που είναι αληθής αν οι αρχικές προτάσεις είναι αληθείς) Παράδειγμα: (P OR Q) AND (R OR Q) δίνει ως αποτέλεσμα (- >) την (P OR R) Σημαίνει ότι αν η αρχική πρόταση είναι αληθής, τότε και το αποτέλεσμα (η 2 η πρόταση) είναι αληθής Αν Q αληθής, τότε R πρέπει να είναι αληθής. Αν Q ψευδής, τότε η P πρέπει να είναι αληθής. Άρα P OR R είναι αληθής, ανεξάρτητα του τι είναι το Q Επιλυθέν (resolvent) ονομάζεται η νέα πρόταση που σχηματίζεται από την επίλυση. Μορφή όρων (clause form) έχουμε σε μία πρόταση των οποίων τα θεμελιώδη στοιχεία συνδέονται με τη λογική πράξη ΟR. Ενοποίηση (unification) είναι η διαδικασία ανάθεσης τιμών σε μεταβλητές μέσα σε μία πρόταση. 65

66 Παράδειγμα: Επίλυση των προτάσεων (P OR Q) και (R OR Q) ώστε να παραχθεί η (P OR R) Α Β Αν Συνθήκη Α αληθής Και συνθήκη Β αληθής Τότε και Συνθήκη Γ αληθής Γ 66

67 Παράδειγμα 2: Επίλυση των προτάσεων (P OR Q), (R OR Q), R, και P Ένα σύνολο από προτάσεις λέγεται ασυνεπές (inconsistent) αν είναι αδύνατο όλες να είναι αληθείς την ίδια στιγμή Επαναληπτική επίλυση για να βρεθεί αν το σύνολο προτάσεων είναι ασυνεπές ή όχι 67

68 Prolog Κατηγόρημα (predicate): βασικό δομικό συστατικό της γλώσσας Όλες οι προτάσεις είναι είτε γεγονότα είτε κανόνες. Γεγονός (Fact): όνομα Κατηγορήματος(ορίσματα) Παράδειγμα: parent( bill, mary) faster(rabbit, turtle) (μια συγκεκριμένη εκδοχή) Κανόνας (Rule): συμπέρασμα :- πρόταση :- σημαίνει αν Παράδειγμα: wise(x) :- old(x). Παράδειγμα: (μια γενική ιδιότητα) faster(x, Z) :- faster(x, Y), faster(y, Z) σημαίνει Ο προγραμματιστής καθορίζει τα γεγονότα και τους κανόνες Το πρόγραμμα επιβεβαίωνει ή π.χ. λύνει το faster (W, snail) ή καταγράφει όλες τις συγκρίσεις faster (X,Y) 68

ΚΕΦΑΛΑΙΟ 6: Γλώσσες. 6.1 Ιστορική εξέλιξη 6.4 Υλοποίηση γλώσσας. Κεφάλαιο 6: «Γλώσσες Προγραµµατισµού»

ΚΕΦΑΛΑΙΟ 6: Γλώσσες. 6.1 Ιστορική εξέλιξη 6.4 Υλοποίηση γλώσσας. Κεφάλαιο 6: «Γλώσσες Προγραµµατισµού» ΚΕΦΑΛΑΙΟ 6: Γλώσσες Προγραµµατισµού 6.1 Ιστορική εξέλιξη 6.4 Υλοποίηση γλώσσας 1 6.1 Γενιές γλωσσών προγραµµατισµού 2 Δεύτερη γενιά: γλώσσα assembly Ένα µνηµονικό σύστηµα για την αναπαράσταση προγραµµάτων

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

ΚΕΦΑΛΑΙΟ 6: Γλώσσες Προγραμματισμού

ΚΕΦΑΛΑΙΟ 6: Γλώσσες Προγραμματισμού ΚΕΦΑΛΑΙΟ 6: Γλώσσες Προγραμματισμού Ιστορική εξέλιξη Προγραμματιστικά μοντέλα Βασικές λειτουργικότητες γλωσσών προγραμματισμού Εισαγωγή στις Δομές Δεδομένων Διαδικασίες και πέρασμα παραμέτρων Σύνταξη γλώσσας

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

εύτερη γενιά: γλώσσα assembly

εύτερη γενιά: γλώσσα assembly ΚΕΦΑΛΑΙΟ 6: Γλώσσες Προγραµµατισµού 6.1 Γενιές γλωσσών προγραµµατισµού (Σχήµα 6.1) 6.1 Ιστορική εξέλιξη 6.2 Παραδοσιακές έννοιες προγραµµατισµού 6.3 ιαδικασιακές µονάδες 6.4 Υλοποίηση γλώσσας 6.5 Αντικειµενοστρεφής

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

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

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

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

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Μάριος Αραποστάθης Καθηγητής πληροφορικής Βαρβάκειου Λύκειου http://users.sch.gr/mariosarapostathis 6.1 Η έννοια του

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

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1 ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 03/01/09 Χαράλαμπος Τζόκας 1 Πρόγραμμα - Προγραμματισμός Πρόγραμμα: Σύνολο εντολών που πρέπει να δοθούν στον Υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθμος της επίλυσης

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

Λογισµικό (Software SW) Γλώσσες

Λογισµικό (Software SW) Γλώσσες Λογισµικό (Software SW) Γλώσσες Προγραµµατισµού Οι γενιές των γλωσσών προγραµµατισµού Προβλήµατα που επιλύονται σε ένα περιβάλλον στο οποίο ο άνθρωπος πρέπει να προσαρµόζεται στα χαρακτηριστικά της µηχανής

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

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος Κεφάλαιο 2.3: Προγραμματισμός 1 2.3.1 Αναφορά σε γλώσσες προγραμματισμού και «Προγραμματιστικά Υποδείγματα» 2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού Πρόγραμμα: σύνολο εντολών που χρειάζεται να δοθούν

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

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

Εισαγωγή στον προγραμματισμό Ενότητες: Εισαγωγή στον προγραμματισμό Η έννοια του προγράμματος Ιστορική αναδρομή Φυσικές και τεχνητές γλώσσες Τεχνικές σχεδίασης προγραμμάτων Ιεραρχική Σχεδίαση Τμηματικός Προγραμματισμός Δομημένος προγραμματισμός

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

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

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

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

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

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

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Προγραμματισμός Η/Υ Προτεινόμενα θέματα εξετάσεων Εργαστήριο Μέρος 1 ό ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Ιανουάριος 2011 Καλογιάννης Γρηγόριος Επιστημονικός/ Εργαστηριακός

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

6. Εισαγωγή στον προγραµµατισµό

6. Εισαγωγή στον προγραµµατισµό 6. Εισαγωγή στον προγραµµατισµό 6.1 Η έννοια του προγράµµατος. 6.2 Ιστορική αναδροµή. 6.2.1 Γλώσσες µηχανής. ΗΜ04-Θ1Α 1. Ένα πρόγραµµα σε γλώσσα µηχανής είναι µια ακολουθία δυαδικών ψηφίων. 5. Ένα πρόγραµµα

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

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

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

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

ΑΕΠΠ Ερωτήσεις θεωρίας

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

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό 6.1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, τρία σημαντικά στάδια: 1. Τον ακριβή προσδιορισμό του προβλήματος. 2. Την ανάπτυξη

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

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια.

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

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

Εισαγωγή στην επιστήμη των υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Λογισμικό Υπολογιστών Γλώσσες Προγραμματισμού 1 Εξέλιξη Οι γλώσσες προγραμματισμού είναι σύνολα από προκαθορισμένες λέξεις οι οποίες συνδυάζονται σε προγράμματα σύμφωνα

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

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

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το Σηµαντικά σηµεία κεφαλαίου Τα τρία στάδια επίλυσης ενός προβλήµατος: Ακριβής προσδιορισµό του προβλήµατος Ανάπτυξη του αντίστοιχου αλγορίθµου. ιατύπωση του αλγορίθµου σε κατανοητή µορφή από τον υπολογιστή.

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

Γλώσσες Προγραμματισμού Μεταγλωττιστές

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

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

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19 Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών Κεφ. 2 Θεωρητική Επιστήμη Υπολογιστών 2.3.1.1 Έννοια προγράμματος Τι είναι πρόγραμμα και τι προγραμματισμός; Πρόγραμμα είναι το σύνολο εντολών που χρειάζεται

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

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 9ο Γλώσσες Προγραμματισμού

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 9ο Γλώσσες Προγραμματισμού Εισαγωγή στην επιστήμη των υπολογιστών Λογισμικό Υπολογιστών Κεφάλαιο 9ο Γλώσσες Προγραμματισμού 1 Εξέλιξη Οι γλώσσες προγραμματισμού είναι σύνολα από προκαθορισμένες λέξεις οι οποίες συνδυάζονται σε προγράμματα

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

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

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1 ΚΕΦΑΛΑΙΟ 7 ο ΠΡΟΓΡΑΜΜΑ : Το πρόγραμμα αποτελείται από μια σειρά οδηγιών, που ονομάζονται εντολές, για την εκτέλεση τέτοιου είδους πράξεων, καθώς επίσης και από ένα σύνολο πρόσθετων οδηγιών ελέγχου, που

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

Βασικές Αρχές Προγραμματισμού

Βασικές Αρχές Προγραμματισμού Βασικές Αρχές Προγραμματισμού Κεφάλαιο 1 Εισαγωγή Προβλήματα Πρόβλημα: Μία κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της οποίας δεν είναι γνωστή, ούτε προφανής Π.χ. Το πρόβλημα του

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Λογισμικό Συστήματος. Κλειώ Σγουροπούλου

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Λογισμικό Συστήματος. Κλειώ Σγουροπούλου Λογισμικό Συστήματος Κλειώ Σγουροπούλου Λογισμικό συστήματος Λειτουργικό σύστημα Μεταφραστές γλώσσας (translators) Διερμηνείς (interpreters) Μεταγλωττιστές (compilers) Εκδότες (editors) Φορτωτές (loaders)

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

ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ. Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος.

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

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

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008 Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει

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

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

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

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

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

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

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

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ Α) Να γράψετε στο τετράδιό σας τον αριθμό κάθε πρότασης και δίπλα το γράμμα "Σ", αν είναι σωστή, ή το γράμμα "Λ", αν είναι λανθασμένη. (Μονάδες 25) 1. Ένα αδόμητο πρόβλημα είναι ταυτόχρονα και ανοικτό

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

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Ποιες γλώσσες αναφέρονται ως φυσικές και ποιες ως τεχνητές; Ως φυσικές γλώσσες αναφέρονται εκείνες οι οποίες χρησιμοποιούνται για την επικοινωνία μεταξύ ανθρώπων,

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

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

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

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

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

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΣΚΗΣΕΙΣ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΡΩΤΗΣΕΙΣ ΣΩΣΤΟ ΛΑΘΟΣ Σημειώστε αν είναι σωστή ή

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

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο Εισαγωγή στο Bison Μεταγλωττιστές, Χειμερινό εξάμηνο 2014-2015 Συντακτική Ανάλυση Αποτελεί την δεύτερη φάση της μετάφρασης. Εύρεση της σχέσης που υπάρχει των λεκτικών μονάδων ενός προγράμματος. Παράδειγμα

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

6. 1 Η έννοια του προγράμματος

6. 1 Η έννοια του προγράμματος 6. 1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, τρία στάδια. 1.Τον ακριβή προσδιορισμό του προβλήματος. 2.Την ανάπτυξη του αντίστοιχου αλγορίθμου. 3.Τη διατύπωση

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

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή. ΑΕσΠΠ-Κεφ6. Εισαγωγή στον προγραμματισμό 1 ΣΩΣΤΟ ΛΑΘΟΣ 1. Οι γλώσσες προγραμματισμού αναπτυχθήκαν με σκοπό την επικοινωνία ανθρώπου μηχανής. 2. Αλγόριθμος = Πρόγραμμα + Δομές Δεδομένων 3. Ένα πρόγραμμα

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

Α. Ερωτήσεις Ανάπτυξης

Α. Ερωτήσεις Ανάπτυξης οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;

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

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

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Προγραµµατισµός Η/Υ Ο προγραµµατισµός είναι η διατύπωση του αλγορίθµου σε µορφή κατανοητή από τον Η/Υ ώστε να τον εκτελέσει («τρέξει» όπως λέµε στην ορολογία της

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Στέφανος Ουγιάρογλου

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Στέφανος Ουγιάρογλου ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Κεφάλαιο 6 «Εισαγωγή στον Προγραμματισμό» Στέφανος Ουγιάρογλου Διαφάνειες από υλικό του Χ. Μουρατίδη Προγραμματισμός Η/Υ Ο προγραμματισμός είναι η διατύπωση

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

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο Εισαγωγή στο Bison Μεταγλωττιστές, Χειμερινό εξάμηνο 2016-2017 Συντακτική Ανάλυση Αποτελεί την δεύτερη φάση της μετάφρασης. Εύρεση της σχέσης που υπάρχει των λεκτικών μονάδων ενός προγράμματος. Παράδειγμα

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 Αλγόριθμος: Βήμα προς βήμα διαδικασία για την επίλυση κάποιου προβλήματος. Το πλήθος των βημάτων πρέπει να είναι πεπερασμένο. Αλλιώς: Πεπερασμένη

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

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

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

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

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

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

Αρχές Προγραμματισμού Υπολογιστών

Αρχές Προγραμματισμού Υπολογιστών Αρχές Προγραμματισμού Υπολογιστών Ανάπτυξη Προγράμματος Β ΕΠΑΛ Τομέας Πληροφορικής Βελώνης Γεώργιος Καθηγητής Πληροφορικής ΠΕ20 Κύκλος ανάπτυξης προγράμματος/λογισμικού Η διαδικασία ανάπτυξης λογισμικού,

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εισαγωγή Κώστας Στεργίου Τι είναι ο Η/Υ; Ένας ηλεκτρονικός υπολογιστής (Η/Υ) είναι

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

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 8 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 8 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Γιώργος Δημητρίου Μάθημα 8 ο Μετάφραση Οδηγούμενη από τη Σύνταξη Ο ΣΑ καλεί τις ρουτίνες που εκτελούν τη σημασιολογική ανάλυση και παράγουν τον ενδιάμεσο κώδικα Σημασιολογικές πληροφορίες μπορούν να μεταφέρονται

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

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

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

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

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Ενότητες βιβλίου: 6.4, 6.7 Ώρες διδασκαλίας: 1 Τεχνικές σχεδίασης προγραμμάτων Στο βιβλίο γίνεται αναφορά σε μία τεχνική για την ανάπτυξη

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

Computing. Νοέμβριος Έκδοση 1.0

Computing. Νοέμβριος Έκδοση 1.0 Computing Νοέμβριος 2017 Έκδοση 1.0 Ενότητα Computing Αυτή η ενότητα παραθέτει τις βασικές έννοιες και δεξιότητες που σχετίζονται με την ικανότητα χρήσης υπολογιστικής σκέψης (computational thinking) και

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

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις Προγραµµατισµός Η/Υ Ανασκόπηση - Ορισµοί Περιεχόµενα Ο κύκλος ανάπτυξης προγράµµατος Περιγραφή προβλήµατος Ανάλυση προβλήµατος Λογικό ιάγραµµα Ψευδοκώδικας Κωδικοποίηση Συντήρηση Γλώσσες Προγραµµατισµού

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

Κεφάλαιο 1: Εισαγωγή. Αρχές Γλωσσών και Προγραμματισμού και Μεταφραστών. Γιάννης Γαροφαλάκης ΤΜΗΥΠ - Πανεπιστήμιο Πατρών

Κεφάλαιο 1: Εισαγωγή. Αρχές Γλωσσών και Προγραμματισμού και Μεταφραστών. Γιάννης Γαροφαλάκης ΤΜΗΥΠ - Πανεπιστήμιο Πατρών Κεφάλαιο 1: Εισαγωγή Αρχές Γλωσσών και Προγραμματισμού και Μεταφραστών Εισαγωγή (1) Γιατί υπάρχουν τόσες πολλές Γλώσσες Προγραμματισμού (ΓΠ); o Εξέλιξη έχουμε μάθει καλύτερους τρόπους να κάνουμε πράγματα

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

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή Αντίρριο, 05/04/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές» To δεύτερο μέρος της εργασίας έχει ως στόχο την ανάπτυξη του συντακτικού αναλυτή με χρήση του bison / byacc. Στο

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

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΤΗ ΔΙΟΙΚΗΣΗ ΚΑΙ ΣΤΗΝ ΟΙΚΟΝΟΜΙΑ 9 Ο ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΟΣΤΟΛΙΑ ΠΑΓΓΕ Περιεχόμενα 2 Η λειτουργία του υπολογιστή Κατηγορίες Εντολών Μορφή Εντολών

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

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

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία

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

ΑΕΠΠ Ερωτήσεις τύπου Σωστό-Λάθος

ΑΕΠΠ Ερωτήσεις τύπου Σωστό-Λάθος ΑΕΠΠ Ερωτήσεις τύπου Σωστό-Λάθος Κεφάλαιο 1 1. Πρόβλημα είναι μια μαθηματική κατάσταση που πρέπει να αντιμετωπίσουμε 2. Αν υποβάλλουμε τα δεδομένα σε επεξεργασία παίρνουμε πληροφορίες 3. Ο υπολογιστής

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

Outline. 4 Object-Oriented Programming

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

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

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

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 7.1. Ανάπτυξη Προγράµµατος Τι είναι το Πρόγραµµα; Το Πρόγραµµα: Είναι ένα σύνολο εντολών για την εκτέλεση ορισµένων λειτουργιών από τον υπολογιστή.

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

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

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

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

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Εισαγωγή Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Μεταγλωττιστής Αρχικό πρόγραμμα (source program) Μεταγλωττιστής Τελικό πρόγραμμα (object program) Διαγνωστικά μηνύματα Μεταγλωττιστής Παίρνει σαν

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1 ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 1ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος Ορισμός Wikipedia.org 2 Δομημένος προγραμματισμός (structured programming) ή διαδικαστικός προγραμματισμός (procedural

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

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ. ΚΑΤΕΥΘΥΝΣΗ ΔΙΟΙΚΗΣΗΣ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ Πληροφορική I "Προγραμματισμός" B. Φερεντίνος

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

Αντίρριο, 14/03/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές»

Αντίρριο, 14/03/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές» Αντίρριο, 14/03/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές» Η εργασία έχει ως στόχο τον σχεδιασμό και την υλοποίηση ενός μεταγλωττιστή για την γλώσσα Ciscal, χρησιμοποιώντας

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

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 1 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 1 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Γιώργος Δημητρίου Μάθημα 1 ο Γλώσσα - Μετάφραση Γλώσσα προγραμματισμού = Αναπαράσταση αλγορίθμων Ευκολία χρήσης Ακρίβεια και πληρότητα περιγραφής, όχι διφορούμενη! Μία περιγραφή για όλες τις μηχανές Μετάφραση

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Καθηγητής Πληροφορικής ΠΕ19 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 6 ο : ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ Η έννοια του προγράμματος

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στην FORTRAN Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 Fortran FORmula TRANslation: (Μία από τις πρώτες γλώσσες τρίτης γενιάς) Εκδόσεις FORTRAN (1957) FORTRAN II (1958) FORTRAN III

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ - ΓΛΩΣΣΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Τεχνικές Σχεδίασης Αλγορίθμων Εισαγωγή στον Προγραμματισμό - ΓΛΩΣΣΑ Επιμέλεια: Ομάδα Διαγωνισμάτων από Το στέκι των πληροφορικών ο Θέμα 1 Α. α) Ποια είναι

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

Μέρος Α. Λογισµικό & Προγράµµατα συστήµατος και εφαρµογών ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ. Το σηµερινό µάθηµα. Λογισµικό συστηµάτων & εφαρµογών

Μέρος Α. Λογισµικό & Προγράµµατα συστήµατος και εφαρµογών ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ. Το σηµερινό µάθηµα. Λογισµικό συστηµάτων & εφαρµογών ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΙΟΙΚΗΣΗΣ Το σηµερινό µάθηµα ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ιδάσκων: Πέτρος Βασιλικός Λογισµικό Υπολογιστικών Συστηµάτων Λογισµικό & Προγράµµατα συστηµάτων

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

ΚΕΦΑΛΑΙΟ VI. Εισαγωγή στον προγραμματισμό

ΚΕΦΑΛΑΙΟ VI. Εισαγωγή στον προγραμματισμό ΚΕΦΑΛΑΙΟ VI Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου σημαντικά στάδια. Τον ακριβή προσδιορισμό του προβλήματος. Την ανάπτυξη του αντίστοιχου αλγορίθμου.

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β Καβακλή Χειμερινό Εξάμηνο 2001 Στόχοι του Μαθήματος! Ανάπτυξη αναλυτικής

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

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

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

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

Περιεχόμενα. Πρόλογος... 21

Περιεχόμενα. Πρόλογος... 21 Περιεχόμενα Πρόλογος... 21 Κεφάλαιο 1: Εισαγωγή στον προγραμματισμό... 25 Εισαγωγή...27 Πώς να διαβάσετε αυτό το βιβλίο...27 Η δομή των κεφαλαίων...28 Γιατί να μάθω προγραμματισμό;...31 Γιατί να μάθω C;...31

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

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στην αναγκαιότητα ύπαρξης των μεταγλωττιστών

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

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

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

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ Εισαγωγή ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ Όπως για όλες τις επιστήμες, έτσι και για την επιστήμη της Πληροφορικής, ο τελικός στόχος της είναι η επίλυση προβλημάτων. Λύνονται όμως όλα τα προβλήματα;

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

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

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

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

ΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ. Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών

ΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ. Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών ΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών ΜΟΡΥΕ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ Διαδικασιακός ή Διαδικαστικός (Procedural)

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Η εξέλιξη των γλωσσών προγραμματισμού Η εξέλιξη των γλωσσών προγραμματισμού είναι μια διαδικασία αφαίρεσης Στην αρχή ένα πρόγραμμα ήταν

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 6 ο

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 6 ο Με τι ασχολείται ο προγραμματισμός; Ο προγραμματισμός ασχολείται με την διατύπωση του αλγορίθμου σε κατανοητή μορφή από τον Η/Υ, δηλ. τη δημιουργία του προγράμματος, του συνόλου των εντολών που πρέπει

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

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Εισαγωγή στον προγραµµατισµό Η έννοια του προγράµµατος Ο προγραµµατισµός ασχολείται µε τη δηµιουργία του προγράµµατος, δηλαδή του συνόλου εντολών που πρέπει να δοθούν στον υπολογιστή ώστε να υλοποιηθεί

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

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

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

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

Κεφάλαιο 1 Προγραμματισμός Υπολογιστή. Εφαρμογές Πληροφορικής Κεφ. 7 Καραμαούνας Πολύκαρπος 1

Κεφάλαιο 1 Προγραμματισμός Υπολογιστή. Εφαρμογές Πληροφορικής Κεφ. 7 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 1 Προγραμματισμός Υπολογιστή Καραμαούνας Πολύκαρπος 1 7.1 Η προγραμματιζόμενη μηχανή Από τις βασικότερες διαφορές ανάμεσα στον υπολογιστή και στις περισσότερες ηλεκτρονικές συσκευές είναι η δυνατότητα

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

Εισαγωγή στον δομημένο προγραμματισμό

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

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

Ενότητα 2 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Ενότητα 2 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Ενότητα 2 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΩΝ ΜΕ ΥΠΟΛΟΓΙΣΤΗ: Στάδιο 1: Ακριβής Προσδιορισμός του Προβλήματος Στάδιο 2: Ανάπτυξη του Αντίστοιχου Αλγόριθμου Στάδιο 3: Διατύπωση του αλγόριθμου

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

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

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

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

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου

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

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

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

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

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2011-2012 Γιάννης Γαροφαλάκης, Καθηγητής Αθανάσιος Ν.Νικολακόπουλος, Υποψήφιος Διδάκτορας 28 Μαρτίου 2012 Περίληψη Σκοπός της παρούσας

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

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ii ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ 1. Εισαγωγή - Βασικές έννοιες....1 1.1 Εσωτερική παράσταση δεδομένων....2 1.1.1 Παράσταση θέσης....3 1.1.2 Μετατροπές μεταξύ συστημάτων διαφορετικών βάσεων....5 1.1.3 Οι αριθμητικές

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

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ 2.3.1.1. Παπαγιάννη Νάσια Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών ΕΜΠ 1 περιλαμβάνει: Η έννοια του προγράμματος Επίλυση προβλήματος 1. Ακριβή προσδιορισμό

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

Σημαντικές δυνατότητες των σύγχρονων υπολογιστικών μηχανών: Αξιόπιστη καταγραφή πολύ μεγάλου όγκου δεδομένων

Σημαντικές δυνατότητες των σύγχρονων υπολογιστικών μηχανών: Αξιόπιστη καταγραφή πολύ μεγάλου όγκου δεδομένων Σημαντικές δυνατότητες των σύγχρονων υπολογιστικών μηχανών: Γρήγορες προσθέσεις αριθμών Γρήγορες συγκρίσεις αριθμών Αξιόπιστη καταγραφή πολύ μεγάλου όγκου δεδομένων Σχετικά γρήγορη μετάδοση και πρόσληψη

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

Περιεχόμενα. Πρόλογος... 17

Περιεχόμενα. Πρόλογος... 17 Περιεχόμενα Πρόλογος... 17 Κεφάλαιο 1: Εισαγωγή... 19 Πώς να διαβάσετε αυτό το βιβλίο... 20 Η γλώσσα C Ιστορική αναδρομή... 22 Τα χαρακτηριστικά της C... 23 C Μια δομημένη γλώσσα... 23 C Μια γλώσσα για

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

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

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

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

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2 Οικονόμου Βαγγέλησ Διάλεξη Νο 2 Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2 1 Η έννοια τησ μεταβλητήσ έδωςε λύςη ςτο πρόβλημα τησ αναφοράσ ςτην κύρια μνήμη του υπολογιςτή. Οι γλώςςεσ προγραμματιςμού υποςτηρίζουν

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