Os programadores usam compiladores para transformar o código-fonte em código de máquina.
Os computadores lêem comandos de uma linguagem de máquina escrita em binário, ou seja, longas sequências de zeros e uns. Embora os computadores possam ler essa linguagem com eficiência, a maioria dos programadores humanos não pode. É por isso que os programadores trabalham em uma linguagem de programação que eles podem entender, que então traduzem para a linguagem de máquina que o computador pode entender. Enquanto muitas linguagens mais recentes usam intérpretes que traduzem de um para o outro enquanto o programa é executado, os mais antigos linguagens de programação usavam compiladores que faziam essa tradução inteiramente antes de o computador executar o programa.
Vantagem: Autossuficiente e Eficiente
Uma grande vantagem dos programas compilados é que eles são unidades independentes que estão prontas para serem executadas. Como eles já estão compilados em binários de linguagem de máquina, não há um segundo aplicativo ou pacote que o usuário tenha que manter atualizado. Se um programa for compilado para Windows em uma arquitetura x86, o usuário final precisará apenas de um sistema operacional Windows em execução em uma arquitetura x86. Além disso, um pacote pré-compilado pode ser executado mais rápido do que um interpretador compilando o código-fonte em tempo real.
Vídeo do dia
Desvantagem: Específico de Hardware
Como um compilador traduz o código-fonte em uma linguagem de máquina específica, os programas devem ser compilado especificamente para OS X, Windows ou Linux, bem como especificamente para 32 ou 64 bits arquiteturas. Para um programador ou empresa de software que tenta lançar um produto para o maior público possível, isso significa manter várias versões do código-fonte para o mesmo aplicativo. Isso resulta em mais tempo gasto na manutenção do código-fonte e em problemas extras quando as atualizações são lançadas.
Vantagem: Otimização de Hardware
Embora ficar preso a um pacote de hardware específico tenha suas desvantagens, compilar um programa também pode aumentar seu desempenho. Os usuários podem enviar opções específicas aos compiladores sobre os detalhes do hardware no qual o programa será executado. Isso permite que o compilador crie um código em linguagem de máquina que faça o uso mais eficiente do hardware especificado, em oposição a um código mais genérico. Isso também permite que usuários avançados otimizem o desempenho de um programa em seus computadores.
Desvantagem: Compile Times
Uma das desvantagens de ter um compilador é que ele deve realmente compilar o código-fonte. Enquanto os pequenos programas que muitos programadores novatos codificam levam uma quantidade trivial de tempo para compilar, os conjuntos de aplicativos maiores podem levar uma quantidade significativa de tempo para compilar. Quando os programadores não têm nada a fazer a não ser esperar que o compilador termine, desta vez pode somar - especialmente durante o estágio de desenvolvimento, quando o código deve ser compilado para testar a funcionalidade e solucionar problemas falhas.