Εισαγωγή στον προγραμματισμό-Γλώσσα...

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

description

φυσικές γλώσσες, γλώσσα μηχανής, συμβολομεταφραστής, αντικειμενοστραφής,προγραμματισμός, γλώσσα 4ης γενιάς, οπτικός προγραμμματισμός, τεχνικές γλώσσες, ιεραρχική σχεδίαση προγράμματος, τμηματικός προγραμματισμός, παράλληλος προγραμματισμός, συντάκτης προγράμματος, μεταγλώττιση προγράμματος, συνδέτης, φορτωτής,http://videolearner.com/, Κεφάλαιο 6ο Ανάπτυξη Εφαρμογών σε προγραμματιστικό περιβάλλον. Πολυαισθητηριακά μαθήματα.

Transcript of Εισαγωγή στον προγραμματισμό-Γλώσσα...

Page 1: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Με τι ασχολείται οπρογραμματισμός;Οπρογραμματισμός ασχολείται με την διατύπωση του αλγορίθμου σε κατανοητή μορφή από τον Η/Υ,

δηλ. τη δημιουργία του προγράμματος ,

του συνόλου των εντολών που πρέπει να δοθούν στον Η/Υώστε να υλοποιηθεί ο αλγόριθμος για την επίλυση του προβλήματος.

6.1

Αρχή

Εμφάνισε

Διάβασε Όσο ..

Πρόσθεσε1

Διάβασε

Page 2: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Τι ονομάζουμε πρόγραμμα;Πρόγραμμα είναι ένα σύνολο εντολών που πρέπει να δοθούν στον Η/Υ, για την υλοποίηση του αλγορίθμου ενός προβλήματος. Το πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού, δηλ. σε μια γλώσσα κατανοητή από τον υπολογιστή.

Page 3: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Πως αντιλαμβάνεται ο Η/Υ τις πληροφορίες;Η εντύπωση που έχουμε ότι με τον προγραμματισμόοι Η/Υ είναι έξυπνες μηχανέςπου επιλύουν πολύπλοκα προβλήματα ,είναι μια ψευδαίσθηση.

Ο Η/Υ καταλαβαίνει μόνο δύο(2) καταστάσεις: το 0το 1

Τα ψηφία του δυαδικού συστήματος

Ο Η/Υεκτελεί στοιχειώδεις ενέργειες με ασύλληπτη ταχύτητα στις ακολουθίες ψηφίων 0 &1(σειρές 0,1) δηλαδή:

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

Page 4: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Τι γνωρίζετε για τους πρώτους Η/Υ;

Οιπρώτοι Η/Υ ήταν τεράστιοι σε μέγεθος, αλλά με πολύ περιορισμένες δυνατότητεςκαι μικρές ταχύτητες επεξεργασίας δεδομένων.

6.2

Οι σύγχρονοι Η/Υ έχουν μικρό μέγεθος ,αλλά με τεράστιες δυνατότητεςκαι ταχύτητες επεξεργασίας.

Page 5: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Το Υλικο & Λογισμικο, ακολούθησαν την ίδια πορεία εξέλιξης;Το ΥΛΙΚΟ βελτιώνεται και παρέχει νέες δυνατότητες επεξεργασίας αλλά

ποντίκιRAM

CPU

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

Page 6: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Τι είναι γλώσσα μηχανής;Όταν εμφανίστηκαν οι Η/Υ,

6.2.1

οι λειτουργίες που εκτελούσαν έπρεπε να γραφούν ως ακολουθίεςαπό 0 & 1,

έτσι ώστε να είναι σε μορφή κατανοητή από τον Η/Υ, αλλά δυσνόητη στον άνθρωπο.

Ο τρόπος αυτός απαιτούσε πλήρη γνώσητου υλικού και της αρχιτεκτονικής

του Η/Υ και καθιστούσε τη δημιουργία ενός προγράμματος επίπονη.Η γλώσσα αυτή επικοινωνίας με τον Η/Υ , που βασιζόταν σε δυαδικούς αριθμούς ,ονομάζεται γλώσσα μηχανής. Ένα πρόγραμμα σε γλώσσα μηχανής είναι μια ακολουθία δυαδικών ψηφιών 0 & 1.

Page 7: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Τι είναι συμβολικεσ γλωσσες και τι οι συμβολοσειρεσ;Στις συμβολικές γλώσσες ή γλώσσες χαμηλού επιπέδου, οι εντολές δίνονται ως μια λέξη που συμβολίζει την ενέργεια που πρέπει να εκτελεστεί .

6.2.2

παραδειγμα

addΗ εντολή

ακολουθούμενη από 2 αριθμούς

2 3

συμβόλιζε την πράξη της πρόσθεσης

2 +

5

3

Η εντολή αυτή, είναι κατανοητή από τον άνθρωπο και απομνημονεύεται σχετικά εύκολα.

Για να γίνει όμως κατανοητή από τον Η/Υπρέπει να μεταφραστεί σε μια ακολουθία δυαδικών ψηφίωνκαι στη συνέχεια να εκτελεστεί.

add 2 3

Την μετάφραση την αναλαμβάνει ένα ειδικό πρόγραμμα ,ο Συμβολομεταφραστής (assembler).

Οι συμβολικές γλώσσες συνεχίζουν να χρησιμοποιούνται ακόμα και σήμερα για ειδικούς σκοπούς,

Ήταν μια εξέλιξη από τις ακατανόητες ακολουθίες δυαδικών στοιχείων.

Συμβολομεταφραστης

Page 8: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Τι είναι συμβολικεσ γλωσσες και τι οι συμβολοσειρεσ;6.2.2

Γλώσσα Μηχανής Συμβολική Γλώσσα Γλώσσα Basic

Page 9: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Ποια είναι τα μειονεκτήματα των συμβολικών γλωσσών;Τα μειονεκτήματα είναι:

6.2.2

Παραμένουν στενά συνδεδεμένες με την αρχιτεκτονική του κάθε Η/Υ(εξαρτώνται από την αρχιτεκτονική),Δεν διαθέτουν εντολές σύνθετων λειτουργιών, οδηγώντας σε μακροσκελή προγράμματα, που ήταν δύσκολο να γραφούν και κυρίως να συντηρηθούν.Τα προγράμματα δεν μπορούν να μεταφερθούν σε άλλον διαφορετικό Η/Υ ακόμη και του ίδιου κατασκευαστή.

Page 10: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Τι γνωρίζετε για την FORTRAN;Πρόκειται για μια γλώσσα υψηλού επιπέδου η οποία αναπτύχθηκε από την IBM και προέρχεται από τις λέξεις:

6.2.3

FORMULA

TRANS LATION

Page 11: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Τι γνωρίζετε για την FORTRAN;Πρόκειται για μια γλώσσα υψηλού επιπέδου η οποία αναπτύχθηκε από την IBM και προέρχεται από τις λέξεις:

6.2.3

FORTRANκαι αναπτύχθηκε για την επίλυση μαθηματικών και επιστημονικών προβλημάτων.Το πρόγραμμα που γράφεται σε FORTRAN ή σε οποιαδήποτε άλλη γλώσσα υψηλού επιπέδου,

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

μεταγλωττιστήςΤο ίδιο πρόγραμμα FORTRAN μπορεί να εκτελεστεί σεοποιοδήποτε άλλο υπολογιστή, αρκεί να υπάρχει ο αντίστοιχοςμεταγλωττιστής για τον υπολογιστήαυτό.

Page 12: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

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

6.2.3

ΓλώσσαΠρογραμματισμού

Βασικό

Χαρακτηριστικό

FORTRAN Μαθηματικές και επιστημονικές εφαρμογές.

COBOL Εμπορικές εφαρμογές.

ALGOL Ευρωπαϊκή γλώσσα για δημιουργία γενικής φύσης προγραμμάτων

Pl/1 Προσπάθησε να καλύψει όλους τους τομείς του προγραμματισμού

LISP Χειρισμός λιστών από σύμβολα και γλώσσα για εφαρμογές τεχνητής νοημοσύνης

PROLOG Χρησιμοποιείται σε προβλήματα τεχνητής νοημοσύνης,π.χ. έμπειρα συστήματα ,παιχνίδια κ.λ.π.

basic Δημοφιλής γλώσσα για πλήθος εφαρμογών και για εκπαίδευση αρχαρίων στον προγραμματισμό

pascal Γενικής χρήσης, κατάλληλη για εκπαίδευση και για δημιουργία ισχυρών δομημένων προγραμμάτων κάθε τύπου.

Page 13: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

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

6.2.3

ΓλώσσαΠρογραμματισμού

Βασικό

Χαρακτηριστικό

c

Χρησιμοποιήθηκε για την ανάπτυξη του λειτουργικού συστήματος UNIX.

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

C++ Αντικειμενοστρεφής και αποτελεί εξέλιξη της C

JAVA Αντικειμενοστρεφής γλώσσα , κατάλληλη για την ανάπτυξη εφαρμογών

που θα εκτελούνται στο διαδίκτυο.

VISUAL BASIC Γλώσσα οπτικού προγραμματισμού και προγραμματισμού οδηγούμενου από το γεγονός

Page 14: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Τι εννοούμε με τους όρους οπτικό ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ και

ΠΡΟΓΡΑΜΜΑΤΣΙΜΟ Ο∆ΗΓΟΎΜΕΝΟ ΑΠΟ ΤΟ ΤΟ ΓΕΓΟΝΟΣ;Με τον όρο οπτικό προγραμματισμό εννοούμε τη δυνατότητα να δημιουργούμε γραφικάμια εφαρμογή , με τη χρήση έτοιμων τμημάτων κώδικα που συνδέονται με κάποιο κουμπί ή μενού.

6.2.3

Ο προγραμματισμός ο οδηγούμενος από το γεγονός ,είναι η δυνατότητα να ενεργοποιούνται λειτουργίες του προγράμματος με την εκτέλεση ενός γεγονότος,για παράδειγμα το κλικ του ποντικιού.

Page 15: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

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

Page 16: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Ποια τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου;Τα πλεονεκτήματα είναι:

Ο φυσικότερος και πιο “ανθρώπινος” τρόπος έκφρασης των προβλημάτων. Τα προγράμματα σε γλώσσα υψηλού επιπέδου είναι πιο κοντά στα προβλήματα που

επιλύουν.Η ανεξαρτησία από τον τύπο του υπολογιστή.

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

Η δυνατότητα της μεταφερσιμότητας των προγραμμάτων είναι σημαντικό προσόν.

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

επιπέδου είναι πολύ ευκολότερο έργο.

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

παραγωγής νέων προγραμμάτων, αφού λιγότεροι προγραμματιστές μπορούν σε μικρότερο χρόνο να αναπτύξουν προγράμματα που

χρησιμοποιούνται σε περισσότερους υπολογιστές.

Page 17: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Ποια τα χαρακτηριστικά των γλωσσών 4ης γενιάς;

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

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

Παράδειγμα γλώσσας 4ης γενιάς αποτελεί η SQL.

Page 18: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Σε ποιες κατηγορίες διακρίνονται

οι γλώσσες προγραμματισμού υψηλού επιπέδου με βάση την κατηγορία προγραμματισμού που αντιπροσωπεύουν;

Οι γλώσσες προγραμματισμού υψηλού επιπέδου, με βάση την κατηγορία προγραμματισμούπου αντιπροσωπεύουν διακρίνονται σε:

1. Διαδικασιακές ή αλγοριθμικές , π.χ. Pascal.2. Αντικειμενοστρεφείς π.χ. C++.3. Συναρτησιακές π.χ. LISP.4. Μη διαδικασιακές ή γλώσσες πολύ υψηλού επιπέδου, π.χ. PROLOG.5. Ερωταπαντήσεων , π.χ. SQL.

Σε ποιες κατηγορίες διακρίνονται

οι γλώσσες προγραμματισμού υψηλού επιπέδου με βάση την περιοχή χρήσης;

Οι γλώσσες προγραμματισμού υψηλού επιπέδου, με βάση την περιοχή χρήσης διακρίνονται σε:1. Γενικής χρήσης , π.χ. BASIC ή Pascal, οι οποίες διακρίνονται περαιτέρω σε:

1.1 Επιστημονικής κατεύθυνσης, π.χ. FORTRAN.1.2 Εμπορικής κατεύθυνσης π.χ. COBOL.

2. Προγραμματισμού συστημάτων π.χ. C.3. Τεχνητής νοημοσύνης π.χ. LISP,PROLOG.4. Ειδικής χρήσης , για εφαρμογές στη ρομποτική , στην εκπαίδευση , μέσω υπολογιστή

κ.α.

Page 19: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Ποια είναι η καλύτερη γλώσσα προγραμματισμού;Από ποιους παράγοντες εξαρτάται η επιλογή μιας γλώσσας προγραμματισμού;Οι περισσότερες γλώσσες προγραμματισμού είναι κατάλληλες για συγκεκριμένες εφαρμογές.Έτσι, δεν υπάρχει μία γλώσσα προγραμματισμού που να υπερτερεί όλων των υπολοίπων. Η επιλογή της γλώσσας για την ανάπτυξη μιας εφαρμογής εξαρτάται από:

1. Το είδος της εφαρμογής.2. Το υπολογιστικό περιβάλλον στο οποίο θα εκτελεστεί η εφαρμογή.3. Τα προγραμματιστικά περιβάλλοντα που διαθέτουμε.4. Τις γνώσεις του προγραμματιστή.

Page 20: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Από ποια στοιχεία προσδιορίζεται μια φυσική γλώσσα ή μια γλώσσα προγραμματισμού;Οι φυσικές γλώσσες και οι γλώσσες προγραμματισμού προσδιορίζονται από:

Το αλφάβητοΑλφάβητο μιας γλώσσας καλείται το σύνολο των στοιχείων, που χρησιμοποιείται από τη γλώσσα.Για παράδειγμα η ελληνική γλώσσα χρησιμοποιεί τα πεζά(α-ω) και κεφαλαία (Α-Ω) του αλφαβήτου και είναι

αποδεκτές από την γλώσσα.

Το λεξιλόγιο

Το λεξιλόγιο αποτελείται από τις λέξεις που δημιουργούνται από τα στοιχεία του αλφαβήτου και είναι αποδεκτές από την γλώσσα.

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

Η σημασιολογίαΗ σημασιολογία είναι οι κανόνες που καθορίζουν το νόηματων λέξεων, των εκφράσεων και των προτάσεων μιας γλώσσας.

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

Page 21: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

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

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

Page 22: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Τι γνωρίζετε για την Ιεραρχική σχεδίαση προγράμματος;

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

Page 23: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Να περιγραφεί ο τμηματικός προγραμματισμός modular Programming (υποπρογράμματα κτλ).

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

Ο τμηματικός προγραμματισμός έχει τα εξής πλεονεκτήματα:

1 . Διευκολύνει τη δημιουργία του προγράμματος2 . Μειώνει τα λάθη.3 . Επιτρέπει την ευκολότερη κατανόηση και διόρθωση του προγράμματος.4 . Επεκτείνει τις δυνατότητες των γλωσσών προγραμματισμού.

Page 24: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Να περιγραφεί ο δομημενοσ προγραμματισμοσ Structured Programming.

Ο Δομημένος Προγραμματισμός στηρίζεται στη χρήση τριών στοιχειωδών λογικών δομών:

ακολουθίας

επιλογής και

επανάληψης.

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

Page 25: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Ποια τα πλεονεκτήματα του δομημενου προγραμματισμουStructured Programming.

Τα πλεονεκτήματα του δομημένου προγραμματισμού είναι :

1. Δημιουργία απλούστερων προγραμμάτων.2. Άμεση μεταφορά των αλγορίθμων σε προγράμματα.3. Διευκόλυνση ανάλυσης του προγράμματος σε τμήματα.4. Περιορισμός των λαθών κατά την ανάπτυξη του προγράμματος.5. Διευκόλυνση στην ανάγνωση και κατανόηση του προγράμματος από τρίτους.6. Ευκολότερη διόρθωση και συντήρηση.

Τι γνωρίζετε για την εντολή GOTO ;Η εντολή GOTO έχει ως αποτέλεσμα την αλλαγή της ροής του προγράμματος και της μεταπήδησης σε οποιαδήποτε εντολή του προγράμματος και όχι απαραίτητα την επόμενη.

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

Οι σύγχρονες γλώσσες προγραμματισμού , υποστηρίζουν το δομημένο προγραμματισμό και καθιστούν τη χρήση της GOTO περιττή. Για λόγους όμως συμβατότητας με τις παλιότερες εκδόσεις τους καθώς και για λόγους συντήρησης παλιών προγραμμάτων, μερικές γλώσσες προγραμματισμού περιλαμβάνουν ακόμη τη GOTO στις εντολές τους.

Page 26: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Τι γνωρίζετε για τον αντικειμενοστραφηπρογραμματισμο;Είναι μια μέθοδος για τη δόμηση ενός προγράμματος σε ιεραρχικά οργανωμένες τάξειςπου περιγράφουν τα δεδομένα και τις λειτουργίες αντικειμένων.Ο αντικειμενοστραφής προγραμματισμός έχει ως πρωτεύοντα δομικά στοιχεία ενός προγράμματος

τα δεδομένα τα οποία δομεί σε αντικείμενα που περιλαμβάνουν τα δεδομένα και τις επιτρεπτές ενέργειες σε αυτά.

Αποδείχθηκε ότι αυτή η σχεδίαση επιφέρει καλύτερα αποτελέσματα,αφού τα προγράμματα που δημιουργούνται είναι πιο ευέλικτα και επαναχρησιμοποιήσιμα.Κατά τη δημιουργία ενός αντικειμενοστρεφούς προγράμματος προκύπτουν αρκετά και δύσκολα ερωτήματα, όπως για παράδειγμα ″Πως προσδιορίζουμε και περιγράφουμε ένα αντικείμενο;″,″Πως τα αντικείμενα συσχετίζονται μεταξύ τους;″ κα.

Page 27: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Τι είναι ο παράλληλος προγραμματισμός;

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

1. Οι Η/Υ διαθέτουν περισσότερους από ένα επεξεργαστές, οι οποίοι μοιράζονται την ίδια μνήμη.2. Οι επεξεργαστές λειτουργούν παράλληλα, εκτελώντας διαφορετικές εντολές του ιδίου

προγράμματος.3. Οι Η/Υ πετυχαίνουν υψηλές ταχύτητες, σε σχέση με τους απλούς υπολογιστές με έναν επεξεργαστή.

4. Το πρόγραμμαδιαιρείται σε τμήματα που εκτελούνται παράλληλα.

5. Απαιτείται η ύπαρξη ενός προγραμματιστικού περιβάλλοντος και μιας γλώσσας προγραμματισμού που υποστηρίζει παράλληλο προγραμματισμό, πχ OCCAM.

Page 28: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Τι είναι ο ΣΥΝΤΑΚΤΗΣ (editor) ενός προγράμματος;Για τη γραφή και τροποποίηση των προγραμμάτων

χρησιμοποιείται ένα ειδικό πρόγραμμα που ονομάζεται συντάκτης(editor).Ο συντάκτης είναι ουσιαστικά ένας επεξεργαστής κειμένουμε περιορισμένες δυνατότητες ,

αρκετές όμως για την γραφή εντολών του προγράμματος.

Page 29: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Τι είναι ο μεταγλωττιστής και τι ο διερμηνευτής μιας γλώσσας προγραμματισμού;

Ομεταγλωττιστής (compiler) είναι ένα πρόγραμμα του υπολογιστή, το οποίο δέχεται σαν είσοδο ένα πρόγραμμα γραμμένο σε μια γλώσσα υψηλού επιπέδου και παράγει ένα ισοδύναμο πρόγραμμα σε γλώσσα μηχανής.

Οδιερμηνευτής (interpreter) είναι ένα πρόγραμμα

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

Page 30: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Ποια τα χαρακτηριστικά ενός μεταγλωττιστή και ενός διερμηνευτή;

Μεταγλωττιστήςcompiler

∆ιερμηνευτήςinterpreter

Μεταφράζει όλο το πηγαίο πρόγραμμα σε γλώσσα μηχανήςκαι κατόπιν το εκτελεί.

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

Εμφανίζει κατάλληλα ενημερωτικά μηνύματα για τα λάθη όλου του προγράμματος.

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

Τα μηνύματα λαθών δεν προσδιορίζουν με ακρίβεια τα σημεία σε ένα πρόγραμμα που υπάρχουν λάθη.

Έχουμε το πλεονέκτημα της άμεσης εκτέλεσηςκαι άμεσης διόρθωσης μιας εντολής.

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

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

Page 31: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Τι ονομάζεται πηγαίο(source) και τι αντικείμενο (object)πρόγραμμα;

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

πηγαίο πρόγραμμα

αντικείμενοπρόγραμμα

Page 32: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Τι ονομάζεται συνδετησ-φορτωτησ(Linker-loader) και ποιο το αποτέλεσμα της χρήσης του;Το αντικείμενο-πρόγραμμα (Linker-loader) που προκύπτει από τον μεταγλωττιστή ,παρόλο που είναι κατανοητό από τον Η/Υδεν μπορεί να εκτελεστείγιατί χρειάζεται

να συμπληρωθεί και να συνδεθεί

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

Μεταγλωττιστής

Βιβλιοθήκες

συνδέτης-φορτωτήςΑρχικόΠρόγραμμα

Αντικείμενο

ΕκτελέσιμοΠρόγραμμα

Page 33: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Να περιγραφεί η διαδικασία μεταγλώττισης & σύνδεσης ενός προγράμματος.Η διαδικασία μεταγλώττισης και εκτέλεσης ενός προγράμματος είναι η εξής:

1. Το αρχικό πρόγραμμα , το οποίο δημιουργείται στο συντάκτη

ΑρχικόΠρόγραμμα

λέγεται πηγαίο πρόγραμμα

ΠηγαίοΠρόγραμμα

, ενώ το πρόγραμμά που παράγεται από το μεταγλωττιστή

Μεταγλωττιστής

λέγεται αντικείμενο πρόγραμμα.

Αντικείμενο

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

Page 34: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Να περιγραφεί η διαδικασία μεταγλώττισης & σύνδεσης ενός προγράμματος.Η διαδικασία μεταγλώττισης και εκτέλεσης ενός προγράμματος είναι η εξής:

3. Το αντικείμενο πρόγραμμα , είναι σε μορφή κατανοητή από τον Η/Υ, αλλά πρέπει να συνδεθεί με άλλα προγράμματα απαραίτητα για την εκτέλεση του.

ΑρχικόΠρόγραμμα

ΠηγαίοΠρόγραμμα

Μεταγλωττιστής Αντικείμενο

Βιβλιοθήκες

Τα τμήματα αυτά τα γράφει ο προγραμματιστής ή βρίσκονται στις βιβλιοθήκες της γλώσσας προγραμματισμού.

συνδέτης-φορτωτής

4. Τη διαδικασία αυτή την αναλαμβάνει ο συνδέτης-φορτωτής.

ΕκτελέσιμοΠρόγραμμα

5. Το αποτέλεσμα του συνδέτη ,είναι η παραγωγή του εκτελέσιμου προγράμματος, το οποίο είναι το τελικό πρόγραμμα που εκτελείται από τον Η/Υ.

Page 35: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Ποια είναι τα προγράμματα και τα εργαλεία που περιέχει ένα προγραμματιστικό περιβάλλον; Ένα προγραμματιστικό περιβάλλον περιέχει τουλάχιστον τρία προγράμματα:

τον συντάκτη,τον μεταγλωττιστή,και τον συνδέτη.

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

Page 36: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

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

Αλγόριθμος Μη-Δομημένος

Τέλος Μη-Δομημένος

Αν συνθήκηΑ τότε

Αν συνθήκηΒ τότε

πήγαινε στην εντολήΓεντολήΑ

Τέλος_ανεντολήΒεντολήΓπήγαινε στην αρχή

Τέλος_αν

Ο αλγόριθμος αυτός χρησιμοποιεί την εντολή “πήγαινε”με αποτέλεσμα να μην ακολουθεί τις αρχές του δομημένου προγραμματισμού.Θα πρέπει ο αλγόριθμος να τροποποιηθεί και οι εντολές “πήγαινε” να εξαφανιστούν,χωρίς να αλλάξει και η σειρά των υπολοίπων εντολών.

Page 37: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

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

Αλγόριθμος Μη-Δομημένος

Τέλος Μη-Δομημένος

Αν συνθήκηΑ τότε

Αν συνθήκηΒ τότε

πήγαινε στην εντολήΓεντολήΑ

Τέλος_ανεντολήΒεντολήΓπήγαινε στην αρχή

Τέλος_αν

1ο Βήμα: Εξαφάνιση του πήγαινε στην εντολήΓΗ εντολήΑ εκτελείται,όταν η συνθήκηΒ είναι αληθής.ενώ η εντολήΒ εκτελείται μόνο όταν η συνθήκηΒ είναι ψευδής.Η εντολήΓ εκτελείται, ανεξάρτητα από την συνθήκηΒ, και να ισχύει και να μην ισχύει.

Page 38: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

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

Αλγόριθμος Μη-Δομημένος

Τέλος Μη-Δομημένος

Αν συνθήκηΑ τότε

Αν συνθήκηΒ τότε

πήγαινε στην εντολήΓεντολήΑ

Τέλος_ανεντολήΒεντολήΓπήγαινε στην αρχή

Τέλος_αν

1ο Βήμα: Εξαφάνιση του πήγαινε στην εντολήΓΆρα ο αλγόριθμος τροποποιείται ως εξής:

Αλλιώς

Τέλος_αν

Page 39: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

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

Αλγόριθμος Μη-Δομημένος

Τέλος Μη-Δομημένος

Αν συνθήκηΑ τότε

Αν συνθήκηΒ τότε

εντολήΑ

εντολήΒ

εντολήΓπήγαινε στην αρχή

Τέλος_αν

Τέλος_αν

Αλλιώς

2ο Βήμα: Εξαφάνιση του πήγαινε στην αρχήΌσο η συνθήκηΑ είναι αληθής,η εντολή πήγαινε στην αρχή θα εκτελείται, οπότε θα έχουμε επανάληψη.Η επανάληψη θα σταματήσει όταν η συνθήκηΑ γίνει ψευδής.Όλα αυτά μας θυμίζουν την δομή επανάληψης Όσο…επανέλαβε.

Page 40: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

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

Αλγόριθμος

Τέλος

Αν συνθήκηΑ τότε

Αν συνθήκηΒ τότε

εντολήΑ

εντολήΒ

εντολήΓπήγαινε στην αρχή

Τέλος_αν

Τέλος_αν

Αλλιώς

2ο Βήμα: Εξαφάνιση του πήγαινε στην αρχήΟ τροποποιημενος αλγόριθμος είναι:

Τελος_επαναλψης

Όσο επανέλαβε

Μη-Δομημένος

Μη-Δομημένος

Δομημένος

Δομημένος

Page 41: Εισαγωγή στον προγραμματισμό-Γλώσσα Μηχανής-Συμβολομεταφραστής-Αντικειμενοστραφής Κεφ6ο

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

Επικοινωνία:[email protected]