Так, якщо історично первинні компілятори транслювали код мови у апаратно залежний асемблер, то з часом виникла потреба у додаткових методах та шарах абстракції — компіляції на льоту, транслювання більш високорівневого коду в менший за рівнем, оптимізації по використанню вже скомпільованого коду тощо. Поширені стратегії компіляції: Компіляція перед виконанням (). Класичний принцип, коли компіляція проводиться окремо від виконання, зазвичай у відмінному від місця виконання середовищі. Компілятори мов програмування Pascal, C, C++, BASIC, Fortran, COBOL використовують стратегію такої попередньої компіляції.