A programot forráskód alakjában tesszük közé, ezt terjesztjük. A program felhasználója a forráskódot futtatja. A forráskód futtatáskor kerül fordításra.
A forráskódból futtatható, gépi kódot állítunk elő. Az így elő állított kódot néha natív kódnak is nevezzük. A fordítás két menetben végezzük el. Elsőként egy tárgykódot állítunk elő. Ez azért jó, mert egy több részből álló program esetén csak azokat kell lefordítani, amelyeknek a forráskódja változott.