Compilação e execução são duas fases distintas no processo de execução de um programa de computador, particularmente aquelas escritas em linguagens compiladas como C, C ++ ou GO (em oposição a idiomas interpretados como Python ou JavaScript). Aqui está o colapso:
Compilação: *
O que é: A compilação é o processo de tradução do código-fonte (código legível pelo homem escrito por um programador) em código da máquina (instruções binárias que o processador de um computador pode entender e executar diretamente). O compilador é um programa especial que executa esta tradução.
*
saída: A saída da compilação é um arquivo executável (por exemplo, um arquivo `.exe` no Windows ou um binário simples no Linux/MacOS). Este arquivo contém as instruções do código da máquina.
*
Processo: O compilador verifica o código -fonte quanto a erros (erros de sintaxe, erros semânticos, etc.). Se os erros forem encontrados, a compilação falhará e o programador precisará corrigir os erros no código -fonte antes de tentar novamente. Se não forem encontrados erros, o compilador gerará o arquivo executável.
*
Quando isso acontece: Compilação acontece * antes de * o programa ser executado. É uma etapa separada.
Execução: *
O que é: A execução é o processo de execução do programa compilado. O processador do computador busca e executa as instruções do código da máquina uma a uma.
*
Entrada: A entrada para execução é o arquivo executável criado durante a compilação. Também pode envolver dados de entrada fornecidos ao programa enquanto ele é executado (por exemplo, entrada do usuário, dados de um arquivo).
*
saída: A saída da execução pode ser muitas coisas:dados exibidos na tela, dados gravados em um arquivo, alterações feitas no sistema ou simplesmente o status de saída do programa (indicando sucesso ou falha).
*
Quando isso acontece: A execução acontece * após * compilação. É o estágio em que o programa executa suas tarefas pretendidas.
Analogia: Pense em escrever um livro (código -fonte) e, em seguida, imprimi -lo (compilação). O livro impresso é o arquivo executável. Ler o livro impresso é a execução. Você não pode ler o livro (executar) até que ele tenha sido impresso (compilado).
Idiomas interpretados: Os idiomas interpretados não têm uma etapa de compilação separada da mesma maneira. Um intérprete lê e executa o código -fonte linha por linha, sem criar um arquivo executável separado com antecedência. No entanto, alguns idiomas interpretados usam compilação just-in-time (JIT) para melhorar o desempenho compilando partes do código no código da máquina durante a execução. Mas mesmo com o JIT, a distinção entre a etapa de tradução e a etapa de execução é menos clara do que nos idiomas compilados.