Jump to content

CWEB

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Cewbot (talk | contribs) at 06:27, 10 July 2020 (Normalize {{Multiple issues}}: Merge 1 template(s) into {{Multiple issues}}: Merge). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

CWEB
ParadigmLiterate, imperative (procedural), structured
Designed byDonald Knuth
DeveloperDonald Knuth & Silvio Levy
First appeared1987; 37 years ago (1987)
Stable release
3.67 / October 24, 2006; 18 years ago (2006-10-24)
Typing disciplineStatic, weak, manifest, nominal
OSCross-platform (multi-platform)
Licensecustom free-software license
Filename extensions.w
Websitewww-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.

Philosophy

Unlike most other documentation generators which relegate documentation to comments, CWEB approach is to write an article to document the making of the source code. Much like TeX articles, the source is divided into sections according to documentation flow. C code sections are seamlessly intermixed in the line of argumentation.[1]

Features

  • 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.
  • Use #line pragmas so that any warnings or errors refer to the .w source.
  • 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

 % 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

References

  1. ^ Silvio Levy (12 June 2004). "An example of CWEB" (PDF).