Literate Programming Simplified (Abstract)

Norman Ramsey

When it was introduced, literate programming meant WEB. Desire to use WEB with languages other than Pascal led to the implementation of many versions. WEB is complex, and the difficulty of using WEB creates an artificial barrier to experimentation with literate programming. noweb provides much of the functionality of WEB, with a fraction of the complexity. noweb is independent of the target programming language, and it supports formatting with TeX, LaTeX, and HTML. noweb is extensible, because it uses two representations of programs: one easily edited by authors and one easily manipulated by tools.

This paper explains how to use the noweb tools and gives examples of their use. It sketches the implementation of the tools and describes how new tools are added to the set.

The full paper is available as scanned PDF, which is quite large (5MB), or the slightly smaller DejaVu format (3.7MB). Avoid the published version; it is littered with misprints.