Diferença entre montador e compilador

Diferença entre montador e compilador
Diferença entre montador e compilador

Vídeo: Diferença entre montador e compilador

Vídeo: Diferença entre montador e compilador
Vídeo: Which Tokyo Disney Theme Park Is Better? Disneyland VS Disneysea! 2024, Julho
Anonim

Assembler vs Compiler

Em geral, compilador é um programa de computador que lê um programa escrito em uma linguagem, que é chamada de linguagem de origem, e o traduz para outra linguagem, que é chamada de linguagem de destino. Tradicionalmente, a linguagem 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 fonte escrito em linguagem Assembly e convertê-lo em código de máquina ou código objeto. Montadores são essas ferramentas. Assim, tanto os montadores quanto 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, 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 traduzem de um idioma para outro. Além disso, os compiladores realizam algumas otimizações no código. Um compilador típico é composto de vários componentes principais. O primeiro componente é o scanner (também conhecido como analisador léxico). O scanner lê o programa e o converte em uma sequência de tokens. O segundo componente é o analisador. Ele converte a string de tokens em uma árvore de análise sintática (ou uma árvore de sintaxe abstrata), que captura a estrutura sintática do programa. O próximo componente são 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 Montador?

Assembler é um software ou ferramenta que traduz a linguagem Assembly para código de máquina. Assim, um montador é um tipo de compilador e o código-fonte é escrito em linguagem Assembly. Assembly é uma linguagem legível por humanos, mas normalmente tem uma relação de um para um com o código de máquina correspondente. Portanto, diz-se que um montador realiza uma tradução isomórfica (mapeamento um para um). Montadores avançados fornecem recursos adicionais que suportam o desenvolvimento de programas e processos de depuração. Por exemplo, o tipo de montador chamado montador de macro fornece um recurso de macro.

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

Compiler é um programa de computador que lê um programa escrito em uma linguagem e o traduz para outra linguagem, enquanto um montador pode ser considerado um tipo especial de compilador que traduz apenas linguagem Assembly para código de máquina. Os compiladores geralmente produzem o código executável da máquina diretamente de uma linguagem de alto nível, mas os montadores produzem um código objeto que pode ter que ser vinculado usando programas vinculadores para executar em uma máquina. Como a linguagem Assembly tem um mapeamento de um para um com o código de máquina, um montador pode ser usado para produzir código que seja executado de forma muito eficiente para ocasiões em que o desempenho é muito importante (por exemplo, mecanismos gráficos, sistemas embarcados com recursos de hardware limitados em comparação com um computador pessoal). como microondas, máquinas de lavar, etc.).

Recomendado: