Ang compiler ay isang programa ng kompyuter (o pangkat ng mga programa) na binabago ang anyo ng pinagmulang kodigo o code na nakasulat sa isang wikang pamprograma tungo sa isa pang wikang pamprograma. Ang pinakakaraniwang rason ng pagbabago ng isang pinagmulang kodigo ay para makagawa ng isang programang executable o maaring patakbuhin.

Isang banghay ng operasiyon ng isang tipikal ng isang multi-language, multi-target compiler

Ang pangalang compiler ay pangunahing ginagamit para sa mga programa na nagsasalin ng pinagmulang kodigo mula sa mas mataas na wikang programa patungo sa mas mababang antas ng wika. Kung ang programang naitala ay nakakayang gumana sa kompyuter na ang CPU o sistemang nag-papagana ay naiiba mula sa kung saan gumagana ang compiler, ang compiler ay kilala bilang isang cross-compiler. Sa pangkalahatan, ang mga compiler ay isang natatanging uri ng tagasalin.

Ang programa na nagsasalin mula sa isang mababang antas ng wika papunta sa mas mataas na antas ay isang decompiler. Ang programa na nagsasalin sa pagitan ng matataas na antas ng wika ay kadalasang tinatawag na source-to-source (pinagmulan-sa-pinagmulan) na compiler o transpiler. Ang wikang nagsusulat muli ay kadalasang isang programa na nagsasalin ng mga anyo ng ekspresyon na walang nag-iibang wika. Ang salitang compiler-compiler ay ginagamit para minsan itawag sa isang parser generator, isang kasangkapan na madalas ginagamit para makatulong makalikha ng lexer at parser.