Guia Completo: Compiladores, Tradutores e Interpretadores
1. O que é um tradutor?
Um programa que traduz ou converte um texto ou programa escrito em uma língua de partida para um texto ou programa escrito em uma língua-alvo, emitindo mensagens de erro, se necessário.
3. Qual é a função de um tradutor?
Converter o resultado de uma determinada língua para outra, como, por exemplo, um tradutor de inglês para espanhol.
4. Como funciona um compilador?
Recebe como entrada uma sentença em linguagem formal e gera como saída um arquivo executável, realizando a tradução de alto nível para código de máquina.
5. Como funciona um intérprete?
Semelhante a um compilador, porém a saída é a execução imediata. O programa de entrada é interpretado e executado linha a linha.
6. O que são linguagens pseudointerpretadas?
São linguagens onde o código-fonte passa por um pseudocompilador que gera um pseudoejecutável. Este é processado por um mecanismo de execução, oferecendo a vantagem da portabilidade, permitindo rodar o motor em qualquer máquina.
7. Como funciona um pré-processador?
Permite modificar o programa de origem antes da compilação real, utilizando macros e diretivas.
8. Qual é a finalidade de um comando shell?
Traduz frases simples em chamadas para programas de biblioteca, sendo muito utilizado em sistemas operacionais (como DOS ou UNIX) para desencadear a execução de programas residentes na memória ou em disco.
9. O que são montadores (assemblers) e macroassemblers?
- Assembler: Um compilador simples onde a linguagem de origem possui uma estrutura que permite a tradução de uma frase para uma instrução de código de máquina (correspondência um para um).
- Macroassembler: Possui macros que são traduzidas em várias instruções de máquina, funcionando como um pré-processamento antes da montagem.
10. Qual é a diferença entre um montador e um macroassembler?
O assembler mantém uma correspondência de 1:1 entre instruções e código de máquina, enquanto o macroassembler geralmente traduz uma macro em várias instruções de máquina.
11. O que são conversores de linguagem?
Convertem uma linguagem de alto nível para outra linguagem de alto nível, visando maior portabilidade.
12. O que é um compilador cruzado (cross-compiler)?
É um compilador que gera código para ser executado em uma máquina diferente daquela em que o compilador roda. São usados no desenvolvimento de novos computadores.
13. Quais são as funções de um compilador?
Análise e compilação.
14. O que é um arquivo OBJ?
Um arquivo com estrutura de registros de comprimentos variados. Contém código de máquina, informações auxiliares e referências a objetos externos.
15. O que é a compilação multipassagem?
Refere-se ao número de vezes que o programa-fonte é lido. Em certas situações, uma única leitura do arquivo de origem não é suficiente para a compilação.
16. O que é a compilação incremental?
Compila um programa e, caso erros sejam descobertos, apenas as alterações são compiladas em vez de recompilar o programa inteiro. O objetivo é recompilar apenas as partes com erros e reinserir o código no arquivo OBJ gerado.
32. O que é um metacompilador?
É um programa que recebe como entrada as especificações de uma linguagem e gera como saída o compilador para essa linguagem. O desafio no desenvolvimento de metacompiladores é unir a geração de código com a análise.