O que é compilador?
Um compilador é um programa de computador que transforma o código escrito em uma linguagem de programação de alto nível em código de máquina. É um programa que traduz o código legível por humanos para uma linguagem que um processador de computador entende (binário 1 e 0 bits). O computador processa o código de máquina para realizar as tarefas correspondentes.
Um compilador deve obedecer à regra de sintaxe da linguagem de programação em que foi escrito. No entanto, o compilador é apenas um programa e não pode corrigir os erros encontrados nesse programa. Portanto, se você cometer um erro, precisará fazer alterações na sintaxe do seu programa. Caso contrário, ele não será compilado.
O que é intérprete?
Um intérprete é um programa de computador, que inclui cada instrução de programa de alto nível no código de máquina. Isso inclui código-fonte, código pré-compilado e scripts. Tanto o compilador quanto os interpretadores fazem o mesmo trabalho, que é converter a linguagem de programação de nível superior em código de máquina. No entanto, um compilador irá converter o código em código de máquina (criar um exe) antes da execução do programa. Os intérpretes convertem o código em código de máquina quando o programa é executado.
DIFERENÇA CHAVE
- O compilador transforma o código escrito em uma linguagem de programação de alto nível em código de máquina, de uma vez, antes da execução do programa, enquanto um intérprete cobre cada instrução de programa de alto nível, uma por uma, no código de máquina, durante a execução do programa.
- O código compilado é executado mais rápido, enquanto o código interpretado é executado mais lentamente.
- O compilador mostra todos os erros após a compilação, por outro lado, o intérprete mostra os erros de cada linha um a um.
- O compilador é baseado no modelo de link-carregamento da tradução, enquanto o Interpretador é baseado no método de interpretação.
- O compilador pega um programa inteiro, enquanto o intérprete pega uma única linha de código.
Diferença entre compilador e intérprete
Base de diferença | Compilador | Intérprete |
---|---|---|
Passos de Programação |
|
|
Vantagem | O código do programa já está traduzido em código de máquina. Assim, o tempo de execução do código é menor. | Os intérpretes são mais fáceis de usar, especialmente para iniciantes. |
Desvantagem | Você não pode alterar o programa sem voltar ao código-fonte. | Os programas interpretados podem ser executados em computadores que possuem o intérprete correspondente. |
Código da máquina | Armazene a linguagem de máquina como código de máquina no disco | Não salvando o código de máquina. |
Tempo de execução | O código compilado é executado mais rápido | O código interpretado é executado mais devagar |
Modelo | Baseia-se no modelo de carregamento de link de tradução de idioma. | Baseia-se no Método de Interpretação. |
Geração de programa | Gera programa de saída (na forma de exe) que pode ser executado independentemente do programa original. | Não gere programa de saída. Portanto, eles avaliam o programa de origem a cada momento durante a execução. |
Execução | A execução do programa é separada da compilação. É executado somente depois que todo o programa de saída é compilado. | A execução do programa faz parte do processo de interpretação, portanto, é realizada linha por linha. |
Requisito de memória | O programa de destino é executado de forma independente e não requer o compilador na memória. | O intérprete existe na memória durante a interpretação. |
Mais adequado para | Limitado à máquina de destino específica e não pode ser transferido. C e C ++ são as linguagens de programação mais populares que usam o modelo de compilação. | Para ambientes da web, onde os tempos de carregamento são importantes. Devido a todas as análises exaustivas feitas, as compilações levam um tempo relativamente maior para compilar até mesmo um código pequeno que pode não ser executado várias vezes. Nesses casos, os intérpretes são melhores. |
Otimização de Código | O compilador vê todo o código antecipadamente. Portanto, eles realizam muitas otimizações que tornam o código executado mais rápido | Os intérpretes veem o código linha por linha e, portanto, as otimizações não são tão robustas quanto os compiladores |
Digitação Dinâmica | Difícil de implementar, pois os compiladores não podem prever o que acontece na hora do turno. | Linguagens interpretadas suportam Digitação Dinâmica |
Uso | É mais adequado para o ambiente de produção | É mais adequado para o programa e ambiente de desenvolvimento. |
Erro de execução | O compilador exibe todos os erros e avisos no momento da compilação. Portanto, você não pode executar o programa sem corrigir erros | O interpretador lê uma única instrução e mostra o erro, se houver. Você deve corrigir o erro para interpretar a próxima linha. |
Entrada | Leva um programa inteiro | Leva uma única linha de código. |
Resultado | Compliers gera código machnie intermediário. | O intérprete nunca gera qualquer código machnie intermediário. |
Erros | Exibe todos os erros após a compilação, tudo ao mesmo tempo. | Exibe todos os erros de cada linha, um por um. |
Linguagens de programação pertinentes | C, C ++, C #, Scala, Java usam complier. | PHP, Perl, Ruby usam um interpretador. |
Papel do compilador
- O compilador lê o código-fonte, produz o código executável
- Traduz software escrito em uma linguagem de nível superior em instruções que o computador pode entender. Ele converte o texto que um programador escreve em um formato que a CPU pode entender.
- O processo de compilação é relativamente complicado. Ele gasta muito tempo analisando e processando o programa.
- O resultado executável é alguma forma de código binário específico da máquina.
Papel do intérprete
- O interpretador converte o código-fonte linha por linha durante o RUN Time.
- Interpret traduz completamente um programa escrito em uma linguagem de alto nível para uma linguagem de nível de máquina.
- O intérprete permite a avaliação e modificação do programa durante sua execução.
- Relativamente menos tempo gasto para analisar e processar o programa
- A execução do programa é relativamente lenta em comparação com o compilador
IDIOMAS DE ALTO NÍVEL
Linguagens de alto nível, como C, C ++, JAVA, etc., são muito próximas do inglês. Facilita o processo de programação. No entanto, deve ser traduzido para a linguagem de máquina antes da execução. Este processo de tradução é conduzido por um compilador ou intérprete. Também conhecido como código-fonte.
CÓDIGO DA MÁQUINA
As linguagens de máquina estão muito próximas do hardware. Cada computador tem sua linguagem de máquina. Os programas de linguagem de máquina são compostos de uma série de padrões binários. (Ex. 110110) Representa as operações simples que devem ser realizadas pelo computador. Os programas em linguagem de máquina são executáveis para que possam ser executados diretamente.
CÓDIGO DO OBJETO
Na compilação do código-fonte, o código de máquina gerado para diferentes processadores como Intel, AMD, um ARM é diferente. tPara tornar o código portátil, o código-fonte é primeiro convertido em Código-objeto. É um código intermediário (semelhante ao código de máquina) que nenhum processador entenderá. Em tempo de execução, o código-objeto é convertido no código de máquina da plataforma subjacente.
Java é compilado e interpretado.
Para explorar as vantagens relativas dos compiladores, alguns interpretadores de linguagem de programação como Java são compilados e interpretados. O próprio código Java é compilado em Código de Objeto. No tempo de execução, a JVM interpreta o código do objeto em código de máquina do computador de destino.