Kompilatory są istotną częścią zestawu narzędzi programisty. Kompilator zamienia zwykły plik tekstowy zawierający kod na program, który można uruchomić.
Powszechnym błędem jest to, że komputery rozumieją kod. To nie jest prawda. Komputery rozumieją tylko kod maszynowy, czyli kod, który jest montowany w architekturze procesora komputera. Niektóre programy są dostępne zarówno w wersjach 32-bitowej, jak i 64-bitowej, a te, które używają 32-bitowego systemu operacyjnego, nie mogą uruchamiać programów 64-bitowych. Kompilatory zmieniają kod, który programista zapisuje w kodzie maszynowym.
Jednak nie każdy język musi zostać skompilowany. Niektóre języki są znane jako języki interpretowane; są to języki, które są kompilowane w czasie wykonywania. Tłumaczone języki nadal muszą być wkompilowane w kod maszynowy, ale dzieje się tak podczas uruchamiania programu. Gdy kod z kompilowanego języka zostanie przekształcony w skompilowany program, nie jest konieczne, aby końcowy użytkownik tego programu miał kompilator na swoim komputerze. Jednak użytkownik programu napisanego w języku interpretowanym musi posiadać tłumacza na swoim komputerze. Niektóre przykłady kompilowanych języków to C, C ++, C # i Objective-C, a niektóre przykłady interpretowanych języków to Python, Ruby, PHP i JavaScript.