Compilador vs Intérprete
Ao escrever programas em um idioma de alto nível, o computador não será capaz de entendê-lo. Para que seja utilizável, você precisa convertê-lo em algo que o computador entenda. É aqui que entram os compiladores e intérpretes, pois ambos desempenham a mesma função. A principal diferença entre um compilador e um intérprete é quando eles executam o código. Com um intérprete, o código é executado imediatamente com a interpretação passando o código interpretado para o computador. Em comparação, um compilador não executa o código. Em vez disso, ele grava o código finalizado no disco. O código gravado no disco pode ser executado a qualquer momento.
A principal diferença entre o intérprete e o compilador gera outro. Como o intérprete é necessário quando você executa um programa, é necessário ter um intérprete instalado para executar o programa em sua máquina. Este não é o caso de um compilador. Depois que o programa foi compilado, você só precisa do programa compilado e não do compilador ou do código original.
Uma vantagem de usar um intérprete em vez de um compilador é a capacidade de executar o programa em computadores executando sistemas operacionais diferentes; desde que você tenha o intérprete apropriado. Quando você compila um programa, seria apenas para um sistema operacional específico e não seria executado em outros. Para executá-lo em outro sistema operacional, você precisa otimizar seu código para esse sistema operacional e compilá-lo novamente.
A desvantagem de usar um intérprete é a sobrecarga adicionada. Um intérprete precisaria de algum poder de processamento e cada linha de código seria interpretada durante o tempo de execução. Este não é o caso quando você tem um programa compilado, porque o sistema operacional pode lê-lo diretamente e executar cada comando. A etapa extra da interpretação do código faz com que o programa interpretado seja executado significativamente mais lento que o código compilado. O intérprete também não seria capaz de tirar proveito das otimizações específicas do SO que podem permitir que um programa compilado seja executado com mais eficiência.
A escolha entre um compilador e um intérprete deve depender se você deseja portabilidade ou desempenho.
Resumo: