WEB is a software system that facilitates the creation of readable programs. It was originally developed by Donald E. Knuth as he wrote the TeX typesetting system. Users of WEB are able to
* Write programs of superior quality;
* Produce state-of-the-art documentation;
* Greatly reduce debugging time;
* Maintain programs easily as conditions change.
The main idea is to regard a program as a communication to human beings rather than as a set of instructions to a computer. Your program is also viewed as a hypertext document, rather like the World Wide Web. (Indeed, Knuth used the word WEB for this purpose long before CERN grabbed it!)
CWEB is a version of WEB for documenting C, C++, and Java programs. WEB was adapted to C by Silvio Levy in 1987, and since then both Knuth and Levy have revised and enhanced the system in many ways, notably to support C++ and ANSI C. Thus CWEB combines TeX with today's most widely used professional programming languages.
If you are in the software industry and do not use CWEB but your competitors do, your competitors will soon overtake you---and you'll miss out on a lot of fun besides.
More comments about CWEB can be found in Daniel Mall's website for Literate Programming.
This book is the definitive user's guide and reference manual for the CWEB system. The CWEB software itself is freely available via anonymous ftp from ftp.cs.stanford.edu, in directory ~ftp/pub/cweb. It consists of two programs:
converts a source file foo.w to a compilable program file foo.c;
converts a source file foo.w to a prettily-printable and cross-indexed document file foo.tex.
Both CTANGLE and CWEAVE are stable, well-tested, and highly portable. They have been installed on a wide variety of computers and operating systems.
download the latest version of cweb.tar.gz
An electronic form of this book comes free with the CWEB system, but the printed version costs less than the price of laserprinting and has a nice cover and binding. So I recommend that everyone obtain it from the publishers, Addison-Wesley Publishing Company.