Computer programs

COMPUTER PROGRAMS are usually written in languages designed for specifying algorithms and data structures.
We call such languages programming languages. On the other hand, the computer hardware executes operations, or instructions, that are much less abstract tan the operations in the programming language, with set of available instructions varying from computer to computer.
Before a program can execute, it must be translated from the programming language in which it is written into the machine language instructions for the computer on which it will run. The program that performs this translation is called a compiler.
Formally, a compiler is simply a program that takes as its input an executable program and produces as its output an equivalent program. For the purpose of discussing translation, we refer to the language of the input as the source language and the language of the output as the target language.
The input program is typically written in some well-known programming language, such as Fortran, C, C++, Ada, Java, Scheme, or ML. The output program is rewritten into the set of native operations of a particular computer. (Some compilers use high-level languages as their target language. Such compilers are often called source-to-source translators.)

See also: Glossary of compilers