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.

Author: Yozshunos Mezishakar
Country: Dominican Republic
Language: English (Spanish)
Genre: History
Published (Last): 19 September 2007
Pages: 101
PDF File Size: 4.20 Mb
ePub File Size: 14.33 Mb
ISBN: 123-8-36811-897-8
Downloads: 70147
Price: Free* [*Free Regsitration Required]
Uploader: Zulkitilar

Writing the story after it’s done is too late – the business value is in the product’s shipped functionality, not in the development artifacts. That example was the key to me for this idea of thinking of a program as hypertext, as we would now say it. There is no need to explain why that is the case; all the various possible reasons for that are obvious, and it doesn’t matter which ones of them are true.

He claims he could not have implemented MMIX without literate programming.

Literate programming

Could you describe in more detail how you used it? I do not know if the other systems did that. We have an alternate method of understanding how software developed, which is to look at revision control commits. Unless the program is different than LP work. Avoid duplicate code by creating shared functions.

Instead, it is wrenched into the daylight and made the main focus. Here are some software practices related to program documentation: Knuth also claims that literate programming provides a first-rate documentation system, which is not an add-on, but is grown naturally in the process of exposition of one’s thoughts during a program’s creation.


Then the final stage is of course with AI that can understand most human communications. Often a complex parser program is needed to re-arrange the code into computer acceptable form — such is the case of Knuth’s WEB.

And the fact that there’s no need to be hung up on the question of top-down versus bottom-up, since a programmer can now view a large program as a web, to be explored in a psychologically correct order is perhaps the greatest lesson I have learned from my recent experiences. And your reading of them. Some of it also seems very tied to particular languages.

Ask HN: Why did literate programming not catch on? | Hacker News

This book is a long literate program. Putting beautiful marble on the trenches’ walls just isn’t one of them. Literate programming is writing out the program logic in a human language with included separated by a primitive markup code snippets and macros. 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.

This does not exclude the possibility that the source is written as a plain text file, but then it should undergo some form of processing to ljterate the actual program description.

To the point that if you aren’t going out of your way to represent the narrative flow of loterate you are writing, you are probably not going to see any benefit. The subtlety is lost.

literwte This is a game changer for me. I hope the version is otherwise error-free. I’ve been liking how Visual Studio’s CodeLens now available in cheaper SKUs in brings focus to commit history specific to logical units in the code methods and classes.

One other reason is: Writing tomdocs is a chore to be done immediately before delivering code for peer review.


Now I’m curious where you might be able to push things if knhth purpose built a “Literate Revision Control” tool and what sort of strong “epic poem” style litrrate commit messages would best produce useful “novelizations” of a codebase When I go back to the project now, it doesn’t compile because of the encoding errors.

If it were not necessary for you or other developers to understand the code, then high level languages would not be needed. I’m starting to believe that it’s just the human nature at play here. The meta-language capabilities of literate programming are also claimed to facilitate thinking, giving a higher “bird’s eye view” of the code and increasing the number of concepts the litsrate can successfully retain and process.

I respect Donald Knuth very highly, but in that liteerate programming thing he is wrong – it is the code itself that must be clear and readable. Also, it was written by someone who liked to write books, and if a book was about software, he wanted to integrate the writing of the book and the software.

These macros are similar to the algorithms in pseudocode typically used in teaching computer science. The documentation and high-level language code are complementary and should kunth the same elements of the algorithms being written. Tomash Publishers reprint series, pg.

Better than literate programming is to write code that explains itself.