by Donald E. Knuth (Stanford, California: Center for the Study of Language and Literate programming is a methodology that combines a programming. Literate Programming (Lecture Notes) [Donald E. Knuth] on *FREE * shipping on qualifying offers. This anthology of essays from Donald Knuth, the. Christopher J. Van Wyk, Literate programming, Communications of the ACM, v n.7, E. Donald, Jill C. Knuth, TEX, Encyclopedia of Computer Science, 4th.
|Genre:||Health and Food|
|Published (Last):||10 October 2010|
|PDF File Size:||2.91 Mb|
|ePub File Size:||15.81 Mb|
|Price:||Free* [*Free Regsitration Required]|
I could go on, and on, why a wiki is not optimal for any documentation associated to a luterate project. Here are some software practices related to program documentation: Errata For a list of corrections to errors in the first printing of this book, you may download either the errata file in plain TeX format bytes or the errata file in DVI format bytes or the errata file in compressed PostScript format bytes ; the latter files were generated by the TeX file, and last updated 12 Jun Often, some of the subtleties of an algorithm can be unclear or hidden until it is implemented, so seeing an actual implementation is a good way to acquire a solid understanding of that algorithm’s details.
You don’t have to define or even declare functions before their first programminv in the file, you can easily extract any part of the code into a function or method and you can place it anywhere you want.
Re-think or refactor code program,ing is difficult to understand.
Knuth wrote TeX in Pascal. It meant doing everything took longer the first time, but at the point of actually writing the code, the coder had a really good picture of exactly what it had to do and exactly doanld it dnoald in to the grander scheme. And your reading of them. Every so often, the customer or rather, the alliance of customers would send someone. However, to the initiated it’s mostly in the way.
From their documentation it sounds like it uses literate programming and would be a good resource. The general problem with documentation is that it gets out of date as the software evolves to fit new requirements.
I had all sorts of ill-considered ideas at the time donld no real guidance. In my experience this style is a very good match for a literate programming. Generate software requirements and design description see IEEE standards. Literate Programming in WEB”. The difficulty comes from attempting to solve ill-specified or constantly changing requirements by glueing together a constantly changing set of frameworks and tools.
So I was frightened with the idea that I would actually be expected to show someone my program. I’m fairly happy with Leo for “documenting” my Puppet nodes – I create a Leo node for each Puppet node or node regex with a link to the node definition, and a link to the “documentation” node of each class included for that node.
These were sections of proper prose going above each chunk at the progeamming level, chunks were pretty small and modular.
That stack is a mess and we need organization for it. The testing was likewise very solid and very thorough tests were rightly based on the requirements and the interfaces as designedbut I like to think that the literate programming style enforced a high quality of code and it certainly meant that the code did meet the design, which did meet the requirements.
If a program is so complicated that it requires that much commenting, something went wrong during the design process. Its first goal is the latter. I’m trying to do literate for my full time programming, still trying to cross the hurdle.
I respect Donald Knuth very highly, but in that literate programming thing he is wrong – it is the code prograjming that must be clear and readable. Quick introduction to literate programming by Chris Lee.
Literate programming is NOT about documentation in the first place. Thanks for the detailed response!
To the point that if you aren’t going out of your way to represent the narrative flow of what you are writing, you are probably not going to see any benefit. Better than literate programming is programminng write code that explains itself.
If the choice isn’t testable in any way, litsrate not worth commenting on. WorldMaker on Aug 17, We understand a complicated system by understanding its simple parts, and by understanding the simple relations between those parts and their immediate neighbors.
The fewer comments the better. It’s not disorganized, confused, poorly-planned, and glaring technical debt, no, it’s “culture. All code was written in a noweb-style markup, such that a top level of a code section would look something like this: The fundamental logic of the WEB system encourages “top-down” programming and “structured” design.
The typesetting language enables all of the comprehension aids available in books such as pictures, diagrams, figures, tables, formatted equations, bibliographic references, table of contents, and index. At some point, lack of accessible knowledge about how the code works can grow into a massive technical debt.
Then in orwhen I was writing TeX82, I was able to use his experience and all the feedback he had from users, and I made the system that became WEB.