Assembleur vs interprète
En général, Compiler est un programme informatique qui lit un programme écrit dans une langue, qui est appelé la langue source, et le traduit dans une autre langue, qui est appelé la 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 qui peuvent convertir un programme source écrit en langage d'assemblage et le convertir en code machine ou code d'objet. Les assembleurs sont de tels outils. D'un autre côté, 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 le code source de haut niveau, soit les traduire en code intermédiaire, puis l'interpréter ou exécuter le code précompilé.
Qu'est-ce qu'un assembleur?
L'assembleur 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 d'assemblage. L'assemblage est un langage lisible par l'homme, mais il a généralement une relation à un avec le code machine correspondant. Par conséquent, un assembleur effectuerait une traduction isomorphe (un à un mappage). Les assembleurs avancés offrent des fonctionnalités supplémentaires qui prennent en charge le développement de programmes et les processus de débogage. Par exemple, le type d'assembleurs appelés macro-assembleurs fournit une facilité de macro.
Qu'est-ce qu'un interprète?
Un interprète est un programme informatique ou un outil qui exécute des instructions de programmation. Un interprète peut soit exécuter directement le code source, soit convertit la source en code intermédiaire et l'exécuter directement ou exécuter le code précompilé produit par un compilateur (certains systèmes d'interprète 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 langues comme Java, Basic et Samlltalk compilent d'abord la source à un code intermédiaire appelé bytecode, puis l'interprétez.
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ète peuvent inclure un compilateur pour pré-compiler le code avant interprétation, mais un interprète ne peut pas être appelé type spécial d'un compilateur. Les assembleurs produisent un code d'objet, qui pourrait devoir être lié à l'aide de programmes de linker afin d'exécuter sur une machine, mais la plupart des interprètes peuvent terminer l'exécution d'un programme par eux-mêmes. Un assembleur fera généralement une traduction une à une, mais ce n'est pas vrai pour la plupart des interprètes. Parce que le langage d'assemblage a un mappage d'un à un avec le code machine, un assembleur peut être utilisé pour produire du code qui s'exécute très efficacement pour les occasions où les performances sont très importantes (pour E.g. Moteurs graphiques, systèmes intégrés avec des ressources matérielles limitées par rapport à un ordinateur personnel comme les micro-ondes, les machines à laver, etc.). D'un autre côté, les interprètes sont utilisés lorsque vous avez besoin d'une portabilité élevée. Par exemple, le même Java Bytecode peut être exécuté sur différentes plates-formes en utilisant l'interprète approprié (JVM).