Donald Knuth' s self-documenting {literate programming}, with {algorithm}s and {documentation} intermixed in one file. They can be separated using Weave and Tangle. Versions exist for Pascal and C. Spiderwebcan be used to create versions for other languages. FunnelWeb is a production-quality literate-programming tool. , . ["Literate Programming", D.E. Knuth, Computer J 27(2):97-111, May 1984]. (1996-05-10)