CWEB

From Wikipedia, the free encyclopedia
Jump to: navigation, search
CWEB
Paradigm Literate, imperative (procedural), structured
Designed by Donald Knuth
Developer Donald Knuth & Silvio Levy
First appeared 1987; 29 years ago (1987)
Stable release
3.67 / October 24, 2006; 10 years ago (2006-10-24)
Typing discipline Static, weak, manifest, nominal
OS Cross-platform (multi-platform)
License Permissive free software
Filename extensions .w
Website www-cs-faculty.stanford.edu/~uno/cweb.html
Influenced by
WEB, TeX
Influenced
noweb

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.

Features[edit]

  • 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.

License[edit]

 % 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]