Alle de dataprogram som en datamaskin kjører foreligger i maskinkode. Da det er upraktisk for et menneske å programmere direkte i maskinkode, er det laget ulike programmeringsspråk som gjør det enklere for programmereren å skrive et dataprogram. For å kunne nyttegjøre seg av det programmet en skriver i et visst programmeringsspråk (kildekoden), trengs en kompilator som oversetter kildekoden til maskinkode, som da maskinen kan bruke til å kjøre programmet.