by Donald E. Knuth (Stanford, California: Center for the Study of Language and Information, 1992), 368 pages
(CSLI Lecture Notes, no. 27.)
Literate programming is a methodology that combines a programming language with a documentation language, thereby making programs more robust, more portable, more easily maintained, and arguably more fun to write than programs that are written only in a high-level language. The main idea is to treat a program as a piece of literature, addressed to human beings rather than to a computer. The program is also viewed as a hypertext document, rather like the World Wide Web. (Indeed, I used the word WEB for this purpose long before CERN grabbed it!) This book is an anthology of essays including my early papers on related topics such as structured programming, as well as the article in The Computer Journal that launched Literate Programming itself. The articles have been revised, extended, and brought up to date.
Table of Contents:
1. Computer programming as an art [P68]
2. Structured programming with go to statements [P67]
3. A structured program to generate all topological sorting arrangements [P65]
4. Literate programming [P109]
5. Programming pearls: Sampling [Q78]
6. Programming pearls, continued: Common words [Q79]
7. How to read a WEB [from TeX: The Program]
8. Excerpts from the programs for TeX and METAFONT [from Computers & Typesetting, volumes B and D]
9. Mathematical writing [from Mathematical Writing]
10. The errors of TeX [P124]
11. The error log of TeX [P124, with new material]
12. An example of CWEB [never before published]
13. Further reading: A comprehensive bibliography of Literate Programming [never before published]
Since opening at the end of 2013, over 5,000 children have visited the Centre. These children deserve a space which is engaging and instructive, where they can feel a sense of adventure, exploration and surprise!
Please be assured that any amount you feel able to donate will make an immediate and significant impact.
Join our Mailing List by adding your email address below and be kept up to date with lots of information including: