Diferența dintre asamblare și compilator

Assembler vs Compiler

În general, compilatorul este un program de calculator care citește un program scris într-o limbă, care se numește limba sursă, și o traduce într-o altă limbă, care se numește limba țintă. În mod tradițional, limba sursă a fost un limbaj de nivel înalt, cum ar fi C ++, iar limba țintă a fost un limbaj de nivel scăzut, cum ar fi limba Adunării. Cu toate acestea, există compilatoare care pot converti un program sursă scris în limba de asamblare și convertește-l la codul mașinii sau codul obiect. Asamblorii sunt astfel de instrumente. Deci, ambele asamblatori și compilatori generează cod care poate fi executat direct pe o mașină.

Ce este un compilator??

Compiler este un program de calculator care citește un program scris într-o limbă, care este numită limba sursă, și o traduce într-o altă limbă, care se numește limba țintă. Cel mai adesea, limbajul sursă este un limbaj de nivel înalt, iar limba țintă este un limbaj de nivel scăzut. Deci, în general, compilatorii pot fi văzuți ca traducători care traduc dintr-o limbă în alta. În plus, compilatoarele efectuează unele optimizări la cod. Un compilator tipic este alcătuit din mai multe componente principale. Prima componentă este scanerul (cunoscut și ca analizor lexical). Scanerul citește programul și îl convertește într-un șir de jetoane. A doua componentă este parserul. Convertește șirul de jetoane într-un arbore de analiză (sau un arbore de sintaxă abstractă), care surprinde structura sintactică a programului. Următoarea componentă este rutinele semantice care interpretează semantica structurii sintactice. Optimizarea codurilor și generarea codului final urmează acest lucru.

Ce este un asamblator?

Assembler este un software sau un instrument care traduce limba de asamblare la codul mașinii. Deci, un asamblator este un tip de compilator, iar codul sursă este scris în limba de asamblare. Adunarea este un limbaj citit de om, dar de obicei are o relație unul cu unul cu codul mașinii corespunzător. Prin urmare, se spune că un asamblator efectuează o traducere izomorfă (una la o mapare). Asamblorii avansați oferă funcții suplimentare care suportă procesele de dezvoltare și depanare a programelor. De exemplu, tipul de asamblori numiți asamblatori macro oferă o facilitate macro.

Care este diferența dintre un asamblator și un compilator?

Compiler este un program de calculator care citește un program scris într-o singură limbă și îl traduce într-o altă limbă, în timp ce un asamblator poate fi considerat un tip special de compilator care traduce numai limba Adunării la codul mașinii. Compilatoarele produc de obicei codul executabil al mașinii direct de la un limbaj de nivel înalt, dar asamblorii produc un cod obiect care ar putea fi legat folosind programe linker pentru a rula pe o mașină. Deoarece limbajul de asamblare are o mapare unu-la-unu cu codul mașinii, un asamblator poate fi utilizat pentru producerea unui cod care rulează foarte eficient pentru ocazii în care performanța este foarte importantă (de exemplu, motoarele grafice, sistemele încorporate cu resurse hardware limitate, cum ar fi microunde, mașini de spălat etc.).