perm filename WEB.TXT[3,2] blob sn#634416 filedate 1982-01-20 generic text, type C, neo UTF8
C00001 00001
C00002 00002	WEB is a new language that Don Knuth has created, primarily for his own
C00006 ENDMK
WEB is a new language that Don Knuth has created, primarily for his own
use in rewriting TEX.  The WEB language allows one to prepare a single
document that contains all the information that is needed both to produce
a compilable PASCAL program and to produce a well-formatted document
describing the program in as much detail as the writer may desire.  The
user of WEB must be familiar with both TEX and PASCAL.

Two special programs are used, one called TANGLE (type R TANGLE) to
produce the PASCAL program from the WEB source and the second called WEAVE
(type R WEAVE) to produce another file (from the same WEB source) that is
used with TEX to produce the final hard-copy documentation.

WEB provides a relatively simple, although adequate, macro facility that
permits a PASCAL program to be written in small easily-understood modules.
The TANGLE program assembles these modules into a usable PASCAL program.

The WEAVE program takes appropriate care of typographic details like page
layout and the use of indentation, italics, boldface, etc.,and it supplies
extensive cross-index information that it gathers automatically.

WEB and the November 1981 versions of TANGLE and WEAVE are described in a
hard-copy document available from Phyllis Winkler in MJH 326.  This
document was, of course, written in WEB and it speaks well for the new
language.  Get a copy if you think that you might like to use WEB.  TANGLE
and WEAVE are currently being modified for export, and they are running
on at least a half dozen different systems.

The January 1982 versions are currently installed at SAIL. New features
added since November are described in manual.tex[web,dek].

Sample run:
	.r tangle
	WEBFILE:	foo.web
	CHANGEFILE:	nul:		(or, for changes to foo.web)
	PASCALFILE:	foo.pas
	POOL:				(just hit CR for output to "POOL")
	***********        [one asterisk per @* in your WEB file]
	Writing the output file.....    [3+n dots for 100n lines of PASCAL out]
	Done.			[Now foo.pas is your PASCAL program]
(Say "help PASCAL" for clues to decent PASCAL compilers at SAIL.)