All Topics  
History of compiler writing

 

   Email Print
   Bookmark   Link






 

History of compiler writing



 
 
In computing
Computing

Computing is usually defined as the activity of using and developing computer technology, computer hardware and computer software. It is the computer-specific part of information technology....
, a compiler
Compiler

A compiler is a computer program that transforms source code written in a programming language into another computer language . The most common reason for wanting to transform source code is to create an executable program....
 is a computer program
Computer program

Computer programs are Instruction for a computer. A computer requires programs to function. Moreover, a computer program does not run unless its instructions are executed by a Central processing unit; however, a program may communicate an Algorithm#Formalization of algorithms to people without running....
 (or set of programs) that transforms source code
Source code

In computer science, source code is any collection of statements or declarations written in some human-readable computer programming language....
 written in a computer language
Programming language

A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer....
 (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
Executable

In computing, an executable causes a computer "to perform indicated tasks according to encoded instruction ," as opposed to a file that only contains data ....
 program.

Software for early computers was primarily written in assembly language
Assembly language

An assembly language is a low-level language for programming computers. It implements a symbolic representation of the numeric machine codes and other constants needed to program a particular CPU architecture....
. Higher level programming languages were not invented until the benefits of being able to reuse software on different kinds of CPUs started to become significantly greater than the cost of writing a compiler.






Discussion
Ask a question about 'History of compiler writing'
Start a new discussion about 'History of compiler writing'
Answer questions from other users
Full Discussion Forum



Encyclopedia


In computing
Computing

Computing is usually defined as the activity of using and developing computer technology, computer hardware and computer software. It is the computer-specific part of information technology....
, a compiler
Compiler

A compiler is a computer program that transforms source code written in a programming language into another computer language . The most common reason for wanting to transform source code is to create an executable program....
 is a computer program
Computer program

Computer programs are Instruction for a computer. A computer requires programs to function. Moreover, a computer program does not run unless its instructions are executed by a Central processing unit; however, a program may communicate an Algorithm#Formalization of algorithms to people without running....
 (or set of programs) that transforms source code
Source code

In computer science, source code is any collection of statements or declarations written in some human-readable computer programming language....
 written in a computer language
Programming language

A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer....
 (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
Executable

In computing, an executable causes a computer "to perform indicated tasks according to encoded instruction ," as opposed to a file that only contains data ....
 program.

Software for early computers was primarily written in assembly language
Assembly language

An assembly language is a low-level language for programming computers. It implements a symbolic representation of the numeric machine codes and other constants needed to program a particular CPU architecture....
. Higher level programming languages were not invented until the benefits of being able to reuse software on different kinds of CPUs started to become significantly greater than the cost of writing a compiler. The very limited memory
Computer storage

Computer data storage, often called storage or memory, refers to computer components, devices, and recording medium that retain digital data used for computing for some interval of time....
 capacity of early computers also created many technical problems when implementing a compiler.

Towards the end of the 1950s, machine-independent programming languages were first proposed. Subsequently, several experimental compilers were developed. The first compiler was written by Grace Hopper
Grace Hopper

Rear admiral Grace Murray Hopper was an American computer scientist and United States Navy officer. A pioneer in the field, she was one of the first programmers of the Harvard Mark I calculator, and she developed the first compiler for a computer programming language....
, in 1952, for the A-0 programming language
A-0 programming language

The A-0 system , written by Grace Hopper in 1951 and 1952 for the UNIVAC I, was the first compiler ever developed for an electronic computer. The A-0 functioned more as a Loader or linker than the modern notion of a compiler....
. The FORTRAN
Fortran

Fortran is a general-purpose programming language, procedural programming language, imperative programming language programming language that is especially suited to numerical analysis and scientific computing....
 team led by John Backus
John Backus

For the physicist, see John Backus John Warner Backus was an American computer scientist. He led the team that invented the first widely used High-level programming language programming language and was the inventor of the Backus-Naur form , the almost universally used notation to define formal language syntax....
 at IBM
IBM

International Business Machines Corporation, abbreviated IBM and nicknamed "Big Blue" , is a multinational corporation computer technology and consulting corporation headquartered in Armonk, New York, New York, United States....
 is generally credited as having introduced the first complete compiler, in 1957. COBOL
COBOL

COBOL is one of the oldest programming languages still in active use. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments....
 was an early language to be compiled on multiple architectures
Computer architecture

Computer architecture in computer engineering is the conceptual design and fundamental operational structure of a computer system. It is a blueprint and functional description of requirements and design implementations for the various parts of a computer, focusing largely on the way by which the central processing unit performs internally an...
, in 1960.

In many application domains the idea of using a higher level language quickly caught on. Because of the expanding functionality supported by newer programming language
Programming language

A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer....
s and the increasing complexity of computer architectures, compilers have become more and more complex.

Early compilers were written in assembly language. The first self-hosting
Self-hosting

The term self-hosting was coined to refer to the use of a computer program as part of the toolchain or operating system that produces new versions of that same program?for example, a compiler that can compile its own source code....
 compiler — capable of compiling its own source code in a high-level language — was created for Lisp
Lisp programming language

Lisp is a family of computer programming languages with a long history and a distinctive, fully parenthesized syntax. Originally specified in 1958, Lisp is the second-oldest high-level programming language in widespread use today; only Fortran is older....
 by Tim Hart and Mike Levin at MIT
Massachusetts Institute of Technology

The Massachusetts Institute of Technology is a private university research university located in Cambridge, Massachusetts, Massachusetts, United States....
 in 1962. Since the 1970s it has become common practice to implement a compiler in the language it compiles, although both Pascal
Pascal (programming language)

Pascal is an influential imperative programming and Procedural programming programming language, designed in 1968/9 and published in 1970 by Niklaus Wirth as a small and efficient language intended to encourage good programming practices using structured programming and data structure....
 and C
C (programming language)

C is a general-purpose computer programming language originally developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories to implement the Unix operating system....
 have been popular choices for implementation language. Building a self-hosting compiler is a bootstrapping
Bootstrapping (compilers)

Bootstrapping is a term used in computer science to describe the techniques involved in writing a compiler in the target programming language which it is intended to compile....
 problem -- the first such compiler for a language must be compiled either by a compiler written in a different language, or (as in Hart and Levin's Lisp compiler) compiled by running the compiler in an interpreter
Interpreter (computing)

In computer science, an interpreter normally means a computer program that execution , i.e. performs, instructions written in a programming language....
.

Books

  • Backus, John
    John Backus

    For the physicist, see John Backus John Warner Backus was an American computer scientist. He led the team that invented the first widely used High-level programming language programming language and was the inventor of the Backus-Naur form , the almost universally used notation to define formal language syntax....
    , et al., , Proceedings of the Western Joint Computer Conference, Los Angeles, California, February 1957. Describes the design and implementation of the first FORTRAN compiler by the IBM team.
  • Bauer, Friedrich L.
    Friedrich L. Bauer

    Friedrich Ludwig Bauer is a Germany computer scientist and Emeritus at Technical University of Munich....
    ; Eickel, Jürgen (Eds.), Compiler Construction, An Advanced Course, 2nd ed. Lecture Notes in Computer Science 21, Springer 1976, ISBN 3-540-07542-9
  • Cheatham, T. E., and Sattley, K., Syntax directed compilation, SJCC p. 31. (1964).
  • Cocke, John
    John Cocke

    John Cocke was an American computer scientist recognised for his large contribution to computer architecture and optimizing compiler design. He is considered by many to be "the father of RISC architecture."...
    ; Schwartz, Jacob T.
    Jack Schwartz

    Jacob T. "Jack" Schwartz was an American mathematician, computer scientist, and professor of computer science at the New York University Courant Institute of Mathematical Sciences....
    , Programming Languages and their Compilers: Preliminary Notes, Courant Institute of Mathematical Sciences
    Courant Institute of Mathematical Sciences

    The Courant Institute of Mathematical Sciences is a division of New York University and serves as a center for research and advanced training in computer science and mathematics....
     technical report, New York University
    New York University

    New York University is a private university, nonsectarian, research university in New York City. NYU's main campus is situated in the Greenwich Village section of Manhattan....
    , 1969.
  • Conway, Melvin E.
    Melvin Conway

    Melvin Conway was an early computer scientist, computer programmer, and Hacker who coined what's now known as Conway's Law: "Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations."...
    , Design of a separable transition-diagram compiler, Communications of the ACM, Volume 6, Issue 7 (July 1963)
  • Floyd, R. W.
    Robert Floyd

    Robert W Floyd was an eminent computer scientist.Born in New York, Floyd finished school at age 14. At the University of Chicago, he received a Bachelor's degree in liberal arts in 1953 and a second Bachelor's degree in physics in 1958....
    , Syntactic analysis and operator precedence, Journal of the ACM, Vol. 10, p. 316. (July 1963).
  • Gries, David
    David Gries

    David Gries is a computer scientist at Cornell University. He is currently Associate Dean for Undergraduate Programs in the Cornell University College of Engineering....
    , Compiler Construction for Digital Computers, New York : Wiley, 1971. ISBN 047132776X
  • Irons, Edgar T., A syntax directed compiler for ALGOL 60, Communications of the ACM, Vol. 4, p. 51. (Jan. 1961)
  • Knuth, D. E.
    Donald Knuth

    Donald Ervin Knuth is a renowned computer science and Emeritus of the Art of Computer Programming at Stanford University.Author of the seminal multi-volume work The Art of Computer Programming , Knuth has been called the "father" of the run-time analysis, contributing to the development of, and systematizing formal mathematical techn...
    , On the translation of languages from left to right., Information and Control, Vol. 8, p. 607. (1965).
  • Knuth, D. E., RUNCIBLE-algebraic translation on a limited computer, Communications of the ACM, Vol. 2, p. 18, (Nov. 1959).
  • Randell, Brian
    Brian Randell

    Brian Randell is a United Kingdom computer scientist, and Emeritus Professor at the School of Computing Science, Newcastle University, U.K. He specializing in research in software fault tolerance and dependability, and is a noted authority on the early prior to 1950 history of computers....
    ; Russell, Lawford John, ALGOL 60 Implementation: The Translation and Use of ALGOL 60 Programs on a Computer, Academic Press, 1964