O papel de um intérprete na programação
Um intérprete é um programa de computador que
executa diretamente as instruções escritas em uma linguagem de programação, linha por linha (ou instrução por instrução), sem primeiro converter todo o código -fonte em código da máquina. Ele lê o código, analisa -o (analisa a sintaxe) e, em seguida, executa as ações especificadas pelo código imediatamente.
características -chave dos intérpretes: * Execução de linha por linha: O intérprete lê e executa o código do programa uma linha por vez.
*
Nenhuma geração de código intermediário: Ao contrário dos compiladores, os intérpretes não criam um arquivo executável ou arquivo de código de objeto de objeto separado.
*
Interpretação dinâmica: O processo de interpretação acontece durante o tempo de execução. O intérprete analisa o código e executa ações à medida que o programa é executado.
*
Execução imediata: As alterações feitas no código -fonte podem ser vistas imediatamente após a economia (geralmente).
Aqui está um colapso do processo: 1.
Leia uma linha/declaração: O intérprete lê a próxima instrução do código -fonte.
2.
analisar a instrução: Ele verifica a sintaxe e garante que a instrução seja válida.
3.
Execute a instrução: O intérprete executa a operação especificada pela instrução.
4.
Repita: As etapas 1-3 são repetidas para cada linha/instrução até que todo o programa seja executado ou ocorra um erro.
Exemplo: Imagine um programa Python simples:
`` `Python
x =5
y =10
Imprimir (x + y)
`` `
Quando este programa é executado pelo intérprete Python:
1. O intérprete lê `x =5`.
2. Ele analisa a linha e atribui o valor 5 à variável `x`.
3. O intérprete lê `y =10`.
4. Ele analisa a linha e atribui o valor 10 à variável `y`.
5. O intérprete lê `print (x + y)`.
6. Ele analisa a linha, avalia `x + y` (que é 15) e, em seguida, chama a função` print` para exibir o resultado.
Como os intérpretes diferem dos compiladores
A principal diferença entre intérpretes e compiladores está na maneira como lidam com a execução do código do programa:
| Recurso | Intérprete | Compilador |
| ---------
|
tradução | Execução de linha a linha; nenhum executável separado. | Traduz todo o código -fonte em código da máquina ou uma representação intermediária * antes da execução. |
|
Execução | Executa diretamente durante o tempo de execução. | Executa o código compilado posteriormente, como um processo separado. |
|
Manuseio de erro | Os erros são detectados durante o tempo de execução. | Os erros são detectados durante a compilação e a execução é impedida se existirem erros.
|
velocidade | Velocidade de execução geralmente mais lenta. | Velocidade de execução geralmente mais rápida porque o código já está traduzido. |
|
Portabilidade | Altamente portátil (é executado em qualquer sistema com um intérprete). Menos portátil; requer um recompile para cada plataforma de destino. |
|
depuração | Depuração mais fácil; Os erros podem ser identificados imediatamente. A depuração pode ser mais complexa, pois você está depurando a saída compilada. |
|
Uso da memória | Pode ter menor pegada de memória inicial, pois carrega código sob demanda. Pode exigir mais memória durante a compilação para criar o código intermediário/máquina. |
|
Ciclo de desenvolvimento | Ciclos de desenvolvimento mais rápidos à medida que as mudanças são imediatamente visíveis | Ciclos de desenvolvimento mais longos, pois cada alteração de código precisa ser recompilada antes de executar |
|
Exemplos | Python, JavaScript, Ruby, Php | C, C ++, Java (compila com bytecode), vá, ferrugem |
em poucas palavras: *
Interpretador: Executa diretamente o código, linha por linha. Bom para um rápido desenvolvimento e portabilidade, mas potencialmente mais lento.
*
compilador: Traduz o programa inteiro em código da máquina antes da execução. Resulta em execução mais rápida, mas menos portátil e um ciclo de desenvolvimento mais longo.
Analogia: Imagine que você tem um livro escrito em uma língua estrangeira.
*
Interpretador: Você contrata um tradutor que lê o livro para você em voz alta, traduzindo uma frase de cada vez à medida que avançam.
*
compilador: Você tem o livro inteiro traduzido para o seu idioma nativo de antemão. Você pode ler você mesmo a versão traduzida sem precisar de um tradutor presente.
Abordagens híbridas: Também é importante observar que alguns idiomas usam uma abordagem híbrida. Por exemplo, o Java é compilado no ByteCode, que é então interpretado pela Java Virtual Machine (JVM). Isso combina os benefícios da compilação (execução mais rápida) e interpretação (independência da plataforma).