Subject: Literate Programming: Emacs Lisp and Noweb

From: barry <[email-masked]>
Date: Thu, 25 Sep 2008 23:55:31 -0400

Please find attached a tar file which includes a package I use to integrate
Norman Ramsey's noweb literate programming tool and Emacs Lisp.

Just untar the file, and follow the instructions in README (simple 
./configure,
make, make install) to install the package.

There is complete documentation in the doc directory. The code for elnw 
(elisp-noweb)
is all documented with the noweb constructs and serves as an example of 
how noweb
and emacs lisp integrate nicely to provide literate programming 
documentation
for emacs lisp.

For users of most programming languages, noweb provides tools notangle and
noweave, to generate either purse source code or pure documentation code
from a single noweb source file that includes both.

The tools provided allow users to incorporate the noweb constructs directly
into the emacs lisp source code itself, through a few simple functions
(noweb-doc, noweb-chunk). The literate code with these functions may be 
compiled
and run, with no performance penalty.

At the time documentation generation is required, or final code is desired,
the command line tools elnw-gendocs and elnw-compile (which invoke emacs
lisp in batch mode to do the work) serve to generate pure noweb documents
(for dicument generation) or pure el code for code generation (with the 
noweb
constructs stripped out).

The generated documentation is to latex from which dvi or pdf files are 
generated.
The code sections in the documented literate code is colorized according 
to the
users standard font-lock selections.

These tools make it simple (simpler than in other languages) to create 
literate
emacs source code according to Knuth's concept. The literate source is
compilable, and executable (with no performance penalties) and generation of
final documentation and final source code is trivial.

Feel free to distribute this package as you like.

It requires emacs-22.1 (minimally), the noweb tools from Norman Ramsey's
site at http://www.cs.tufts.edu/~nr/noweb/, a working installation of 
latex with
the xcolor package.

Barry Krofchick
[email-masked]