The Preparation of Programs for an Electronic Digital Computer
   HOME

TheInfoList



OR:

''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 or coding is the composition of sequences of instructions, called computer program, programs, that computers can follow to perform tasks. It involves designing and implementing algorithms, step-by-step specifications of proc ...
. Published in 1951, it was written by Maurice Wilkes, David Wheeler, and Stanley Gill of
Cambridge University The University of Cambridge is a Public university, public collegiate university, collegiate research university in Cambridge, England. Founded in 1209, the University of Cambridge is the List of oldest universities in continuous operation, wo ...
. 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 Universit ...
, 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 Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
of reusable code * the first
API An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
* the first explanation of using a memory dump for
debugging In engineering, debugging is the process of finding the Root cause analysis, root cause, workarounds, and possible fixes for bug (engineering), bugs. For software, debugging tactics can involve interactive debugging, control flow analysis, Logf ...
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 all ...
and arithmetic operations on
complex numbers In mathematics, a complex number is an element of a number system that extends the real numbers with a specific element denoted , called the imaginary unit and satisfying the equation i^= -1; every complex number can be expressed in the form a ...
. The library was a physical collection stored in a
filing cabinet A filing cabinet (or sometimes file cabinet in American English) is a piece of office furniture for storing paper documents in file folders. In the most simple context, it is an enclosure for drawer (furniture), drawers in which articles are sto ...
containing
punched paper tape Punch commonly refers to: * Punch (combat), a strike made using the hand closed into a fist * Punch (drink), a wide assortment of drinks, non-alcoholic or alcoholic, generally containing fruit or fruit juice Punch may also refer to: Places * ...
encoding the subroutines. This included a "
library catalog A library catalog (or library catalogue in British English) is a register of all bibliography, 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 libra ...
" 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, integration of ordinary differential equations, and evaluation of the
Fourier transform In mathematics, the Fourier transform (FT) is an integral transform that takes a function as input then outputs another function that describes the extent to which various frequencies are present in the original function. The output of the tr ...
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, 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 (computing), library made available across Programming language implementation, implementations of a programming language. Often, a standard library is specified by its associated program ...
'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 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 more than a century prior. It had also been written about more recently by
John von Neumann John von Neumann ( ; ; December 28, 1903 – February 8, 1957) was a Hungarian and American mathematician, physicist, computer scientist and engineer. Von Neumann had perhaps the widest coverage of any mathematician of his time, in ...
, 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 Internet Archive is an American 501(c)(3) organization, non-profit organization founded in 1996 by Brewster Kahle that runs a digital library website, archive.org. It provides free access to collections of digitized media including web ...

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