Διαφορές Μεταξύ Μεταφραστών και Διερμηνέων

Πριν το Ιάβα και C # γλώσσες προγραμματισμού εμφανίστηκε, τα προγράμματα ηλεκτρονικών υπολογιστών ήταν μόνο καταρτίζονται ή ερμηνεύονται. Γλώσσες όπως η Γλώσσα Συναρμολόγησης, C, C ++, Fortran, Pascal καταρτίστηκαν σχεδόν πάντα στον κώδικα μηχανών. Γλώσσες όπως το Basic, το VbScript και το JavaScript ερμηνεύτηκαν συνήθως.

Ποια είναι λοιπόν η διαφορά ανάμεσα σε ένα πρόγραμμα που έχει συνταχθεί και σε ένα ερμηνευμένο πρόγραμμα;

Σύνταξη

Για να γράψετε ένα πρόγραμμα ακολουθούν τα εξής βήματα:

  1. Επεξεργαστείτε το Πρόγραμμα
  2. Καταρτίστε το πρόγραμμα σε αρχεία κώδικα μηχανής.
  3. Συνδέστε τα αρχεία κώδικα του μηχανήματος σε ένα πρόγραμμα που μπορεί να τρέξει (γνωστό και ως exe).
  4. Debug ή Εκτέλεση του προγράμματος

Με ορισμένες γλώσσες όπως το Turbo Pascal και οι Δελφοί οι βαθμοί 2 και 3 συνδυάζονται.

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

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

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

Διερμηνεία

Τα βήματα για την εκτέλεση ενός προγράμματος μέσω ενός διερμηνέα είναι

  1. Επεξεργαστείτε το Πρόγραμμα
  2. Debug ή Εκτέλεση του προγράμματος

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

Πληκτρολογήστε Java και C #

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

Η Java, όταν συντάσσεται, παράγει bytecode που ερμηνεύεται κατά τη διάρκεια εκτέλεσης από μια εικονική μηχανή Java (JVM). Πολλά JVMs χρησιμοποιούν έναν μεταγλωττιστή Just-In-Time που μετατρέπει το bytecode σε κώδικα μητρικής μηχανής και στη συνέχεια εκτελεί αυτόν τον κώδικα για να αυξήσει την ταχύτητα ερμηνείας. Στην πραγματικότητα, ο πηγαίος κώδικας της Java καταρτίζεται σε μια διαδικασία δύο σταδίων.

Το C # μεταγλωττίζεται στην Κοινή Ενδιάμεση Γλώσσα (CIL), η οποία ήταν παλαιότερα γνωστή ως Microsoft Intermediate Language MSIL. Αυτό εκτελείται από το Common Language Runtime (CLR), μέρος του πλαισίου .NET, ένα περιβάλλον που παρέχει υπηρεσίες υποστήριξης όπως συλλογή απορριμμάτων και σύνταξη Just-In-Time.

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

Τι σημαίνει αυτό για μένα;

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

instagram story viewer