Δημοσιεύτηκε: 24 Ιουν 2011, 16:40
Το μείον των interpreted langs είναι το efficiency γενικώς (και σε ταχύτητα και σε μνήμη), και το συν τους είναι η ευκολία στη συγγραφή κώδικα. Το αντίστροφο ισχύει στις compiled γλώσσες. Υπάρχουν φυσικά κι εξαιρέσεις και στις δυο κατηγορίες, που απλά επιβεβαιώνουν τον κανόνα, και που εν πολλοίς έχουν δικιά τους κατηγορία, ανάμεσα στα δυο άκρα (Java, Python, κλπ).
Το bytecode μπορεί μεν να θεωρηθεί εκτελέσιμο αρχείο (με λίγο πιο διευρυμένη ερμηνεία του όρου) αλλά αποτελεί ενδιάμεσο σκαλοπάτι μεταξύ του πραγματικά εκτελέσιμου αρχείου (κώδικας μηχανής) και του πηγαίου κώδικα. Το bytecode εκτελείται μέσω του λεγόμενου Virtual Machine (σκέψου το κάτι σαν κρυφό λειτουργικό πάνω από το κανονικό λειτουργικό σύστημα της εκάστοτε πλατφόρμας) κι έχει το πλεονέκτημα πως μπορεί να εκτελεστεί σε οποιαδήποτε πλατφόρμα, αφού είναι ανεξάρτητο από το hardware.
Προφανώς κι αυτό υστερεί σε efficiency πόρων, έναντι του πραγματικού, hardware-dependent, εκτελέσιμου αρχείου.
Το bytecode μπορεί μεν να θεωρηθεί εκτελέσιμο αρχείο (με λίγο πιο διευρυμένη ερμηνεία του όρου) αλλά αποτελεί ενδιάμεσο σκαλοπάτι μεταξύ του πραγματικά εκτελέσιμου αρχείου (κώδικας μηχανής) και του πηγαίου κώδικα. Το bytecode εκτελείται μέσω του λεγόμενου Virtual Machine (σκέψου το κάτι σαν κρυφό λειτουργικό πάνω από το κανονικό λειτουργικό σύστημα της εκάστοτε πλατφόρμας) κι έχει το πλεονέκτημα πως μπορεί να εκτελεστεί σε οποιαδήποτε πλατφόρμα, αφού είναι ανεξάρτητο από το hardware.
Προφανώς κι αυτό υστερεί σε efficiency πόρων, έναντι του πραγματικού, hardware-dependent, εκτελέσιμου αρχείου.