Différence entre l'assembleur et le compilateur

Différence entre l'assembleur et le compilateur
Différence entre l'assembleur et le compilateur

Vidéo: Différence entre l'assembleur et le compilateur

Vidéo: Différence entre l'assembleur et le compilateur
Vidéo: 2 min pour comprendre l'Union Africaine 2024, Juillet
Anonim

Assembleur vs Compilateur

En général, un compilateur est un programme informatique qui lit un programme écrit dans une langue, appelée langue source, et le traduit dans une autre langue, appelée langue cible. Traditionnellement, le langage source était un langage de haut niveau tel que C++ et le langage cible était un langage de bas niveau tel que le langage d'assemblage. Cependant, il existe des compilateurs capables de convertir un programme source écrit en langage assembleur et de le convertir en code machine ou en code objet. Les assembleurs sont de tels outils. Ainsi, les assembleurs et les compilateurs produisent finalement du code qui peut être directement exécuté sur une machine.

Qu'est-ce qu'un compilateur ?

Compiler est un programme informatique qui lit un programme écrit dans une langue, appelée langue source, et le traduit dans une autre langue, appelée langue cible. Le plus souvent, la langue source est une langue de haut niveau et la langue cible est une langue de bas niveau. Ainsi, en général, les compilateurs peuvent être considérés comme des traducteurs qui traduisent d'une langue à une autre. De plus, les compilateurs effectuent certaines optimisations du code. Un compilateur typique est composé de plusieurs composants principaux. Le premier composant est le scanner (également connu sous le nom d'analyseur lexical). Scanner lit le programme et le convertit en une chaîne de jetons. Le deuxième composant est l'analyseur. Il convertit la chaîne de jetons en un arbre d'analyse (ou un arbre de syntaxe abstraite), qui capture la structure syntaxique du programme. Le composant suivant est les routines sémantiques qui interprètent la sémantique de la structure syntaxique. Les optimisations de code et la génération de code finale suivent.

Qu'est-ce qu'un assembleur ?

Assembler est un logiciel ou un outil qui traduit le langage d'assemblage en code machine. Ainsi, un assembleur est un type de compilateur et le code source est écrit en langage assembleur. L'assemblage est un langage lisible par l'homme, mais il a généralement une relation un à un avec le code machine correspondant. Par conséquent, on dit qu'un assembleur effectue une traduction isomorphe (un à un mappage). Les assembleurs avancés fournissent des fonctionnalités supplémentaires qui prennent en charge les processus de développement et de débogage de programmes. Par exemple, le type d'assembleurs appelés assembleurs de macros fournit une fonction macro.

Quelle est la différence entre un assembleur et un compilateur ?

Compiler est un programme informatique qui lit un programme écrit dans une langue et le traduit dans une autre langue, tandis qu'un assembleur peut être considéré comme un type spécial de compilateur qui traduit uniquement le langage d'assemblage en code machine. Les compilateurs produisent généralement le code exécutable de la machine directement à partir d'un langage de haut niveau, mais les assembleurs produisent un code objet qui peut devoir être lié à l'aide de programmes de liaison afin de s'exécuter sur une machine. Étant donné que le langage d'assemblage a un mappage un à un avec le code machine, un assembleur peut être utilisé pour produire du code qui s'exécute très efficacement dans les cas où les performances sont très importantes (par exemple, les moteurs graphiques, les systèmes embarqués avec des ressources matérielles limitées par rapport à un ordinateur personnel comme les micro-ondes, les machines à laver, etc.).

Conseillé: