From Wikipedia, the free encyclopedia
Jump to: navigation, search
Paradigm Literate, imperative (procedural), structured
Designed by Donald Knuth
Developer Donald Knuth & Silvio Levy
Appeared in 1987; 28 years ago (1987)
3.64 / October 24, 2006; 8 years ago (2006-10-24)
Static, weak, manifest, nominal
OS Cross-platform (multi-platform)
License Permissive free software

CWEB is a computer programming system created by Donald Knuth and Silvio Levy as a follow-up to Knuth's WEB literate programming system, using the C programming language (and to a lesser extent the C++ and Java programming languages) instead of Pascal.

Like WEB, it consists of two primary programs: CTANGLE, which produces compilable C code from the source texts, and CWEAVE, which produces nicely-formatted printable documentation using TeX.


  • Can enter manual TeX code as well as automatic.
  • Make formatting of C code for pretty printing.
  • Can define sections, and can contain documentation and codes, which can then be included into other sections.
  • Write the header code and main C code in one file, and can reuse the same sections, and then it can be tangled into multiple files for compiling.
  • Include files.
  • Change files, which can be automatically merged into the code when compiling/printing.
  • Produces index of identifiers and section names in the printout.


% This file is part of CWEB.
% This program by Silvio Levy and Donald E. Knuth
% is based on a program by Knuth.
% It is distributed WITHOUT ANY WARRANTY, express or implied.
% Version 3.64 --- January 2002

% Copyright (C) 1987,1990,1993,2000 Silvio Levy and Donald E. Knuth 

% Permission is granted to make and distribute verbatim copies of this
% document provided that the copyright notice and this permission notice
% are preserved on all copies.

% Permission is granted to copy and distribute modified versions of this
% document under the conditions for verbatim copying, provided that the
% entire resulting derived work is given a different name and distributed
% under the terms of a permission notice identical to this one.

See also[edit]

External links[edit]