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.
|Country:||Central African Republic|
|Published (Last):||1 October 2016|
|PDF File Size:||6.72 Mb|
|ePub File Size:||15.81 Mb|
|Price:||Free* [*Free Regsitration Required]|
Establish structures, processes, and outcomes see Luke Holman. That is the point of writing a program, to describe the problem to other developers. Programmers who gathered a reputation for doing really good thorough reviews with good comments and the ability to critique people’s code without offending anyone’s precious sensibilities we’ve all met them; people who seem to lose their sense of objectivity completely when it comes to their own code were in demand, and it was a valued and recognised skill being an ace at code reviews should be something we all want to put on our CVs, but I suspect a lot of employers basically never see it there – I have definitely worked in some places in which, if a coder isn’t typing, they’re seen as not working, so management would have to be properly on board.
Then, which is correct?
Uhm, I write literate code exactly because my code is very compact so I can afford to dilute it with an equal amount of prose. I tried using “Leo”, an outlining and literate programming text editor, for a project. It’s been called Roundtrip Engineering. Well, this was frightening. Literate programming is NOT programmint documentation in the first place.
Literate programming – Wikipedia
The chunks helped a lot. I find Knuth’s example — writing two versions of the program the code and the documentation — a compromise due to lack of compiler power and impractical — who, after spending so much effort get the code written and debugged and barely worked, still have the energy to write article to explain it — especially with no apparent readers in sight? Here are some software practices related to program documentation:. Of course, we did have the massive advantage that the requirements were set clearly, in advance, and if they changed it was slowly and with plenty of warning.
You must have a nice cushy well defined corporate job if you think that constantly changing requirements are something unusual. There are many mechanisms available for threading the context through functions, which makes direct, textual programmint simply not lirerate.
There are no constraints to your organization and literatd is awesome.
Here are some software practices related to program documentation: The answer progfamming that question is orthogonal to “the current view” of whatever. It required a lot of discipline, at lots of levels. A complex piece of software consists of simple inuth and simple relations between those parts; the programmer’s task is to state those parts and those relationships, in whatever order is best for human comprehension not in some rigidly determined order like top-down or bottom-up.
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.
Ask HN: Why did literate programming not catch on? | Hacker News
If there are simplifications available, I find the structure makes them visible. 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 knuyh quality of code and it certainly meant that the code did meet the design, which did meet the requirements.
Each of these disciplines can materially improve programmer productivity and the quality of code produced. I wish programmers stopped being like that.
Innovative ideas, critical technical knowledge, algorithmic solutions, and unusual coding constructions are clearly documented. Assimilate relevant ideas and come up with some kind of design. No1 on Aug 17, Changing requirements are quite normal, but changing by the hour is just poor project management, no matter what the environment.
It’s been programmimg many times.
Organize large source code files using an outlining editor Leo. The only thing worse than a big system with no documentation is a big system with documentation that is full of lies and untruths.
Ptogramming Journal, Marchpg. It seems plausible to me total guess again that people who consciously minimize comments would not be inclined to literate programming, since if you’re consciously minimizing comments, what’s left to litreate anyway? If your source code files, version control commits, code review comments on those commits, and bug discussion threads are all cross-referenced in a unified Ddonald interface, many problems just go away. 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 a complex parser program is needed to re-arrange the code into computer acceptable form — such is the case of Knuth’s WEB.
There are many tools which support Literate Programming for many different languages. It did catch on, just in a different form.
The subtlety is lost. I had all sorts of programmijg ideas at the time and no real guidance. You don’t get it Nick – that lump of sand doesn’t understand your code at all. If one is going to question whether or not to use LP, shouldn’t they analyze it on it’s own, and not simply accept pre-existing biases? His page report was very philosophical for the first 99 pages, and on page he started with an example. Yes, you are ;- The thing is, as I wrote in the other comment, that “modern” like Lisp, as someone noted ;- languages already allow you to structure the code as you see fit.