Διαφορά μεταξύ Assembler και Compiler

Διαφορά μεταξύ Assembler και Compiler
Διαφορά μεταξύ Assembler και Compiler

Βίντεο: Διαφορά μεταξύ Assembler και Compiler

Βίντεο: Διαφορά μεταξύ Assembler και Compiler
Βίντεο: 香港ディズニーランドで過ごした幸せな1日🏰🇭🇰 | Hong Kong Disneyland Vlog 2024, Νοέμβριος
Anonim

Assembler vs Compiler

Γενικά, ο μεταγλωττιστής είναι ένα πρόγραμμα υπολογιστή που διαβάζει ένα πρόγραμμα γραμμένο σε μια γλώσσα, η οποία ονομάζεται γλώσσα πηγής, και το μεταφράζει σε μια άλλη γλώσσα, η οποία ονομάζεται γλώσσα στόχος. Παραδοσιακά, η γλώσσα πηγής ήταν μια γλώσσα υψηλού επιπέδου όπως η C++ και η γλώσσα στόχος ήταν μια γλώσσα χαμηλού επιπέδου όπως η γλώσσα Assembly. Ωστόσο, υπάρχουν μεταγλωττιστές που μπορούν να μετατρέψουν ένα πρόγραμμα πηγής γραμμένο σε γλώσσα Assembly και να το μετατρέψουν σε κώδικα μηχανής ή κώδικα αντικειμένου. Οι συναρμολογητές είναι τέτοια εργαλεία. Έτσι, τόσο οι συναρμολογητές όσο και οι μεταγλωττιστές παράγουν τελικά κώδικα που μπορεί να εκτελεστεί απευθείας σε ένα μηχάνημα.

Τι είναι ο μεταγλωττιστής;

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

Τι είναι ένα Assembler;

Το Το Assembler είναι ένα λογισμικό ή ένα εργαλείο που μεταφράζει τη γλώσσα Assembly σε κώδικα μηχανής. Έτσι, ένας assembler είναι ένας τύπος μεταγλωττιστή και ο πηγαίος κώδικας είναι γραμμένος στη γλώσσα Assembly. Η συναρμολόγηση είναι μια γλώσσα αναγνώσιμη από τον άνθρωπο, αλλά συνήθως έχει μια προς ένα σχέση με τον αντίστοιχο κώδικα μηχανής. Επομένως, ένας assembler λέγεται ότι εκτελεί ισομορφική (ένα προς ένα αντιστοίχιση) μετάφραση. Οι προηγμένες συναρμολογητές παρέχουν πρόσθετες δυνατότητες που υποστηρίζουν την ανάπτυξη προγραμμάτων και τις διαδικασίες εντοπισμού σφαλμάτων. Για παράδειγμα, ο τύπος συναρμολογητών που ονομάζονται συναρμολογητές μακροεντολών παρέχει μια δυνατότητα μακροεντολής.

Ποια είναι η διαφορά μεταξύ ενός Assembler και ενός Compiler;

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

Συνιστάται: