Programmen som översätter källkod till objektkod kallas
compilers och
Assemblers .
* kompilatorer: Dessa översätter källkod på hög nivå (skriven på språk som C, C ++, Java, Python, etc.) till monteringsspråk eller direkt i maskinkod (objektkod). Processen involverar vanligtvis flera steg, inklusive lexikal analys, parsing, semantisk analys, optimering och kodgenerering. Den resulterande objektkoden är specifik för målarkitekturen (t.ex. x86-64, ARM).
* Assemblers: Dessa översätter monteringsspråk (en låg nivå, mänsklig läsbar representation av maskinkod) till objektkod. Monteringsspråk använder mnemonics för att representera maskininstruktioner, vilket gör det enklare för programmerare att arbeta med än råmaskinkod.
Medan kompilatorer ofta genererar monteringsspråk som ett mellansteg, producerar de i slutändan objektkod. Assemblers arbetar direkt med monteringsspråket för att producera objektkod. Därför är båda avgörande i processen att omvandla källkod till körbara program. En länkare kombinerar sedan dessa objektfiler (och ofta förkompilerade bibliotek) för att skapa den slutliga körbara filen.