A program that translates [[source code]] into [[object code]]. The compiler derives its name from the way it works, looking at the entire piece of source code and collecting and reorganizing the instructions. Thus, a compiler differs from an [[interpreter]], which analyzes and executes each line of source code in succession, without looking at the entire program. The advantage of interpreters is that they can execute a [[:Category:Programs|program]] immediately. Compilers require some time before an executable program emerges. However, programs produced by compilers run much faster than the same programs executed by an [[interpreter]].
Every high-level [[programming language]] (except strictly interpretive languages) comes with a compiler. ''In effect, the compiler is the language, because it defines which instructions are acceptable''.
Because compilers translate source code into object code, which is unique for each type of [[computer]], many compilers are available for the same language. For example, there is a [[FORTRAN]] compiler for [[PC]]s and another for [[Apple]] [[Macintosh]] computers. In addition, the compiler industry is quite competitive, so there are actually many compilers for each language on each type of computer. More than a dozen companies develop and sell [[C]] compilers for the [[PC]].