Literate Programming in the Large

Summary

Axiom is an open source computer algebra system written mostly in Common Lisp. As one of the original authors at IBM Research I wrote a fair amount of code. Later Axiom was sold commercially as a competitor to Mathematica and Maple. When it was later withdrawn from the market I was given the code. It was soon apparent that, while what the code did was clear, why it did what it did was not. Being unable to understand my own code was a shock. Eventually I decided to reshape the code base using Knuth’s Literate Programming technology. The idea is that one should be able to read Axiom like a book directed at human understanding, a book which incidently contains the actual source code of the system. This talk is a description of the first 10 years of that effort with insights into the challenges of writing a million-line literate program.