en kompilator är ett speciellt program som behandlar uttalanden skrivna i ett visst programmeringsspråk och förvandlar dem till maskinspråk eller ”kod” som en dators processor använder. Vanligtvis skriver en programmerare språkuttalanden på ett språk som Pascal eller C en rad i taget med en redaktör. Filen som skapas innehåller vad som kallas källuttalanden. Programmeraren kör sedan lämplig språkkompilator och anger namnet på filen som innehåller källuttalandena.
Vid körning (körning) analyserar kompilatorn först (eller analyserar) alla språkuttalanden syntaktiskt efter varandra och sedan, i ett eller flera på varandra följande steg eller ”passerar”, bygger utgångskoden och ser till att uttalanden som hänvisar till andra uttalanden hänvisas till korrekt i den slutliga koden. Traditionellt har utmatningen av kompileringen kallats objektkod eller ibland en objektmodul . (Observera att termen ”objekt” här inte är relaterad till objektorienterad programmering.) Objektkoden är maskinkod som processorn kan utföra en instruktion åt gången.Java-programmeringsspråket, ett språk som används i objektorienterad programmering, introducerade möjligheten att sammanställa utdata (kallad bytecode ) som kan köras på vilken datorsystemplattform som en Java virtuell maskin eller bytecode-tolk tillhandahålls för att konvertera bytecode till instruktioner som kan utföras av den faktiska hårdvaruprocessorn. Med hjälp av denna virtuella maskin kan bytecode valfritt kompileras på exekveringsplattformen av en just-in-time-kompilator. (Se även: Java compiler)
traditionellt i vissa operativsystem krävdes ett ytterligare steg efter kompilering – det för att lösa den relativa platsen för instruktioner och data när mer än en objektmodul skulle köras samtidigt och de korsvis hänvisade till varandras instruktionssekvenser eller data. Denna process kallades ibland länkredigering och utgången känd som en lastmodul.
en kompilator arbetar med vad som ibland kallas 3GL och högre Språk. En assembler arbetar med program skrivna med en processors assembler-språk.