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. Spiderweb can 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)