Noweb, stylised in lowercase as noweb, is a literate programming tool, created in 1989–1999 by Norman Ramsey, and designed to be simple, easily extensible and language independent.
This is version 2.13 of noweb'', a simple, extensible literate- programming tool. noweb is available from the Github repository and it is mirrored by the Comprehensive TeX Archive Network. It is distributed under the BSD-2 open-souce license. Other helpful information can be found on noweb's home page at The most convenient way to get noweb is to install it from a package; the procedure for building noweb from source dates from 1989, and it is both baroque and brittle. If you must build noweb from source, change to the src' directory and follow the instructions in the file INSTALL. (Windows users, you're on your own, but you might find it useful to check Version 2.12 now has a dual license: in addition to noweb's original license, it is licensed under the BSD 2-clause license. Version 2.12 no longer defines a getline() function, which conflicted with a new POSIX standard. And it no longer uses the deprecated tempnam(3). Version 2.12 contains a number of enhancements to the sl2h program and l2h filter, which convert from LaTeX to HTML. They now deal with suspend and resume from usepackage{mdwlist}, and they also convert some TeX ligatures to HTML entities, most notably the -- and ligatures. Thanks to Christian Lynbeck, 2.12 also has new Emacs Lisp code that better supports font-lock. Other than that, 2.12 fixes a number of bugs, the most notable of which is that the emacs noweb-mode command is now compatible with Emacs 25 desktop-read and desktop-save. noweb is designed to meet the needs of literate programmers while remaining as simple as possible. Its primary advantages are simplicity, extensibility, and language-independence. noweb uses 5 control sequences to WEB's 27. The noweb manual is only 3 pages; an additional page explains how to customize its LaTeX output. noweb works out of the box'' with any programming language, and supports TeX, latex, and HTML back ends. A back end to support full hypertext or indexing takes about 250 lines; a simpler one can be written in 40 lines of awk. Noweb does not prettyprint natively, but supports prettyprinting through such third-party filters as pretzel and dpp. noweb has been distributed free of charge for thirty years, and it is one of the world's most widely used literate-programming tools. It has been used for hundreds of thousands of lines of code in such languages as awk, C, C++, Haskell, Icon, Lua, Modula-3, Objective Caml, PAL, perl, Promela, and Standard ML. If you already know you want to use noweb, you need only install it and read the manual page. If you're just curious about noweb, read the paper that appeared in the September 1994 issue of IEEE Software. (If you can't get Software, send me a postcard and I'll send you a reprint.) A nice, brief tutorial appeared in the October 1997 issue of Linux Journal (but beware that chunk syntax is and not ). If you're brand new to literate programming, check out the FAQ for the USENET newsgroup comp.programming.literate. There are also some resources available through the noweb home page: This distribution contains the following directories: binaries Pre-built distributions containing binaries and documentation contrib software contributed by noweb users examples sample noweb filters and programs in different languages src Source code and documentation (including FAQ) for noweb Where appropriate, these directories have README files of their own. BINARY DISTRIBUTIONS MAY NOT ALWAYS BE UP-TO-DATE, especially DOS distributions. noweb provides extensibility by using the Unix toolkit philosophy. The noweb,'' notangle,'' and noweave'' commands are built from pieces, which are then assembled in pipelines using shell scripts. The pieces include: noweb analog of nuweb notangle analog of TANGLE noweave analog of WEAVE nountangle tangle, but keep interleaved documentation in comments noroots print names of all root chunks in a noweb file nocount count number of lines of code and documentation. nodefs extract defined identifiers for n
~3 min read
Noweb, stylised in lowercase as noweb, is a literate programming tool, created in 1989–1999 by Norman Ramsey, and designed to be simple, easily extensible and language independent.
As in WEB and CWEB, the main components of Noweb are two programs: "notangle", which extracts 'machine' source code from the source texts, and "noweave", which produces nicely-formatted printable documentation.
Excerpt from the source-code README · 12,454 chars · not written by Vinony
via Wikidata · CC0
Discovered by embedding cosine similarity (sentence-transformers MiniLM, 384-dim).