|This article does not cite any references or sources. (November 2013)|
||This article needs attention from an expert in computer science.|
A translator is a computer program that translates a program written in a given programming language into a functionally equivalent program in a different language. Depending on the translator, this may involve changing or simplifying the program flow, without losing the essence of the program, thereby producing a functionally equivalent program.
If the translator translates a high level language into another high level language, it's called a translator or source-to-source compiler. Examples include Haxe, FORTRAN-to-Ada translators, CHILL-to-C++ translators, PASCAL-to-C translators, COBOL(DialectA)-to-COBOL(DialectB) translators.
If the translator translates a high level language into a lower level language it is called a compiler. Notice that every language can be either translated into a (Turing-complete) high level or assembly language.
If the translator translates a high level language into an intermediate code which will be immediately executed it is called an interpreter.