Wayne,

I’m sure that you remember the two books by Charles Petzold that Brad DeLong showed on his Recommended Reading part of his blog. You told me that you had worked with Petzold.

As I’ve gotten some excellent recommendations for economics books from DeLong, I bought and read the two Petzold books.

The first, *Code: The Hidden Language of Computer Hardware and* Software is a pretty, clear, and simple book. You certainly know all of the material in this book, which starts with a battery, a light, and a switch, and ends with diagrams on the internal works of an Intel processor, and about the instructions it knows. He tells a little about the people who made the key advances along the way. You will enjoy looking at this book to see a lucid explanation of these elementary matters, but probably not to learn new things.

The second, *The Annotated Turing: A Guided Tour through Alan Turing’s Historic Paper on Computability and the Turing Machine* is a different matter. It’s lucid, but more advanced. After a couple of introductory chapters, the book alternates paragraphs, even individual sentences, from Turing’s famous paper and remarks by Petzold. Of course, you may well have read Turning’s papers in your academic study, probably did. Petzold puts them in their mathematical context, which why I was reading this book, but he also gets into the nitty-gritty of “programming” a Turing machine, which might intrigue you. Petzold sometimes corrects evident typos, but he shows that he has read and knows the subsequent literature criticizing or expanding upon Turning’s paper and ideas. As with the first book, I was impressed with the profound understanding of the material (so it seemed to me) that made it possible for him to explain things, some complex and deep, with such clarity.

If you are familiar with Godel’s amazing incompleteness theorem, you know that the astonishing “trick” has to do with inventing a way to give any possible theorem, or even proposed theorem, proven true, false, or as yet unproven, a unique number, and then to use number theory to prove theorems about those theorems. That’s the metamathematics part. Turning figured out a way to give one of his Turing machines a unique number that his Universal Turning Machine could process and reproduce the operation of the enumerated Turing machine. Well, it would be slow, so no one would actually do this. But the idea was that since the Universal Machine could do what any other Turning machine could do, if you could prove theorems about the Universal Machine, which you, Turing I mean, could, then you’d be proving theorems about any possible machine, including all of our modern computers.

Amazing.

I’ve read other books on these topics, so Petzold’s book was not entirely new to me, and I wasn’t reading to learn the details of how to instruct a Turning machine, but I thought it was worth reading. As you are a computer professional, and I’m but an amateur, you will enjoy learning about “programming” a Turing machine, which is not at all like programming today’s computers.

Bernard