42

I'm curious, what was the first book, about programming for digital computers.

I tried to google it, but it led me to multiple results.

I'm mostly interested in the language it was about and the writer.

  • 6
    Do you mean about electronic digital computers, or earlier mechanical machines? (Just to rule out the inevitable mention of differential analysers, difference engines etc...) – Andy Jun 2 '16 at 8:10
  • 1
    @Andy digital computers – Bálint Jun 2 '16 at 8:18
  • 8
    "Ada Byron's Notes on the Analytical Engine" by Ada Lovelace was the first for mechanical computers. – wizzwizz4 Jun 2 '16 at 8:59
  • 2
    What about Leibnitz work on the Stepped Reckoner in the late 17th century. The first description of using binary for calculation. – Chenmunka Jun 2 '16 at 11:48
  • 5
    Do you mean an independent book, not the programming manual from the manufacturer? – JDługosz Jun 2 '16 at 13:37
51

I would say one of the versions of the Menabrea paper, written in 1842 by Luigi F. Menabrea.

Ada Lovelace became involved in computing when she was asked to translate this paper from Italian to French. She did so, and unlike many translators, was knowledgeable enough about the subject matter that rather than introducing errors into the translation, she actually corrected quite a few errors. In addition, she expanded the paper, adding a great deal of explanation not only about the machine itself, but about how it would be used to solve real problems.

Babbage saw her translation in 1843, and was happy enough with it that he asked her to expand further. She added footnotes and more explanation--in fact, what she added was about twice the length of the original paper.

The original was short enough that it might be open to argument whether it qualified as a book, but at least in my opinion, her edited version clearly did qualify.

And yes, in case there should be any question, Babbage's analytical engines were digital computers, not analog. There were decimal, not binary, but still digital. Many early computers were analog in nature (e.g., slide rules of various sorts) but Babbage's was a mechanical, digital computer.

  • 2
    Here's a reference for the above: historyofinformation.com/expanded.php?id=546 – Mark Stewart Jun 3 '16 at 13:34
  • There are ongoing discussions about whether Ada Lovelace was the first programmer, she definitely understood that computers could solve whole classes of algorithmic problems, not just specific instances that Babbage was interested in. Her translation of the Menabrea paper made it clear that she grasped what could be done. – Michael Shopsin Jun 3 '16 at 15:04
  • It's also worth noting (adding to the comment about decimal vs. binary) that binary arithmetics were being used long before digital computers were even thought of. For fun and profit, simply because a lot of problems naturally lend themselves to a power-of-two notation, but also because the idea of being able to represent any number with only two symbols was seen as pretty awesome. – pipe Jun 4 '16 at 23:43
21
  1. FORTRAN for the IBM 704.

Link to a PDF here.

My justification for this choice is that FORTRAN is the earliest "proper" language in widespread use that I can think of.

  • 1
    The question doesn't have a requirement of wide use. – LJNielsenDk Jun 2 '16 at 13:43
  • 2
    @LJNielsenDk You're quite right - but I didn't want to include someone's hand written notebook of machine code instructions on a single computer in a university department or government institution somewhere. Though if somebody finds one I think we'd all be interested to see it :) (Something like the famous debug notes here.) – Andy Jun 2 '16 at 13:51
  • This book is only 50 pages long, is it just an overview of the language or a complete, in-depth book? – Bálint Jun 2 '16 at 18:00
  • 1
    @Bálint - it's a reference manual and looks fairly thorough. It's not an "introductory manual" though - apparently one was due for publication at a later date (as mentioned in this manual). – Andy Jun 3 '16 at 7:48
  • I've read this manual, and I agree that it is a programming book. It is indeed not a tutorial, but I don't think the question requires the book to be a tutorial. – Wayne Conrad Dec 31 '18 at 17:47
19

If you insist on a book, try The Preparation of Programs for an Electronic Digital Computer, by Wilkes, Wheeler, and Gill, 1951. Undoubtedly this book derives in large part from the article referenced by @Laurel.

  • 2
    An online copy of the 2nd edition from 1957 can be found here. Side note: Subroutine M30, "Sideways Addition", is the first published description of a still popular method for computing the population count (number of 1 bits) of a computer word. – njuffa Jun 3 '16 at 6:57
15

The 1946 Mark 1 (ASCC) manual by Howard Aiken, Grace Murray Hopper, et al, has to be the first one which:

  • Is a technical manual, for a digital machine, which was actually manufactured (only one ever was made, but that's more than the zero actually made of whatever machine the Lovelace/Menabrea paper(s) might have been useful on, a full mechanical computer capable of executing the ideas in the papers never fully existed.)

  • Contains instructions for programmers, starting at page 98.

  • Pages before that have a lot of design information in the preface, and hardware data.

PDF is online here.

13

I found something from 1949; it's a 4 page article that describes programming for the EDSAC. It's like a book, but whether it counts as one for this question I leave open. In any case, I think it's worth mentioning in any case.

There's one copy I found online, but it's behind a paywall. Fortunately, I get access through my university, so I was able to copy a little from it. (Tell me if you think I missed an OCR error.)

Programme Design for a High-speed Automatic Calculating Machine

By M. V. Wilkes, M.A., Ph.D., The Mathematical Laboratory, University of Cambridge [MS. received 18 February 1949]

A good deal has been written about the design and construction of high-speed automatic calculating machines, but little has been said about the detailed steps which are necessary to prepare a problem for a machine and to obtain a solution– a process which is usually referred to as 'programming'. Such aspects are, however, of primary interest to mathematical physicists and engineers who may be wondering what help they can expect from high-speed calculating machines in their own problems. It is intended in this article to supply some of this information; most of it will be well known to those engaged on calculating-machine development.

As far as details go: reference will be made to a machine known as the EDSAC (Electronic Delay Storage Automatic Calculator) which is at present being built in the University Mathematical Laboratory at Cambridge, although certain complications which are unimportant for the present purpose will be ignored. The same principles will be applicable to other machines of similar type.

Also note that it makes specific mention of things being digital:

The mathematical application of a digital machine can be discussed quite apart from any consideration of its construction.

9

The Zuse Z1 was a binary electrical computer and finished in 1938. Zuse invented the programming language Plankalkül for it between 1943 and 1945, however, the book that he wrote about Plankalkül wasn't published until 1972.

Does that count?

  • 1
    Note that Zuse didn't invent the Plankalkül for the Z1. Rather, the Plankalkül was his idea of what a programming language should be like (before the term programming language was coined), given a sufficiently advanced computer. You can't run Plankalkül programs on the Z1. – fuz Feb 18 '18 at 16:20
8

Although older books have already been cited, I just reached across onto my bookshelf and found:

"Ferranti Pegasus Computer, Programming Manual", Ferranti Ltd, Issue 1, September 1955.

I have older ones, but at the moment I can't locate them!

I'm sure I have an early Cambridge EDSAC programming manual somewhere.

  • I wonder if the EDSAC manual is the same one I found? :) – Laurel Jun 3 '16 at 14:42
  • 1
    Wow, 8 accumulators, also usable as index registers. – dirkt Jun 7 '16 at 6:00
2

I remember in the mid 1980s there was a was a workbook around in UK schools for BBC Basic which mixed the programming language with basic mathematics concepts. I also remember around the same time there was a magazine for the Acorn Electron which, amongst other things, published various bits of code as plain text which you typed in yourself and could 'save' onto audio tape (in those days you really did need to save work regularly)

  • 7
    Welcome to the site. While it is true that these books were around, I even still have one somewhere, the first book would be a lot longer ago than the 80s. – Chenmunka Jun 2 '16 at 14:47
  • Oh yeah, definitely, this answer is more for context of an actively promoted language than a actual 'first' example. – Chris Johns Jun 2 '16 at 14:52
  • There was a 'Basic for Beginners' out in about 1978 - not sure I still have it though. – Sean Houlihane Jun 2 '16 at 17:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.