Projects using Noweb
This page contains a list of projects that use the noweb literate-programming tool.
- Kiyoshi Akima
uses noweb to improve his own understanding of his programs,
even for programs that probably will never be published, strictly
for internal, exploratory, experimental use.
- Rob Arthan and his colleages
at Lemma 1 use noweb
for general purpose programming in C, C++, ML and what have you.
They also find that noweb
is ideal for managing Java source. This code involves several packages, most
of which contain many tiny (<10 line) classes, and the compiler
requires that each class be in a separate Java source file.
Noweb of course allows these to be combined, plus documentation,
the bee's knees for solving this problem.
- Fco. Ballesteros is using noweb to write Off, a distributed
- Daniel Bastos
uses noweb to help himself
understand his own programs and because he agrees with Knuth that
a computer program is a literary work and should
be written for humans to read.
- Mark Bickford uses noweb to build
- The BioConductor
bioinformatics package is written in noweb markup using the
R statistical language.
- Darius Blasband has used
noweb to produce sample scripts for RainCode,
a tool for analysis and manipulation of COBOL programs.
Some scripts can be viewed online.
- C Bolton has used
noweb with the R programming language to implement a
rating for NFL quarterbacks and running backs.
- Kenneth Brittain
uses noweb with Microsoft Visual C++ 4.2.
added a Tool to the IDE that launches Noweave with the current file and
standard options, such as -html. Similarly for Notangle. When he wants
to see the work he hits, VC++ launches Noweave, and he keeps on
Adding the generated C++ file to the project lets everything
- Tom Burdick uses noweb for
the internal documentation
of Flying Crocodile's various
- John Casey uses
noweb to teach Computer Organization (a great way to document assembly
language) and Algorithms.
- Simon Clift
has used Noweb for
fluid dynamics and high-performance financial analysis programs with
Perl, Python, C, C++, Fortran, shell scripts and even makefiles.
Noweb (with LaTeX) enabled his last project to be fully
cross-referenced from the business case to the design documents and
through to the source code. Code was enhanced with diagrams and
equations, and mixed-language source files could group (for example) a
Python object with the Fortran code for the high performance
- Matt Craig uses noweb to teach astronomy as
well as in his astronomy research.
He came up with a cute trick for
maintaining loop nests.
- John Cummings
has been using noweb to write a suite of programs
to do partial-wave analysis of particle-physics data.
He finds that noweb is easy to use and works well, and he really
appreciates the language-independence.
- Johannes Derwisch
uses noweb to weave documentation into
Fernández used noweb to build UnQL a
query language for structured data.
Some people who got her source code were thrilled because ``nobody had
ever given them documented code before.''
- Leo Ferres uses noweb
in his teaching—students in his programming course use noweb to
write their homework.
- Chris Fraser and Dave Hanson used noweb to write lcc
retargetable C compiler (and the associated book).
- Steve Furlong works as a
programming consultant, apparently specializing in getting the
program working when the other programmers have left the job.
He uses noweb to help him understand and rewrite other's code.
- Felix Gaertner has written the Pretzel
prettyprinter generator using noweb.
- Benoit Goudreault-Emond
has heroically managed to get noweb to
work with the Visual C++ programming environment.
From FileView, Settings, you can set a `custom build step' to call
You can add noweave to the Tools menu to get HTML.
- Lou Glassy
finds that literate programming debugging time for his
programs. He doesn't find that it takes longer to write a literate
program, but he does find that the program which emerges is (a)
probably correct and (b) easy to debug if it is not correct.
Lou has recently given a seminar on literate
programming, with examples.
- Carl Gregory
has using noweb since 1993 at Tipton Cole & Company, primarily
for continuing applications in Paradox for DOS, Microsoft Access, Visual
BASIC, and HTML, all running under Windows 95.
He edits the noweb file while viewing
the weave with DVIWIN in another window, which works quite nicely.
He sent me a short note about his experiences.
- Dave Hanson used noweb to write his book of C Interfaces and implementations.
- Pieter Hartel
and Henk Muller used noweb to manage not only the C,
SML, and code but
also the mathematics in the book
C, Addison Wesley Longman, Harlow, UK, 1997, ISBN 0-201-41950-5.
- Thomas Hauser
has used noweb for developing a compressible fluid dynamics solver
He has used noweb since 1994 because of the simplicity of noweb and
its language independence.
- Rob Jasper
uses noweb to interface a CAD system to Oracle using
Lisp and CLOS.
- David Kastrup writes literate programs, including a
for connected regions.
- Terence Kelly uses noweb for all of his programming projects. For
an example, see his report on an
traffic simulation model, which was done for a graduate class at
the University of Michigan.
- Bill Kossmann writes literate programs for the Paradox database
product, including a Received-Not-Payable
Leavens especially likes using noweb for technical talks,
in which he can be sure that the specifications he's showing
the audience actually pass his specification language checker.
- Chris Lee has used noweb for
several projects, including writing a library which
provides a real-time Scheme interpreter for use in directing the
operation of several experimental robots.
- Francky Leyn
uses noweb for many things, of which the three most important are
modeling environment and conversion engine
Declarative Duck models for constraint programming in DONALD,
and over 400 pages of structured documentation in bash and gawk.
- Mark Lunt uses noweb for hobby projects
(e.g., a sequencer for Linux). He writes
``When you only get to work on
something every 6 months or so, it is very useful to be reminded exactly why
you did things when you first wrote them. I also use noweb format files in my
work as a statistician: the documentation chunks will become a paper, the code
chunks perform the analyses that produce the results the paper is based on.''
- Barry MacKichan is
developing an XML back
end for noweb. As of May, 1998, it is work in progress and not polished.
(A trip to the bookstore suggests that XML
is the latest hot thing.)
- Robert T. McLay uses
noweb for all different kinds of
numerical software, mainly finite element programs. He has mixed
FORTRAN, C and assembler together using noweb for a project to solve
partial differential equations on distributed memory parallel
- Yotam Medini has released PED, a
Path-EDiting package written in Gtk and noweb.
- Phil Merkey uses noweb
for coding samples in
Unified Parallel C
- Frank Miller
uses noweb to build
pk, an open-source PThreads kernel.
- Mansour Moufid writes, "Noweb was perfect for a recent literate project for which I needed to
use both Python and C in the same document. I've also used noweb for
MATLAB code in the past. Noweb works on my Mac and Linux too... it's
- Krishna Myeni uses noweb and
LyX to write literate Forth programming tools and
to explain a scientific program written in Forth.
There are examples.
- Balasubramanian Narasimhan
has used noweb for statistical papers,
and Diehard, a
test bed for random-number generators.
- Mark Naumann
uses noweb for documenting "dot files" (.emacs, .twmrc, etc.), shell
scripts (bash, tcl, itcl, ...), and for all newly written programs (C,
C++, 68k/PPC/Coldfire assembler...).
- Matthias Neeracher used noweb to write GUSI,
a socket/POSIX library for the Apple Macintosh.
- Michael Norrish is implementing a logical semantics
for C in the HOL theorem prover.
- The R statistical
markup as a standard package in the in the
form of the
sweave function. The combination of R with literate
programming using noweb has become an important tool in reproducible
research, and, for example, the documentation for the
bioinformatics package is all written in noweb/
- Norman Ramsey and Mary Fernandez used noweb
to write New
Jersey Machine-Code Toolkit.
Ream is the inventor of LEO, a folding outline editor
for literate programs. LEO supports noweb and CWEB.
- Anthony Rossini uses noweb
for programming statistical procedures and simulations
in XLispStat, Splus, and C.
- Woodrow Setzer uses
noweb to document statistical data analysis and other statistical
projects such as simulation studies. This code is mostly S+, but also
perl, awk, and a specialized dynamic model solver.
- Mike Smith and his
research group use noweb to document the Machine SUIF interfaces.
- Jonathan Sobel
in his research in programing languages, including
- Alexandre Valente Sousa combines
and noweb into the
package, which helps maintain software systems under revision control.
uses noweb for the usual programming type stuff, but also for creating
input for scientific programs. He uses noweb to create readable (by
humans) input which is then tangled into what the program actually
- Volker Strumpen
uses noweb to write the source code of the
- Andrew Swann
has used Noweb to document some Maple code for the
exceptional Lie algebra G2.
He found that being able to use latex for the
documentation was extremely useful because of the mathematical
- Thomas Tensi
a literate-programming tool for the Psion handheld.
His tool is based on Noweb.
- Terry Therneau of the Division of Biostatistics at the Mayo Clinic
uses noweb to implement
mixed effects Cox models. The algorithm is mathematically subtle, and
it also requires sparse matrix concepts for reasonable speed, so
standard comments were not enough.
- David B. Thompson
uses noweb for development of hydrologic models in FORTRAN.
- Gabriel Valiente
has written a
book on graph
algorithms using Noweb.
He also runs a seminar
on literate programming.
- Tony Vignaux
and some of his graduate students have been uing noweb for developing
and documenting simulation programs in Simscript, ModSim and a new Java
Since the general form of a simulation program is reasonably standard
(they all consist of collections of processes and resources, entities
and queues, or events), they have found it useful to have a template noweb
file which helps us in the program development as well. The
philosophy is always to have a running simulation program from the
beginning of the project.
- Lee Wittenberg uses noweb
for teaching and for many projects, including, for example, an
simulator written in Java.
- Peter Wolf has
used noweb and S-plus to build a tool called REVWEB,
which helps statisticians create reproducible data analyses.
- Adrian Zimmer uses noweb to write literate
- Monty Zukowski
has implemented an Undo
Framework in Python