When was the last time you spent a pleasant evening in a comfortable chair, reading a good program?" fragt Jon Bentley 1986 in den Comminicatioins of The ACM, einer amerkianischn Fachzeitschrift für Computerwissenschaftler. Der Hintergrund dieser Frage beruht auf der Tatsache, dass zwar so mancher Programmierer hervorragende Arbeit leistet und dementsprechend gute Programme erstellt, dass aber kaum ein Programmier seine Programme ausreichend dokumentiert.
Der amerikanische Informaitker Donald Ervin Knuth entwickelte um 1980 eine Methode, die es ihm erlaubte Programmcode und Dokumentation zusammen in einer Datei zu erstellen. Dieser Methode geb er den Namen WEB. Wayne Sewell dokumentierte dieses zunächst für PASCAL erarbeitete System in dem erstmals 1989 bei Van Nostrand Reinhold erschienenen Buch Weaving a Program -- Literate Programming in WEB. Diese Methode beruhte auf Programmen, die aus dieser einen Datei einerseits den reinen Quellcode extrahieren (tangle) und andererseits eine mit TeX formatierbare Dokumentation (weave) erstellten.
Die Grundüberlegung basierte auf den damals gebräuchlichen Programiersprachen wie z.B. C, Pascal, Algol und anderen. Diese Programmiersprachen waren durch eine stark Datei-Positionsabhängigen Aufbau gekennzeichnet. Der lineare Code eines Moduls wurde in logisch zusammengehörige Abscnitte unterteilt. Globale Variablen, Makros und Funktionen wurden logisch zusammengefasst und dokumentiert.
Das Hilfsprogramm tangle generiert aus der WEB-Datei eine normale Programmdatie, die so von einem Compiler verarbeitet werden kann. Zur Dokumentation wadelt das Hilfsprogramm weave die WEB-Datei zunächst in eine TeX-Datei um, die anschließend in eine druckfähige From gebracht werden konnte. Dabei wurden automatisch Querverweise und ein Ausführlicher Index aller Variablen umd Funktionen erstellt.
Das Satzsytem TeX selbst ist in WEB verfasst. Ebenso eine Reihe von Zusatzprogrammen zu TeX.
Als TeX in den 1980er Jahren eine weite Verbreitung fand, wurde auch das Prinzip des Literate Programming auf eine vielzahl von Programmiersprachen übertragen und in zahllosen Varianten weiterentwickelt. Die populärste Variante wurde CWEB, dessen sich Donald Ervin Knuth selbst ich noch heute bedient, seit er in seinen Arbeiten von PASCAL zu C wechselte.