en kompilator er et spesielt program som behandler uttalelser skrevet i et bestemt programmeringsspråk og gjør dem til maskinspråk eller» kode » som en datamaskins prosessor bruker. Vanligvis skriver en programmerer språksetninger på et språk som Pascal eller C en linje om gangen ved hjelp av en redaktør. Filen som opprettes inneholder det som kalles kildeuttalelser. Programmereren kjører deretter den aktuelle språk kompilatoren, og angir navnet på filen som inneholder kildeuttalelsene.
når du kjører (kjører), analyserer kompilatoren først (eller analyserer) alle språksetningene syntaktisk etter hverandre, og deretter, i ett eller flere påfølgende trinn eller «passerer», bygger utdatakoden, og sørger for at setninger som refererer til andre setninger, refereres til riktig i den endelige koden. Tradisjonelt har utgangen av kompileringen blitt kalt objektkode eller noen ganger en objektmodul . (Merk at begrepet «objekt» her ikke er relatert til objektorientert programmering.) Objektkoden er maskinkode som prosessoren kan utføre en instruksjon om gangen.Java-programmeringsspråket, et språk som brukes i objektorientert programmering, introduserte muligheten for å kompilere utdata (kalt bytecode) som kan kjøre på hvilken som helst datasystemplattform som En Java virtuell maskin eller bytekode tolk er gitt for å konvertere bytekoden til instruksjoner som kan utføres av den faktiske maskinvareprosessoren. Ved hjelp av denne virtuelle maskinen kan bytekoden eventuelt rekompileres på utførelsesplattformen av en just-in-time-kompilator. (Se også: Java compiler)
Tradisjonelt i noen operativsystemer, var et ekstra trinn nødvendig etter kompilering-det å løse den relative plasseringen av instruksjoner og data når mer enn en objektmodul skulle kjøres samtidig, og de kryssrefererte til hverandres instruksjonssekvenser eller data. Denne prosessen ble noen ganger kalt koblingsredigering og utgangen kjent som en lastmodul.
en kompilator fungerer med DET som noen ganger kalles 3gl og høyere nivå språk. En assembler fungerer på programmer skrevet ved hjelp av en prosessor assembler språk.