Un compilador es un program de computador cual tradui otra programes de un forma a un otra. La forma inisial es nomida codigo de fonte, e es scriveda en un lingua programal cual programores pote leje fasil. La forma resultante es multe plu cru, ma lo es direta esecutable par un computador.

Un razona comun per usa un compilador es per converti codigo de fonte a un forma binaria (codigo de ojeto) per crea un program esecutable. On usa la nom "compilador" xef per programes cual tradui codigo de un lingua de nivel alta a un lingua de nivel plu basa, pe lingua de asembla o codigo de macina.

Multe spesies de compilador esiste. Si la program compilada pote funsiona en un computador de cual sua prosedador o sistem de opera difere de lo en cual la compilador mesma funsiona, alora la compilador es un transcompilador. Un program cual tradui de un lingua de nivel basa a un lingua de nivel plu alta es nomida un descompilador. Un program cual tradui entre linguas de nivel alta es nomida un compilador de fonte a fonte. On ave ance rescrivadores cual tradui la forma de espresas sin cambia la lingua. On usa la nom compilador de compilador per un jenerador de analisadores sintatical, un util comun usada per aida crea alga partes fundal de un compilador.

Un compilador tipal fa multe o tota de la funsionas seguente: preprosede, analise de simboles, analise sintatical, analise de semantica (tradui dirijeda par sintatica), representa media, boni de codigo, e jenera de codigo. Compiladores reali esta funsiones en fases cual suporta un desinia nonperosa e un muta coreta de enflue a esflue. Car falis causada par la condui noncoreta de un compilador pote es multe difisil per comprende e evita, programores de compiladores labora multe per serti la coretia.

Compiladores no es la sola traduadores usada per converti codigo de fonte. Un interpretador es un program cual tradui e ance esecuta la operas indicada. La nesesas de la prosede de tradui influe la desinia de linguas de programi, e pote gida a un prefere per compila o interprete en un lingua spesifada. Ma si nesesada, on pote crea interpretadores per linguas usual compilada e compiladores per linguas usual interpreteda.

La compiladores la plu temprana ia es scriveda en codigo de asembla. La compilador prima autocompilante – scriveda en un lingua de nivel alta e capas de compila sua propre codigo – ia es creada en 1962 par Tim Hart e Mike Levin a MIT per la lingua Lisp. De la desenio de 1970, lo ia deveni comun ce on scrive un compilador en la lingua cual lo compila, ma Pascal e C ia es ance elejes comun. La construi de un compilador autocompilante presenta un problem spesial: on nesesa compila la varia prima de la compilador o par mano, o par un otra compilador scriveda en un otra lingua, o (como en la compilador de Hart e Levin) par esecuta la compilador en un interpretador.