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

Σχετικά έγγραφα
Επιµέλεια Θοδωρής Πιερράτος

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 10 ο Υποπρογράµµατα

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

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

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

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

ΑΕΠΠ ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 6.3 Φυσικές και Τεχνιτές Γλώσσες 6.4 Τεχνικές Σχεδίασης Προγραμμάτων

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

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

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα.

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

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

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

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

6.3 Φυσικές και τεχνητές γλώσσες

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

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

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

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ )

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Ονοματεπώνυμο: Βαθμός:

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

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

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

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

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

Μεταγλωττιστής. Μεταφραστές. Γλώσσες. Είδη Μεταγλωττιστών. Μεταγλωττιστής Τελικό πρόγραµµα (object program) Εισαγωγή Αρχικό πρόγραµµα (source program)

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

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

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

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

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

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 1 Ο. Εισαγωγή στις έννοιες Πρόβλημα, Αλγόριθμος, Προγραμματισμός, Γλώσσες Προγραμματισμού

Κεφάλαιο 10ο. ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ιαδικασίες - Συναρτήσεις

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

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

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

Δομημένος Προγραμματισμός

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

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

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Διάρκεια 3 ώρες. Όνομα... Επώνυμο... Βαθμός...

A) Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1-10 και δίπλα τη λέξη Σωστό, αν είναι σωστή, ή τη λέξη Λάθος, αν είναι

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

1. Τι ονομάζουμε αλγόριθμο; Δώστε παράδειγμα.

Επικοινωνία:

III. Πως μετατρέπεται το πηγαίο πρόγραμμα σε εκτελέσιμο πρόγραμμα;

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

Transcript:

κ ε φ ά λ α ι ο 7 0 Α. Θ Ε Ω Ρ Ι Α 7. 1. Η έ ν ν ο ι α τ ο υ π ρ ο γ ρ ά µ µ α τ ο ς Συνοπτική αναφορά βηµάτων επίλυσης ενός προβλήµατος: Ακριβής προσδιορισµός προβλήµατος Ανάπτυξη αντίστοιχου αλγορίθµου Τροποποίηση αλγορίθµου σε µορφή κατανοητή από τον υπολογιστή Με αυτό το στάδιο επίλυσης προβλήµατος ασχολείται ο προγραµµατισµός. Προγραµµατισµός: Είναι η διαδικασία κατά την οποία ένα σύνολο εντολών δίνεται στον υπολογιστή, προκειµένου να επιλυθεί ένα πρόβληµα µε βάση τον αλγόριθµο που έχει ήδη αναπτυχθεί. Πρόγραµµα: Υλοποίηση του αλγορίθµου, µε τη σύνταξη των προαναφερόµενων εντολών σε κάποια γλώσσα προγραµµατισµού, χρησιµοποιώντας κατάλληλα δεδοµένα και δοµές δεδοµένων. π α ρ α τ ή ρ η σ η Ο υπολογιστής, αν και φαινοµενικά αποτελεί έξυπνη µηχανή, στην ουσία είναι απλός εκτελεστής των εντολών που του δίνονται µέσα από ένα πρόγραµµα. Αυτό που καταλαβαίνει είναι δύο καταστάσεις, οι οποίες χαρακτηρίζονται από το µηδέν και το ένα (Ψηφία υαδικού Συστήµατος 0 και 1). Βάσει ακολουθιών των δυαδικών αυτών ψηφίων, τις οποίες και αποθηκεύει στη µνήµη, εκτελεί απλές ενέργειες πάνω σε αυτές (αριθµητικές πράξεις, συγκρίσεις κ.τ.λ.) 7. 2. Ι σ τ ο ρ ι κ ή Α ν α δ ρ ο µ ή Α. ΥΛΙΚΟ Πρώτοι υπολογιστές : Τεράστιο µέγεθος Ελάχιστες δυνατότητες Μικρές ταχύτητες Υπολογιστές τελευταίας τεχνολογίας: Μικρό µέγεθος Τεράστιες δυνατότητες Ασύλληπτες ταχύτητες Β. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΑΣ Παρά την εξέλιξη και βελτίωση του hardware (υλικό) και του software (λογισµικό), οι βασικές αρχές λειτουργίες, οι ιδιότητες και τα κύρια χαρακτηριστικά τους, όπως διατυπώθηκαν από τον Φον Νόυµαν γύρω στο 1945, παραµένουν σχεδόν τα ίδια. Γ. ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναπτύχθηκαν µε σκοπό την επικοινωνία µεταξύ ανθρώπου και Η/Υ ΕΝ ΥΝΑΜΕΙ 189

7. 1. 1. Γ λ ώ σ σ ε ς Μ η χ α ν ή ς Ορισµός προγράµµατος σε γλώσσα µηχανής : Ακολουθία δυαδικών ψηφίων, οι οποίες δίνονται στον υπολογιστή (επεξεργαστή) ως εντολές για την εκτέλεση στοιχειωδών ενεργειών. Μειονέκτηµα γλώσσας µηχανής : Αποτελείται από εντολές σε µορφή άµεσα κατανοητή από τον υπολογιστή (ακολουθίες δυαδικών ψηφίων), αλλά ακατανόητη από τον άνθρωπο => Μεγάλη δυσκολία στην υλοποίηση, και µόνο από άριστους γνώστες της αρχιτεκτονικής του υπολογιστή Πρώτος Υπολογιστής (στον οποίο εφαρµόσθηκε η γλώσσα µηχανής): ΕΝΙΑC Σε κάθε νέο υπολογισµό αναδιαρθρωνόταν 7. 2. 2 Συµβολικές Γλώσσες ή Γλώσσες Χαµηλού Επιπέδου Ορισµός προγράµµατος σε συµβολική γλώσσα : Ακολουθία εντολών µε συµβολικά ονόµατα, καθένα από τα οποία αντιστοιχεί σε µια εντολή της γλώσσας µηχανής. Κατά την εκτέλεση του προγράµµατος, κάθε εντολή σε συµβολική γλώσσα µεταφράζεται µέσω του συµβολοµεταφραστή στην αντίστοιχη εντολή σε γλώσσας µηχανής. Πλεονέκτηµα Συµβολικής Γλώσσας: Η µορφή των εντολών είναι κατανοητή από τον άνθρωπο, άρα και εύκολη στην αποµνηµόνευση Μειονεκτήµατα Συµβολικής Γλώσσας: - Η µορφή κάθε συµβολικής γλώσσας εξαρτάται από την αρχιτεκτονική του υπολογιστή. - Οι εντολές αφορούν µόνο απλές λειτουργίες => Μεγάλο µέγεθος προγραµµάτων, που τα καθιστά δύσκολα στη σύνταξη και τη συντήρηση - Έλλειψη µεταφερσιµότητας : Αδυναµία µεταφοράς ενός προγράµµατος σε άλλο υπολογιστή, λόγω της εξάρτησής του από την αρχιτεκτονική κάθε υπολογιστή 7. 2. 3 Γ λ ώ σ σ ε ς Υ ψ η λ ο ύ Ε π ι π έ δ ο υ Ορισµός προγράµµατος σε γλώσσα υψηλού επιπέδου: Ακολουθία εντολών, οι οποίες αντιπροσωπεύονται από απλές λέξεις της αγγλικής γλώσσας και βασίζονται σε αυστηρούς κανόνες σύνταξης. Κάθε τέτοια εντολή µεταφράζεται στην αντίστοιχη εντολή σε γλώσσα µηχανής, µέσω ενός ειδικού προγράµµατος που ονοµάζεται µεταγλωττιστής (compiler). Ένα πρόγραµµα σε γλώσσα υψηλού επιπέδου µπορεί να εκτελεστεί σε οποιοδήποτε υπολογιστή, αρκεί αυτός να διαθέτει τον αντίστοιχο µεταγλωττιστή. 190 ΕΝ ΥΝΑΜΕΙ

Πλεονεκτήµατα Γλωσσών Υψηλού Επιπέδου - Ο πιο φυσικός και πιο κατανοητός προς τον άνθρωπο τρόπος έκφρασης και επίλυσης των προβληµάτων - Η ανεξαρτησία από τον τύπο και την αρχιτεκτονική του υπολογιστή => υνατότητα µεταφερσιµότητας των προγραµµάτων από ένα υπολογιστή σε άλλο, µε ελάχιστες έως ανύπαρκτες τροποποιήσεις - Η ευκολία εκµάθησης και εκπαίδευσης πάνω σε αυτές λόγω των προαναφεροµένων - Η ευκολία στη διόρθωση λαθών και τη συντήρηση προγραµµάτων Λόγω των παραπάνω οι γλώσσες υψηλού επιπέδου έχουν µειώσει κατά πολύ το χρονικό και οικονοµικό-υπολογιστικό κόστος παραγωγής προγραµµάτων Βασικές Γλώσσες Υψηλού Επιπέδου: 1. FORTRAN (FORΜula TRANslation Μετάφραση Τύπων) - Είναι η πρώτη γλώσσα υψηλού επιπέδου. - Είναι κατάλληλη για την επίλυση µαθηµατικών και επιστηµονικών προβληµάτων, αλλά υστερεί στη διαχείριση αρχείων δεδοµένων και αλφαριθµητικών πληροφοριών 2. COBOL (Common Business Oriented Language - Κοινή Γλώσσα Προσανατολισµένη στις Επιχειρήσεις) - Είναι κατάλληλη για ανάπτυξη εµπορικών εφαρµογών, γι αυτό και χρησιµοποιήθηκε από πολλές επιχειρήσεις και από τη δηµόσια διοίκηση 3. ALGOL (ΑLGOrithmic Language Αλγοριθµική Γλώσσα) - Στόχευε στη δηµιουργία µιας γλώσσας που να επιλύει προβλήµατα γενικής φύσης, και όχι ενός συγκεκριµένου τοµέα - Επηρέασε τις επόµενες γλώσσες, αλλά η ίδια εφαρµόσθηκε ελάχιστα στην πράξη 4. PL / 1 (Programming Language/1 - Γλώσσα Προγραµµατισµού υπ αριθµόν 1) - Προσπάθησε ανεπιτυχώς να επεκταθεί σε όλους τους τοµείς προγραµµατσιµού, και να αντικαταστήσει τις FΟRTRAN και COBOL 5. LISP (List Processor Επεξεργαστής Λίστας) - Είναι µη διαδικασιακή γλώσσα και ασχολείται µε το χειρισµό και την επεξεργασία λιστών που αποτελούνται από σύµβολα, χρησιµοποιώντας ως βασικό τύπο δεδοµένων τη συνδεδεµένη λίστα 6. PROLOG (PROgramming LOGic Λογικός Προγραµµατισµός) - Όπως και η LISP, είναι γλώσσα διαφορετική από τις άλλες, και χρησιµοποιείται στο χώρο της Τεχνητής Νοηµοσύνης (επεξεργασία φυσικών γλωσσών, παιχνίδια, ΕΝ ΥΝΑΜΕΙ 191

συστήµατα ευφυών πρακτόρων κ.τ.λ.) 7. BASIC (Beginner s All Purpose Symbolic Instruction Code Συµβολικός Κώδικας Εντολών Γενικής Χρήσης για Αρχάριους) - Αναπτύχθηκε τη δεκαετία του 1960, αρχικά για εκπαιδευτικούς σκοπούς, δηλαδή ως γλώσσα για την εκµάθηση του προγραµµατισµού (εκπαίδευση) σε αρχάριους - Σκοπός της ήταν η σύνταξη µικροσκελών προγραµµάτων, η εκτέλεση των οποίων γίνεται µέσω διερµηνευτή (interpreter) - Χαρακτηριστικό της είναι η αρίθµηση των γραµµών του προγράµµατος, ώστε να διευκολύνεται και ο τρόπος σύνταξης των εντολών 8. LOGO (Προέρχεται από τη λέξη «λόγος») - Είναι γλώσσα κατάλληλη για την εισαγωγή µαθητών µικρής ηλικίας στην έννοια του προγραµµατισµού 9. PASCAL - Είναι κατάλληλη για τη δηµιουργία προγραµµάτων που βασίζονται στο δοµηµένο προγραµµατισµό - Έχει εξαπλωθεί πολύ, ιδιαίτερα στο χώρο των µικροϋπολογιστών, και χρησιµοποιείται και σήµερα 10. C - Χρησιµοποιήθηκε για την ανάπτυξη του λειτουργικού συστήµατος UNIX - Είναι διαδικασιακή γλώσσα γενικής χρήσης, µε κάποια χαρακτηριστικά κοινά µε τη γλώσσα Ρascal, κατάλληλη για ανάπτυξη δοµηµένων προγραµµάτων, αλλά και µε πολλές δυνατότητες γλώσσας χαµηλού επιπέδου - Χρησιµοποιείται για τη δηµιουργία λειτουργικών συστηµάτων - Εξελίχθηκε στη γλώσσα C++, η οποία είναι γλώσσα αντικειµενοστραφής µε πολλές δυνατότητες 11. JAVA - Είναι αντικειµενοστραφής γλώσσα - Χρησιµοποιείται για προγραµµατισµό στο ιαδίκτυο Η δηµιουργία γραφικών περιβαλλόντων εργασίας είχε ως αποτέλεσµα την ανάπτυξη προγραµµάτων που βασίζονται στην επικοινωνία χρήστη-υπολογιστή µε γραφικό τρόπο. Έτσι δηµιουργήθηκαν γλώσσες προγραµµατισµού, βασιζόµενες στις ακόλουθες νέες κατηγορίες προγραµµατισµού: (i) Visual Programming (Οπτικός προγραµµατισµός) : Ο προγραµµατι-σµός που βασίζεται στη δηµιουργία του περιβάλλοντος µιας εφαρµογής µε γραφικό τρόπο, όπως είναι τα µενού, τα κουµπιά κ.τ.λ. (ii) Event-driven Programming (Οδηγούµενος από το γεγονός προγραµµατισµός) : Ο προγραµµατισµός που βασίζεται στην ενεργοποίηση λειτουργιών ενός προγράµµατος ύστερα από την εκτέλεση ενός γεγονότος, όπως για παράδειγµα µετά το κλικ µε το ποντίκι πάνω σε ένα κουµπί. - Οι γλώσσες που έχουν αναπτυχθεί για τέτοιου είδους γραφικές εφαρµογές είναι: Java, Visual C++, Visual Basic, Delphi. 192 ΕΝ ΥΝΑΜΕΙ

7. 2. 4. Γ λ ώ σ σ ε ς 4 η ς γ ε ν ι ά ς Ορισµός γλωσσών 4 ης γενιάς: Οι γλώσσες προγραµµατισµού που δίνουν τη δυνατότητα στο χρήστη να επικοινωνεί σχετικά εύκολα µε το σύστηµα, είτε υποβάλλοντας ερωτήσεις σε αυτό είτε δηµιουργώντας εφαρµογές για την ανάκτηση πληροφοριών από βάσεις δεδοµένων και την εµφάνισή τους κατά τρόπο που εκείνος καθορίζει. Μια χαρακτηριστική γλώσσα 4 ης γενιάς είναι η SQL, µε την οποία ο χρήστης µπορεί για παράδειγµα να δει στην οθόνη του πόσοι και ποιοι άνθρωποι από µια συγκεκριµένη βάση δεδοµένων έχουν ηλικία πάνω από 25 ετών, έχοντας υποβάλει τη σχετική ερώτηση σε SQL 7. 2. 5 Τ Α Ξ Ι Ν Ο Μ Η Σ Η Γ Λ Ω Σ Σ Ω Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Τ Ι Σ Μ Ο Υ Οι γλώσσες προγραµµατισµού ταξινοµούνται σε πολλές κατηγορίες, ανάλογα µε το κριτήριο διαχωρισµού τους. Έτσι οι γλώσσες προγραµµατισµού Α) µε βάση τη δοµή τους διακρίνονται σε: 1. ιαδικασιακές (Procedural) ή Αλγοριθµικές Γλώσσες: Σε αυτή την κατηγορία ανήκουν οι περισσότερες γλώσσες, γιατί είναι σχεδιασµένες για την υλοποίηση αλγορίθµων 2. Αντικειµενοστραφείς Γλώσσες (Object-oriented languages) 3. Συναρτησιακές Γλώσσες (Functional Languages), όπως η LISP 4. Μη ιαδικασιακές Γλώσσες (Non-Procedural Languages), όπως η PROLOG 5. Γλώσσες Ερωταπαντήσεων (Query Languages), όπως η SQL Β) Με βάση την περιοχή χρήσης τους, διακρίνονται σε : 1. Γλώσσες Γενικής Χρήσης : Είναι οι γλώσσες που (θεωρητικά) έχουν τη δυνατότητα επίλυσης όλων των ειδών προβληµάτων. Στην πράξη όµως κάθε γλώσσα είναι καλύτερη σε ένα συγκεκριµένο τοµέα προβληµάτων (µε εξαίρεση ορισµένες γλώσσες που είναι εξίσου καλές σε όλους τους τοµείς, όπως η Basic, Pascal κ.ά.). Έτσι οι γλώσσες γενικής χρήσης διακρίνονται σε : (i) Γλώσσες Επιστηµονικής Κατεύθυνσης (Science-oriented Languages), όπως η FORTRAN (ii) Γλώσσες Εµπορικής Κατεύθυνσης (Business-oriented Languages), όπως η COBOL 2. Γλώσσες Προγραµµατισµού Συστηµάτων (System Programming Languages), όπως η C 3. Γλώσσες Τεχνητής Νοηµοσύνης (Artificial Intelligence Languages), όπως η LISP και η PROLOG 4. Γλώσσες Ειδικής Χρήσης : Είναι γλώσσες που χρησιµοποιούνται σε ειδικές περιοχές εφαρµογών, όπως στα γραφικά, στα Συστήµατα ιαχείρισης Βάσεων εδοµένων κ.τ.λ. ΕΝ ΥΝΑΜΕΙ 193

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

ιαφορές µεταξύ φυσικών και τεχνητών γλωσσών: Έχουν διαφορετική δυνατότητα εξέλιξης. Συγκεκριµένα : - Οι φυσικές γλώσσες εξελίσσονται διαρκώς και προσαρµόζονται στα νέα δεδοµένα κάθε εποχής και κοινωνίας. - Αντίθετα, οι τεχνητές γλώσσες, επειδή ο σκοπός κατασκευής τους είναι συγκεκριµένος, είναι στάσιµες. Παρά το γεγονός αυτό, όσον αφορά τις γλώσσες προγραµµατισµού, προκύπτουν συνεχώς νέες, βελτιωµένες εκδόσεις τους, ώστε να διορθωθούν λάθη των προηγούµενων εκδόσεων, αλλά και να καλυφθεί µεγαλύτερος εύρος εφαρµογών, µια και οι ανάγκες είναι ολοένα αυξανόµενες. Αυτή η µεταβολή γίνεται είτε σε επίπεδο διαλέκτου (π.χ. GW-Basic και QuickBasic), οπότε αλλάζει το λεξιλόγιο, είτε σε επίπεδο επέκτασης (π.χ. Basic και Visual Basic), οπότε η νέα έκδοση έχει τα στοιχεία της προηγούµενης, αλλά και αρκετά νέα. 7.4. Tεχνικές σχεδίασης προγραµµάτων Αναπτύσσονται διαρκώς µεθοδολογίες και τεχνικές προγραµµατισµού, εύκολες στην κατανόηση και την υλοποίηση. Οι βασικότερες από αυτές είναι : 7. 4. 1. Ι ε ρ α ρ χ ι κ ή σ χ ε δ ί α σ η π ρ ο γ ρ ά µ µ α τ ο ς Είναι η τεχνική που βασίζεται στη συνεχή διαίρεση ενός προβλήµατος σε υποπροβλήµατα κ.οκ., τα οποία επιλύονται εύκολα και οδηγούν στην επίλυση του αρχικού προβλήµατος. Ονοµάζεται και σχεδίαση «από επάνω προς τα κάτω» (top-down program design), γιατί περιλαµβάνει τον καθορισµό των βασικών λειτουργιών σε ανώτερο επίπεδο, και στη συνέχεια τη διάσπαση των λειτουργιών αυτών σε ολοένα µικρότερες, άρα απλούστερες, µέχρι και το τελευταίο επίπεδο, στο οποίο οι λειτουργίες είναι πολύ απλές, άρα και εύκολα υλοποιήσιµες. 7. 4. 2. Τ µ η µ α τ ι κ ό ς π ρ ο γ ρ α µ µ α τ ι σ µ ό ς Τµηµατικός προγραµµατισµός ονοµάζεται η τεχνική σχεδίασης και ανάπτυξης των προγραµµάτων ως ένα σύνολο από απλούστερα τµήµατα προγραµµατων Αποτελεί την υλοποίηση της ιεραρχικής σχεδίασης : Μετά την ιεραρχική σχεδίαση (top-down προσέγγιση), κάθε υποπρόβληµα αποτελεί ανεξάρτητη ενότητα, άρα και η επίλυσή του πραγµατοποιείται σε ξεχωριστό τµήµα του προγράµµατος, δηλαδή από κάθε υποπρόβληµα δηµιουργείται και ένα υποπρόγραµµα, δηλαδή σχεδιάζεται και ένας µικρός αλγόριθµος. Ο τελικός αλγόριθµος του προβλήµατος ανάγεται σ αυτούς τους επιµέρους µικρούς αλγορίθµους (bottom up υλοποίηση). ΕΝ ΥΝΑΜΕΙ 195

ΠΛΕΟΝΕΚΤΗΜΑΤΑ ΤΜΗΜΑΤΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ιευκολύνει την ανάπτυξη αλγορίθµου και του αντίστοιχου προγράµµατος ιευκολύνει την κατανόηση και διόρθωση του προγράµµατος. Το ουσιαστικό πλεονέκτηµα είναι ότι λόγω της τµηµατοποίησης, αλλαγές σε κάποιο συγκεκριµένο τµήµα δεν επηρεάζουν όλο το υπόλοιπο πρόγραµµα. Απαιτεί λιγότερο χρόνο και προσπάθεια στη συγγραφή του προγράµµατος. Αυτό συµβαίνει επειδή κάποια λειτουργία µπορεί να χρειάζεται σε πολλά µέρη του υποπρογράµµατος. Επεκτείνει τις δυνατότητες των γλωσσών προγραµµατισµού. Ένα τµήµα προγράµµατος (υποπρόγραµµα) µπορεί να ενσωµατωθεί σε διάφορα προγράµµατα. 7. 4. 3. ο µ η µ έ ν ο ς π ρ ο γ ρ α µ µ α τ ι σ µ ό ς Η ανάπτυξη του δοµηµένου προγραµµατισµού ξεκίνησε το 1964, µέσα από ένα συνέδριο στο οποίο παρουσιάστηκαν οι βασικές αρχές του. Στηρίχθηκε α) στην ιεραρχική σχεδίαση, β) στον τµηµατικό προγραµµατισµό και γ) στην αποφυγή της εντολής GOTO Λόγος ανάπτυξης δοµηµένου προγραµµατισµού υπήρξε η ανάγκη ύπαρξης µιας µεθοδολογίας κοινής για την ανάπτυξη των προγραµµάτων, αλλά και η ανάγκη περιορισµού της ανεξέλεγκτης χρήσης των εντολών GOTO στα προγράµµατα. Ο δοµηµένος προγραµµατισµός αποτελεί µια µεθοδολογία σύνταξης προγραµµάτων που αποσκοπεί στο να βοηθήσει τον προγραµµατιστή στην ανάπτυξη σύνθετων προγραµµάτων, στη µείωση των λαθών, στη µεγαλύτερη κατανόηση των προγραµµάτων, και στην ευµεταβλητότητα των προγραµµάτων (ευκολία στις διορθώσεις και αλλαγές). Το βασικό χαρακτηριστικό του είναι ότι βασίζεται στη χρήση τριών λογικών δοµών => οµή ακολουθίας - οµή επιλογής - οµή επανάληψης. Όλα τα προγράµµατα µπορούν να υλοποιηθούν χρησιµοποιώντας µόνο αυτές τις δοµές ή συνδυασµούς τους. Κάθε πρόγραµµα (και κάθε τµήµα ή ενότητα προγράµµατος) έχει µόνο µία είσοδο και µία έξοδο. Σήµερα ο δοµηµένος προγρ/σµός έχει επικρατήσει απόλυτα και αποτελεί τη βασική µεθοδολογία των περισσότερων γλωσσών προγραµµατισµού. Βοηθά στην ανάλυση ενός προγράµµατος σε υποπρογράµµατα, γι αυτό και περιλαµβάνει τόσο την ιεραρχική σχεδίαση όσο και τον τµηµατικό προγραµµατισµό. Πλεονεκτήµατα δοµηµένου προγραµµατισµού : - ηµιουργία απλούστερων προγραµµάτων -Άµεση µεταφορά αλγορίθµων σε προγράµµατα - ιευκόλυνση ανάλυσης (διαίρεσης) κάθε προγράµµατος σε τµήµατα (υποπρογράµµατα) -Μείωση λαθών 196 ΕΝ ΥΝΑΜΕΙ

- ιευκόλυνση στην ανάγνωση και κατανόηση ενός προγράµµατος από τρίτους -Ευκολία στη διόρθωση και τη συντήρηση προγραµµάτων GOTO Με την εντολή αυτή η ροή του προγράµµατος αλλάζει, και αντί να πηγαίνει στην επόµενη εντολή, µεταφέρεται στη γραµµή του προγράµµατος που δείχνει η εντολή GOTO µε συνέπεια να καταλύεται η λογική δοµή του αλγορίθµου. Αν και σήµερα όλες σχεδόν οι γλώσσες υποστηρίζουν το δοµηµένο προγραµµατισµό, κάποιες διαθέτουν ακόµα την εντολή GOTO, για να είναι συµβατές µε παλιότερες εκδόσεις τους και µε παλιότερα προγράµµατα. 7. 5. Α ν τ ι κ ε ι µ ε ν ο σ τ ρ α φ ή ς π ρ ο γ ρ α µ µ α τ ι σ µ ό ς ( o b j e c t - o r i e n t e d p r o g r a m m i n g ) Βασική ιδέα αντικειµενοστραφούς προγραµµατισµού : Το γεγονός ότι κάθε πρόγραµµα στην ουσία περιγράφει «ενέργειες» που εκτελούνται σε δεδοµένα (επεξεργασία δεδοµένων και παραγωγή αποτελεσµάτων) Η διαφορά του αντικειµενοστραφούς προγρ/σµού από άλλες τεχνικές προγρ/ σµού είναι ότι το πρώτο είδος βασίζει τη δοµή ενός προγράµµατος περισσότερο στα δεδοµένα παρά στις «ενέργειες», ενώ οι υπόλοιπες τεχνικές το αντίθετο. Η Αντικειµενοστραφής σχεδίαση χρησιµοποιεί τα δεδοµένα ως πρωτεύοντα δοµικά στοιχεία, από τα οποία δηµιουργεί τα αντικείµενα (objects) µε µορφοποιηµένο τρόπο µε αποτέλεσµα τη δηµιουργία ευέλικτων και επαναχρησιµοποιήσιµων προγραµµάτων. Ο αντικειµενοστραφής προγρ/σµός χρησιµοποιεί την ιεραρχική σχεδίαση, τον τµηµατικό προγρ/σµό και βασίζεται στις αρχές του δοµηµένου προγρ/σµού. 7. 6. Π α ρ ά λ λ η λ ο ς π ρ ο γ ρ α µ µ α τ ι σ µ ό ς Η ιδέα ξεκίνησε πρόσφατα, µε την εµφάνιση υπολογιστών, καθένας από τους οποίους διαθέτει περισσότερους από έναν επεξεργαστές, οι οποίοι λειτουργούν παράλληλα, εκτελούν εντολές του ίδιου προγράµµατος και µοιράζονται την ίδια µνήµη. Οι υπολογιστές αυτοί πετυχαίνουν πολύ µεγαλύτερες ταχύτητες από τους κλασικούς υπολογιστές, διαιρώντας ταυτόχρονα το πρόβληµα σε υποπροβλήµατα. Ο παράλληλος προγραµµατισµός, λοιπόν, είναι η µορφή προγραµµατισµού που εφαρµόζεται σε Η/Υ που διαθέτουν περισσότερους από έναν επεξεργαστές. 7. 7. Π ρ ο γ ρ α µ µ α τ ι σ τ ι κ ά π ε ρ ι β ά λ λ ο ν τ α Προκειµένου ένα πρόγραµµα από γλώσσα 3 ης γενιάς να µετατραπεί σε εκτελέσιµο δηλαδή να διορθωθεί από λάθη και να µετατραπεί σε γλώσσα µηχανής, χρησιµοποιούνται τα εξής προγραµµατιστικά περιβάλλοντα: ΕΝ ΥΝΑΜΕΙ 197

1. Συντάκτης (Editor) : Το πρόγραµµα που δηµιουργεί το περιβάλλον στο οποίο γίνεται η σύνταξη του αρχικού προγράµµατος και η διόρθωσή του ( ηµιουργία προγράµµατος) 2. Μεταγλωττιστής : Το µεταφραστικό πρόγραµµα που δέχεται ως είσοδο ένα πρόγραµµα σε γλώσσα υψηλού επιπέδου και παράγει στην έξοδο ένα ισοδύναµο πρόγραµµα σε γλώσσα µηχανής, το οποίο είναι ανεξάρτητο από το αρχικό, και εκτελέσιµο ανά πάσα στιγµή. 3. Συνδέτης Φορτωτής (Linker - Loader) : Το πρόγραµµα που πραγµατοποιεί τη σύνδεση που απαιτείται να γίνει ανάµεσα στο αντικείµενο πρόγραµµα και σε άλλα τµήµατα προγράµµατος, τα οποία είτε συντάσσονται από τον προγραµµατιστή είτε είναι αποθηκευµένα σε βιβλιοθήκες (libraries) της γλώσσας => Παραγωγή του τελικού προγράµµατος που εκτελείται από τον υπολογιστή, και ονοµάζεται εκτελέσιµο (executable) πρόγραµµα. 4. ιερµηνευτής : Το µεταφραστικό πρόγραµµα που διαβάζει µία προς µία τις εντολές του αρχικού προγράµµατος σε γλώσσα υψηλού επιπέδου και εκτελεί για καθεµία µια ισοδύναµη ακολουθία εντολών σε γλώσσα µηχανής. Τα δύο βασικά µεταφραστικά προγράµµατα λοιπόν που µεταφράζουν ένα πρόγραµµα σε εντολές της γλώσσας µηχανής, προκειµένου αυτό να γίνει κατανοητό άρα και εκτελέσιµο από τον υπολογιστή είναι: µεταγλωττιστές (compilers) και διερµηνευτές (interpreters). Πηγαίο (source) είναι το αρχικό πρόγραµµα σε γλώσσα υψηλού επιπέδου, ενώ αντικείµενο (object) είναι το πρόγραµµα που παράγεται από το µεταγλωττιστή και µετά τη χρήση του συνδέτη φορτωτή προκύπτει το εκτελέσιµο πρόγραµµα. Αυτή η διαδικασία ονοµάζεται µεταγλώττιση και σύνδεση προγράµµατος AÚ ÈÎfi ÚfiÁÚ ÌÌ MÂÙ ÁψÙÈÛÙ TÂÏÈÎfi ÚfiÁÚ ÌÌ Μεταγλώττιση και σύνδεση προγράµµατος Ó ÙË Η δηµιουργία εκτελέσιµου προγράµµατος προϋποθέτει την ανυπαρξία λαθών (συντακτικών και λογικών) στο αρχικό πρόγραµµα. Ο µεταγλωττιστής ή ο διερµηνευτής πραγµατοποιεί τη λεγόµενη ανίχνευση λαθών, και εµφανίζει κατάλληλα διαγνωστικά µηνύµατα ως προς το είδος του λάθους, τη γραµµή εντολών στην οποία αυτό έχει γίνει κ.τ.λ. EÎÙÂÏ ÛÈÌÔ ÚfiÁÚ ÌÌ 198 ΕΝ ΥΝΑΜΕΙ

ιαφορές µεταγλωτιστή διερµηνευτή 1. Ο µεταγλωττιστής µετατρέπει όλο το πρόγραµµα σε γλώσσα µηχανής ενώ ο διερµηνευτής εντολή προς εντολή. 2. Με το µεταγλωττιστή, η χρησιµοποίηση ενός προγράµµατος προϋποθέτει τη µεταγλώττιση και σύνδεσή του. Από την άλλη, µε το διερµηνευτή, επειδή οι εντολές µεταφράζονται µία προς µία, η εκτέλεση, άρα και η διόρθωση είναι άµεσες. Ωστόσο αυτό συνεπάγεται πιο αργή εκτέλεση του προγράµµατος σε σχέση µε εκείνη του εκτελέσιµου προγράµµατος από το µεταγλωττιστή. Σήµερα γίνεται συνδυασµός στα προγραµµατιστικά περιβάλλοντα : Χρήση διερµηνευτή κατά τη δηµιουργία, και χρήση µεταγλωττιστή κατά την τελική έκδοση του προγράµµατος. Πέρα από την ύπαρξη του συντάκτη, του µεταγλωττιστή και του συνδέτη, κάθε προγραµµατιστικό περιβάλλον έχει τα δικά του εργαλεία και ιδιότητες.

κ ε φ ά λ α ι ο 8 0 Α. Θ Ε Ω Ρ Ι Α 8.1. Στοιχεία «Γλώσσας» Το προγραµµατιστικό εργαλείο «ΓΛΩΣΣΑ» παρουσιάζει πολλά κοινά µε την ψευδογλώσσα, κατά συνέπεια θα αναπτυχθούν σ αυτή την παράγραφο τα στοιχεία εκείνα της «ΓΛΩΣΣΑΣ» που τη διαφοροποιούν από την ψευδογλώσσα. 8. 1. 1. Α λ φ ά β η τ ο «Γ λ ώ σ σ α ς» Το αλφάβητο της γλώσσας αποτελείται από: Α) κεφαλαία και πεζά γράµµατα του ελληνικού και λατινικού αλφαβήτου Β) Ψηφία (0-9) Γ) Ειδικούς χαρακτήρες :+ - * / =. ( ),! κενό 8. 1. 2. ι α φ ο ρ έ ς ψ ε υ δ ο γ λ ώ σ σ α ς «γ λ ώ σ σ α ς» Στον παρακάτω πίνακα φαίνονται οι γενικές διαφορές µεταξύ ψευδογλώσσας και γλώσσας µέσω ενός υποθετικού αλγορίθµου. ΕΝ ΥΝΑΜΕΙ 207

8. 1. 3. Έ τ ο ι µ ε ς σ υ ν α ρ τ ή σ ε ι ς τ η ς «Γ λ ώ σ σ α ς» Οι παρακάτω συναρτήσεις µπορούν να χρησιµοποιηθούν έτοιµες στη «Γλώσσα». Στην παρένθεση φαίνονται πως κάποιες από αυτές µπορούν να εκφραστούν στην ψευδογλώσσα. ΗΜ(Χ) Υπολογισµός ηµιτόνου ΣΥΝ(Χ) Υπολογισµός συνηµιτόνου ΕΦ(Χ) Υπολογισµός εφαπτοµένης Τ_Ρ(Χ) Υπολογισµός τετραγωνικής ρίζας (Χ^(1/2)) ΛΟΓ(Χ) Υπολογισµός φυσικού λογάριθµου Ε(Χ) Υπολογισµός του e χ Α_Μ(Χ) Ακέραιο µέρος του Χ (Χdiv1) Α_Τ(Χ) Απόλυτη τιµή του Χ (Αν χ>0 τότε... ή (χ^2)^(1/2))

κ ε φ ά λ α ι ο 9 0 Α. Θ Ε Ω Ρ Ι Α - Μ Ε Θ Ο Ο Λ Ο Γ Ι Α 9.1. Τµηµατικός Προγραµµατισµός και υποπρογράµµατα Ως συνέχεια της παραγράφου 7.4.2. περί τµηµατικού προγραµµατισµού, στην παρούσα ενότητα θα αναφερθούµε στην έννοια του υποπρογράµµατος. Όταν ένα τµήµα προγράµµατος επιτελεί ένα αυτόνοµο έργο και έχει αναπτυχθεί χωριστά από τα υπόλοιπα τµήµατα, τότε αποτελεί υποπρόγραµµα (subprogram). H ευκολία που µας παρέχουν τα υποπρογράµµατα είναι ότι η δυσκολία δεν αυξάνεται όσο πιο µεγάλο και πιο σύνθετο είναι το πρόβληµα, αρκεί τα επιµέρους υποπροβλήµατα να είναι ανεξάρτητα. Τρεις βασικές ιδιότητες πρέπει να διακρίνουν τα υποπρογράµµατα: Κάθε υποπρόγραµµα έχει µόνο µια είσοδο και έξοδο. Η είσοδος γίνεται στην αρχή και η έξοδος στο τέλος. Κάθε υποπρόγραµµα πρέπει να είναι ανεξάρτητο από τα άλλα. Αν και πρακτικά αυτό είναι δύσκολο να επιτευχθεί, ουσιαστικά συνίσταται στην αυτόνοµη σχεδίαση, ανάπτυξη και συντήρηση κάθε υποπρογράµµατος. Κάθε υποπρόγραµµα δεν πρέπει να είναι πολύ µεγάλο, ώστε να είναι εύκολα κατανοητό και να µπορεί να ελέγχεται. Η µεθοδολογία για την επίτευξη αυτού είναι κάθε πρόγραµµα να επιτελεί µόνο µια λειτουργία διαφορετικά πρέπει να διασπάται περαιτέρω. 9.2. Παράµετροι Το αρχικό πρόγραµµα το οποίο καλείται κύριο πρόγραµµα αποτελεί την βασική πλατφόρµα µέσω της οποίας µπορούµε να µεταφερθούµε σε και να επιστρέψουµε από υποπρογράµµατα. Βασική προϋπόθεση για τη λειτουργία αυτής της διαδικασίας είναι οι τιµές των µεταβλητών να περνούν από το ένα υποπρόγραµµα στο άλλο (βλ. παρακάτω σχήµα) Μια παράµετρος είναι µια µεταβλητή που επιτρέπει το πέρασµα της τιµής από ένα τµήµα προγράµµατος σε ένα άλλο. IABA E A KYPIO PO PAMMA Y Ô ÚfiÁÚ ÌÌ 1 B A*6 B*A Y Ô ÚfiÁÚ ÌÌ 2 EÌÊ ÓÈÛÂ Στο παραπάνω σχήµα οι µεταβλητές Α, Β, Γ είναι παράµετροι. ΕΝ ΥΝΑΜΕΙ 213

9. 3. ι α δ ι κ α σ ί ε ς κ α ι σ υ ν α ρ τ ή σ ε ι ς Υπάρχουν δυο τύποι υποπρογραµµάτων: οι διαδικασίες και οι συναρτήσεις. Η συνάρτηση είναι ένας τύπος υποπρογράµµατος που υπολογίζει και επιστρέφει µόνο µια τιµή (αριθµητική χαρακτήρα ή λογική) η οποία αποθηκεύετεαι σε µια µεταβλητή µε το όνοµα της συνάρτησης (όπως οι µαθηµατικές συναρτήσεις και οι έτοιµες συναρτήσεις της γλώσσας) Η διαδικασία είναι ένας τύπος υποπρογράµµατος που µπορεί να εκτελεί όλες τις λειτουργίες ενός προγράµµατος. (εισάγει δεδοµένα, κάνει υπολογισµούς και εµφανίζει ή εκτυπώνει αποτελέσµατα)

9.4. ΠΑΡΑΜΕΤΡΟΙ ΚΑΙ ΜΕΤΑΒΛΗΤΕΣ 9. 4. 1. Ε ί δ η κ α ι κ α ν ό ν ε ς π α ρ α µ έ τ ρ ω ν Όταν ένα πρόγραµµα καλεί κάποιο υποπρόγραµµα τότε: Α) πραγµατικές ονοµάζονται οι παράµετροι οι οποίες υπάρχουν στο πρόγραµµα και Β) τυπικές ονοµάζονται οι αντίστοιχες παράµετροι του υποπρογράµµατος.

Οι κανόνες που πρέπει να ικανοποιούν οι παράµετροι είναι οι εξής: 1. να υπάρχει ίδιος αριθµός πραγµατικών και τυπικών παραµέτρων στο καλούµενο υποπρόγραµµα. 2. να υπάρχει αντιστοιχία θέσης πραγµατικών και τυπικών παραµέτρων (π.χ. η δεύτερη πραγµατική αντιστοιχεί στη δεύτερη τυπική). 3. να είναι ίδιος ο τύπος της πραγµατικής µε την αντίστοιχή της τυπική παράµετρο.