Προγραμματισμός

Γνώση Υπολογιστών >> Προγραμματισμός >  >> Γλώσσες Προγραμματισμού Υπολογιστών

Τι απαιτείται για τη μετατροπή μιας γλώσσας υψηλού επιπέδου σε μηχάνημα έτσι ώστε να την εκτελέσετε αργότερα;

Για να μετατρέψετε μια γλώσσα υψηλού επιπέδου (όπως Python, Java, C ++, κλπ.) Σε κώδικα μηχανής, ώστε να μπορεί να εκτελεστεί, χρειάζεστε μια διαδικασία που περιλαμβάνει ένα ή περισσότερα από τα παρακάτω βήματα:

1. Συλλογή: Ένας μεταγλωττιστής μεταφράζει ολόκληρο το πρόγραμμα υψηλού επιπέδου σε κώδικα μηχανής (ή μερικές φορές τον κωδικό συναρμολόγησης, ο οποίος στη συνέχεια συναρμολογείται σε κωδικό μηχανής) * πριν από την εκτέλεση. Αυτό έχει ως αποτέλεσμα ένα εκτελέσιμο αρχείο που μπορεί να εκτελεστεί απευθείας από τον επεξεργαστή του υπολογιστή. Οι καταρτισμένες γλώσσες προσφέρουν γενικά καλύτερη απόδοση από τις ερμηνευμένες γλώσσες. Παραδείγματα μεταγλωττιστών περιλαμβάνουν GCC (για C/C ++) και Javac (για Java).

2. Ερμηνεία: Ένας διερμηνέας μεταφράζει και εκτελεί το πρόγραμμα υψηλού επιπέδου μία γραμμή (ή δήλωση) κάθε φορά. Δεν παράγει ξεχωριστό εκτελέσιμο αρχείο. Αντ 'αυτού, εκτελεί άμεσα τον κώδικα καθώς μεταφράζεται. Αυτό είναι γενικά πιο αργό από τη συλλογή, αλλά προσφέρει μεγαλύτερη ευελιξία, ειδικά για δυναμικές γλώσσες. Η Python και η JavaScript ερμηνεύονται κυρίως οι γλώσσες, αν και χρησιμοποιούνται ορισμένες τεχνικές συλλογής Just-in-Time (JIT) για τη βελτίωση της απόδοσης.

3. Αυτή η υβριδική προσέγγιση συνδυάζει πτυχές της συλλογής και της ερμηνείας. Ο κώδικας αρχικά ερμηνεύεται, αλλά συχνά εκτελούνται τμήματα καταρτίζονται στον κώδικα μηχανής για ταχύτερη εκτέλεση σε επόμενες διαδρομές. Η JVM (Java Virtual Machine) της Java και ορισμένοι σύγχρονοι κινητήρες JavaScript (όπως το V8 στο Chrome) χρησιμοποιούν τη συλλογή JIT.

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

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα