Rolul compilatorului pentru limbajele de nivel înalt este similar asamblorului – transformarea instrucțiunilor scrise în limbajul de programare în instrucțiuni cod calculator. Deosebirea este că o instrucțiune a limbajului de programare de nivel înalt se poate transforma în mai multe instrucțiuni în limbaj calculator, spre deosebire de limbajele de asamblare, unde relația este 1:1.
Un compilator este un program care transformă codul sursă scris într-un limbaj de programare de nivel înalt în limbaj calculator.
Procesul de conversie a programului din limbajul de nivel înalt în limbajul calculatorului este cunoscut sub numele de compilare.