# Programming began in Mesopotamia

This is a picture of Plimpton 322, a relatively late (less than 4000 years oldOld Babylonian cuneiform tablet that just happens to be located in Columbia’s Rare Books and Manuscript Library.  It may be the most famous of all mathematical tablets, because it contains a list of Pythagorean triples, including (in sexagesimal notation) (1:22:41, 2:16:01, 1:48).  Eleanor Robson’s “reassessment” seems to be the most influential recent analysis of the tablet, but since that link is behind Elsevier’s paywall, you may prefer to read her article in the February 2002 American Mathematical Monthly.

I took that picture, and here is another picture of the tablet in my very own gloved hands,

taken two weeks ago by a visiting colleague.

I had been thinking about Babylonian mathematical tablets in connection with an article I’m currently writing.  The title of this post is suggested by the following quotation from an article (unpublished, I believe) by Jim Ritter, entitled Translating Babylonian Mathematical Problem Texts:

A good interpretive level would be one which would use only the cognitive tools used in Ancient Mesopotamia, which would apply to all mathematical problem texts and which would remain as close as possible to the formal structure of the text. Such an approach was first suggested for Babylonian mathematical texts as early as 1972 by the pioneer of computer algorithmic, Donald Knuth (KNUTH 1972 and 1976), an algorithmic approach based on sequences of arithmetic and control commands. Unfortunately for Assyriology, the paper was published in a computer science journal and so remained unknown there in general until this approach was independently rediscovered in the late 1980s (RITTER 1989b).19 The advantages in this approach are major. First of all, the problem texts as they have come down to us are algorithmic in nature. There is no need to move beyond what is actually written and the same approach applies to the whole corpus. Moreover the dual nature of the commands in the text—calculational (arithmetic operations) and control (initialization, storage, parallel computing)—parallel exactly the dual nature of modern programming. Perhaps most importantly, this interpretation is minimal in the sense that it does not block an algebraic or geometric further development if the reader or translator so desires.

`Image from Plimpton 322, in the collection of Columbia University, via Wikimedia Commons`