Ποια η διαδικασία για τη μετάφραση και εκτέλεση ενός προγράμματος;
Σκέψη / Μεθοδολογία: Περιγράφουμε τη διαδικασία «μεταγλώττιση και σύνδεση» βήμα-βήμα, όπως στο §6.7.
Λύση:
Ξεκινάμε από το πηγαίο πρόγραμμα, περιγράφουμε τη μετατροπή του σε αντικείμενο πρόγραμμα από τον μεταγλωττιστή, και τη σύνδεση από τον συνδέτη-φορτωτή που παράγει το εκτελέσιμο πρόγραμμα.
Απάντηση: Το αρχικό πρόγραμμα (πηγαίο πρόγραμμα) μεταφράζεται από τον μεταγλωττιστή σε ένα ισοδύναμο πρόγραμμα σε γλώσσα μηχανής, το αντικείμενο πρόγραμμα. Το αντικείμενο πρόγραμμα δεν μπορεί συνήθως να εκτελεστεί απευθείας· πρέπει να συμπληρωθεί και να συνδεθεί με άλλα απαραίτητα τμήματα (δικά του ή από βιβλιοθήκες της γλώσσας) — αυτή τη σύνδεση αναλαμβάνει ο συνδέτης-φορτωτής, ο οποίος παράγει το εκτελέσιμο πρόγραμμα, δηλαδή το τελικό πρόγραμμα που εκτελείται. Η όλη διαδικασία ονομάζεται μεταγλώττιση και σύνδεση, και προηγείται πάντα η εξάλειψη τυχόν συντακτικών λαθών, ώστε να παραχθεί το εκτελέσιμο.
Πρόσεξε:
Ποιες οι διαφορές μεταγλωττιστή και διερμηνευτή;
Σκέψη / Μεθοδολογία: Σύγκριση με βάση τον τρόπο επεξεργασίας των εντολών (όλες μαζί vs μία-μία) και τα αντίστοιχα πλεονεκτήματα/μειονεκτήματα, όπως στο §6.7.
Λύση:
Περιγράφουμε πώς λειτουργεί ο μεταγλωττιστής, πώς λειτουργεί ο διερμηνευτής, και συγκρίνουμε τα πλεονεκτήματα/μειονεκτήματα του καθενός.
Απάντηση: Ο μεταγλωττιστής (compiler) δέχεται ολόκληρο το πηγαίο πρόγραμμα και παράγει, μία φορά, ένα ισοδύναμο πρόγραμμα σε γλώσσα μηχανής (αντικείμενο πρόγραμμα), το οποίο στη συνέχεια μπορεί να εκτελείται οποτεδήποτε, ανεξάρτητα πλέον από το αρχικό. Ο διερμηνευτής (interpreter) διαβάζει τις εντολές του προγράμματος μία-μία, και για καθεμία εκτελεί αμέσως την ισοδύναμη ακολουθία εντολών μηχανής, χωρίς να παράγει ξεχωριστό εκτελέσιμο αρχείο. Η χρήση μεταγλωττιστή έχει το μειονέκτημα ότι το πρόγραμμα πρέπει πρώτα να περάσει από μεταγλώττιση και σύνδεση πριν εκτελεστεί· ο διερμηνευτής προσφέρει άμεση εκτέλεση και άμεση διόρθωση, αλλά η εκτέλεση είναι πιο αργή (μερικές φορές σημαντικά) από το αντίστοιχο εκτελέσιμο ενός μεταγλωττιστή.
Πρόσεξε:
Ποια προγράμματα και εργαλεία περιέχει ένα προγραμματιστικό περιβάλλον;
Σκέψη / Μεθοδολογία: Αναφέρουμε τα τρία απαραίτητα προγράμματα του §6.7 και προσθέτουμε ότι τα σύγχρονα ολοκληρωμένα περιβάλλοντα παρέχουν επιπλέον εργαλεία.
Λύση:
Αναφέρουμε τα τρία βασικά προγράμματα (συντάκτης, μεταγλωττιστής/διερμηνευτής, συνδέτης) και προσθέτουμε ότι τα σύγχρονα ολοκληρωμένα περιβάλλοντα τα ενσωματώνουν όλα μαζί με επιπλέον εργαλεία.
Απάντηση: Για τη δημιουργία, τη μετάφραση και την εκτέλεση ενός προγράμματος απαιτούνται τουλάχιστον τρία προγράμματα: ο συντάκτης (editor), για τη σύνταξη και διόρθωση του κειμένου του προγράμματος· ο μεταγλωττιστής ή ο διερμηνευτής, για τη μετάφρασή του σε γλώσσα μηχανής· και ο συνδέτης (linker), για τη σύνδεση με άλλα απαραίτητα τμήματα ώστε να παραχθεί το εκτελέσιμο πρόγραμμα. Τα σύγχρονα ολοκληρωμένα προγραμματιστικά περιβάλλοντα δεν παρέχουν απλώς έναν μεταφραστή, αλλά συγκεντρώνουν όλα αυτά τα προγράμματα και εργαλεία σε ενιαία μορφή, μαζί με πρόσθετα εργαλεία που βοηθούν τη συγγραφή, την εκτέλεση και κυρίως τη διόρθωση των προγραμμάτων (π.χ. σε ένα περιβάλλον οπτικού προγραμματισμού, ειδικό συντάκτη για τη δημιουργία γραφικών αντικειμένων).
Πρόσεξε:
