PhiloWikiConceptsPhilosophersBooksInteractive graph

Concept

Compiler

Overview

In computing, a compiler is software that translates computer code written in one programming language (the source language) into another language (the target language). The name "compiler" is primarily used for programs that translate source code from a high-level programming language to a low-level programming language (e.g., assembly language, object code, or machine code) to create an executable program.

There are many different types of compilers which produce output in different useful forms. A cross-compiler produces code for a different central processing unit (CPU) or operating system than the one on which the cross-compiler itself runs. A bootstrap compiler is often a temporary compiler, used for compiling a more permanent or better optimized compiler for a language.

Related software include decompilers, programs that translate from low-level languages to higher-level ones; programs that translate between high-level languages, usually called source-to-source compilers or transpilers; language rewriters, usually programs that translate the form of expressions without a change of language; and compiler-compilers, compilers that produce compilers (or parts of them), often in a generic and reusable way so as to be able to produce many differing compilers.

A compiler is likely to perform some or all of the following operations, often called phases: preprocessing, lexical analysis, parsing, semantic analysis (syntax-directed translation), conversion of input programs to an intermediate representation, code optimization and machine specific code generation. Compilers generally implement these phases as modular components, promoting efficient design and correctness of transformations of source input to target output. Program faults caused by incorrect compiler behavior can be very difficult to track down and work around; therefore, compiler implementers invest significant effort to ensure compiler correctness.

Overview adapted from Wikipedia (CC BY-SA 4.0; see the article history for authors).

Possible passages

Found by search and not yet checked by a person; they may only mention the idea in passing.

  1. This, I suppose, the compilers took from English papers, those infamous fountains of falsehood. Is it not surprising that our newswriters continue to copy from those papers, though every one who knows anything of them, knows they are written by persons who never go out of their garret nor read a paper?

    Thomas Jefferson, The Writings of Thomas Jefferson Library Edition - Vol. 6

    Opens on Compiler; names Compiler.

    Read the chapter · Open in the reader

  2. A "computer program" is a set of statements or instructions to be used directly or indirectly in a computer in order to bring about a certain result. "Copies" are material objects, other than phonorecords, in which a work is fixed by any method now known or later developed, and from which the work can be perceived, reproduced, or otherwise communicated, either…

    Library of Congress. Copyright Office, Copyright Law of the United States of America

    Close in meaning to Compiler; the term itself is not named.

    Read the chapter · Open in the reader

  3. The chief business of the logician is to classify arguments; for all testing clearly depends on classification. The classes of the logicians are defined by certain typical forms called syllogisms. For example, the syllogism called _Barbara_ is as follows: S is M; M is P: Hence, S is P. Or, to put words for letters— Enoch and Elijah were men; all men die: Hence, Enoch and Elijah must have died.

    Charles S. Peirce, Chance, Love, and Logic

    States what Compiler is.

    Read the chapter · Open in the reader

Philosophers who discussed Compiler

Related ideas

Place in the tradition

Part of Type theory.

Explore Compiler in the interactive graph →