TeX Frequently Asked Questions - Section 8

Go to the first, previous, next, last section, table of contents.

# Literate programming

## What is Literate Programming?

Literate programming is the combination of documentation and source together in a fashion suited for reading by human beings. In general, literate programs combine source and documentation in a single file. Literate programming tools then parse the file to produce either readable documentation or compilable source. The WEB style of literate programming was created by D. E. Knuth during the development of his TeX typesetting software.

Discussion of literate programming is conducted in the newsgroup `comp.programming.literate`, which is gatewayed to the mailing list `litprog@shsu.edu` (see subscribing to mailing lists for details). The literate programming FAQ is stored as `help/LitProg-FAQ`

## WEB for C, FORTRAN, and other languages

TeX is written in the programming language WEB; WEB is a tool to implement the concept of ``literate programming''.

CWEB, a WEB for C programs, written by Silvio Levy, is available as `web/c_cpp/cweb`

Spidery WEB supports many languages including Ada, awk, and C. It was written by Norman Ramsey and, while not in the public domain, is usable free. It is available in `web/spiderweb`

FWEB is a version for Fortran, Ratfor, and C written by John Krommes. It is available in `web/fweb`

SchemeWEB is a Unix filter that translates SchemeWEB into LaTeX source or Scheme source. It was written by John Ramsdell and is available in `web/schemeweb`

APLWEB is a version of WEB for APL and is available in `web/apl/aplweb`

FunnelWeb is a version of WEB that is language independent. It is available in `web/funnelweb`

Other language independent versions of WEB are nuweb (which is written in ANSI C), available in `web/nuweb`, and noweb, available in `web/noweb`

A WEB for plain TeX macro files, using noweb, has recently been made available in `web/tweb`

Go to the first, previous, next, last section, table of contents.