Features
- Cover Type: Hard Cover with 384 pages
- Published by: Center for the Study of Language and Inf March 1, 1992
- Written in: English
- ISBN 10 Number: 0937073814
- ISBN 13 Number: 978-0937073810
-
Book Dimensions:
9.3 x 6.3 x 1.2 inches
- Weighs: 1.9 pounds
Book Description
This anthology of essays from Donald Knuth, "the father of computer science," and the inventor of literate programming includes early essays on related topics such as structured programming, as well as
The Computer Journal article that launched literate programming itself. Many examples are given, including excerpts from the programs for TeX and METAFONT. The final essay is an example of CWEB, a system for literate programming in C and related languages.
This volume is first in a series of Knuth's collected works.
Reader Reviews
This review is from: Literate Programming (Center for the Study of Language and Information - Lecture Notes) (Paperback)
This book is the only one that I can say has truly changed my view of software development. The premise of this book matches my experience: technical communication with people is critical, and harder than communicating with the machines. Knuth carries that idea forward by one bold, logical step: in Literate Programming (LP), the main goal is to get technical ideas across to people. Programs are a co-product of the description process. This inverts the premise of JavaDoc and the like, in which human communication is incidental to the code. A literate program, by the way, reads like a standard human document, whether an essay or an IEEE standard specification. JavaDoc output reads like an HTML dump of a cross-linked tree data structure - which it is. JavaDoc serves a valuable purpose, but does not permit system description in the order required by human reasoning. My own experience with LP (a custom system) was very happy - I actually reached the "impossible" goal of true requirements traceability. I unified the system requirements, design, multi-language implementation, configuration control, and even tests under one document set. With HTML output, traceability was made real using interactive links. Anywhere else, traceability is mostly wishful thinking shared by the many owners of physically disconnected documents. (Process gurus - I hope you're paying attention.) LP practice, however, has not caught on. LP, in today's form, does not support programming in the large. What LP does to the compilable form of a program brings C++ name-mangling to mind. I don't know of any WYSIWYG LP systems, so today's window-icon-mouse-pointer (WIMP) programmers will have nothing to do with it. And, ironically, the people who need the most support in communicating with their peers are the ones most resistant to tools for effective communication. It's a grand vision and an exciting experiment. LP deserves more attention.
Comment | |
(Report this)