Κεφάλαιο 7 Προγραμματισμός υπολογιστή

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Βασίλειος Κοντογιάννης ΠΕ19

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

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

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

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

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

Π ρ ο γ ρ α μ μ α τ ι σ μ ό ς Β α σ ι κ έ ς έ ν ν ο ι ε ς Ι σ τ ο ρ ι κ ή α ν α δ ρ ο μ ή Η έννοια του προγράμματος Ιστορική αναδρομή

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

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου

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

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

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών

κ ε φ ά λ α ι ο 7 0 Α. Θ Ε Ω Ρ Ι Α Η έ ν ν ο ι α τ ο υ π ρ ο γ ρ ά µ µ α τ ο ς Ι σ τ ο ρ ι κ ή Α ν α δ ρ ο µ ή π α ρ α τ ή ρ η σ η

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

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

ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY

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

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

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

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

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

ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ

Προγραμματισμός και Εφαρμογές Υπολογιστών

.EVAL push bx Xor bx,bh Add si,ax.loop dec cx. 1. Fortran. 2. Cobol. 3. Algol

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

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

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

Κεφ. 1: Εισαγωγή στην έννοια του Αλγορίθμου και στον Προγραμματισμό. Η έννοια του προβλήματος

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

ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΘΕΜΑ 1 Α.

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

Γεωγραφικά Συστήµατα Πληροφοριών και Αρχές Τηλεπισκόπησης

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

Προγραμματισμός Υπολογιστών

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

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

Κεφάλαιο 6 Εισαγωγή στον Προγραμματισμό. 26-Jun-15 ΑΕΠΠ - Καραμαούνας Π. 1

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

7 ο ΓΕΛ Καλλιθέας Οδηγός Α.Ε.Π.Π. ΚΕΦΑΛΑΙΟ 6 ο

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΗΜΕΡΟΜΗΝΙΑ: 6/04/2014

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης

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

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

Η ΑΕΠΠ IN A GLANCE! ΦΡΟΝΤΙΣΤΗΡΙΑ ΠΟΛΥΜΕΝΗ

Κεφάλαιο 6 ο. Διαχείριση στοιχείων λογισμικού

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

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

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

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

Ενότητα 13. Εισαγωγή στην Πληροφορική. Κεφάλαιο 13Α. Αρχεία. Χειµερινό Εξάµηνο ρ. Παναγιώτης Χατζηδούκας (Π..407/80) προγραµµατισµός

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

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

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

Θεωρία Προγραμματισμού

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

Α Διαγώνισμα 1 ου Τριμήνου στο μάθημα της Πληροφορικής Γ Γυμνασίου Ονοματεπώνυμο:...

Κεφάλαιο : Εισαγωγή Στον Προγραμματισμό. (Διάλεξη 2) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ. Περιεχόμενα

Λογισμικό Υπολογιστών (Software) ΜΥΥ-106 Εισαγωγή Η/Υ και Πληροφορική

Εισαγωγή στον Προγραμματισμό Μάθημα 4: Αλγόριθμοι και Γλώσσες Προγραμματισμού Δεκέμβριος 2015 Χ. Αλεξανδράκη

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

Εργαστήρι Πληροφορικής Αλγόριθµος 92 Σηµειώσεις Τεχνολογικής Κατεύθυνσης Γλώσσες µηχανής Αρχικά για να µπορέσει ο υπολογιστής να εκτελέσει µία οποιαδή

Transcript:

Κεφάλαιο 7 Προγραμματισμός υπολογιστή Έχετε χρησιμοποιήσει προγράμματα; Έχετε φτιάξει προγράμματα; Γνωρίζετε προγραμματιστές που έγιναν διάσημοι μέσω της δουλειάς τους; 1

7.1 Η προγραμματιζόμενη μηχανή Σε τι διαφέρει ο υπολογιστής από τις άλλες ηλεκτρονικές συσκευές; Ο Η/Υ μπορεί να χρησιμοποιηθεί σε πάρα πολλές εργασίες, σε αντίθεση με τις υπόλοιπες συσκευές, οι οποίες είναι σχεδιασμένες να επιτελούν μία συγκεκριμένη λειτουργία. Πού οφείλεται η δυνατότητα του Η/Υ, να μπορεί να επιτελεί τόσες διαφορετικές εργασίες; Αυτό που επιτρέπει στο υλικό να προσαρμόζεται σε τόσες διαφορετικές απαιτήσεις είναι το λογισμικό. 2

7.2 Οι χρήστες ΧΡΗΣΤΕΣ ΤΕΛΙΚΟΙ ΧΡΗΣΤΕΣ Εκείνοι που χρησιμοποιούν τον ΗΥ στη δουλειά τους. Πολιτικοί μηχανικοί Δημοσιογράφοι Ιατροί Τουριστικοί πράκτορες Εκπαιδευτικοί ΕΠΑΓΓΕΛΜΑΤΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Εκείνοι που η δουλειά τους είναι ο ΗΥ. Προγραμματιστές Σχεδιαστές υλικού Τεχνικοί Η/Υ 3

7.3 Το πρόγραμμα-γλώσσες προγρ/σμού 7.3.1 Το πρόγραμμα Πρόγραμμα είναι μια συγκεκριμένη ακολουθία εντολών τις οποίες πρέπει να εκτελέσει ένας υπολογιστής για να παράγει το επιθυμητό για τον χρήστη αποτέλεσμα. Οι σύγχρονοι ΗΥ είναι βασισμένοι στις αρχές που εισήγαγε ο Von Neumann τη δεκαετία του 1940. Μαθηματικός και πολυμαθής επιστήμονας, Αμερικανοουγγαρικής καταγωγής. KME Καταχωρητές Κύρια Μνήμη Η ΚΜΕ μπορεί να φορτώσει στοιχεία από την Κύρια μνήμη στους καταχωρητές, να εκτελέσει πράξεις πάνω τους και να επιστρέψει το αποτέλεσμα πίσω στη μνήμη. 4

7.3 Το πρόγραμμα-γλώσσες προγρ/σμού 7.3.2 Γλώσσα μηχανής (1 η γενιά) Ένα πρόγραμμα σε γλώσσα μηχανής διατυπώνεται ως ακολουθία 0 και 1. Γιατί επιλέχθηκε το δυαδικό σύστημα; Ποια άλλα αριθμητικά συστήματα γνωρίζεις; Κατηγορίες εντολών μιας ΚΜΕ: μεταφορά δεδομένων μεταξύ μνήμης και καταχωρητών μεταφορά δεδομένων μεταξύ καταχωρητών αριθμητικές και λογικές πράξεις έλεγχος της ροής εκτέλεσης των εντολών διάφορες βοηθητικές εντολές KME Καταχωρητές Κύρια Μνήμη 5

7.3 Το πρόγραμμα-γλώσσες προγρ/σμού 7.3.2 Γλώσσα μηχανής (1 η γενιά) Κωδικός λειτουργίας Τελεστέος 11100110 10110011 Πρόσθεσε στον καταχωρητή accumulator τον αριθμό 179 Το να προγραμματίζεις σε γλώσσα μηχανής αποτελούσε μια διαδικασία: δύσκολη χρονοβόρα αντιπαραγωγική Διότι: απαιτούσε απομνημόνευση εντολών σε 0 & 1 ήταν δύσκολο να εντοπιστούν λάθη 6

7.3 Το πρόγραμμα-γλώσσες προγρ/σμού 7.3.3 Συμβολική γλώσσα (2 η γενιά) Στη συμβολική γλώσσα (assembly) σε κάθε εντολή αντιστοιχίζεται μια ευκολομνημόνευτη λέξη. Επιπλέον, δίνεται η δυνατότητα να χρησιμοποιούνται ονόματα που αντιπροσωπεύουν αριθμούς ή θέσεις μνήμης. ADD gradea ADD gradeb 7

7.3 Το πρόγραμμα-γλώσσες προγρ/σμού 7.3.4 Υψηλού επιπέδου (3 η γενιά) Οι συμβολικές γλώσσες διευκόλυναν τη γραφή προγραμμάτων, αλλά προέκυπταν προγράμματα που ήταν: μακροσκελή εξαρτημένα από την αρχιτεκτονική του Η/Υ (αδυναμία μεταφερσιμότητας) Μεταφερσιμότητα ονομάζεται το χαρακτηριστικό ενός προγράμματος να μπορεί να εκτελεστεί σε άλλον τύπο ΗΥ με ελάχιστες αλλαγές. Οι γλώσσες υψηλού επιπέδου (high level languages) έλυναν τα παραπάνω προβλήματα, προσφέροντας παράλληλα ένα σύνολο εντολών φιλικό προς το χρήστη. aver = ((gra + grb)/2 + grwr)/2 printf ( Ο τελικός ΜΟ στο μάθημα είναι:, aver) 8

7.3 Το πρόγραμμα-γλώσσες προγρ/σμού 7.3.5 Ένα συγκριτικό παράδειγμα Γλώσσα μηχανής Συμβολική γλώσσα Γλώσσα υψηλού επιπέδου 0000001001011010 0000101001011110 0000011011011110 LDA B ADD C STA A A = B + C 9

7.3 Το πρόγραμμα-γλώσσες προγρ/σμού 7.3.6 Ιστορία γλωσσών υψηλού επιπέδου FORTRAN FORmula TRANslation 54 Κατάλληλη για υλοποίηση μαθηματικών μοντέλων ALGOL ALGOrithmic Language 63 Εισήγαγε αξιόλογες ιδέες στον προγραμματισμό, όπως ο δομημένος προγραμματισμός COBOL COmmon Business Oriented Language 59 Χρησιμοποιήθηκε ευρέως για εμπορικές εφαρμογές BASIC Beginner s All-purpose Symbolic Instruction Set 60 Σχεδιάστηκε για τη διδασκαλία προγραμματισμού σε φοιτητές. Αναπτύχθηκαν αργότερα πολλές επεκτάσεις SIMULA SIMULAtion 60 Βασική εφαρμογή στις προσομοιώσεις LISP LISt Processing 50 Βασική εφαρμογή στην τεχνητή νοημοσύνη LOGO Λόγος 67 PASCAL Προς τιμή του Γάλλου μαθηματικού και φιλόσοφου Blaise Pascal C Εξέλιξη της B, που ήταν εξέλιξη της A 72 71 Σχεδιάστηκε για τη διερεύνηση προγραμματιστικών εννοιών από μαθητές μικρής ακόμα ηλικίας Μικρή και αποδοτική γλώσσα που υιοθέτησε αξιόλογες πρακτικές προγραμματισμού. Με πολλές επεκτάσεις στην πορεία Σχεδιάστηκε για τη συγγραφή λειτουργικών συστημάτων, αλλά χρησιμοποιήθηκε ευρύτατα για την κατασκευή λογισμικού είτε συστήματος είτε εφαρμογών PROLOG PROgramming in LOGic 73 Βασική εφαρμογή στην τεχνητή νοημοσύνη C++ Εξέλιξη της C+ 79 Υιοθετεί τον αντικειμενοστραφή προγραμματισμό JAVA Ιάβα (νησί στην Ινδονησία που παράγει τους κόκκους του καφέ που έπιναν οι developers της γλώσσας) 95 Κυριαρχεί στις διαδικτυακές εφαρμογές SQL Structured Query Language 79 Καθιερώθηκε ως γλώσσα επικοινωνίας με τις σχεσιακές βάσεις δεδομένων 10

7.3 Το πρόγραμμα-γλώσσες προγρ/σμού 7.3.6 Ιστορία γλωσσών υψηλού επιπέδου Γλώσσες 4 ης γενιάς ονομάζονται οι γλώσσες που είναι πιο κοντά στη φυσική γλώσσα απ ότι οι συνήθεις γλώσσες υψηλού επιπέδου. Π.χ. SQL select lastname, FirstName from classc where gender= Male and year=1996 Οι γλώσσες υψηλού επιπέδου επέφεραν τη ραγδαία ανάπτυξη λογισμικού, διότι η εκμάθηση των γλωσσών πρ/σμού ήταν ευκολότερη η κατασκευή λογισμικού ήταν ευκολότερη 11

7.3 Το πρόγραμμα-γλώσσες προγρ/σμού 7.3.7 Εξάρτηση των γλωσσών από τον σκοπό Γλώσσες ειδικού σκοπού γενικού σκοπού Προσανατολισμένες σε μια συγκεκριμένη κατηγορία εφαρμογών Χρησιμοποιούνται σε διαφορετικές περιοχές εφαρμογών Π.χ. Fortran, Prolog, SQL Π.χ. Pascal, C, Java 12

7.3 Το πρόγραμμα-γλώσσες προγρ/σμού 7.3.8 Μεταφραστές Η ΚΜΕ εκτελεί εντολές γραμμένες σε γλώσσα μηχανής. Συνεπώς, αν το πρόγραμμα γραφεί σε συμβολική γλώσσα ή σε γλώσσα υψηλού επιπέδου, απαιτείται η μετατροπή του σε γλώσσα μηχανής. Συνεννόηση μπουζούκι! 13

7.3 Το πρόγραμμα-γλώσσες προγρ/σμού 7.3.8 Μεταφραστές Ο συμβολομεταφραστής (assembler) είναι ένα πρόγραμμα που μετατρέπει τις εντολές ενός προγράμματος που είναι γραμμένο σε συμβολική γλώσσα σε γλώσσα μηχανής. Συμβολική γλώσσα ADD C ΣΥΜΒΟΛΟΜΕΤΑΦΡΑΣΤΗΣ Γλώσσα Μηχανής 0000101001011110 14

7.3 Το πρόγραμμα-γλώσσες προγρ/σμού 7.3.8 Μεταφραστές Για να εκτελεστεί ένα πρόγραμμα γραμμένο σε γλώσσα υψηλού επιπέδου, απαιτείται είτε ένας μεταγλωττιστής είτε ένας διερμηνευτής. Γλώσσα υψηλού επιπέδου A=B+C ΜΕΤΑΓΛΩΤΤΙΣΤΗΣ ΔΙΕΡΜΗΝΕΥΤΗΣ Γλώσσα Μηχανής 0000001001011010 0000101001011110 0000011011011110 15

7.3 Το πρόγραμμα-γλώσσες προγρ/σμού 7.3.8 Μεταφραστές - Μεταγλωττιστής Τι χρειάζομαι για να γράψω ένα πρόγραμμα; Έναν συντάκτη(editor). Πώς ονομάζεται το πρόγραμμα που πληκτρολόγησα στον συντάκτη; Πηγαίος κώδικας (source code). Πώς θα το εκτελέσω («τρέξω»); Χρειάζεται ένας μεταγλωττιστής (compiler) ο οποίος αφού ελέγξει το κείμενο για απουσία συντακτικών λαθών, παράγει το αντικείμενο (object) πρόγραμμα. Μπορώ να απολαύσω επιτέλους το αριστούργημά μου; Όχι ακόμα. Το αντικείμενο πρόγραμμα χρειάζεται κάποιες πληροφορίες που συνήθως βρίσκονται στις βιβλιοθήκες του λειτουργικού συστήματος. Τη σύνδεση του αντικειμένου με τις βιβλιοθήκες, τις αναλαμβάνει ο συνδέτης (linker) ο οποίος παράγει και το εκτελέσιμο (executable) πρόγραμμα. 16

7.3 Το πρόγραμμα-γλώσσες προγρ/σμού 7.3.8 Μεταφραστές - Μεταγλωττιστής Τα βήματα είναι: 1. Συγγραφή προγράμματος ( πηγαίο) 2. Μεταγλώττιση ( αντικείμενο) 3. Σύνδεση ( εκτελέσιμο) 4. Εκτέλεση Τι επέκταση έχουν τα εκτελέσιμα προγράμματα στα MS-Windows; com (COMmand) exe (EXEcutable) Μπορώ να δώσω το καλλιτέχνημά μου στον φίλο μου που έχει Macintosh; Χλωμό! Αυτό είναι εφικτό μόνο σε cross platform περιβάλλοντα. Μπορείς όμως να το δώσεις στον άλλο φίλο σου που έχει κομματάκι καλύτερο επεξεργαστή! 17

7.3 Το πρόγραμμα-γλώσσες προγρ/σμού 7.3.8 Μεταφραστές - Διερμηνευτής Λειτουργικά, σε τι διαφέρει ο διερμηνευτής (interpreter) από τον μεταγλωττιστή; Ο μεταγλωττιστής μετατρέπει όλο το πηγαίο πρόγραμμα σε γλώσσα μηχανής, παράγοντας έτσι το εκτελέσιμο, το οποίο μπορούμε να το εκτελέσουμε όποια στιγμή το επιθυμούμε. Αντίθετα ο διερμηνευτής, μετατρέπει μία μία τις εντολές σε γλώσσα μηχανής και τις εκτελεί αμέσως. Πρακτικά, ποιες είναι οι διαφορές τους; Ο διερμηνευτής εντοπίζει το συντακτικό λάθος σε μια εντολή, όταν αποπειραθεί να την μετατρέψει σε γλώσσα μηχανής και να την εκτελέσει (Δηλαδή, ξεκινάει την εκτέλεση του προγράμματος χωρίς να προαπαιτήσει την εκσφαλμάτωσή του) δεν παράγει εκτελέσιμο (Δηλαδή, για να εκτελεστεί σε έναν Η/Υ πρέπει σε αυτόν να είναι εγκατεστημένος ο συγκεκριμένος διερμηνευτής) 18

7.4 Αρχές κατασκευής λογισμικού Ένα πρόγραμμα κατασκευάζεται από έναν προγραμματιστή ή από ομάδα προγραμματιστών; Τμηματικός προγραμματισμός Το πρόγραμμα διασπάται σε μικρότερα τμήματα, κάθε ένα από τα οποία θα κατασκευαστεί ανεξάρτητα. Στη συνέχεια θα συνδυαστούν όλα αυτά για να προκύψει το τελικό σύστημα. Προαγωγή μαθητή Φοίτηση Βαθμολογία 19

7.4 Αρχές κατασκευής λογισμικού Υπορουτίνα Είναι ένα τμήμα κώδικα στο οποίο έχουμε δώσει ένα όνομα και μπορεί να εκτελεστεί σε οποιοδήποτε σημείο του προγράμματος, απλώς αναφερόμενοι σε αυτό. ΕμβΚύκλου(r) ΕμβΚύκλου 2 * 3,14 * r Τέλος Η συγκεκριμένη υπορουτίνα υπολογίζει το εμβαδό ενός κύκλου με ό,τι ακτίνα της ζητήσουμε Πρόγραμμα Υπολογισμοί.. ΕμβΚύκλου(5).. ΕμβΚύκλου(13).. Τέλος Στο πρόγραμμα μπορούμε να καλέσουμε την υπορουτίνα όσες φορές χρειαζόμαστε με ό,τι ορίσματα θέλουμε 20

7.4 Αρχές κατασκευής λογισμικού Δομημένος προγραμματισμός Περιλαμβάνονται μόνο οι παρακάτω δομές ελέγχου: διαδοχής ή ακολουθίας Οι εντολές εκτελούνται η μία μετά την άλλη με την σειρά που είναι γραμμένες επιλογής Οι εντολές εκτελούνται μόνο αν ικανοποιείται η απαιτούμενη συνθήκη επανάληψης Οι εντολές επαναλαμβάνονται όσο ικανοποιείται η απαιτούμενη συνθήκη Ακολουθία Επιλογή Επανάληψη Γράψε Δώσε βαθμολογία Διάβασε βαθμολογία Αν απουσίες > 60 τότε Γράψε Ελλιπής φοίτηση Τέλος Όσο κόστος < 2000 επανάλαβε Γράψε Μπορείς να αγοράσεις κι άλλα Διάβασε τιμή κόστος κόστος + τιμή Τέλος 21

7.5 Πρότυπα προγραμματισμού 7.5.1 Διαδικαστικός προγραμματισμός (procedural programming) Το πρόγραμμα περιλαμβάνει δύο ξεχωριστά δομικά στοιχεία: τις εντολές, που περιγράφουν βήμα βήμα τη διαδικασία επίλυσης του προβλήματος τις δομές δεδομένων στις οποίες αποθηκεύονται τα δεδομένα του προγράμματος Π.χ. C, Java, Pascal Οι διαδικαστικές γλώσσες προγρ/σμού περιλαμβάνουν τουλάχιστον τις παρακάτω εντολές: Ανάθεσης Συνθήκης Επανάληψης Εισόδου & εξόδου στοιχείων A := B + C If grade>=18.5 then print Άριστα while a>0 do begin a := a 1 end readln(grade) writeln(average) 22

7.5 Πρότυπα προγραμματισμού 7.5.2 Αντικειμενοστραφής προγραμματισμός (object oriented programming) Ένα σύστημα μπορεί να περιγραφεί με τα αντικείμενα από τα οποία αποτελείται. Κάθε αντικείμενο περιλαμβάνει τις διαδικασίες (μεθόδους) που μπορεί να υποστεί και τα δεδομένα (ιδιότητες) που το χαρακτηρίζουν. Τα αντικείμενα μπορούν να αλληλεπιδράσουν μέσω μηνυμάτων. Αντικείμενο κύκλος παιδί Ιδιότητες μήκος ακτίνας φύλο, ύψος, έτος_γέννησης Μέθοδοι Υπολογισμός διαμέτρου Υπολογισμός περιμέτρου Υπολογισμός εμβαδού Περπάτημα Στρίψιμο κεφαλιού προς τα αριστερά Ύψωση δεξιού χεριού Μηνύματα «Πες μου την περίμετρό σου» «Περπάτησε 10 βήματα» 23

7.5 Πρότυπα προγραμματισμού 7.5.3 Λογικός προγραμματισμός Περιλαμβάνει ένα σύνολο λογικών προτάσεων και ένα μηχανισμό εξαγωγής συμπερασμάτων. κανόνες ερωτήματα πατέρας (Δίας, Άρης) πατέρας (Δίας, Διόνυσος) πατέρας(πηλέας,αχιλλέας) αδέλφια (Χ,Υ) αν πατέρας (Ζ,Χ) και πατέρας(ζ,υ)?αδέλφια(άρης,διόνυσος)?αδέλφια(άρης,αχιλλέας) 24

7.5 Πρότυπα προγραμματισμού 7.5.3 Συναρτησιακός προγραμματισμός Βασίζεται στις συναρτήσεις όπως αυτές εννοούνται στα μαθηματικά. Η μόνη δομή ελέγχου είναι η εφαρμογή συναρτήσεων πάνω σε δεδομένα. Ας δούμε τον υπολογισμό του n! (παραγοντικό) Αν n=0 τότε n!=0 αλλιώς n!=1*2*3*.*n Διαδικαστικός προγρ/σμός factorial := 1 while (n > 0) do begin factorial := factorial * n; n :=n-1 end Συναρτησιακός προγρ/σμός factorial n αν n=0 τότε 1 αν n>0 τότε n*factorial(n-1) 25

7.6 Προγραμματίζοντας Η μέθοδος ανάπτυξης λογισμικού περιλαμβάνει τα εξής βήματα: 1. Καθορισμός προβλήματος/απαιτήσεων 2. Ανάλυση προβλήματος 3. Σχεδιασμός αλγορίθμου για την επίλυση του προβλήματος 4. Υλοποίηση του αλγορίθμου 5. Έλεγχος του τελικού προγράμματος 6. Συντήρηση του προγράμματος 7. Τεκμηρίωση Ας τα δούμε αναλυτικά μέσω ενός παραδείγματος: να γράψουμε πρόγραμμα που να υπολογίζει τις ρίζες μιας δευτεροβάθμιας εξίσωσης. ax 2 +bx+c=0 26

7.6 Προγραμματίζοντας Καθορισμός προβλήματος/απαιτήσεων Μελετάμε το πρόβλημα εξαντλητικά, προσδιορίζουμε τα δεδομένα και καταγράφουμε τα ζητούμενα. Ο χρήστης θα εισάγει τους συντελεστές a,b,c και θα εμφανίζονται οι τιμές που λύνουν την εξίσωση 27

7.6 Προγραμματίζοντας Ανάλυση προβλήματος Διασπάμε το πρόβλημα σε επιμέρους μικρότερα και αυτά σε ακόμα μικρότερα μέχρι να φτάσουμε στο σημείο όπου τα επιμέρους προβλήματα είναι τόσο απλά ώστε να μην χρήζουν περαιτέρω διάσπασης. εύρεση ριζών δευτεροβάθμιας εξίσωσης έλεγχος συντελεστών υπολογισμός διακρίνουσας υπολογισμός ριζών ανάλογα με την τιμή της διακρίνουσας 28

7.6 Προγραμματίζοντας Σχεδιασμός αλγορίθμου Καταγράφουμε τα βήματα επίλυσης του προβλήματος και τα διατυπώνουμε με έναν από τους παρακάτω τρόπους. Φυσική γλώσσα 1) Να διαβάσω τους συντελεστές a,b,c 2) Να υπολογίσω τη διακρίνουσα με τον τύπο b 2-4ac 3) Aν Δ>0 τότε.. Διάγραμμα ροής Ψευδοκώδικας 29

7.6 Προγραμματίζοντας Υλοποίηση του αλγορίθμου Ο αλγόριθμος διατυπώνεται σε μια γλώσσα προγραμματισμού και πλέον αποτελεί ένα πρόγραμμα (εφαρμογή/application)! 30

7.6 Προγραμματίζοντας Έλεγχος του προγράμματος «Τρέχουμε» το πρόγραμμά μας με διαφορετικές εισόδους, φροντίζοντας να καλύψουμε όλες τις διαφορετικές περιπτώσεις. Εντοπίζουμε τυχόν λάθη και τα διορθώνουμε (εκσφαλμάτωση/debugging). Συντήρηση του προγράμματος Διόρθωση σφαλμάτων που εντοπίστηκαν κατά τη χρήση του από τους πραγματικούς χρήστες του προγράμματος Τροποποιήσεις (μικρές ή μεγάλες) που προέκυψαν (π.χ. αλλαγή νομίσματος, ΦΠΑ) Τεκμηρίωση του προγράμματος (documentation) Έγγραφα (εξωτερική τεκμηρίωση) ή σχόλια (εσωτερική τεκμηρίωση) που σκοπό έχουν να καταγράψουν τη διαδικασία κατασκευής αλλά και λειτουργίας του εν λόγω προγράμματος. 31

7.7 Προγραμματιστικά περιβάλλοντα Τα εργαλεία λογισμικού που αξιοποιούνται στην ανάπτυξη άλλων προγραμμάτων ονομάζονται προγραμματιστικά περιβάλλοντα. Ένα προγραμματιστικό περιβάλλον συνήθως διαθέτει: συντάκτη κειμένων (editor) μεταφραστές (assembler, compiler, interpreter) εργαλεία εντοπισμού λαθών (debuggers) Οπτικός προγραμματισμός (visual programming) Στα περιβάλλοντα όπου υποστηρίζεται ο οπτικός προγραμματισμός, μεγάλο μέρος του προγράμματος κατασκευάζεται, αξιοποιώντας γραφικά εργαλεία (εικονίδια, μενού κ.τ.λ.). Π.χ. Alice, GameMaker, Delphi, Scratch 32