''The Preparation of Programs for an Electronic Digital Computer'' (sometimes called ''WWG'', after its authors' initials)
was the first book on
computer programming
Computer programming is the process of performing a particular computation (or more generally, accomplishing a specific computing result), usually by designing and building an executable computer program. Programming involves tasks such as anal ...
. Published in 1951, it was written by
Maurice Wilkes
Sir Maurice Vincent Wilkes (26 June 1913 – 29 November 2010) was a British computer scientist who designed and helped build the Electronic Delay Storage Automatic Calculator (EDSAC), one of the earliest stored program computers, and who i ...
,
David Wheeler, and
Stanley Gill of
Cambridge University
, mottoeng = Literal: From here, light and sacred draughts.
Non literal: From this place, we gain enlightenment and precious knowledge.
, established =
, other_name = The Chancellor, Masters and Schola ...
. The book was based on the authors' experiences constructing and using
EDSAC
The Electronic Delay Storage Automatic Calculator (EDSAC) was an early British computer. Inspired by John von Neumann's seminal '' First Draft of a Report on the EDVAC'', the machine was constructed by Maurice Wilkes and his team at the Univer ...
, one of the first practical computers in the world.
Contents
Overview
It was the first book to describe a number of important concepts in programming, including:
* the first account of a
library
A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vi ...
of reusable code
* the first
API
* the first explanation of using a
memory dump for
debugging
In computer programming and software development, debugging is the process of finding and resolving '' bugs'' (defects or problems that prevent correct operation) within computer programs, software, or systems.
Debugging tactics can involve i ...
a program, which the book called a "post-mortem routine"
* the first use of the term "
assembly" in programming, though with a somewhat different meaning than the modern use of the term
Much of the book is dedicated to explaining the library. This consisted of eighty-eight subroutines
implementing mathematical operations like the calculation of
trigonometric functions
In mathematics, the trigonometric functions (also called circular functions, angle functions or goniometric functions) are real functions which relate an angle of a right-angled triangle to ratios of two side lengths. They are widely used in a ...
and arithmetic operations on
complex numbers. The library was a physical collection stored in a
filing cabinet containing
punched paper tape
Five- and eight-hole punched paper tape
Paper tape reader on the Harwell computer with a small piece of five-hole tape connected in a circle – creating a physical program loop
Punched tape or perforated paper tape is a form of data storage ...
encoding the subroutines. This included a "
library catalog
A library catalog (or library catalogue in British English) is a register of all bibliographic items found in a library or group of libraries, such as a network of libraries at several locations. A catalog for a group of libraries is also ...
" describing how a programmer could use each subroutine; today this is called
API documentation.
Part one
Chapter 6 - Debugging
This chapter extensively investigates "proofreading" and location of the mistakes in the programs. It also advises against frequent refactoring as it introduces more mistakes as programmer tries to improve the program.
Chapter 7 - Examples of programs for EDSAC
Includes examples of calculations of ' formula and
definite integral
In mathematics, an integral assigns numbers to functions in a way that describes displacement, area, volume, and other concepts that arise by combining infinitesimal data. The process of finding integrals is called integration. Along with ...
, integration of ordinary differential equitation, and evaluation of the
Fourier transform
A Fourier transform (FT) is a mathematical transform that decomposes functions into frequency components, which are represented by the output of the transform as a function of frequency. Most commonly functions of time or space are transformed ...
by using EDSAC programs.
Chapter 8 - Automatic programming
discusses an assembling (compiling) and interpretation of a program, it also discusses motivation behind "floating addresses" which are, in modern terms, are
variable references (akin to C++
variable references) which are replaced by compiler by a real memory addresses on the fly every time the subroutine is invoked.
Part two
This part contains mostly specification on the EDSAC's
standard library
In computer programming, a standard library is the library made available across implementations of a programming language. These libraries are conventionally described in programming language specifications; however, contents of a language's a ...
's subroutines. Among included are subroutines for floating-point, complex numbers, debugging, exponential calculations, integration, differential arithmetic equations, logarithms,
quadrature, and trigonometric subroutines.
Publication history
The 1951 book was a mass-printed version of a report titled ''Report on the Preparation of Programmes for the EDSAC and the Use of the Library of Subroutines'' written in September 1950 for private circulation and distributed to no more than 100 people. Though written in England, the book was published by
Addison-Wesley
Addison-Wesley is an American publisher of textbooks and computer literature. It is an imprint of Pearson PLC, a global publishing and education company. In addition to publishing books, Addison-Wesley also distributes its technical titles throug ...
in the United States.
At the time ''WWG'' was published there were very few
digital computers in the world. EDSAC, on which the book was based, was the first computer in the world to provide a practical computing service for researchers.
Demand for the book was so limited initially that it took six years to sell out the first edition.
As computers became more common in the 1950s, the book became the standard textbook on programming for a time.
The second edition was printed in 1957.
By that time, technology had advanced to the point that ''WWG'' was somewhat outdated.
Though ''WWG'' was the first published, book-length treatment of computer programming, it was not the first writing on the topic. The subject of programming had been pioneered by
Ada Lovelace
Augusta Ada King, Countess of Lovelace (''née'' Byron; 10 December 1815 – 27 November 1852) was an English mathematician and writer, chiefly known for her work on Charles Babbage's proposed mechanical general-purpose computer, the An ...
more than a century prior. It had also been written about more recently by
John von Neumann
John von Neumann (; hu, Neumann János Lajos, ; December 28, 1903 – February 8, 1957) was a Hungarian-American mathematician, physicist, computer scientist, engineer and polymath. He was regarded as having perhaps the widest c ...
, whose ''
EDVAC Report'' of 1945 initially inspired Wilkes to create EDSAC.
References
External links
*
The Preparation of Programs for an Electronic Digital Computer' second edition (1957) text at
The Internet Archive
The EDSAC Paperwork Collection at The ICL Computer Museum
{{DEFAULTSORT:Preparation of Programs for an Electronic Digital Computer, The
Handbooks and manuals
Computer programming books
Addison-Wesley books
1951 non-fiction books