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.
|Published (Last):||6 October 2006|
|PDF File Size:||3.14 Mb|
|ePub File Size:||7.34 Mb|
|Price:||Free* [*Free Regsitration Required]|
For example, suppose that you want to define something like Execute static analysis for common coding errors.
Of course, LP is a fuzzy concept. Literate programming isn’t the only method of documenting code.
I am sure that it also helps writers: You totally missed the idea, and in the case of blind leading the blind quote scores of other misreaders. If you’ve not worked with requirements like that, you might be surprised just how solid you can make the code when you know before touching the keyboard for the first time exactly what the finished litetate is meant to do. The project I worked on was a decade-long piece for a consortium of defence departments from various countries.
I’ve talked to Knuth. Suppose your team leaves they all do eventually. A “closed” subroutine is one which is called into use by a special group of orders incorporated in literae master routine or main program. The fewer comments the better.
Our web shop is fairly typical of that. 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.
Literate programming: Knuth is doing it wrong
Some groups of chunks would get commentary, discussing at a high level the design that they were meeting. Just correcting the Wikipedia link: What’s important is that you don’t need any special tools to use this style in your comment if your language is flexible enough. Let us change our traditional attitude to the construction of programs: I find that literate programming is something of a code smell. This is because to understand the code you need to know the context it was written in.
In the same way that I find interactive programming in Common Lisp optimal for exploratory work in a complicated or uncertain domain, I find literate programming to be optimal for work that requires rigor in a domain with little uncertainty and static requirements. Then the final stage is of course with AI that can understand most human communications.
If the environment is so volatile that the code is permanently broken reverse engineering doesn’t work well. It’s not disorganized, confused, poorly-planned, and glaring technical debt, no, it’s “culture. The program should be the most concise and clear description of what is going on. Quoting from Kernighan and Plauger, ‘Top-down design and successive refinement attack a programming task by specifying it in the most general terms, then expanding these into more and more specific and detailed actions, until the whole program is complete.
The only large project using literate programming that I am aware of is Axiom, a symbolic math system written in Lisp. Moreover, who documents them in a pedagogical style that is easy to understand? But I would not rely on an external tool again as I don’t want the dependency.
Ask HN: Why did literate programming not catch on? | Hacker News
WorldMaker on Aug 17, Many languages are capable enough that they don’t need third party tools for these. Your comment also suggests that you might have missed a literae point; it’s not for you. Imagine a physics textbook that was “just the equations” without any surrounding text. If your code consists of a lot of DSLs, clearly separated from each other, each implemented in a small, compact, readable module – then you won’t have to change that much in the existing code.
Conduct peer reviews of deliverables. The “program” then becomes primarily a document directed at humans, with the code being herded between “code delimiters” from where it can be extracted and shuffled out sideways to the language system by literate programming tools. And good enough is what keeps many from using optimal practices.
The structure of a software program may be thought of as a “WEB” that is made up of many interconnected pieces. Writing tomdocs is a chore to be done immediately before delivering code for peer review. I used Leo for a solo game project – AS3 code – made over the course of about a year. I’m starting to believe that it’s just the human nature at play here.