Reverse Literate Programming

Markus Knasmüller
Johannes Kepler University Linz
Institute for Practical Computer Science
Altenbergerstraße 69, A-4040 Linz


Knuth's Literate Programming system allows an author to design and describe a program hierarchically according to the method of stepwise refinement. The result is source code, which can be read sequentially like a book, section after section. This helps when reading printed source code, but on screen source code is read rather selectively like an encyclopedia. There the programmer wants a system which allows, possibly even encourages, selective browsing; zoom in at interesting points; jump to other locations according to control flow or other semantic relationships. This is the approach chosen by hypertext systems. In this paper, we demonstrate a solution, called Reverse Literate Programming, which combines the advantages of Knuth's method and of the hypertext approach. We implemented active text elements making it possible to have the source code as a hypertext screen document. A special command prints this document as a Literate Program, i.e. an essay, including documentation, pictures, and program code. The implementation was done in the Oberon system which offers powerful mechanisms for extending software in an object-oriented way.

Paper at the Software Quality Conference, Dundee, 1996.

Published in the proceedings of the Software Quality Conference, Dundee, 1996.

You can download the paper in postscript or in compressed postscript.