Compiladores são uma parte essencial do kit de ferramentas de um programador de computador. Um compilador transforma um arquivo de texto simples contendo código em um programa que pode ser executado.
Um equívoco comum é que os computadores entendem o código. Isso não é verdade. Os computadores entendem apenas o código de máquina, ou seja, o código que é montado para a arquitetura do processador do computador. Alguns programas vêm em versões de 32 bits e 64 bits, e aqueles que usam um sistema operacional de 32 bits não podem executar programas de 64 bits. Os compiladores transformam o código que o programador escreve em código de máquina.
No entanto, nem toda linguagem precisa ser compilada. Alguns idiomas são conhecidos como idiomas interpretados; essas são linguagens compiladas em tempo de execução. As linguagens interpretadas ainda precisam ser compiladas em código de máquina, mas isso ocorre enquanto o programa está sendo executado. Uma vez que o código de uma linguagem compilada é transformado em um programa compilado, não é necessário que o usuário final desse programa tenha o compilador em sua máquina. No entanto, o usuário de um programa escrito em uma linguagem interpretada deve ter o intérprete em sua máquina. Alguns exemplos de linguagens compiladas são C, C ++, C # e Objective-C, enquanto alguns exemplos de linguagens interpretadas são Python, Ruby, PHP e JavaScript.