Web , tradicionalmente escrito WEB, es un sistema de programación informática creado por Donald Knuth como la primera implementación de lo que él llamó " programación literaria ": [ 1 ] su idea de que se podía crear software como obras literarias , al incrustar el código fuente en texto descriptivo, en lugar de al revés. A diferencia de la práctica de programación estándar que relega la documentación a los comentarios, el enfoque de WEB es escribir un artículo para documentar la creación del código fuente e incluir todo el código fuente en ese artículo, de modo que sea compilable a partir de él.
Filosofía
La práctica común en la mayoría de los lenguajes de programación es que el texto principal sea el código fuente, complementado opcionalmente con texto descriptivo en forma de comentarios. Knuth propuso que priorizar el texto descriptivo consistía en organizar las cosas en un orden más conveniente para los lectores humanos, en lugar del orden exigido por los compiladores . [ 2 ]
Al igual que los artículos TeX, el texto fuente web se divide en secciones según el flujo de la documentación. Por ejemplo, en CWEB, las secciones de código se intercalan sin problemas en la línea de argumentación. [ 3 ]
Implementaciones
El sistema WEB original depende de Pascal y consta de dos programas:
- TANGLE, que produce código Pascal compilable a partir de los textos fuente, y
- WEAVE, que mediante el uso de TeX produce documentación imprimible con un formato atractivo a partir de los mismos textos fuente.
Otros:
- CWEB (abajo) es una versión de Web para el lenguaje de programación C , mientras que
- noweb es una herramienta de programación literaria independiente, inspirada en la Web (como se refleja en su nombre) y que es independiente del lenguaje de programación .
Los programas más importantes escritos en Web son TeX y Metafont . Sin embargo, las distribuciones modernas de TeX utilizan otro programa llamado Web2C para convertir el código fuente de Web a C.
CWEB
CWEB is a computer programming system created by Donald Knuth and Silvio Levy as a follow-up to Knuth's WEBliterate 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
- Can enter manual TeX code as well as automatic.
- Makes formatting of C code suitable for pretty-printing.
- Can define sections, and can contain documentation and codes, which can then be included into other sections.
- Writes 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.
- Uses
#linedirective 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.
See also
- Documentation generators – While comparable with Web's WEAVE, these however generally follow the standard practice of source code first, the opposite of the Web approach.
References
- ↑"Knuth and Levy: CWEB". cs.stanford.edu. Retrieved 2025-10-27.
- ↑Knuth, Donald E. (1992). Literate Programming. CSLI Lecture Notes. Vol. 27. Stanford, California: Center for the Study of Language and Information.
- ↑Silvio Levy (12 June 2004). "An example of CWEB"(PDF). Archived from the original(PDF) on 20 October 2021.
External links
- The TeX Catalogue entry for Web
- CWEB homepage
- Examples of programs written in Web, By Donald Knuth (1981 and onward)
- Free documentation generators
- Literate programming
- TeX