Μειονεκτήματα & Πλεονεκτήματα των Μεταγλωττιστών

...

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

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

Πλεονέκτημα: Αυτοδύναμη και αποτελεσματική

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

Το βίντεο της ημέρας

Μειονέκτημα: Ειδικό υλικό

Επειδή ένας μεταγλωττιστής μεταφράζει τον πηγαίο κώδικα σε μια συγκεκριμένη γλώσσα μηχανής, τα προγράμματα πρέπει να είναι έχει μεταγλωττιστεί ειδικά για OS X, Windows ή Linux, καθώς και ειδικά για 32-bit ή 64-bit αρχιτεκτονικές. Για έναν προγραμματιστή ή μια εταιρεία λογισμικού που προσπαθεί να παρουσιάσει ένα προϊόν στο ευρύτερο δυνατό κοινό, αυτό σημαίνει τη διατήρηση πολλαπλών εκδόσεων του πηγαίου κώδικα για την ίδια εφαρμογή. Αυτό έχει ως αποτέλεσμα περισσότερο χρόνο που αφιερώνεται στη συντήρηση του πηγαίου κώδικα και επιπλέον προβλήματα κατά την κυκλοφορία των ενημερώσεων.

Πλεονέκτημα: Βελτιστοποίηση υλικού

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

Μειονέκτημα: Compile Times

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