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

Ένα πρόγραμμα γραμμένο σε μια γλώσσα προγραμματισμού (όπως π.χ. Java, C , Python) δεν είναι κατανοητό από τον υπολογιστή. Χρειάζεται να μετατραπεί σε γλώσσα μηχανής (η μόνη γλώσσα που καταλαβαίνει ο υπολογιστής). Αυτή την δουλειά την κάνει ο μεταγλωττιστής ή ο διερμηνευτής. Ποια είναι όμως η διαφορά τους;

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

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

Το αρχικό ή πηγαίο πρόγραμμα είναι αυτό που γράφουμε χρησιμοποιώντας μια γλώσσα προγραμματισμού (π.χ. Python). Το αντικείμενο πρόγραμμα είναι το αρχικό όταν μετατραπεί σε γλώσσα μηχανής από τον μεταγλωττιστή. Όμως ένα πρόγραμμα μπορεί να κάνει χρήση κάποιας έτοιμης συνάρτησης. Στην ΓΛΩΣΣΑ έχουμε οκτώ τέτοιες συναρτήσεις (ΗΜ, ΣΥΝ, ΛΟΓ κλπ). Κάθε συνάρτηση είναι ένα πρόγραμμα που κάποιοι άλλοι προγραμματιστές έχουν φτιάξει για εμάς. Δουλειά του συνδέτη-φορτωτή είναι να βρει τις συναρτήσεις (σε γλώσσα μηχανής) που χρησιμοποιεί το πρόγραμμα μας και να τις ενσωματώσει στο αντικείμενο πρόγραμμα. Το τελικό πρόγραμμα (εκτελέσιμο πρόγραμμα) είναι και αυτό που μπορεί να διανεμηθεί σε όποιον θέλει να το τρέξει στον υπολογιστή του.    

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

Η συγγραφή προγραμμάτων είναι μία επίπονη και χρονοβόρα εργασία γι’ αυτό και όλοι οι προγραμματιστές σήμερα χρησιμοποιούν κατάλληλους επεξεργαστές κειμένου (συντάκτες) που διευκολύνουν κατά πολύ την δακτυλογράφηση. Ας υποθέσουμε ότι σε ένα πρόγραμμα έχουμε μία μεταβλητή με όνομα η_επίδοση_του_αθλητή την οποία και έχουμε ξαναγράψει. Δουλειά του συντάκτη είναι μόλις ξεκινήσουμε να γράφουμε την μεταβλητή να την συμπληρώσει αυτόματα για εμάς.  

Ερωτήσεις ανάπτυξης απο Πανελλαδικές εξετάσεις

  1. Ποιος είναι ο ρόλος του συντάκτη σε ένα προγραμματιστικό περιβάλλον; (2014-Α4β)

  2. Ποιος είναι ο ρόλος του συνδέτη-φορτωτή σε ένα προγραμματιστικό περιβάλλον; (2014-Α4γ)

  3. Ποιος είναι ο ρόλος του μεταγλωττιστή σε ένα προγραμματιστικό περιβάλλον; (2014-Α4δ)

  4. Ποια η διαφορά μεταξύ διερμηνευτή και μεταγλωττιστή; (2008-Θ1Β2)

  5. Να περιγράψετε τη διαδικασία για τη μετατροπή με μεταγλωττιστή ενός πηγαίου προγράμματος σε εκτελέσιμο πρόγραμμα, συμπεριλαμβανόμενης της ανίχνευσης και διόρθωσης λαθών. (2002-Θ1Γ)

  6. Ποιες είναι οι διαφορές μεταξύ μεταγλωττιστή (compiler) και διερμηνευτή (interpreter); (Ε2002-Θ1Β)