Assembler vs Interpreter
Em geral, o compilador é um programa de computador que lê um programa escrito em um idioma, chamado de idioma de origem, e o converte em outro idioma, chamado de idioma de destino. Tradicionalmente, o idioma de origem é um idioma de alto nível, como C ++, e o idioma de destino, um idioma de baixo nível, como a linguagem Assembly. No entanto, existem compiladores que podem converter um programa de origem escrito em linguagem Assembly e convertê-lo em código de máquina ou código de 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 para o código intermediário e, em seguida, interpretá-lo ou executar o código pré-compilado.
O que é um assembler?
Assembler é um software ou uma 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 na linguagem Assembly. Assembly é uma linguagem legível por humanos, mas geralmente possui um relacionamento individual com o código de máquina correspondente. Portanto, é dito que um assembler executa a tradução isomórfica (mapeamento um a um). Montadores avançados fornecem recursos adicionais que dão suporte aos processos de desenvolvimento e depuração de programas. Por exemplo, o tipo de montadores chamados macro assemblers 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 intérprete pode executar o código-fonte diretamente ou converter a fonte em um código intermediário e executá-lo diretamente ou executar o código pré-compilado produzido por um compilador (alguns sistemas de intérpretes 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. O UCSD Pascal interpreta um código pré-compilado. Idiomas como Java, BASIC e Samlltalk primeiro compilam a fonte em um código intermediário chamado bytecode e depois interpretam.
Qual é a diferença entre um Assembler e um Intérprete?
Um assembler pode ser considerado um tipo especial de compilador, que converte apenas a linguagem Assembly em código de máquina. Intérpretes são ferramentas que executam instruções escritas em algum idioma. 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. Montadores produzem um código de objeto, que pode ter que ser vinculado usando programas vinculados para executar em uma máquina, mas a maioria dos intérpretes pode concluir a execução de um programa por si mesmos. Um assembler normalmente faz uma tradução individual, mas isso não é verdade para a maioria dos intérpretes. Como a linguagem Assembly possui um mapeamento individual com código de máquina, um assembler pode ser usado para produzir código executado com muita eficiência em ocasiões em que o desempenho é muito importante (por exemplo, mecanismos gráficos, sistemas incorporados com recursos limitados de hardware 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 JVM (interpretador apropriado).