1 of 12

Προγραμματιστικά περιβάλλοντα�

Β1§ 6.7

2 of 12

Προγραμματιστικά περιβάλλοντα

  • Μεταγλωττιστές και διερμηνευτές
  • Πηγαίο πρόγραμμα και αντικείμενο πρόγραμμα
  • Βιβλιοθήκες
  • Συνδέτης-φορτωτής
  • Εκτελέσιμο πρόγραμμα

3 of 12

Μεταγλωττιστές (Compilers)

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

4 of 12

Διερμηνευτές (Interpreters)

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

5 of 12

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

  • Πηγαίο πρόγραμμα (source code) λέγεται το αρχικό πρόγραμμα που είναι γραμμένο σε γλώσσα υψηλού επιπέδου
  • Αντικείμενο πρόγραμμα (object code) λέγεται το πρόγραμμα που παράγεται απ’ τον μεταγλωττιστή

6 of 12

Βιβλιοθήκες (libraries) και συνδέτης-φορτωτής (linker-loader)

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

7 of 12

Μεταγλώττιση και σύνδεση προγράμματος

Αρχικό

Πρόγραμμα

(πηγαίο)

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

Εκτελέσιμο

Πρόγραμμα

(τελικό)

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

Συνδέτης

Βιβλιοθήκες

8 of 12

Λάθη προγράμματος

  • Ένα πρόγραμμα μπορεί να έχει
    • Συντακτικά λάθη που εντοπίζονται κατά τη φάση της μεταγλώττισης
    • Λογικά λάθη, λάθη δηλαδή στο σχεδιασμό και στους αλγορίθμους του προγράμματος, τα οποία εμφανίζονται μόνο κατά την εκτέλεση του προγράμματος

9 of 12

Διαδικασία μετάφρασης και εκτέλεσης ενός προγράμματος

Ανάλυση – Έλεγχος

Ανίχνευση - Εκτέλεση

Εντολή 1

Ανάλυση – Έλεγχος

Ανίχνευση - Εκτέλεση

Ανάλυση – Έλεγχος

Ανίχνευση - Εκτέλεση

Εντολή 2

Εντολή n

. . .

Μεταγλώττιση

Φόρτωση

Σύνδεση

όλων των εντολών

Εκτέλεση ολόκληρου του προγράμματος

10 of 12

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

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

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

11 of 12

Συντάκτης

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

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

12 of 12

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

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

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