Assembleur vs compilateur
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 é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 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. 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, qui est appelé la langue source, et le traduit dans une autre langue, qui est appelé la 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 se traduisent d'une langue à une autre. De plus, les compilateurs effectuent des optimisations au code. Un compilateur typique est composé de plusieurs composants principaux. Le premier composant est le scanner (également connu sous le nom d'analyseur lexical). Le 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 une syntaxe abstraite), qui capture la structure syntaxique du programme. Le prochain composant 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 final suivent ceci.
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.
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 d'objet qui pourrait devoir être lié à l'aide de programmes de linker afin d'exécuter sur une machine. 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.).