Donald Knuth. “Literate Programming ()” in Literate Programming. CSLI, , pg. I believe that the time is ripe for significantly better documentation of . Literate programming: Knuth is doing it wrong. Literate programming advocates this: Order your code for others to read, not for the compiler. Literate. What is Literate programming? Literate programming is a style of programming invented by Donald Knuth, where the main idea is that a program’s .

Author: Munris Nikonris
Country: Malaysia
Language: English (Spanish)
Genre: Photos
Published (Last): 26 May 2013
Pages: 373
PDF File Size: 12.42 Mb
ePub File Size: 12.42 Mb
ISBN: 838-4-60452-892-4
Downloads: 68012
Price: Free* [*Free Regsitration Required]
Uploader: Vuran

Innovative ideas, critical technical knowledge, algorithmic solutions, and unusual coding constructions are clearly documented. Hanson demonstrates that “literate programming” is a viable approach to creating works of craft as luterate as works of art. In other words, the name of one macro can usefully be a parameter to another macro.

Later it is reshuffled “tangled”, i. Webarchive template wayback links Wikipedia articles needing clarification from September CS1 errors: Modeling diagrams are included UML.

Literate programming: Knuth is doing it wrong

Knuth wrote a “novel” which explains the code of the interactive fiction game Colossal Cave Adventure. The architecture and design is explained at a conceptual level.

Each of these disciplines can materially improve programmer productivity and the quality of code produced.

These holons are submitted to some rigid rules; they perform the piterate operations which, put together, compose the function of the former progrwmming. I had learned from a Belgian man I had met him a few years earlier, someone from Liegeand he had a system-it’s explained in my paper on literate programming.

Of course, I developed TeX so that it would try to continue a history of hundreds of years of different ideas.

Knuth: Literate Programming

In this way several purposes are served at once: In I wrote my first structured program; it was fairly good sized-maybe, I don’t know, 50, lines of code, something like that. Dobbs Journal, Marchpg. Avoid duplicate code by creating shared functions. Neither type of language can provide the best documentation by itself; but when both are appropriately combined, we obtain a system that is much more useful than either language separately.


I don’t recall exactly the date now. The same example was later rewritten for the noweb literate programming tool. 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 produce the actual program description.

The first published ligerate programming environment was WEBintroduced by Donald Knuth in for his TeX typesetting system; it uses Programking as its underlying programming language and TeX for typesetting of the documentation. Instead of writing code containing documentation, the literate programmer writes documentation containing code.

They resemble programs from computer science textbooks rather than listings from executable programs. In WEB one deliberately writes a paper, not just comments, along with code.

Actually, literate programming uses a method that differs from this only trivially from a formal standpoint, but has a great literaet in practical terms: 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.

Parts of the program that belong together logically should appear near to each other in the description, so that they are visible from the part of the documentation that discusses their function.

He proposed a way of taking a complicated program and breaking it into small parts.

Then, to understand the complicated whole, what you needed is just to understand the small parts, and to understand the relationship between those parts and their neighbors.

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 mind can successfully retain ,nuth process.


Literate programming

I believe that the time is ripe for knhth better documentation of programs, and that programimng can best achieve this by considering programs to be works of literature. I replied to his letter on 16 November much earlier than I remembered. Literate programs are written to be read by other software developers. The present chunkwhich does the countingwas actually one of the simplest to write. Despite roughness in low-level style, the program meets these goals well.

There are many factors involved in developing excellent software. A complex piece of software consists of simple parts 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 literae rigidly determined order like top-down or bottom-up. The following snippet of the wc literate program [11] shows how arbitrary descriptive phrases in a natural language are used in a literate program to create macros, which act as literste “operators” in the literate programming language, and hide chunks of code or other macros.

Applicability of the concept to programming on a large scale, that of commercial-grade programs, is proven by an edition of TeX code as a literate program. I had a discussion with him in approximately ; I’m trying to remember the exact time, maybeyes,perhaps when I visited Newcastle? I hope the version is otherwise error-free.