Différence entre assembleur et interprète

Différence entre assembleur et interprète
Différence entre assembleur et interprète

Vidéo: Différence entre assembleur et interprète

Vidéo: Différence entre assembleur et interprète
Vidéo: C# beginners :- Assembly , EXE and DLL 2024, Juillet
Anonim

Assembleur vs Interprète

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 est un langage de haut niveau tel que C++ et le langage cible est 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. D'autre part, les interprètes sont des outils qui exécutent des instructions écrites dans un langage de programmation. L'interprète peut soit exécuter directement du code source de haut niveau, soit le traduire en code intermédiaire, puis l'interpréter ou exécuter du code précompilé.

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.

Qu'est-ce qu'un interprète ?

Un interpréteur est un programme informatique ou un outil qui exécute des instructions de programmation. Un interpréteur peut soit exécuter le code source directement, soit convertir la source en un code intermédiaire et l'exécuter directement, soit exécuter un code précompilé produit par un compilateur (certains systèmes d'interprétation incluent un compilateur pour cette tâche). Des langages comme Perl, Python, MATLAB et Ruby sont des exemples de langages de programmation qui utilisent un code intermédiaire. UCSD Pascal interprète un code précompilé. Des langages comme Java, BASIC et Samlltalk compilent d'abord la source en un code intermédiaire appelé bytecode, puis l'interprètent.

Quelle est la différence entre un assembleur et un interprète ?

Un assembleur peut être considéré comme un type spécial de compilateur, qui ne traduit que le langage d'assemblage en code machine. Les interprètes sont des outils qui exécutent des instructions écrites dans une langue. Les systèmes d'interprétation peuvent inclure un compilateur pour pré-compiler le code avant l'interprétation, mais un interpréteur ne peut pas être appelé un type spécial de compilateur. 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, mais la plupart des interpréteurs peuvent terminer l'exécution d'un programme par eux-mêmes. Un assembleur fera généralement une traduction un à un, mais ce n'est pas vrai pour la plupart des interprètes. É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.). D'autre part, les interprètes sont utilisés lorsque vous avez besoin d'une grande portabilité. Par exemple, le même bytecode Java peut être exécuté sur différentes plateformes en utilisant l'interpréteur approprié (JVM).

Conseillé: