I compilatori sono una parte essenziale del toolkit di un programmatore di computer. Un compilatore trasforma un file di testo semplice contenente il codice in un programma che può essere eseguito.
Un malinteso comune è che i computer capiscano il codice. Questo non è vero. I computer comprendono solo il codice macchina, ovvero il codice assemblato per l'architettura del processore del computer. Alcuni programmi sono disponibili nelle versioni a 32 e 64 bit e quelli che utilizzano un sistema operativo a 32 bit non possono eseguire programmi a 64 bit. I compilatori convertono il codice che il programmatore scrive nel codice macchina.
Tuttavia, non tutte le lingue devono essere compilate. Alcune lingue sono conosciute come lingue interpretate; queste sono lingue che vengono compilate in fase di esecuzione. I linguaggi interpretati devono ancora essere compilati in codice macchina, ma ciò avviene mentre il programma viene eseguito. Una volta che il codice di una lingua compilata viene trasformato in un programma compilato, non è necessario che l'utente finale del programma abbia il compilatore sulla sua macchina. Tuttavia, l'utente di un programma scritto in una lingua interpretata è necessario per avere l'interprete sulla sua macchina. Alcuni esempi di linguaggi compilati sono C, C ++, C # e Objective-C, mentre alcuni esempi di linguaggi interpretati sono Python, Ruby, PHP e JavaScript.