Diferența Dintre Asamblator și Compilator

Diferența Dintre Asamblator și Compilator
Diferența Dintre Asamblator și Compilator
Anonim

Asamblator vs Compilator

În general, compilatorul este un program de calculator care citește un program scris într-o limbă, care se numește limbă sursă, și îl traduce într-o altă limbă, numită limbă țintă. În mod tradițional, limbajul sursă era un limbaj de nivel înalt, cum ar fi C ++, iar limbajul țintă era un limbaj de nivel scăzut, cum ar fi limbajul de asamblare. Cu toate acestea, există compilatoare care pot converti un program sursă scris în limbaj de asamblare și îl pot converti în cod mașină sau cod obiect. Asamblatorii sunt astfel de instrumente. Deci, atât asamblatoarele, cât și compilatoarele produc în cele din urmă 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 se numește limba sursă, și îl traduce într-o altă limbă, numită limba țintă. Cel mai adesea, limba sursă este o limbă de nivel înalt, iar limba țintă este o limbă de nivel scăzut. Deci, în general, compilatoarele pot fi văzute ca traducători care traduc dintr-o limbă în alta. În plus, compilatoarele efectuează unele optimizări ale codului. Un compilator tipic este alcătuit din mai multe componente principale. Prima componentă este scanerul (cunoscut și ca analizor lexical). Scanner 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. Optimizările de cod și generarea finală de cod urmează acest lucru.

Ce este un asamblator?

Assembler este un software sau un instrument care traduce limbajul de asamblare în codul mașinii. Deci, un asamblator este un tip de compilator, iar codul sursă este scris în limbajul Asamblării. Asamblarea este un limbaj care poate fi citit de om, dar are de obicei o relație unu la unu cu codul mașinii corespunzător. Prin urmare, se spune că un asamblator efectuează traducere izomorfă (cartografiere unu la unu). Asamblatoarele avansate oferă funcții suplimentare care sprijină dezvoltarea programelor și procesele de depanare. De exemplu, tipul de asamblori numiți asamblori macro oferă o facilitate macro.

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

Compilatorul este un program de calculator care citește un program scris într-o limbă și îl traduce într-o altă limbă, în timp ce un asamblator poate fi considerat un tip special de compilator care traduce numai limbajul de asamblare în codul mașinii. Compilatoarele produc de obicei codul executabil al mașinii direct dintr-un limbaj de nivel înalt, dar asamblatoarele produc un cod obiect care ar putea fi necesar să fie conectat 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 a produce cod care rulează foarte eficient pentru ocaziile în care performanța este foarte importantă (de exemplu, motoare grafice, sisteme încorporate cu resurse hardware limitate în comparație cu un computer personal precum microundele, mașinile de spălat etc.).

Recomandat: