Donald Knuth. “Literate Programming ()” in Literate Programming. CSLI, , pg. I believe that the time is ripe for significantly better documentation of . 3 Oct Literate programming: Knuth is doing it wrong. Literate programming advocates this: Order your code for others to read, not for the compiler. Literate Programming is also the name of DonKnuth’s book (ISBN One speculation for the reason behind Knuth’s pushing of LP is that according to Stanford’s.
|Published (Last):||5 October 2004|
|PDF File Size:||6.77 Mb|
|ePub File Size:||15.14 Mb|
|Price:||Free* [*Free Regsitration Required]|
The fundamental elements of any computer program are, perhaps not surprisingly, time and space.
Second, the language provides a mechanism for presenting program code to the reader in knuyh entirely different order than it is supplied to the compiler. The documentation knith include a description of the problem and its solution. A Philosophy of Software Design. But then I also realized how much need there was for examples of good-sized programs, that could be considered as reasonable models, not just small programs. Moreover, because an explanation in WEB is intimately combined with the hard reality of implementation, it is qualitatively different from, and far more useful than, an ordinary “specification” or “design” document.
Retrieved from ” https: The system should be presented in an order based upon logical considerations rather than syntactic constraints.
And I showed that to Tony Hoare and to several other people, especially Luis Trabb Pardo, and got some feedback from them on the ideas and the format. Cross references, indices, and different fonts for text, high-level language keywords, variable names, programmig literals should be reasonably automatic and obvious in the source and the ltierate. This book was published inbut Chapter 4, “Literate Programming”, was originally published inwhich was an idea way ahead of his time JavaDoc was first released in12 years after the Knuth’s article.
Each holon is composed by other holons which are “refinements” of the former holon. Again, I did this in the interests of simplicity, because I noticed that most applications of multiple parameters could in fact be reduced to the one-parameter case. This book is excellent.
Customers who bought this item also bought. This particular trick makes it possible to But that is exactly what D.
Literate Programming in WEB”. Digital Typography Lecture Notes. Read more Read less.
This book received the Productivity Award from Computer Language magazine, prograkming, awarded to products that significantly increase programmlng productivity. Overall this book is more of historical value and for people who love Knuth and his work on literate programming. In fact, macros can stand for any arbitrary chunk of code or other macros, and are thus more general than top-down or bottom-up “chunking”, or than subsectioning.
However, because these tools do not implement the “web of abstract concepts” hiding behind the system of natural-language macros, or provide an ability to change the order of the source code from a machine-imposed sequence to one convenient to the human mind, they cannot properly be called literate programming tools in the sense intended by Knuth.
I believe that the time is ripe for significantly better documentation of programs, and that we can best achieve this by considering programs to be works of literature. They resemble programs from computer science textbooks rather than listings from executable programs. Programming on the universal canvas is one revolution that can’t possibly arrive too soon. I had a discussion with him in approximately ; I’m knutg to remember the exact time, maybeyes,perhaps when I visited Newcastle?
In I wrote my first structured program; it was fairly good sized-maybe, I don’t know, 50, lines of code, something like that. Numbers like P68 and Q78 in this list refer to the corresponding papers in my list of publications. Literate programming was first introduced by Donald E.
Instead of comments provided as side notes to source code a literate program contains the explanation of concepts on each level, with lower level concepts deferred to their appropriate place, which allows for better communication of thought. The articles have been revised, extended, and brought up to date. Wheeler, and Stanley Gill. Add both to Cart Add both to List. Hanson demonstrates that “literate programming” is a viable approach to creating works of craft as well as works of art.
This is illustrated by the following snippet of the wc literate program. The fundamental logic of the WEB system encourages “top-down” programming and “structured” design. I was not dissatisfied.
He sent me a report, which was pages long, about his system-it was inspired by “The Ghost in the Machine”. If we express a program as a web of ideas, we can emphasize its structural properties in a natural and satisfying way.
Literate programming is just a single technique to be used along with all the other well established software engineering practices. Execute static analysis for common coding errors. Quick introduction to literate programming by Chris Lee.
This means that the document describing the program should consist of formatted text, rather than being a plain text file.
Such exposition of ideas creates the flow of thought that is like a literary work. Examine source code metrics lines, complexity, etc. The program description should describe parts of the algorithm as they occur in the design process, rather than in the completed program text. With HTML output, traceability was made real using interactive links.