Βασική διαφορά – Χρόνος μεταγλώττισης έναντι χρόνου εκτέλεσης
Τα περισσότερα προγράμματα είναι γραμμένα χρησιμοποιώντας γλώσσες προγραμματισμού υψηλού επιπέδου. Αυτές οι γλώσσες προγραμματισμού έχουν σύνταξη παρόμοια με την αγγλική γλώσσα. Οι γλώσσες υψηλού επιπέδου είναι εύκολα κατανοητές από τον άνθρωπο, αλλά δεν είναι κατανοητές από τον υπολογιστή. Επομένως, το γραπτό πρόγραμμα ή ο πηγαίος κώδικας θα πρέπει να μετατραπεί σε μορφή κατανοητή από μηχανής. Ονομάζεται κωδικός μηχανής. Η χρονική περίοδος για τη μετατροπή του πηγαίου κώδικα σε κώδικα μηχανής είναι γνωστή ως χρόνος μεταγλώττισης. Εργασίες όπως η ανάλυση σύνταξης, η σημασιολογική ανάλυση και η δημιουργία κώδικα πραγματοποιούνται κατά το χρόνο μεταγλώττισης. Η χρονική περίοδος εκτέλεσης του εκτελέσιμου αρχείου που δημιουργείται κατά το χρόνο μεταγλώττισης αναφέρεται ως χρόνος εκτέλεσης. Και οι δύο είναι όροι που σχετίζονται με διαφορετικές φάσεις του κύκλου ζωής του προγράμματος. Αυτό το άρθρο εξετάζει τη διαφορά μεταξύ του χρόνου μεταγλώττισης και του χρόνου εκτέλεσης. Η βασική διαφορά μεταξύ του χρόνου μεταγλώττισης και του χρόνου εκτέλεσης είναι ότι ο χρόνος μεταγλώττισης είναι η φάση του κύκλου ζωής προγραμματισμού που μετατρέπει τον πηγαίο κώδικα σε ένα εκτελέσιμο αρχείο, ενώ ο χρόνος εκτέλεσης αναφέρεται στη φάση του κύκλου ζωής προγραμματισμού που εκτελεί τα εκτελέσιμα που δημιουργούνται κατά το χρόνο μεταγλώττισης. Τα σφάλματα που εμφανίζονται κατά το χρόνο μεταγλώττισης είναι γνωστά ως σφάλματα χρόνου μεταγλώττισης και τα σφάλματα που εμφανίζονται κατά το χρόνο εκτέλεσης είναι γνωστά ως εξαιρέσεις.
Τι είναι ο χρόνος μεταγλώττισης;
Ο προγραμματιστής μπορεί να δώσει οδηγίες στον υπολογιστή χρησιμοποιώντας μια γλώσσα προγραμματισμού. Οι περισσότερες γλώσσες προγραμματισμού που χρησιμοποιούνται από έναν προγραμματιστή είναι γλώσσες προγραμματισμού υψηλού επιπέδου. Έχουν σύνταξη παρόμοια με την αγγλική γλώσσα. Αυτές οι γλώσσες είναι εύκολα αναγνώσιμες και κατανοητές από τον άνθρωπο. Το πρόγραμμα που γράφτηκε χρησιμοποιώντας μια γλώσσα υψηλού επιπέδου είναι γνωστό ως πηγαίος κώδικας. Ο πηγαίος κώδικας μπορεί να περιέχει ένα σύνολο γραμμών ή πολλές γραμμές ανάλογα με την εργασία. Οι οδηγίες που παρέχονται χρησιμοποιώντας γλώσσα υψηλού επιπέδου δεν είναι κατανοητές από τον υπολογιστή. Ο υπολογιστής κατανοεί τον κώδικα του μηχανήματος. Επομένως, ο πηγαίος κώδικας πρέπει να μεταγλωττιστεί σε κώδικα μηχανής για να είναι ένα εκτελέσιμο πρόγραμμα. Η φάση του κύκλου ζωής του προγραμματισμού ονομάζεται χρόνος μεταγλώττισης. Είναι η χρονική περίοδος για την ολοκλήρωση της διαδικασίας σύνταξης. Οι λειτουργίες κατά το χρόνο μεταγλώττισης περιλαμβάνουν ανάλυση σύνταξης, σημασιολογική ανάλυση και δημιουργία κώδικα.
Εικόνα 01: Χρόνος μεταγλώττισης και χρόνος εκτέλεσης
Κατά τη μεταγλώττιση, μπορεί να προκύψουν σφάλματα. Εμφανίζονται λόγω συντακτικών και σημασιολογικών λαθών. Αυτά τα σφάλματα αποφεύγουν την επιτυχή μεταγλώττιση. Ο μεταγλωττιστής υποδεικνύει σχετικά με τα σφάλματα χρόνου μεταγλώττισης. Θα εμφανίσει ένα μήνυμα σε ποια γραμμή παρουσιάστηκε το σφάλμα. Μερικά συνηθισμένα σφάλματα μεταγλώττισης είναι ότι λείπουν σγουρά άγκιστρα, αναγνωριστικά ορθογραφίας και λέξεις-κλειδιά με ορθογραφικό λάθος. Όταν παρουσιάζεται ένα σφάλμα μεταγλώττισης, ο προγραμματιστής θα πρέπει να διορθώσει αυτό το σφάλμα.
Τι είναι Runtime;
Ο χρόνος εκτέλεσης είναι επίσης γνωστός ως χρόνος εκτέλεσης. Είναι ο χρόνος που εκτελείται ένα πρόγραμμα σε αντίθεση με άλλες φάσεις του κύκλου ζωής του προγράμματος όπως ο χρόνος μεταγλώττισης, ο χρόνος φόρτωσης κ.λπ. Όταν ολοκληρωθεί η διαδικασία μεταγλώττισης, εκτελείται από τον χρήστη. Η χρονική περίοδος εκτέλεσης του εκτελέσιμου που δημιουργείται κατά το χρόνο μεταγλώττισης αναφέρεται ως χρόνος εκτέλεσης. Ο όρος χρόνος εκτέλεσης μπορεί να χρησιμοποιηθεί για την αναφορά σφαλμάτων. Ακόμη και το πρόγραμμα είναι σωστά μεταγλωττιστής, μπορεί να υπάρξουν σφάλματα.
Αυτά τα σφάλματα δεν θα δώσουν το αναμενόμενο αποτέλεσμα. Μπορεί επίσης να τερματίσει την εκτέλεση του προγράμματος. Αυτά τα σφάλματα εμφανίζονται κατά το χρόνο εκτέλεσης, επομένως είναι γνωστά ως σφάλματα χρόνου εκτέλεσης ή Εξαιρέσεις. Ορισμένα σφάλματα χρόνου εκτέλεσης διαιρούν έναν αριθμό με το μηδέν όταν ο πίνακας είναι εκτός ορίου και εξαντλείται η μνήμη.
Ποια είναι η ομοιότητα μεταξύ του χρόνου μεταγλώττισης και του χρόνου εκτέλεσης;
Τόσο ο χρόνος μεταγλώττισης όσο και ο χρόνος εκτέλεσης είναι φάσεις κύκλου ζωής του προγράμματος
Ποια είναι η διαφορά μεταξύ του χρόνου μεταγλώττισης και του χρόνου εκτέλεσης;
Χρόνος μεταγλώττισης έναντι χρόνου εκτέλεσης |
|
Ο χρόνος μεταγλώττισης είναι η φάση του κύκλου ζωής του προγραμματισμού που μετατρέπει τον πηγαίο κώδικα σε ένα εκτελέσιμο αρχείο. | Χρόνος εκτέλεσης είναι ο χρόνος που εκτελείται ένα πρόγραμμα, σε αντίθεση με άλλες φάσεις του κύκλου ζωής του προγράμματος, όπως ο χρόνος μεταγλώττισης, ο χρόνος σύνδεσης και ο χρόνος φόρτωσης. |
Σφάλματα | |
Τα σφάλματα χρόνου μεταγλώττισης είναι συντακτικά και σημασιολογικά σφάλματα. | Τα σφάλματα χρόνου εκτέλεσης είναι γνωστά ως εξαιρέσεις. |
Σύνοψη – Χρόνος μεταγλώττισης έναντι χρόνου εκτέλεσης
Ο χρόνος μεταγλώττισης και ο χρόνος εκτέλεσης είναι δύο φάσεις του κύκλου ζωής του προγραμματισμού. Αυτό το άρθρο εξέτασε τη διαφορά μεταξύ του χρόνου μεταγλώττισης και του χρόνου εκτέλεσης. Η μετατροπή του πηγαίου κώδικα του προγραμματιστή σε κώδικα μηχανής πραγματοποιείται τη στιγμή της μεταγλώττισης. Η εκτέλεση του εκτελέσιμου αρχείου που δημιουργείται κατά το χρόνο μεταγλώττισης αναφέρεται ως χρόνος εκτέλεσης. Όταν υπάρχει σφάλμα κατά το χρόνο μεταγλώττισης, ο μεταγλωττιστής εμφανίζει ένα μήνυμα σύμφωνα με το σφάλμα. Ακόμη και το πρόγραμμα που έχει μεταγλωττιστεί, μπορεί να μην δώσει την αναμενόμενη έξοδο. Σε αυτήν την περίπτωση, πρόκειται για σφάλμα χρόνου εκτέλεσης ή εξαίρεση. Η διαφορά μεταξύ του χρόνου μεταγλώττισης και του χρόνου εκτέλεσης είναι ότι ο χρόνος μεταγλώττισης είναι η φάση του κύκλου ζωής προγραμματισμού που μετατρέπει τον πηγαίο κώδικα σε εκτελέσιμο αρχείο, ενώ ο χρόνος εκτέλεσης αναφέρεται στη φάση του κύκλου ζωής προγραμματισμού που εκτελεί τα εκτελέσιμα που δημιουργούνται κατά το χρόνο μεταγλώττισης.