- Series: Lecture Notes (Book 27)
- Paperback: 384 pages
- Publisher: Center for the Study of Language and Inf; 1 edition (June 1, 1992)
- Language: English
- ISBN-10: 0937073806
- ISBN-13: 978-0937073803
- Product Dimensions: 6 x 1.2 x 9 inches
- Shipping Weight: 6.4 ounces (View shipping rates and policies)
- Average Customer Review: 8 customer reviews
- Amazon Best Sellers Rank: #635,848 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Literate Programming (Lecture Notes) 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
The Amazon Book Review
Author interviews, book reviews, editors picks, and more. Read it now
Frequently bought together
Customers who bought this item also bought
Top customer reviews
One of the things I most like about ordering through Amazon is their teamwork with a wonderful group of 3rd party suppliers. I have not been dissatisfied with any that I have worked through and this one was no excpetion. They supplier was quick and thorough in processing the order and, in my experience, live up to the fine standards that I have always had with Amazon and their partners. I am most pleased with the service and ease of ordring.
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.
wrote about programming. He promoted a particular
programming methodology called "literate
programming", which weaves comments into codes and
make them more readable and easier to maintain. This
book was published in 1992, but Chapter 4, "Literate
Programming", was originally published in 1984,
which was an idea way ahead of his time (JavaDoc was
first released in 1998, 12 years after the Knuth's
article). Chapter one is Knuth's Turing Award
lecture and still worth reading for his view on why
programming is an art. I was wrongly impressed that
Knuth is a very theoretical people and doesn't do
much programming. As you would discover from these
lecture and other articles in the book, he indeed
did a lot of programming and arguably in a very
clever and beautiful way, "the program of which I
personally am most pleases and proud is a compiler
I once wrote for a primitive minicomputer that had
only 4096 words of memory, 16 bites per word
(pg. 10)." The discussion about the "goto" statement
in Chapter 3 is not relevant in today's programming
and computer environment. The last few chapters are
more like manuals of the WEB and CWEB programs (C
version of WEB), which are the programs generating
documents and source codes. These manuals may not
interest readers unless they are well motivated to
write program "literally." One gem should not be
missed is is Chapter 10, "The Errors of TeX" (and
the accompanying Chapter 11, "The Error Log of
TeX). Seeing how Prof. Knuth meticulously documented
all of his bugs in TeX is just amazing. Overall this
book is more of historical value and for people who
love Knuth and his work on literate programming.