Kääntäjä on ohjelmointikielen toteutus, joka lukee ohjelman ja tuottaa siitä uuden, jonkin muun kielisen (usein konekielisen) ohjelman. Tämän uuden ohjelman voi sitten suorittaa puolestaan kyseisen kielen toteutuksella, konekielen tapauksessa mikroprosessorilla itsellään.
Jos reseptiesimerkkiä laajennetaan tähän, kääntäjä on joku, joka ottaa vieraskielisen reseptin, tuottaa siitä uuden, suomenkielisen reseptin, ja antaa sen sinulle.
Tulkki ja kääntäjä eivät ole täysin toisensa poissulkevat. Esimerkiksi Java-kääntäjä (javac) ei tuota konekieltä, vaan JVM-kieltä, jonka sitten suorittaa tulkki (java). Eli siis:
Java-kielinen ohjelma | | javac-kääntäjä v JVM-kielinen ohjelma | | java-tulkki v toimintaa
Joillekin ohjelmointikielille (esim. Scheme) on olemassa sekä kääntäjä- että tulkkitoteutuksia.
Myös Python-ohjelmointikielelle on olemassa kääntäjä, jython, joka kääntää Pythonia JVM-kielelle. Tästä on se hyöty, että näitä ohjelmia voi sitten suorittaa java-tulkilla (joka on usein asennettuna koneisiin valmiiksi).
(takaisin ohjelmoinnin käsitteet-sivulle)