HOME

TheInfoList




''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 designing and building an executable computer program to accomplish a specific computing result or to perform a particular task. Programming involves tasks such as analysis, generating algorithms, Profilin ...
. Published in 1951, it was written by
Maurice Wilkes Sir Maurice Vincent Wilkes (26 June 1913 – 29 November 2010) was a British computer scientist A computer scientist is a person who has acquired the knowledge of computer science Computer science deals with the theoretical foundati ...
, David Wheeler, and
Stanley GillProfessor Stanley J. Gill (26 March 1926 – 1975) was a British computer scientist credited, along with Maurice Wilkes and David Wheeler, with the invention of the first computer subroutine. Early life, education and career Stanley Gill was bo ...
of
Cambridge University The University of Cambridge is a collegiate university, collegiate research university in Cambridge, Cambridge, United Kingdom. Founded in 1209 and granted a royal charter by Henry III of England, Henry III in 1231, Cambridge is the second-oldest ...
. 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 John von Neumann (; hu, Neumann János Lajos, ; December 28, 1903 – February 8, 1957) was a Hungarian America ...
, 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 easily accessible for use and not just for display purposes. It is responsible for housing updated information in order to meet the user's needs on a daily basis. A library provi ...
of reusable code * the first
API In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and so ...

API
* the first explanation of using a
memory dump In computing, a core dump, memory dump, crash dump, system dump, or ABEND dump consists of the recorded state of the working Computer storage, memory of a computer program at a specific time, generally when the program has crash (computing), crashe ...
for
debugging In computer programming Computer programming is the process of designing and building an executable In computing, executable code, an executable file, or an executable program, sometimes simply referred to as an executable or binary, caus ...

debugging
a program, which the book called a "post-mortem routine" * the first use of the term "
assembly Assembly may refer to: Organisations and meetings * Deliberative assembly A deliberative assembly is a gathering of members (of any kind of collective) who use parliamentary procedure Parliamentary procedure is the body of ethics, Procedural l ...
" 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 Mathematics (from Greek: ) includes the study of such topics as numbers (arithmetic and number theory), formulas and related structures (algebra), shapes and spaces in which they are contained (geometry), and quantities and ...

trigonometric functions
and arithmetic operations on
complex numbers In mathematics Mathematics (from Ancient Greek, Greek: ) includes the study of such topics as quantity (number theory), mathematical structure, structure (algebra), space (geometry), and calculus, change (mathematical analysis, analysis). I ...
. The library was a physical collection stored in a
filing cabinet A filing cabinet (or sometimes file cabinet in American English American English (AmE, AE, AmEng, USEng, en-US), sometimes called United States English or U.S. English, is the set of varieties of the English language native to the United S ...
containing
punched paper tape file:PaperTapes-5and8Hole.jpg, Five- and eight-hole punched paper tape file:Harwell-dekatron-witch-10.jpg, Paper tape reader on the Harwell computer with a small piece of five-hole tape connected in a circle – creating a physical program loop P ...

punched paper tape
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 librar ...
" describing how a programmer could use each subroutine; today this is called .


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 Mathematics (from Ancient Greek, Greek: ) includes the study of such topics as quantity (number theory), mathematical structure, structure (algebra), space (geometry), and calculus, change (mathematical analysis, analysis). ...
, integration of ordinary differential equitation, and evaluation of the
Fourier transform#REDIRECT Fourier transform In mathematics, a Fourier transform (FT) is a Integral transform, mathematical transform that decomposes function (mathematics), functions depending on space or time into functions depending on spatial or temporal frequenc ...
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 A standard library in computer programming is the library (computing), library made available across implementations of a programming language. These libraries are conventionally described in programming language specifications; however, contents o ...
'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 a publisher of textbooks and computer literature. It is an Imprint (trade name), imprint of Pearson PLC, a global publishing and education company. In addition to publishing books, Addison-Wesley also distributes its technical titl ...
in the United States. At the time ''WWG'' was published there were very few
digital computers A computer is a machine that can be programmed to carry out Sequence, sequences of arithmetic or logical operations automatically. Modern computers can perform generic sets of operations known as Computer program, programs. These programs enabl ...
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__NOTOC__ A birth name is the name of the person given upon their birth. The term may be applied to the surname In some cultures, a surname, family name, or last name is the portion of one's ...

Ada Lovelace
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 Americans, Hungarian-American mathematician, physicist, computer scientist, engineer and polymath. Von Neumann was generally rega ...

John von Neumann
, whose '' EDVAC Report'' of 1945 initially inspired Wilkes to create EDSAC.


See also

* ''
The C Programming Language ''The C Programming Language'' (sometimes termed ''K&R'', after its authors' initials) is a computer programming Computer programming is the process of designing and building an executable computer program to accomplish a specific computing r ...

The C Programming Language
''


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 digital library with the stated mission of "universal access to all knowledge". It provides free public access to collections of digitized materials, including websites, software applications/games, music ...
{{DEFAULTSORT:Preparation of Programs for an Electronic Digital Computer, The Handbooks and manuals Computer programming books Addison-Wesley books 1951 non-fiction books