Ohjelmointikielen tulkki on tietokoneohjelma, joka käsittelee ohjelmointikielisiä lauseita ja suorittaa ne.[1] Tämä poikkeaa ohjelmointikielen kääntäjästä, joka kääntää koko lähdekoodin konekieliseksi ohjelmaksi sen myöhempää suorittamista varten.[2]
Periaatteessa sama lähdekoodi on mahdollista joko tulkata tai kääntää. Lähdekoodin tulkkaaminen on hitaampaa kuin samasta koodista käännetyn konekielisen ohjelman ajaminen. Ero johtuu siitä, että tulkin on ensin analysoitava lähdekoodi ja sitten vielä suoritettava se, kun jo käännetyssä konekielisessä ohjelmassa riittää pelkkä suorittaminen. Toisaalta kääntäminen ja ohjelman suorittaminen yhteensä on hitaampaa kuin ohjelmakoodin tulkkaaminen kerran.[2]
Eräät ohjelmointikielet, kuten Java ja Emacs Lisp, käännetään tyypillisesti tavukoodiksi, joka suoritetaan virtuaalikoneella. Tämä tavukoodi on alustariippumatonta ja kompaktia, joskin hieman hitaampaa kuin konekielinen ohjelma. Myös monet komentosarjakielet, mukaan lukien Perl, PHP ja Python käännetään aluksi alustariippumattomaksi tavukoodiksi, jota tavukooditulkki ajaa. Käännös suoritetaan kun ohjelma käynnistetään. Käännetty tavukoodi voidaan myös tallentaa kiintolevylle uutta käynnistyskertaa varten.