What is a compiler program?

  Compiler
  A diagram of the operation of a typical multi-language, multi-target compiler.

A compiler is a computer program (or a set of programs) that transforms source code written in a programming language (the source language) into another computer language (the target language), with the latter often having a binary form known as object code. The most common reason for converting 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. More generally, compilers are a specific type of translator.

While all programs that take a set of programming specifications and translate them, i.e. create a means to execute those specifications, are technically "compilers," the term generally means a program that produces a separate executable from the compiler (that may require a run time library or subsystem to operate), a compiler that merely executes the original specifications is usually referred to as an "interpreter", although because of differing methods of analyzing what represents compilation and what represents interpretation, there is some overlap between the two terms.

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 source-to-source compiler or transpiler. A language rewriter is usually a program that translates the form of expressions without a change of language. The term compiler-compiler is sometimes used to refer to a parser generator, a tool often used to help create the lexer and parser.

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 compiler correctness.

BACK

  • 61 Users Found This Useful
Was this answer helpful?

Related Articles

What is a domain name?

A domain name is an identification string that defines a realm of administrative autonomy,...

What is Social Media?

Social media includes web-based and mobile technologies used to turn communication into...

What is DNS (Domain Name System)?

The Domain Name System (DNS) is a hierarchical distributed naming system for computers, services,...

What is Cloud Computing?

Cloud computing is the delivery of computing as a service rather than a product, whereby shared...

What is the IPV6 Internet Protocol?

Internet Protocol version 6 (IPv6) is a version of the Internet Protocol (IP). It is designed to...

Powered by WHMCompleteSolution