Compiler
Noun · Development
Definitions
A compiler is a program that translates source code in a high-level programming language into lower-level code, such as machine code or bytecode, so it can be executed by a computer or virtual machine. Compilation typically involves multiple phases: lexical analysis (tokenizing), parsing (building a syntax tree), semantic analysis (type checking), optimization, and code generation. Compiled languages like C, C++, Rust, and Go produce native binaries that run directly on hardware, offering fast execution. Other compilers target intermediate formats: javac compiles Java to JVM bytecode, and TypeScript compiles to JavaScript. Modern compiler infrastructure like LLVM provides a modular framework that multiple languages share for optimization and code generation.
In plain English: A translator that converts the code programmers write into instructions a computer can actually run.
Example: "The compiler found 47 errors. The developer found a new career."
Etymology
- 1952
- Grace Hopper develops the A-0 System, considered the first compiler, translating mathematical notation to machine code.
- 1957
- John Backus and team at IBM release FORTRAN, the first optimizing compiler for a high-level language.
- 1977
- The Dragon Book (Aho, Sethi, Ullman) becomes the definitive compiler construction textbook.
- 2003
- LLVM begins at the University of Illinois, eventually becoming the foundation for Clang, Rust, Swift, and many other language compilers.
Origin Story
The Program That Translates Programs
A compiler is a program that translates source code written in a high-level programming language into machine code that a computer's processor can execute. The concept and the term were pioneered by Grace Hopper, a U.S. Navy officer and computer scientist, in the early 1950s. Working at the Remington Rand corporation, Hopper developed the A-0 System in 1952, which she called a 'compiler' because it compiled mathematical notation into machine code. Her colleagues were skeptical: many believed computers could only do arithmetic, not manipulate symbols. Hopper later recalled that she had 'a running compiler, and nobody would touch it. They told me computers could only do arithmetic.' The first widely known optimizing compiler was the FORTRAN compiler, developed by John Backus and his team at IBM between 1954 and 1957. It took 18 person-years of effort and produced code so efficient that skeptical assembly language programmers were won over. The FORTRAN compiler proved that high-level languages could match hand-written assembly in performance, opening the door for modern software development. Today, compilers are among the most complex software systems ever built, with projects like LLVM (started by Chris Lattner in 2000) serving as the backbone for dozens of programming languages.
Coined by: Grace Hopper
Context: Remington Rand, 1952
Fun fact: Grace Hopper's A-0 compiler was rejected for three years because her colleagues refused to believe that a computer program could write other computer programs. She later said this was one of the most frustrating experiences of her career.