Διαφορά μεταξύ Assembler και Compiler
Assembler vs Compiler
Γενικά, ο compiler είναι ένα πρόγραμμα υπολογιστή που διαβάζει ένα πρόγραμμα γραμμένο σε μία γλώσσα, που ονομάζεται γλώσσα πηγής και μεταφράζεται σε άλλη γλώσσα, η οποία ονομάζεται γλώσσα στόχου. Παραδοσιακά, η γλώσσα πηγής ήταν μια γλώσσα υψηλού επιπέδου όπως η C ++ και η γλώσσα-στόχος ήταν μια γλώσσα χαμηλού επιπέδου όπως η γλώσσα συναρμολόγησης. Ωστόσο, υπάρχουν μεταγλωττιστές που μπορούν να μετατρέψουν ένα πρόγραμμα προέλευσης γραμμένο στη γλώσσα συναρμολόγησης και να το μετατρέψουν σε κώδικα μηχανής ή κώδικα αντικειμένου. Οι συναρμολογητές είναι τέτοια εργαλεία. Έτσι, και οι δύο συναρμολογητές και οι μεταγλωττιστές τελικά παράγουν κώδικα που μπορεί να εκτελεστεί απευθείας σε μια μηχανή.
Τι είναι ένας μεταγλωττιστής;
Το Compiler είναι ένα πρόγραμμα ηλεκτρονικού υπολογιστή που διαβάζει ένα πρόγραμμα γραμμένο σε μία γλώσσα, η οποία ονομάζεται γλώσσα πηγής και μεταφράζεται σε άλλη γλώσσα, η οποία ονομάζεται γλώσσα στόχου. Τις περισσότερες φορές, η γλώσσα πηγής είναι μια γλώσσα υψηλού επιπέδου και η γλώσσα στόχος είναι μια γλώσσα χαμηλού επιπέδου. Έτσι, γενικά οι μεταγλωττιστές μπορούν να θεωρηθούν ως μεταφραστές που μεταφράζουν από τη μια γλώσσα στην άλλη. Επιπλέον, οι μεταγλωττιστές πραγματοποιούν ορισμένες βελτιστοποιήσεις στον κώδικα. Ένας τυπικός μεταγλωττιστής αποτελείται από πολλά κύρια στοιχεία. Το πρώτο στοιχείο είναι ο σαρωτής (επίσης γνωστός ως λεξικός αναλυτής). Ο σαρωτής διαβάζει το πρόγραμμα και το μετατρέπει σε μια σειρά από μάρκες. Το δεύτερο στοιχείο είναι ο αναλυτής. Μετατρέπει τη σειρά συμβόλων σε ένα παράξενο δέντρο (ή ένα αφηρημένο δέντρο σύνταξης), το οποίο καταγράφει τη συντακτική δομή του προγράμματος. Επόμενο στοιχείο είναι οι σημασιολογικές ρουτίνες που ερμηνεύουν τη σημασιολογία της συντακτικής δομής. Οι βελτιστοποιήσεις κώδικα και η παραγωγή τελικού κώδικα ακολουθούν αυτό.
Τι είναι ένας συναρμολογητής;
Το Assembler είναι ένα λογισμικό ή ένα εργαλείο που μεταφράζει τη γλώσσα συναρμολόγησης στον κώδικα μηχανής. Έτσι, ένας συναρμολογητής είναι ένας τύπος ενός μεταγλωττιστή και ο πηγαίος κώδικας γράφεται στη γλώσσα συναρμολόγησης. Η συναρμολόγηση είναι μια γλώσσα αναγνώσιμη από τον άνθρωπο, αλλά συνήθως έχει μια σχέση ενός προς έναν με τον αντίστοιχο κώδικα μηχανής. Επομένως, ένας συναρμολογητής λέγεται ότι εκτελεί ισομορφική (μία προς μία χαρτογράφηση) μετάφραση. Οι προηγμένοι συναρμολογητές παρέχουν πρόσθετα χαρακτηριστικά που υποστηρίζουν τις διαδικασίες ανάπτυξης προγραμμάτων και εντοπισμού σφαλμάτων. Για παράδειγμα, ο τύπος των συναρμολογητών που ονομάζονται μακροσυναρμολογητές παρέχει μια μακροεντολή.
Ποια είναι η διαφορά μεταξύ ενός Assembler και ενός Compiler;
Το Compiler είναι ένα πρόγραμμα υπολογιστή που διαβάζει ένα πρόγραμμα γραμμένο σε μία γλώσσα και μεταφράζει το σε άλλη γλώσσα, ενώ ένας συναρμολογητής μπορεί να θεωρηθεί ως ειδικός τύπος μεταγλωττιστή, ο οποίος μεταφράζει μόνο τη γλώσσα συναρμολόγησης στον κώδικα μηχανής. Οι μεταγλωττιστές συνήθως παράγουν τον εκτελέσιμο κώδικα μηχανής απευθείας από μια γλώσσα υψηλού επιπέδου, αλλά οι κατασκευαστές κατασκευάζουν έναν αντικειμενικό κώδικα που μπορεί να πρέπει να συνδεθεί χρησιμοποιώντας προγράμματα linker για να τρέξει σε ένα μηχάνημα.Επειδή η γλώσσα Συναρμολόγησης έχει χαρτογράφηση ενός προς έναν με τον κωδικό μηχανής, ένας συναρμολογητής μπορεί να χρησιμοποιηθεί για την παραγωγή κώδικα που εκτελείται πολύ αποτελεσματικά για περιπτώσεις στις οποίες η απόδοση είναι πολύ σημαντική (π.χ. για μηχανές γραφικών, ενσωματωμένα συστήματα με περιορισμένους πόρους υλικού σε σύγκριση με έναν προσωπικό υπολογιστή όπως τα μικροκύματα, τα πλυντήρια, κ.λπ.).