Assembler vs Intérprete
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 é uma linguagem de alto nível, como C ++, e a linguagem de destino é 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. Por outro lado, Intérpretes são ferramentas que executam instruções escritas em alguma linguagem de programação. O intérprete pode executar diretamente o código-fonte de alto nível ou traduzi-lo em código intermediário e então interpretá-lo ou executar o código pré-compilado.
O que é um Assembler?
Assembler é um software ou ferramenta que traduz a linguagem Assembly em código de máquina. Portanto, um assembler é 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 executa 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 montadores chamados montadores de macro fornece um recurso de macro.
O que é um intérprete?
Um intérprete é um programa de computador ou uma ferramenta que executa instruções de programação. Um interpretador pode executar o código-fonte diretamente ou converter o código-fonte em um código intermediário e executá-lo diretamente ou executar o código pré-compilado produzido por um compilador (alguns sistemas interpretadores incluem um compilador para esta tarefa). Linguagens como Perl, Python, MATLAB e Ruby são exemplos de linguagens de programação que usam um código intermediário. UCSD Pascal interpreta um código pré-compilado. Linguagens como Java, BASIC e Samlltalk primeiro compilam a fonte para um código intermediário chamado bytecode e então o interpretam.
Qual é a diferença entre um Assembler e um Intérprete?
Um montador pode ser considerado um tipo especial de compilador, que apenas traduz a linguagem Assembly em código de máquina. Intérpretes são ferramentas que executam instruções escritas em alguma linguagem. Os sistemas de intérpretes podem incluir um compilador para pré-compilar o código antes da interpretação, mas um intérprete não pode ser chamado de tipo especial de compilador. Os montadores produzem um código-objeto, que pode ter que ser vinculado por meio de programas vinculadores para rodar em uma máquina, mas a maioria dos intérpretes pode completar a execução de um programa por conta própria. Um montador normalmente fará uma tradução um para um, mas isso não é verdade para a maioria dos intérpretes. Como a linguagem Assembly tem um mapeamento um para um com código de máquina, um montador pode ser usado para produzir código que é executado de forma muito eficiente para ocasiões em que o desempenho é muito importante (por exemplo, motores gráficos,sistemas embarcados com recursos de hardware limitados em comparação com um computador pessoal, como microondas, máquinas de lavar, etc.). Por outro lado, os intérpretes são usados quando você precisa de alta portabilidade. Por exemplo, o mesmo bytecode Java pode ser executado em plataformas diferentes usando o interpretador apropriado (JVM).