A compiler is a computer program (or set of programs) that transforms source code written in a programming language (the source language) into another computer language (the target language, often having a binary form known as object code). The most common reason for wanting to transform source code is to create an executable program.

The name "compiler" is primarily used for programs that translate source code from a high-level programming language to a lower level language (e.g., assembly language or machine code). If the compiled program can run on a computer whose CPU or operating system is different from the one on which the compiler runs, the compiler is known as a cross-compiler. A program that translates from a low level language to a higher level one is a decompiler. A program that translates between high-level languages is usually called a language translator, source to source translator, or language converter. A language rewriter is usually a program that translates the form of expressions without a change of language.

A compiler is likely to perform many or all of the following operations: lexical analysis, preprocessing, parsing, semantic analysis (Syntax-directed translation), code generation, and code optimization.

Program faults caused by incorrect compiler behavior can be very difficult to track down and work around; therefore, compiler implementors invest significant effort to ensure the correctness of their software.

The term compiler-compiler is sometimes used to refer to a parser generator, a tool often used to help create the lexer and parser.

Read more about Compiler:  History, Compilation, Compiler Output, Compiler Construction, Compiler Correctness, Related Techniques, International Conferences and Organizations

Other articles related to "compiler":

Lis (linear Algebra Library) - System Requirements
... The installation of Lis requires a C compiler ... The Fortran interface requires a Fortran compiler, and the algebraic multigrid preconditioner requires a Fortran 90 compiler ...
Compiler Correctness
... In computing, compiler correctness is the branch of software engineering that deals with trying to show that a compiler behaves according to its language specification ... Techniques include developing the compiler using formal methods and using rigorous testing (often called compiler validation) on an existing compiler ...
Compiler - International Conferences and Organizations
... on Theory and Practice of Software (ETAPS) sponsors the International Conference on Compiler Construction (CC), with papers from both the academic and industrial sectors ...
Larceny (Scheme Implementation)
... programming languages, specifically Scheme implementations, using the Twobit optimizing Scheme compiler ... is the back-end which compiles to native x86 or SPARC code, Petit Larceny is a Scheme to C compiler and Common Larceny is a Microsoft.NET compatible implementation running in the Common ... Larceny is a research-quality implementation of Scheme compiler for the IA-32 and SPARC (available since 1999) ...
Comeau C/C++ - Distribution
... A limited-function version of the compiler, which allows one to compile source code and view any resulting error messages, but not to produce executable programs, is available from the ... The compiler is available for both Unix and Microsoft Windows platforms ... is substantially more expensive than buying existent versions of the compiler ...