Diferença entre Assembler e Compiler

Anonim

Assembler vs Compiler

Em geral, o compilador é um programa de computador que lê um programa escrito em um idioma, que é chamou o idioma de origem e o traduz para outro idioma, que é chamado de idioma de destino. Tradicionalmente, o idioma de origem era uma linguagem de alto nível como C ++ e a linguagem de destino era uma linguagem de baixo nível, como a linguagem Assembly. No entanto, existem compiladores que podem converter um programa de origem escrito no idioma da montagem e convertê-lo em código de máquina ou código de objeto. Os montadores são essas ferramentas. Assim, tanto as montadoras como os compiladores produzem código que pode ser executado diretamente em uma máquina.

O que é um compilador?

Compilador é um programa de computador que lê um programa escrito em um idioma, que é chamado de idioma de origem, e o traduz para outro idioma, que é chamado de idioma de destino. Na maioria das vezes, o idioma de origem é um idioma de alto nível e o idioma de destino é um idioma de baixo nível. Assim, em geral, os compiladores podem ser vistos como tradutores que se traduzem de um idioma para outro. Além disso, os compiladores executam algumas otimizações para o código. Um compilador típico é composto por vários componentes principais. O primeiro componente é o scanner (também conhecido como o analisador lexical). O scanner lê o programa e o converte em uma série de tokens. O segundo componente é o analisador. Converte a cadeia de tokens em uma árvore de análise (ou uma árvore de sintaxe abstrata), que captura a estrutura sintática do programa. O próximo componente é as rotinas semânticas que interpretam a semântica da estrutura sintática. As otimizações de código e a geração final de código seguem isso.

O que é um Assembler?

Assembler é um software ou uma ferramenta que traduz o idioma da montagem para o código da máquina. Então, um montador é um tipo de compilador e o código-fonte está escrito no idioma da Assembléia. A montagem é um idioma legível para humanos, mas geralmente possui uma relação de um a um com o código da máquina correspondente. Portanto, um assembler é dito para executar a tradução isomórfica (um para um mapeamento). As montadoras avançadas fornecem recursos adicionais que suportam processos de desenvolvimento e depuração de programas. Por exemplo, o tipo de montadoras chamadas de montagem de macro fornece uma instalação de macro.

Qual a diferença entre um Assembler e um Compiler?

O compilador é um programa de computador que lê um programa escrito em um idioma e o traduz para outro idioma, enquanto um montador pode ser considerado um tipo especial de compilador que traduz apenas linguagem Assembly para o código da máquina. Os compiladores geralmente produzem o código executável da máquina diretamente de um idioma de alto nível, mas as montadoras produzem um código de objeto que pode ser vinculado usando programas de vinculação para serem executados em uma máquina.Como a linguagem Assembly tem um mapeamento um a um com o código da máquina, um montador pode ser usado para produzir código que funciona de forma muito eficiente para ocasiões em que o desempenho é muito importante (por exemplo, motores gráficos, sistemas embutidos com recursos de hardware limitados em comparação com um computador pessoal como microondas, máquinas de lavar roupa, etc.).