Translator (computing)
This article needs attention from an expert in computer science. Please add a reason or a talk parameter to this template to explain the issue with the article. |
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.
Types
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.
If the translator translates target/machine code to source language it is called a decompiler. Example: DCC, Boomerang Decompilers and Reverse Engineering Compiler (REC).
If the translator translates assembly language to machine code it is called an assembler. Examples include MASM, TASM, NASM and FASM.
If the translator translates machine code into assembly language it is called a disassembler. Examples include gdb, IDA Pro and OllyDbg.
See also