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

Σχετικά έγγραφα
ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΓΕ0170 -Αλγόριθμοι και Προηγμένες Προγραμματικές Τεχνικές. Εισαγωγή. Νίκος Αθανάσης.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 2: Μεταφραστές

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ Κεφάλαιο 1 ο Ανάλυση Προβλήµατος

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

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

ΚΕΦΑΛΑΙΟ 1 : Ανάλυση προβλήματος

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

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

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

ΑΣΚΗΣΕΙΣ ΘΕΩΡΙΑΣ. ΘΕΜΑ 1 Δίνεται το παρακάτω τμήμα δηλώσεων ενός προγράμματος σε «ΓΛΩΣΣΑ»: ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ: Π[10] ΛΟΓΙΚΕΣ: ΒΡΕΘΗΚΕ ΑΚΕΡΑΙΕΣ: i

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

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

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

Transcript:

ΚΕΦΑΛΑΙΟ 6 Ο ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΕΡΙΕΧΟΜΕΝΑ Η έννοια του προγράµµατος Γλώσσες προγραµµατισµού Κατηγορίες προγραµµατισµού Προγραµµατιστικά περιβάλλοντα

30 AΕσΠΠ Η έννοια του προγράµµατος Η επίλυση ενός προβλήµατος µε τον υπολογιστή περιλαµβάνει: Τον ακριβή προσδιορισµό του προβλήµατος Την ανάπτυξη του αντίστοιχου αλγόριθµου Τη διατύπωση του αλγόριθµου σε κατανοητή µορφή από τον υπολογιστή Ο προγραµµατισµός (το τελευταίο στάδιο της επίλυσης) είναι η διατύπωση του αλγορίθµου σε µορφή κατανοητή από τον Η/Υ (ώστε να τον εκτελέσει -«τρέξει» όπως λέµε στην ορολογία της Πληροφορικής) το πρόγραµµα. Η διατύπωση γίνεται χρησιµοποιώντας µία γλώσσα προγραµµατισµού. Οι γλώσσες προγραµµατισµού. Οι γλώσσες προγραµµατισµού αναπτύχθηκαν µε σκοπό την επικοινωνία του ανθρώπου (προγραµµατιστή) µε τη µηχανή (υπολογιστής). Ιστορική αναδροµή γλωσσών προγραµµατισµού 1. Γλώσσα µηχανής. Ένα πρόγραµµα γραµµένο σε γλώσσα µηχανής είναι µια ακολουθία δυαδικών ψηφίων (0 και 1) που αποτελούν εντολές προς τον επεξεργαστή για στοιχειώδεις λειτουργίες. Το πρόγραµµα σε γλώσσα µηχανής είναι άµεσα κατανοητό από τον Η/Υ (όχι όµως από τον άνθρωπο). Γι αυτό και η γλώσσα µηχανής χαρακτηρίζεται ως γλώσσα χαµηλού επιπέδου. Οι εντολές ενός προγράµµατος και σήµερα µετατρέπονται σε γλώσσα µηχανής, ώστε να µπορούν να εκτελεστούν από το η/υ. Η µετατροπή αυτή γίνεται αυτόµατα από ειδικά προγράµµατα. Παράδειγµα τέτοιου προγράµµατος: 10101000 00001010 11000000 00000001 10011000 11001011 Πλεονεκτήµατα Ταχύτατη εκτέλεση των εντολών ενός προγράµµατος γραµµένο σε γλώσσα µηχανής. εν απαιτείται µεταφραστικό πρόγραµµα γιατί είναι η γλώσσα του η/υ. Μειονεκτήµατα Το γράψιµο του προγράµµατος είναι µία ιδιαίτερα επίπονη και χρονοβόρα διαδικασία και απαιτεί βαθιά γνώση του υλικού και της αρχιτεκτονική του η/υ. Η γλώσσα µηχανής είναι εξαρτηµένη από την αρχιτεκτονική (υλικό) του η/υ. Το πρόγραµµα «τρέχει» µόνο στο συγκεκριµένο τύπο του η/υ (πρόβληµα µεταφερσιµότητας). 2. Συµβολικές γλώσσες ή γλώσσες χαµηλού επιπέδου. Αποτελούν εξέλιξη της γλώσσας µηχανής. Οι εντολές που ήταν σε µορφή 0 και 1 (στη γλώσσα µηχανής) αντικαθίστανται από συµβολικά (µνηµονικά) ονόµατα, που είναι συνήθως συντοµογραφίες και σύµβολα της αγγλικής γλώσσας. Έτσι γίνονται πιο κατανοητές από τον άνθρωπο. Για παράδειγµα, η εντολή 100001100 αντικαθίστανται από το ADD. Χρησιµοποιούνται και σήµερα για ειδικούς σκοπούς. ιαθέτουν ένα βοηθητικό πρόγραµµα, τον συµβολοµεταφραστή, το οποίο αναλαµβάνει να µετατρέψει τις εντολές της συµβολικής γλώσσας σε ισοδύναµη ακολουθία δυαδικών αριθµών. Ένα δείγµα χρήσης θα ήταν: INDEX =$01 {βάλε στην INDEX την τιµή 1} ADD INDEX {πρόσθεσε την τιµή της INDEX στον συσσωρευτή} LDA #10 {φόρτωσε στο συσσωρευτή την τιµή 10} CLA {καθάρισε το συσσωρευτή}

Κεφ6ο Εισαγωγή στον προγραµµατισµό 31 Πλεονεκτήµατα Ταχύτατη εκτέλεση των εντολών ενός προγράµµατος γραµµένο σε συµβολική γλώσσα. Η µορφή του προγράµµατος είναι καλύτερα κατανοητή από τον άνθρωπο σε σχέση µε τη γλώσσα µηχανής. Μειονεκτήµατα Τα προγράµµατα σε συµβολική γλώσσα ήταν µακροσκελή µε αποτέλεσµα να είναι δύσκολο να γραφούν και κύρια να συντηρηθούν. Το γράψιµο του προγράµµατος εξακολουθεί να είναι µία ιδιαίτερα επίπονη και χρονοβόρα διαδικασία και απαιτεί βαθιά γνώση του υλικού και της αρχιτεκτονική του η/υ Τα προγράµµατα σε συµβολική γλώσσα παρέµεναν στενά συνδεδεµένα µε την αρχιτεκτονική του η/υ που γράφονταν (πρόβληµα µεταφερσιµότητας). Απαιτείται η χρήση ενός µεταφραστικού προγράµµατος ώστε οι συµβολικές εντολές να µετατραπούν στις αντίστοιχες δυαδικές. Το ειδικό αυτό πρόγραµµα ονοµάζεται συµβολοµεταφραστής (assembler). Το πρόγραµµα «τρέχει» µόνο στο συγκεκριµένο τύπο του η/υ στον οποίο γράφτηκε.. 3. Γλώσσες υψηλού επιπέδου. Λέγονται έτσι γιατί διότι τα προγράµµατα διατυπωµένα σε µία τέτοια γλώσσα είναι άµεσα κατανοητά από τον άνθρωπο (αλλά όχι από τον η/υ) αφού χρησιµοποιείται µία γλώσσα που είναι αρκετά περιγραφική όπως µια φυσική γλώσσα. Οι γλώσσες υψηλού επιπέδου χρησιµοποιούν ως εντολές λέξεις τις αγγλικής γλώσσας καθώς και µαθηµατικά σύµβολα. Ακολουθούν αυστηρούς κανόνες σύνταξής. Οι εντολές µεταφράζονται από τον ίδιο τον η/υ σε εντολές σε γλώσσα µηχανής µε την βοήθεια ειδικών µεταφραστικών προγραµµάτων τους µεταγλωττιστές και τους διερµηνευτές. Μια εντολή γλώσσας υψηλού επιπέδου αντιστοιχεί σε µία ή (το πιθανότερο) περισσότερες εντολές γλώσσας µηχανής. Αποτέλεσµα τα προγράµµατα που δηµιουργούνται είναι πιο µαζεµένα. Παράδειγµα: write ( ώσε µια τιµή για το Ν ); readln(n); Sum := 0; for i := 1 to N do sum := sum + i; writeln( Το άθροισµα είναι sum=,sum); Πλεονεκτήµατα Ο φυσικότερος και πιο ανθρώπινος τρόπος έκφρασης των προβληµάτων. Τα προγράµµατα γλωσσών υψηλού επιπέδου είναι πιο κοντά στα προβλήµατα που επιλύουν. Η ανεξαρτησία από τον τύπο του υπολογιστή. Το πρόγραµµα πλέον «τρέχει» σε όλους τους τύπους η/υ µε ελάχιστες ή καθόλου µετατροπές. Συνεπώς αντιµετωπίζετε το πρόβληµα της µεταφερσιµότητας, που υπήρχε µε την χρήση της γλώσσας µηχανής ή της συµβολικής γλώσσας. Η εκµάθηση της γλώσσας είναι εύκολη. Η διόρθωση λαθών και η συντήρηση των προγραµµάτων είναι ευκολότερη. Μειώνονται σηµαντικά ο χρόνος και το κόστος παραγωγής νέων προγραµµάτων. Μειονεκτήµατα Απαιτείται η χρήση ενός µεταφραστικού προγράµµατος, ώστε οι εντολές να µετατραπούν σε πολλές δυαδικές εντολές (δεν υπάρχει εδώ αντιστοιχία ένα προς ένα). Υπάρχουν δύο ειδών µεταφραστικά προγράµµατα: οι µεταγλωττιστές (compilers) και οι διερµηνευτές (interpreters). Το πρόγραµµα τρέχει πιο αργά σε σχέση µε τα προγράµµατα των συµβολικών γλωσσών ή των γλωσσών µηχανής.

32 AΕσΠΠ Σηµαντικότερες γλώσσες υψηλού επιπέδου Γλώσσα Τύπος Γιατί δηµιουργήθηκε FORTRAN Κατάλληλη για ανάπτυξη µαθηµατικών και επιστηµονικών (1957) εφαρµογών. COBOL Κατάλληλη για ανάπτυξη εµπορικών εφαρµογών και γενικά (1960) διαχειριστικών εφαρµογών (π.χ. µισθοδοσία, λογιστικά) ηµιουργήθηκε, από Ευρωπαίους επιστήµονες, µε σκοπό την δηµιουργία γενικής φύσης προγραµµάτων που να µην συνδέονται µε συγκεκριµένες εφαρµογές. εν χρησιµοποιήθηκε, ALGOL (1960) όµως, ευρέως στην πράξη. Πρωτοπαρουσίασε τις αρχές του δοµηµένου προγραµµατισµού. PL/1 (µέσα 60) LISP (µέσα 60) PROLOG (αρχές 70) BASIC (µέσα 60) PASCAL (αρχές 70) C (αρχές 70) C++ (τέλη 80) JAVA (µέσα 90) Συναρτησιακή Μη διαδικασιακή Αντικειµενοστραφής Αντικειµενοστραφής Προσπάθησε, χωρίς επιτυχία, να αντιµετωπίσει όλους τους τοµείς, επιστηµονικούς και εµπορικούς αντικαθιστώντας την Fortran και την Cobol. Χρησιµοποιούνται σε προγράµµατα Τεχνητής Νοηµοσύνης. (παιχνίδια, έµπειρα συστήµατα, επεξεργασία φυσικών γλωσσών κ.λ.π) ηµιουργήθηκε µε σκοπό την εκπαίδευση των αρχάριων στον προγραµµατισµό. Σκοπός της BASIC είναι να γράφονται µικρά προγράµµατα που κατόπιν εκτελούνται µε τη βοήθεια διερµηνευτή. Στις µέρες µας αποτελεί µία πανίσχυρη, γενικής χρήσης γλώσσα στην µορφή της Visual Basic.. Γλώσσα γενικής χρήσης. Στηρίχθηκε στην ALGOL. Είναι η κατάλληλη τόσο για την εκπαίδευση όσο και για τη δηµιουργία ισχυρών προγραµµάτων. Χαρακτηριστικό της είναι η δηµιουργία δοµηµένων προγραµµάτων. Αποτέλεσε τη βάση για την ανάπτυξη άλλων ισχυρότερων γλωσσών, όπως η ADA και η Modula-2 Περιέχει αρκετά κοινά χαρακτηριστικά µε τη Pascal για την ανάπτυξη δοµηµένων εφαρµογών αλλά παράλληλα ενσωµατώνει και χαρακτηριστικά γλώσσας χαµηλού επιπέδου. Θεωρείται κατάλληλη για την ανάπτυξη λειτουργικών συστηµάτων (π.χ. χρησιµοποιήθηκε για την ανάπτυξη του Unix) Αποτελεί µία µετεξέλιξη της C στο χώρο του αντικειµενοστραφούς προγραµµατισµού και χρησιµοποιείται αρκετά στην ανάπτυξη λειτουργικών συστηµάτων (π.χ. Windows) αλλά και άλλου τύπου εφαρµογών. Θεωρείται σήµερα µία κορυφαία γλώσσα. Γλώσσα ειδικά σχεδιασµένη για την ανάπτυξη εφαρµογών στο Internet. Σκοπός της είναι να γράφονται προγράµµατα που θα εκτελούνται, χωρίς µετατροπές, σε η/υ µε διαφορετικά λειτουργικά συστήµατα. 4. Γλώσσες 4 ης γενιάς. Είναι περισσότερο απλές και κατανοητές από τον άνθρωπο, γι' αυτό δεν απευθύνονται αποκλειστικά σε προγραµµατιστές αλλά ακόµη και σε απλούς χρήστες. Μια εντολή γλώσσας 4 ης γενιάς αντιστοιχεί σε πολλές εντολές γλώσσας υψηλού επιπέδου, αποκρύπτοντας έτσι πολλές λεπτοµέρειες από τις τεχνικές υλοποίησης. Με τις γλώσσες 4 ης γενιάς ο χρήστης έχει τη δυνατότητα σχετικά εύκολα να υποβάλει ερωτήσεις στο σύστηµα να αναπτύσσει εφαρµογές που ανακτούν πληροφορίες από βάσεις δεδοµένων. να καθορίζει τον ακριβή τρόπο εµφάνισης των πληροφοριών. Παράδειγµα γλώσσας 4 ης γενιά είναι η γλώσσα ερωταπαντήσεων sql

Κεφ6ο Εισαγωγή στον προγραµµατισµό 33 Ταξινόµηση των γλωσσών προγραµµατισµού 1. Με κριτήριο τον τρόπο προγραµµατισµού. ιαδικασιακές ή αλγοριθµικές. Η µεγαλύτερη πλειοψηφία των γλωσσών ανήκει σ αυτή την κατηγορία. Πρόκειται για τις πιο παλιές και κλασικές γλώσσες προγραµµατισµού. Λέγονται έτσι γιατί είναι σχεδιασµένες ώστε να επιτρέπουν την εύκολη υλοποίηση αλγόριθµων π.χ. Fortran, Cobol, Pascal, Basic, C, algol, pl/1. Αντικειµενοστραφείς. Χρησιµοποιούν την φιλοσοφία του αντικειµενοστραφούς προγραµµατισµού. π.χ. C++, Java Συναρτησιακές. Όλες οι λειτουργίες γίνονται µέσω συναρτήσεων µεταξύ λιστών. π.χ. Lisp Μη διαδικασιακές. Προσπαθούν να προσοµοιώσουν την ανθρώπινη λογική στους υπολογιστές. Χαρακτηρίζονται και σαν γλώσσες πολύ υψηλού επιπέδου. π.χ. Prolog Γλώσσες ερωταπαντήσεων π.χ. Sql 2. Με κριτήριο την περιοχή χρήσης Γλώσσες γενικής χρήσης. Θεωρητικά µπορούν να χρησιµοποιηθούν για την επίλυση οποιουδήποτε προβλήµατος. Τέτοιες γλώσσες είναι Basic, Pascal, pl/1, algol. Μερικές γλώσσες δηµιουργήθηκαν αποκλειστικά για να επιλύουν ευκολότερα συγκεκριµένους τύπους προβληµάτων, όπως: Γλώσσες επιστηµονικής κατεύθυνσης π.χ. Fortran Γλώσσες εµπορικής κατεύθυνσης π.χ. Cobol Γλώσσες προγραµµατισµού συστηµάτων. Πολλές συσκευές (video) ή τεχνολογικά συστήµατα (καρτοτηλέφωνα, ΑΤΜ, κ.λ.π.) εκτελούν προγράµµατα, όπως περίπου ο υπολογιστής. Χρειάζονται λοιπόν µια γλώσσα προγραµµατισµού που να διαθέτει και αρκετά στοιχεία µιας γλώσσας χαµηλού επιπέδου για να εκµεταλλεύεται το συγκεκριµένο υλικό. π.χ. C Γλώσσες τεχνητής νοηµοσύνης. Προσπαθούν κατά κάποιο τρόπο να προσοµοιώσουν την ανθρώπινη νοηµοσύνη. π.χ. Lisp, Prolog Γλώσσες ειδικής χρήσης: σκοπός τους είναι να επιλύουν ειδικού τύπου προβληµάτων, όπως διαχείριση Βάσεων εδοµένων (π.χ. Sql), ροµποτική, γραφικά µε υπολογιστή, εκπαίδευση µέσω υπολογιστή, στη σχεδίαση ολοκληρωµένων κυκλωµάτων, κ.λ.π. Από τι εξαρτάται η επιλογή µιας γλωσσάς Η επιλογή µιας γλώσσας εξαρτάται από: το είδος της εφαρµογής (επιστηµονική, εµπορική, γραφικά κ.λ.π.) το υπολογιστικό περιβάλλον στο οποίο θα εκτελεστεί (Windows, Internet, Macintosh κλπ). Από τα προγραµµατιστικά περιβάλλοντα που διαθέτουµε. Από τις γνώσεις του προγραµµατιστή.

34 AΕσΠΠ Φυσικές και Τεχνητές Γλώσσες 1. Ορισµός Φυσικές γλώσσες: είναι οι γλώσσες επικοινωνίας µεταξύ των ανθρώπων. Γλώσσες προγραµµατισµού: είναι τεχνητές γλώσσες που απευθύνονται σε ανθρώπους που επιθυµούν να επικοινωνήσουν µε τον Η/Υ. 2. Οµοιότητες φυσικών και τεχνικών γλωσσών Κάθε γλώσσα (φυσική ή τεχνική) προγραµµατισµού προσδιορίζεται από: Το αλφάβητο της γλώσσας Ως αλφάβητο ορίζουµε το σύνολο των στοιχείων (χαρακτήρων) που χρησιµοποιείται από τη γλώσσα. Από τους χαρακτήρες αυτούς σχηµατίζονται οι λέξεις της γλώσσας. Το λεξιλόγιο της γλώσσας Το λεξιλόγιο µίας γλώσσας περιλαµβάνει όλες τις έγκυρες και αποδεκτές λέξεις. Στην ουσία, είναι ένα υποσύνολο από όλες τις δυνατές ακολουθίες που µπορούµε να σχηµατίσουµε από τα στοιχεία του αλφαβήτου. Για παράδειγµα η λέξη ΠΕΡΠΑΤΩ είναι αποδεκτή στην ελληνική γλώσσα, ενώ η λέξη ΠΑΡΤΠΩΕ όχι. Τη γραµµατική της γλώσσας Η γραµµατική αποτελείται από το τυπικό ή τυπολογικό και το συντακτικό. Το τυπικό ή τυπολογικό είναι το σύνολο των κανόνων που ορίζει τις µορφές µε τις οποίες µια λέξη είναι αποδεκτή. Για παράδειγµα η λέξη ΠΕΡΠΑΤΩ είναι αποδεκτή και στις µορφές ΠΕΡΠΑΤΗΣΑ, ΠΕΡΠΑΤΟΥΝ αλλά όχι στη µορφή ΠΕΡΠΑΤΟΥΣ. Το συντακτικό είναι ένα σύνολο κανόνων που ορίζει το πώς πρέπει να σχηµατίζονται οι προτάσεις από τις λέξεις της γλώσσας ώστε οι προτάσεις αυτές να είναι έγκυρες και αποδεκτές. Σε µία γλώσσα προγραµµατισµού η γνώση του συντακτικού επιτρέπει την σωστή σύνταξη των εντολών. Τη σηµασιολογία της γλώσσας Είναι το σύνολο των κανόνων που καθορίζει το νόηµα των λέξεων και προτάσεων της γλώσσας. Σε µία γλώσσα προγραµµατισµού αυτό καθορίζεται από το δηµιουργό της ενώ σε µία φυσική γλώσσα από αυτόν που εκφέρει την πρόταση. 3. ιαφορές µεταξύ φυσικών και τεχνικών γλωσσών Φυσικές γλώσσες Χρησιµοποιούνται για την επικοινωνία µεταξύ ανθρώπων. Τεχνικές γλώσσες Χρησιµοποιούνται για την επικοινωνία µεταξύ ανθρώπου και η/υ. Έχουν µεγάλες δυνατότητες εξέλιξης. Νέες λέξεις µπορεί να εισαχθούν, κανόνες γραµµατικής και σύνταξης να αλλάξουν κλπ. Οι δυνατότητες εξέλιξης είναι περιορισµένες. Τις περισσότερες φορές η εξέλιξη αυτή αφορά την διόρθωση αδυναµιών ή να καλύψουν µεγαλύτερο εύρος εφαρµογών ή τέλος να ακολουθήσουν νέες εξελίξεις. (π.χ. Basic και Visual Basic).

Κεφ6ο Εισαγωγή στον προγραµµατισµό 35 Τεχνικές Σχεδίασης Προγράµµατος εν αρκεί κάποιος να γνωρίζει απλά µία γλώσσα προγραµµατισµού. Θα πρέπει να ακολουθήσει και µία τεχνική σχεδίασης του προγράµµατός του. Για την σύνταξη σωστών, κοµψών, κατανοητών και εύκολα συντηρήσιµων προγραµµάτων ακολουθήθηκαν διάφορες µεθοδολογίες ανάπτυξης που παρουσιάζονται παρακάτω: 1. Ιεραρχική σχεδίαση ή Top-down σχεδίαση Η τεχνική αυτή ( η οποία λέγεται και σχεδίαση "από επάνω προς τα κάτω") περιλαµβάνει στον καθορισµό των βασικών λειτουργιών του προγράµµατος σε ανώτερο επίπεδο και στη συνέχεια τη διάσπαση καθεµιάς σε µικρότερες και απλούστερες µέχρι του σηµείου να είναι τόσο απλές που µπορούν να επιλυθούν εύκολα. Η ιεραρχική σχεδίαση ή ιεραρχικός προγραµµατισµός χρησιµοποιεί την στρατηγική της συνεχούς διαίρεσης του προβλήµατος σε υποπροβλήµατα. Σκοπός της ιεραρχικής σχεδίασης είναι η διάσπαση του αρχικού προβλήµατος σε απλούστερα υποπροβλήµατα τα οποία είναι πιο εύκολο να επιλυθούν, οδηγώντας έτσι στη λύση του αρχικού προβλήµατος. Για την υποβοήθηση της ιεραρχικής σχεδίασης χρησιµοποιούνται διάφορες διαγραµµατικές τεχνικές. 2. Τµηµατικός προγραµµατισµός Η ιεραρχική σχεδίαση υλοποιείται µε τον τµηµατικό προγραµµατισµό. Τµηµατικός προγραµµατισµός λέµε τη τεχνική σχεδίασης και ανάπτυξης προγραµµάτων ως ένα σύνολο από απλούστερα τµήµατα προγραµµάτων. Κάθε υποπρόβληµα που προκύπτει από την ανάλυση του αρχικού προβλήµατος, αντιµετωπίζεται ως ανεξάρτητη ενότητα. Γι' αυτή την ενότητα θα γραφτεί το κατάλληλο πρόγραµµα ή τµήµα προγράµµατος που αντιµετωπίζει αποκλειστικά αυτή την ενότητα. Πλεονεκτήµατα του τµηµατικού προγραµµατισµού ιευκολύνει την ανάπτυξη του αλγορίθµου και του αντίστοιχου προγράµµατος. ιευκολύνει την κατανόηση και διόρθωση του προγράµµατος. Απαιτεί λιγότερο χρόνο και προσπάθεια στη συγγραφή του προγράµµατος. Επεκτείνει τις δυνατότητες των γλωσσών προγραµµατισµού. 3. οµηµένος προγραµµατισµός Είναι η µεθοδολογία που έχει επικρατήσει σήµερα. Υποστηρίζεται από όλες, σχεδόν, τις γλώσσες προγραµµατισµού. Παρουσιάστηκε στα µέσα του 1960. Την εποχή εκείνη τα προγράµµατα ήταν πολύπλοκα και µπερδεµένα. Απαιτούνταν πολύς χρόνος τόσο για τη συγγραφή του προγράµµατος όσο και για τη διόρθωση και συντήρησή τους. Αυτό οφείλονταν στη GOTO η οποία άλλαζε συνεχώς τη ροή του προγράµµατος. Η συνεχής χρήση της εντολής GOTO ήταν υπεύθυνη: για την δυσκολία στην αρχική σχεδίαση του προγράµµατος για την παρακολούθηση και κατανόηση του προγράµµατος στην συντήρηση του προγράµµατος Ο δοµηµένος προγραµµατισµός στηρίζεται στη χρήση τριών και µόνο στοιχειωδών λογικών δοµών, τη δοµή ακολουθίας, τη δοµή επιλογής και τη δοµή επανάληψης. Όλα τα προγράµµατα µπορεί να γραφούν χρησιµοποιώντας µόνο αυτές τις τρεις δοµές καθώς και συνδυασµό τους. Κάθε πρόγραµµα, όπως και κάθε ενότητα προγράµµατος έχει µόνο µία είσοδο και µία έξοδο. Αποθαρρύνει τη χρήση της εντολής GOTO.

36 AΕσΠΠ Πλεονεκτήµατα του δοµηµένου προγραµµατισµού ηµιουργία απλούστερων προγραµµάτων Άµεση µεταφορά του αλγόριθµου σε πρόγραµµα ιευκόλυνση της ανάλυσης του προγράµµατος σε τµήµατα (ενότητες). Περιορισµός των λαθών κατά την ανάπτυξη του προγράµµατος ιευκόλυνση στην ανάγνωση και κατανόηση του προγράµµατος από τρίτους. Ευκολότερη διόρθωση και συντήρηση του προγράµµατος 4. Οπτικός προγραµµατισµός Είναι η δυνατότητα να δηµιουργούµε, µε γραφικό τρόπο, ολόκληρο το περιβάλλον της εφαρµογής όπως για παράδειγµα τα µενού και τα πλαίσια διαλόγου και άλλα παράθυρα της εφαρµογής. Ο οπτικός προγραµµατισµός εκµεταλλεύεται τις δυνατότητες των γραφικών περιβαλλόντων επικοινωνίας (π.χ Windows, MacOs κλπ) 5. Οδηγούµενος από το γεγονός προγραµµατισµός Είναι η δυνατότητα να εκτελούνται οι διάφορες λειτουργίες του προγράµµατος µε την ενεργοποίηση ενός γεγονότος. Για παράδειγµα, αν κάνουµε κλικ σε κάποια εντολή ενός µενού ή σε κάποιο κουµπί σε ένα παράθυρο της εφαρµογής τότε θα εκτελεστεί µία λειτουργία. Τα σύγχρονα προγραµµατιστικά περιβάλλοντα είναι κτισµένα πάνω στις αρχές του οπτικού και καθοδηγούµενου από γεγονότα προγραµµατισµού. Οι πιο διαδεδοµένες γλώσσες σε γραφικό περιβάλλον για προσωπικούς υπολογιστές είναι: η Visual Basic, η Visual C++ και η Java. Προγραµµατιστικά Περιβάλλοντα Ένα πρόγραµµα που φτιάχνεται σε µία γλώσσα υψηλού επιπέδου δεν είναι άµεσα κατανοητό από τον η/υ. Θα πρέπει να µεταφραστεί σε ισοδύναµο πρόγραµµα σε γλώσσα µηχανής (δυαδική µορφή). Την διαδικασία µετάφρασης την πραγµατοποιούν τα µεταφραστικά προγράµµατα που είναι δύο ειδών οι µεταγλωττιστές (compilers) και οι διερµηνευτές (interpreters) Σηµαντικοί ορισµοί Πηγαίο πρόγραµµα (Source program): Το αρχικό πρόγραµµα, το πρόγραµµα που είναι γραµµένο σε µια γλώσσα υψηλού επιπέδου, το πρόγραµµα που συντάσσει ο προγραµµατιστής.. Το πηγαίο πρόγραµµα αποτελεί την είσοδο στον µεταγλωττιστή και το διερµηνέα. Αντικείµενο πρόγραµµα (Object program) : Το πρόγραµµα που παράγεται από το µεταγλωττιστή µετά τη µεταγλώττιση του σε γλώσσα µηχανής. Αντικείµενο πρόγραµµα παράγει µόνο ο µεταγλωττιστής. (Το αντικείµενο πρόγραµµα παρόλο που είναι σε µορφή κατανοητή από τον υπολογιστή δεν είναι σε θέση να εκτελεστεί). Βιβλιοθήκες (Libraries) : Έτοιµες ενότητες αντικείµενου προγράµµατος της γλώσσας, απαραίτητες για την παραγωγή του εκτελέσιµου προγράµµατος. Συνδέτης Φορτωτής (Linker-Loader) : Ειδικό πρόγραµµα που αναλαµβάνει να συνδέσει το αντικείµενο πρόγραµµα µε άλλα τµήµατα προγράµµατος (που βρίσκονται στις βιβλιοθήκες της γλώσσας ή του προγραµµατιστή) και να παράγει το εκτελέσιµο. Εκτελέσιµο πρόγραµµα (Executable program) : Το πρόγραµµα που παράγεται από το συνδέτη φορτωτή. Είναι το τελικό πρόγραµµα, αυτό που θα εκτελεστεί από τον υπολογιστή. Συντάκτης (editor) : Είναι ένα ειδικό πρόγραµµα που χρησιµοποιείται για την αρχική σύνταξη των προγραµµάτων καθώς και για την πιθανή διόρθωση τους. Μοιάζει µε επεξεργαστή κειµένου µε επιπλέον δυνατότητες που διευκολύνουν την γρήγορη σύνταξη των πηγαίων προγραµµάτων.

Κεφ6ο Εισαγωγή στον προγραµµατισµό 37 Λάθη που παρουσιάζονται στο πρόγραµµα Κατά τη δηµιουργία ενός προγράµµατος σχεδόν πάντα ενυπάρχουν λάθη. Τα λάθη τα χωρίζουµε σε δύο κατηγορίες Συντακτικά λάθη. Οφείλονται: σε αναγραµµατισµούς ονοµάτων εντολών, λάθος σύνταξης εντολών, µη δήλωση δεδοµένων. Εµφανίζονται: κατά τη διαδικασία της µεταγλώττισης ή διερµήνευσης. Ο µεταγλωττιστής ή ο διερµηνευτής παρουσιάζει προειδοποιητικά µηνύµατα, µε τη βοήθεια των οποίων εύκολα και γρήγορα εντοπίζουµε και διορθώνουµε τα λάθη Αντιµετώπιση: ο προγραµµατιστής επιστρέφει στο πηγαίο πρόγραµµα, διορθώνει τα λάθη και ξαναϋποβάλλει το πηγαίο για µεταγλώττιση Παραδείγµατα: αντί για το σωστό ΙΑΒΑΣΕ Χ το ΙΑΒΣΕ Χ Λογικά λάθη Οφείλονται: σε σφάλµατα στη λογική επίλυσης του προβλήµατος ή σε λανθασµένη διατύπωση του αλγόριθµου Εµφανίζονται: κατά την εκτέλεση του προγράµµατος. Τα αντιλαµβανόµαστε από τα λαθεµένα αποτελέσµατα που παράγει το πρόγραµµα Αντιµετώπιση: είναι τα πλέον σοβαρά και δύσκολα στη διόρθωση τους. ιαπιστώνονται µε τη διαδικασία ελέγχου και την ανάλυση των αποτελεσµάτων του προγράµµατος Παράδειγµα: αντί του σωστού Α Β + Γ γράφω Α Β * Γ Μεταφραστικά προγράµµατα Ο Μεταγλωττιστής (Compiler). δέχεται στην είσοδο ένα πρόγραµµα που έχει γραφεί σε µια γλώσσα υψηλού επιπέδου (πηγαίο) και αφού το ελέγξει για ύπαρξη συντακτικών λαθών, παράγει ένα ισοδύναµο πρόγραµµα σε γλώσσα µηχανής (αντικείµενο). Το πρόγραµµα που παράγεται (αντικείµενο) είναι ανεξάρτητο του πρώτου (πηγαίο) και µπορεί να εκτελεστεί οποιαδήποτε στιγµή από οποιονδήποτε υπολογιστή. Ο ιερµηνευτής (Interpreter). διαβάζει µια µια τις εντολές του αρχικού προγράµµατος (πηγαίο) και για κάθε µια εντολή αφού κάµει έλεγχο για συντακτικά λάθη, εκτελεί αµέσως µια ισοδύναµη ακολουθία εντολών γλώσσας µηχανής. Παρατηρήσεις στη χρήση µεταγλωττιστή και διερµηνευτή Τόσο ο µεταγλωττιστής όσο και ο διερµηνευτής ανιχνεύουν τα συντακτικά λάθη, εµφανίζοντας κατάλληλα διαγνωστικά µηνύµατα. Η χρήση του µεταγλωττιστή έχει το µειονέκτηµα ότι προτού χρησιµοποιηθεί ένα πρόγραµµα, πρέπει να περάσει από τη διαδικασία της µεταγλώττισης και σύνδεσης. Από την άλλη µεριά η χρήση του διερµηνευτή έχει το πλεονέκτηµα της άµεσης εκτέλεσης και συνεπώς και της άµεσης διόρθωσης. Όµως η εκτέλεση του προγράµµατος καθίσταται πιο αργή από εκείνη του ισοδύναµου προγράµµατος που παράγει ο µεταγλωττιστής. Τα σύγχρονα προγραµµατιστικά περιβάλλοντα παρουσιάζονται συνήθως µε µεικτές υλοποιήσεις. ηλαδή χρησιµοποιείται: ιερµηνευτής κατά τη φάση της δηµιουργίας του προγράµµατος Μεταγλωττιστής για την τελική έκδοση και εκµετάλλευση του προγράµµατος.

38 AΕσΠΠ ιαδικασία συγγραφής, διόρθωσης και µεταγλώττισης ενός προγράµµατος µε τον µεταγλωττιστή. ιαδικασία συγγραφής, διόρθωσης και διερµήνευσης ενός προγράµµατος µε τον διερµηνευτή. Σύγχρονα υπολογιστικά περιβάλλοντα Τα σύγχρονα προγραµµατιστικά περιβάλλοντα περιέχουν οπωσδήποτε 3 ειδών προγράµµατα : Τον συντάκτη, το µεταγλωττιστή/διερµηνευτή και το συνδέτη - φορτωτή. Πέραν αυτών, περιέχουν όλα εκείνα τα εργαλεία που διευκολύνουν την εύκολη, ταχύτατη σύνταξη, διόρθωση και συντήρηση των προγραµµάτων.