3-Jun-1997 5:49:30-GMT,815;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id XAA07687 for ; Mon, 2 Jun 1997 23:49:29 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from clarknet.clark.net by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 03 Jun 1997 00:36:21 EST Received: by clarknet.clark.net (5.0/SMI-SVR4) id AB22632; Tue, 3 Jun 1997 01:35:51 +0500 From: david.kim-2@sbaonline.gov Reply-To: LitProg@SHSU.edu, david.kim-2@sbaonline.gov Message-ID: <9706030130.A1150wk@sbaonline.gov> Date: Tue, 03 Jun 97 01:30:58 -0400 To: litprog@SHSU.edu Content-Type: text TO: litprog@shsu.edu subscribe swl-l David Kim 3-Jun-1997 19:00:41-GMT,1100;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id NAA24644 for ; Tue, 3 Jun 1997 13:00:40 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 03 Jun 1997 13:27:46 EST From: Dave Love Reply-To: LitProg@SHSU.edu, d.love@daresbury.ac.uk Subject: Re: two noweb questions Content-Type: text/plain; charset=ISO-8859-1 Message-ID: Content-Transfer-Encoding: 8bit MIME-Version: 1.0 (generated by tm-edit 7.95) Date: Tue, 3 Jun 1997 18:00:52 GMT To: LitProg@SHSU.edu >>>>> "Joachim" == Joachim Schnitter writes: Joachim> Wouldn´t this make it easier to use Emacs´ Joachim> find-next-error function with NOWEB? It should already work, at least in Emacs 19.34. That's not an objection to changing the format, though. 3-Jun-1997 19:11:15-GMT,2090;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id NAA24888 for ; Tue, 3 Jun 1997 13:11:14 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 03 Jun 1997 13:45:58 EST From: Jay Belanger Reply-To: LitProg@SHSU.edu, belanger@pl202f01.truman.edu Subject: Re: Java and cweb Message-ID: Date: Tue, 3 Jun 1997 18:10:10 GMT To: LitProg@SHSU.edu Lee Wittenberg writes: > On Fri, 30 May 1997, Jay Belanger wrote: > > I am positive that I had a cweb manual that said explicity that cweb > > would work well with java. However, the manual I have now (from > > cweb3.4g I believe) has no mention of this whatsoever. > > So I'm wondering: > > Am I nuts? > Maybe, Have you been talking to my friends? > but this is not evidence of it. I've seen the same text you > are referring to. Good. > I believe that the inference is that Java syntax is so similar to C++'s > that the prettyprinter will work equally well with Java. The only > thing you have to do is add the appropriate @f's (@s's would probably > be better) to deal with the new keywords. Actually, I'm surprised > that no one has yet provided an include file with all the Java > keywords appropriately "ilked". > > -- Lee Well, I guess that another problem is that the java compiler doesn't understand the #line number lines, and as far as I know there is nothing comparable for java (but then, I know very little about java). Unless there is some way of convincing cweb to suppress these lines (and I don't know of any), perhaps I should try to tweak the ctangle code and get it to not print them. If I can figure out how to do that, perhaps I could just have cweave recognize any new keywords, and not have to deal with an extra include file. Jay 4-Jun-1997 15:50:52-GMT,2679;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id JAA21017 for ; Wed, 4 Jun 1997 09:50:50 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 04 Jun 1997 10:31:52 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@samson.kean.edu Subject: Re: Java and cweb Content-Type: TEXT/PLAIN; charset=US-ASCII Message-ID: MIME-Version: 1.0 Date: Wed, 4 Jun 1997 15:01:56 GMT To: LitProg@SHSU.edu On Tue, 3 Jun 1997, Jay Belanger wrote: > > I believe that the inference is that Java syntax is so similar to C++'s > > that the prettyprinter will work equally well with Java. The only > > thing you have to do is add the appropriate @f's (@s's would probably > > be better) to deal with the new keywords. Actually, I'm surprised > > that no one has yet provided an include file with all the Java > > keywords appropriately "ilked". > > Well, I guess that another problem is that the java compiler doesn't > understand the > #line number > lines, and as far as I know there is nothing comparable for java (but > then, I know very little about java). Unless there is some way of > convincing cweb to suppress these lines (and I don't know of any), > perhaps I should try to tweak the ctangle code and get it to not print > them. If I can figure out how to do that, perhaps I could just have > cweave recognize any new keywords, and not have to deal with an extra > include file. The standard solution in this case is to add a post-processor. You can use the following commands to turn a .w file into a valid .java: ctangle xxx.w xxx.tmp fgrep -v '#line' xxx.java rm xxx.tmp If you're using DOS and don't have grep, you can use ctangle xxx.w xxx.tmp find /v "#line" xxx.java del xxx.tmp Unless you're using one of those tyrannical graphical interfaces that don't allow any outside tools, one of these scripts (or a variant thereof) should do the job. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Computer Science Department | You cannot judge the importance of things Kean College of New Jersey | by the noise they make. Union, NJ 07083 | | -- James Hilton leew@samson.kean.edu | "Good-bye Mr. Chips" (1934) ------------------------------------------------------------------------ 4-Jun-1997 18:23:57-GMT,1175;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id MAA25281 for ; Wed, 4 Jun 1997 12:23:56 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 04 Jun 1997 13:07:48 EST From: Jay Belanger Reply-To: LitProg@SHSU.edu, belanger@pl202f01.truman.edu Subject: Making my life easier (was: Java and cweb) Message-ID: Date: Wed, 4 Jun 1997 17:57:28 GMT To: LitProg@SHSU.edu Lee Wittenberg writes: [Discussion of using cweb with java omitted] > > The standard solution in this case is to add a post-processor. You > can use the following commands to turn a .w file into a valid .java: > > ctangle xxx.w xxx.tmp > fgrep -v '#line' xxx.java > rm xxx.tmp [More explanation deleted] > -- Lee I guess I haven't lurked long enough to learn the standard solution. Thanks for the information!! Jay 6-Jun-1997 13:29:24-GMT,1563;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id HAA20373 for ; Fri, 6 Jun 1997 07:29:23 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 06 Jun 1997 08:09:18 EST From: David Kastrup Reply-To: LitProg@SHSU.edu, dak@fsnif.neuroinformatik.ruhr-uni-bochum.de Subject: Re: Java and cweb Content-Type: text/plain; charset="ISO-8859-1" Message-ID: Content-Transfer-Encoding: 8bit MIME-Version: 1.0 Date: Fri, 6 Jun 1997 12:52:06 GMT To: LitProg@SHSU.edu Lee Wittenberg writes: > The standard solution in this case is to add a post-processor. You > can use the following commands to turn a .w file into a valid .java: > > ctangle xxx.w xxx.tmp > fgrep -v '#line' xxx.java > rm xxx.tmp Of course the fgrep line is *too* vague. It will filter out things like cout << "#line " << lineno << endl; as well. Better use something like grep -v '^[ ]*#[ ]*line' to catch really only those #line's intended for the preprocessor. -- David Kastrup Phone: +49-234-700-5570 Email: dak@neuroinformatik.ruhr-uni-bochum.de Fax: +49-234-709-4209 Institut für Neuroinformatik, Universitätsstr. 150, 44780 Bochum, Germany 6-Jun-1997 15:31:08-GMT,1809;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id JAA23261 for ; Fri, 6 Jun 1997 09:31:06 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 06 Jun 1997 10:05:45 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@samson.kean.edu Subject: Re: Java and cweb Content-Type: TEXT/PLAIN; charset=US-ASCII Message-ID: MIME-Version: 1.0 Date: Fri, 6 Jun 1997 14:58:43 GMT To: LitProg@SHSU.edu On Fri, 6 Jun 1997, David Kastrup wrote: > Lee Wittenberg writes: > > > The standard solution in this case is to add a post-processor. You > > can use the following commands to turn a .w file into a valid .java: > > > > ctangle xxx.w xxx.tmp > > fgrep -v '#line' xxx.java > > rm xxx.tmp > > Of course the fgrep line is *too* vague. It will filter out things > like > cout << "#line " << lineno << endl; > as well. > > Better use something like > grep -v '^[ ]*#[ ]*line' > to catch really only those #line's intended for the preprocessor. David is correct, of course. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Computer Science Department | You cannot judge the importance of things Kean College of New Jersey | by the noise they make. Union, NJ 07083 | | -- James Hilton leew@samson.kean.edu | "Good-bye Mr. Chips" (1934) ------------------------------------------------------------------------ 10-Jun-1997 9:42:48-GMT,64439;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id DAA08946 for ; Tue, 10 Jun 1997 03:42:45 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 10 Jun 1997 03:40:39 EST From: thompson@sun1.coe.ttu.edu Subject: comp.programming.literate FAQ Date: 10 Jun 1997 08:37:28 GMT Message-ID: Reply-To: LitProg@SHSU.edu, thompson@sun1.coe.ttu.edu To: LitProg@SHSU.edu Archive-name: literate-programming-faq Last-modified: 1996/11/19 Version: 1.1.17 Welcome to the Literate Programming Frequently Asked Questions List ------------------------------------------------------------------- Information contained in this document is the best available at preparation. The original file was dated October 15, 1993 (just for historical purposes). Disclaimer: "This FAQ is presented with no warranties or guarantees of ANY KIND including correctness or fitness for any particular purpose. The author of this document has attempted to verify correctness of the data contained herein; however, slip-ups can and do happen. If you use this data, you do so at your own risk." Copyright 1993-1996 by David B. Thompson. All rights reserved worldwide. Permission is granted to copy this document for free distribution so long as it remains intact and unmodified. For other arrangements, contact the author/maintainer via email: thompson@sun1.coe.ttu.edu. What's New? ----------- + My email address. + General cleanup. = ====================================================================== * Introduction or "What's this all about?" ------------------------------------------ This document is for new and experienced users of literate programming tools. The purpose is to explain the concept of literate programming and to provide a resource for locating files of interest to literate programmers and those interested in literate programming. The Literate Programming (LitProg) Frequently Asked Questions (FAQ) list is maintained by Dave Thompson, who can be reached at: thompson@cam203g.ce.ttu.edu * Preferred mailing address for FAQ related comments/questions. Comment and constructive criticism is welcome. Direct flames to /dev/null (or nul if you're a msdos user! ;-) If you find an error, please report it. I'm particularly interested in establishing the locations of generally available literate programming tools. If you are the author of such a tool and wish to have it included in this list, please send email. Please note this is a work-in-progress. It is *not* complete, and probably will never be complete. Nevertheless, the information contained herein may be useful to some. Use it as it is intended. - ---------------------------------------------------------------------- - Typography ------------ Major sections of the FAQ are divided by double lines (====). Minor sections and other divisions are separated by single lines (----). Major topics use a "* " as a leader. Minor topics use a "- " as a leader. This should simplify searching for topics. = ====================================================================== Table of Contents: ------------------ * Introduction, or "What's this all about?" - Typography * How do I get the FAQ? - Literate Programming FAQ - FWEB FAQ * Is there a newsgroup? (The comp.programming.literate newsgroup) * What internet nodes are of interest to literate programmers? * What is literate programming? * How do I begin literate programming? * What literate programming tools are available and where are they? - APLWEB - AWEB - CLiP - CWEB - CWEBx3.0 - FunnelWeb - FunnelWeb3.0AC - FWEB - IMPACT - lit2x - Literate Programmer's Workshop (LPW) - MapleWEB - MWEB (Schrod/Detig) - MWEB (Sewell) - noweb - nuweb - ProTeX - RWEB - SchemeWEB - Spidery WEB - WEB - WinWordWEB * Are there other tools I should know about? - C2LaTeX - c2cweb - c2man - cnoweb - Fold2web - FunnelWeb mode - noweb.el - nuweb.el - TIE - Web mode * What other resources are available? - TeX Resources - Virtual Coursework * Are there any code examples? - Examples included with developer's tools - Cameron Smith's KR-CWEB - Stanford GraphBase * Bibliographies. * How to anonymously ftp. * Acknowledgements. * End notes. = ====================================================================== * How do I get the FAQ? ----------------------- - Literate Programming FAQ -------------------------- You have many ways to get a current copy of this FAQ. One is to use anonymous ftp (if you don't know how, see a later section in this FAQ) to connect to one of the Comprehensive TeX Arvchive Network (CTAN) sites or the Literate Programming Archive and retrieve a copy of the file. Open an ftp connection to one of the CTAN sites and retrieve the file: help/LitProg-FAQ (For more information on CTAN and the literate programming archive, see the section below entitled "Internet Nodes of Interest to Literate Programmers.") - ---------------------------------------------------------------------- - FWEB FAQ ---------- David Coker maintains the FWEB FAQ. The current version number is 1.30a. It can be retrieved in the same way as this FAQ. The FWEB FAQ exists in various formats, including HyperText (see other resources below). In Europe, the complete distribution can also be obtained from ftp.desy.de [131.169.10.115] in directory /pub/faq/web/fweb/. It is also available from the literate programming archive (LPA) in the directory LPA/Documentation/faq/fweb (see the references to LPA below for more information). = ====================================================================== * Is there a newsgroup? ----------------------- One of the most important resources is the literate programming newsgroup, comp.programming.literate. You can read this newsgroup using your standard reader. = ====================================================================== * What internet nodes are of interest to literate programmers? -------------------------------------------------------------- The principal nodes of interest to literate programmers are the Literate Programming Archive (LPA hereafter) and the CTAN (Comprehensive TeX Archive Network). The Literate Programming Archive (LPA) is: Node: ftp.th-darmstadt.de [130.83.55.75] Directory: programming/literate-programming Notes: Fastest response during off-U.S. [yep] business hours. Participating hosts in the Comprehensive TeX Archive Network are: ftp.dante.de (Deutschland) -- anonymous ftp /tex-archive (/pub/tex /pub/archive) -- gopher on node sun.dante.de -- e-mail via ftpmail@dante.de -- Administrator: ftp.tex.ac.uk (England) -- anonymous ftp /tex-archive (/pub/tex /pub/archive) -- gopher on node gopher.tex.ac.uk -- NFS mountable from nfs.tex.ac.uk:/public/ctan/tex-archive -- World Wide Web access on www.tex.ac.uk -- Administrator: The site ftp.shsu.edu used to be the American CTAN site. Apparently, that site has fallen into disrepair and should not be considered a primary source for either TeX related or literate programming related material. For the record, the address is: ftp.shsu.edu (Texas, USA) -- anonymous ftp and gopher /tex-archive (/pub/tex /pub/archive) -- NFS mountable from ftp.SHSU.edu:/pub/ftp/tex-archive -- e-mail via ftpmail@ftp.SHSU.edu -- World Wide Web access on www.SHSU.edu -- Administrator: A list of CTAN archive sites and their mirrors can be found on: ftp.dante.de:/tex-archive/CTAN.sites I presume that the other CTAN sites mirror this file, but have not checked. As of my last check (September 1994), it contains: "In order to reduce network load, it is recommended that you use the Comprehensive TeX Archive Network (CTAN) host which is located in the closest network proximity to your site." Known partial mirrors of the CTAN reside on (alphabetically): dongpo.math.ncu.edu.tw (Taiwan) /tex-archive ftp.adfa.oz.au (Australia) /pub/tex/ctan ftp.muni.cz (The Czech Republic) /pub/tex/CTAN ftp.cs.ruu.nl (The Netherlands) /pub/tex-archive ftp.uu.net (Virginia, USA) /pub/text-processing/TeX nic.switch.ch (Switzerland) /mirror/tex Known mirrors of the CTAN reside on (alphabetically): ftp.center.osaka-u.ac.jp (Japan) /CTAN ftp.ccu.edu.tw (Taiwan) /pub/tex ftp.cs.rmit.edu.au (Australia) /tex-archive ftp.duke.edu (North Carolina, USA) /tex-archive ftp.germany.eu.net (Deutschland) /pub/packages/TeX ftp.gwdg.de (Deutschland) /pub/dante ftp.jussieu.fr (France) /pub4/TeX/CTAN ftp.loria.fr (France) /pub/unix/tex/ctan ftp.mpi-sb.mpg.de (Deutschland) /pub4/tex/mirror/ftp.dante.de ftp.uni-bielefeld.de (Deutschland) /pub/tex ftp.uni-stuttgart.de (Deutschland) /tex-archive (/pub/tex) ftpserver.nus.sg (Singapore) /pub/zi/TeX src.doc.ic.ac.uk (England) /packages/tex/uk-tex sunsite.unc.edu (North Carolina, USA) /pub/packages/TeX wuarchive.wustl.edu (Missouri, USA) /packages/TeX Other nodes and directories of interest include: Node: ftp.desy.de [131.169.10.115] Directory: pub/web. Various documents, samples, and the FWEB FAQ. Notes: Has a www server, http://info.desy.de:80/ = ====================================================================== * What is Literate Programming? ------------------------------- Literate programming is the combination of documentation and source together in a fashion suited for reading by human beings. In fact, literate programs should be enjoyable reading, even inviting! (Sorry Bob, I couldn't resist!) In general, literate programs combine source and documentation in a single file. Literate programming tools then parse the file to produce either readable documentation or compilable source. The WEB style of literate programming was created by D.E. Knuth during the development of his TeX typsetting software. All the original work revolves around a particular literate programming tool called WEB. Knuth says: The philosophy behind WEB is that an experienced system programmer, who wants to provide the best possible documentation of his or her software products, needs two things simultaneously: a language like TeX for formatting, and a language like C for programming. Neither type of language can provide the best documentation by itself; but when both are appropriately combined, we obtain a system that is much more useful than either language separately. The structure of a software program may be thought of as a web that is made up of many interconnected pieces. To document such a program we want to explain each individual part of the web and how it relates to its neighbours. The typographic tools provided by TeX give us an opportunity to explain the local structure of each part by making that structure visible, and the programming tools provided by languages such as C or Fortran make it possible for us to specify the algorithms formally and unambigously. By combining the two, we can develop a style of programming that maximizes our ability to perceive the structure of a complex piece of software, and at the same time the documented programs can be mechanically translated into a working software system that matches the documentation. Another author (Eric W. van Ammers) wrote me a short article treating his opinions on literate programming. The text follows: First observation on LP About 90% of the disussion on this list is about problems with applying some WEB-family member to a particular programming language or a special documentation situation. This is ridiculous, I think. Let me explain shortly why... Lemma 1: I have proposed for many years that programming has nothing to do with programming langauges, i.e. a good programmer makes good programs in any language (given some time to learn the syntax) and a bad programmer will never make a good program, no matter the language he uses (today many people share this view, fortunately). Lemma 2: Literate Programming has (in a certain way not yet completely understood) to do with essential aspects of programming. Conclusion 1: A LP-tool should be independent of programming language. Lemma 3: It seems likely that the so called BOOK FORMAT PARADIGM [ref. 1] plays an important role in making literate programs work. Lemma 4: There are very many documentation systems currently being used to produce documents in the BOOK FORMAT. Conclusion 2: A LP-tool should be independent of the documentation system that the program author whishes to use. My remark some time ago that we should discuss the generic properties of an LP-tool was based on the above observation. References: [1] Paul W. Oman and Curtus Cook. Typographical style is more than cosmetic. CACM 33, 5, 506-520 (May 1990) Second observation on LP The idea of a literate program as a text book should be extendend even further. I would like to see a literate program as an (in)formal argument of the correctness of the program. Thus a literate program should be like a textbook on mathematicics. A mathematical textbook explains a theory in terms of lemma and theorems. But the proofs are never formal in the sense that they are obtaind by symbol manipulation of a proof checker. Rather the proofs are by so called "informal rigour", i.e. by very precise and unambiguous sentences in a natural language. Eric W. van Ammers Department of Computer Science Wageningen Agricultural University Dreijenplein 2 E-mail: ammers@rcl.wau.nl 6703 HB Wageningen voice: +31 (0)8370 83356/84154 The Netherlands fax: +31 (0)8370 84731 Another author (Norman Ramsey) wrote me and asked that his opinions be included in the FAQ. What follows are Norman's comments verbatim. I see it's time for the ``how is literate programming different from verbose commenting'' question. Perhaps David Thompson will get this into the FAQ. Alert! What follows are my opinions. In no way do I claim to speak for the (fractious) literate-programming community. How is literate programming different from verbose commenting? There are three distinguishing characteristics. In order of importance, they are: - flexible order of elaboration - automatic support for browsing - typeset documentation, especially diagrams and mathematics Flexible order of elaboration means being able to divide your source program into chunks and write the chunks in any order, independent of the order required by the compiler. In principle, you can choose the order best suited to explaining what you are doing. More subtly, this discipline encourages the author of a literate program to take the time to consider each fragment of the program in its proper sphere, e.g., not to rush past the error checking to get to the ``good parts.'' In its time and season, each part of the program is a good part. (This is the party line; your mileage may vary.) I find the reordering most useful for encapsulating tasks like input validation, error checking, and printing output fit for humans --- all tasks that tend to obscure ``real work'' when left inline. Reordering is less important when using languages like Modula-3, which has exceptions and permits declarations in any order, than when using languages like C, which has no exceptions and requires declaration before use. Automatic support for browsing means getting a table of contents, index, and cross-reference of your program. Cross-reference might be printed, so that you could consult an index to look up the definition of an identifier `foo'. With good tools, you might get a printed mini-index on every page if you wanted. Or if you can use a hypertext technology, cross-reference might be as simple as clicking on an identifier to reach its definition. Indexing is typically done automatically or `semi-automatically', the latter meaning that identifier definitions are marked by hand. Diligently done semi-automatic indexes seem to be best, because the author can mark only the identifiers he or she considers important, but automatic indexing can be almost as good and requires no work. Some tools allow a mix of the two strategies. Some people have applied literate-programming tools to large batches of legacy code just to get the table of contents, index, and cross-reference. I don't use diagrams and mathematics very often, but I wouldn't want to have to live without them. I have worked on one or two projects where the ability to use mathematical formulae to document the program was indispensible. I also wouldn't like to explain some of my concurrent programs without diagrams. Actually I write almost all of my literate programs using only sections headers, lists, and the occasional table. >Wouldn't it be easier to do one's literate programming using a wysiwyg >word processor (e.g. Word for Windows) and indicate what is source >code by putting it in a different font? The data formats used in wysiwyg products are proprietary, and they tend to be documented badly if at all. They are subject to change at the whim of the manufacturer. (I'll go out on a limb and say there are no significant wysiwyg tools in the public domain. I hope the Andrew people will forgive me.) These conditions make it nearly impossible to write tools, especially tools that provide automatic indexing and cross-reference support. The CLiP people have a partial solution that works for tools that can export text --- they plant tags and delimiters throughout the document that enable the reordering transformation (``tangling''). People use TeX, roff, and HTML because free implementations of these tools are widely available on a variety of platforms. TeX and HTML are well documented, and TeX and roff are stable. TeX is the most portable. I think I have just answered the FAQ ``how come all these tools use TeX, anyway?'' :-) Norman Ramsey = ====================================================================== * How do I begin literate programming? -------------------------------------- A recommended book is D.E. Knuth's collection of articles (1992) "Literate Programming," Center for the Study of Language and Information, Stanford University, ISBN 0-937073-80-6 (pbk). This book gives insight into Knuth's thoughts as he developed the web system of literate programming (and TeX for typesetting). It does not document methods for literate programming. A recommended book is Wayne Sewell's (1989) "Weaving a Program: Literate Programming in WEB," Van Nostrand Reinhold, ISBN 0-442-31946-0 (pbk). This book focuses on using Knuth's web system. Some talk exists in the newsgroup/mailing list for a Usenet University course in literate programming. I'm sure discussion of this topic will be welcomed. If you are interested, please participate. = ====================================================================== * What literate programming tools are available and where are they? ------------------------------------------------------------------- A significant number of tools for literate programming are available. Most have been ported from their original systems, so support multiple computer platforms. If you are the developer of such a tool, and would like to make the software freely available, please send me email and I'll reply with a form (like those below) for you to fill in. (Or short-circuit the process and kludge a form from below. :-) - ---------------------------------------------------------------------- - APLWEB -------- Developer: Christoph von Basum Version: Unknown Hardware: MSDOS Languages: IBM APL2 and STSC APL Formatter: Plain TeX Availability: Anonymous ftp from: LPA:/apl watserv1.uwaterloo.ca:/languages/apl/aplweb Readme: Unknown Description: None available. Support: Unknown Note: The status of this particular package is unknown. - ---------------------------------------------------------------------- - AWEB ------ Developer: Unknown Version: Unknown Hardware: Unknown Languages: Ada Formatter: Unknown Availability: Anonymous ftp from: LPA:/ada/web Readme: Unknown Description: None available Support: Not supported. - ---------------------------------------------------------------------- - CLiP ------ Developer: E.W. van Ammers and M.R. Kramer Version: Unknown Hardware: Vax/VMS, Unix, and MS-DOS Languages: Any programming language. Formatter: Any formatter (TeX, LaTeX, Troff, Runoff, etc) or any wordprocessor including WYSIWYG systems (Word Perfect, Win Word, Ami Pro, Word, etc.) Availability: Anonymous ftp from: sun01.info.wau.nl:/CLIP/ms_dos MS-DOS version sun01.info.wau.nl:/CLIP/vax_vms VAX/VMS version CTAN:/web/clip LPA:/machines/ms-dos LPA:/machines/vax Readme: With bundle above Description: CLiP does not use explicite commands to perform the extraction process. Rather it recognizes pseudostatemens written as comments in the programming language in question. CLiP distinguishes pseudostatments from ordinary comments because the former comply with a a particular style. This style can be adjusted to suit virtually any programming language. The CLiP approach to LP makes the system extremely versatile. It is independent of programming language and text processing environment. We designed CLiP to be compatible with hypertext systems as well but we have not yet experimented with this form of documentation. Features: + CLiP imposes virtually no limitations on the text-processing system used to produce the documentation. If the text-processor supports these items you can + structure the documentation according to your own taste. + include drawings, pictures, tables etc. + disclose your documentatio my means of X-ref tables, Indexes, Table of contents, Table of tables, Table of figures, etc. + typeset the documented code. + Extracts any number of modules from a maximum of 64 source files. + No pretty-printing. Code from the source files is copied "as is" to the module. + Appearance of code segments in the documentation matches those of the modules to ease the identification of code segements. + Supports partially specified data types. + Comprehensive user manual (preliminary version) and technical description. - No automatic generation of a X-ref table for program identifiers. Support: Bugs, problems and assistance by e-mail: ammers@rcl.wau.nl - ---------------------------------------------------------------------- - CWEB ------ Developer: Silvio Levy and D.E. Knuth Version: 3.0 Hardware: Unix systems (dos and amiga ports available) Languages: C and C++ Formatter: Plain TeX and LaTeX. Availability: Anonymous ftp from: labrea.stanford.edu:/pub/cweb LPA:/c.c++ CTAN:/web/c_cpp/cweb DOS version in CTAN:/web/c_cpp/cwb30p8c DOS version in LPA:/machines/ms-dos Amiga version CTAN:/web/c_cpp/AmigaCWEB Mac port of CTANGLE in LPA:/machines/mac LaTeX support in LPA:/c.c++ Readme: Bundled with above Description: No description provided. Support: Bugs to levy@math.berkeley.edu - ---------------------------------------------------------------------- - CWEBx3.0: ----------- Developer: Marc van Leeuwen Version: Unknown Hardware: Any system using ASCII code Languages: ANSI C Formatter: Plain TeX Availability: Anonymous ftp from: ftp.cwi.nl/pub/cweb Readme: Bundled with above Brief description: A modified implementation of CWEB, with some extensions. Provides a mode for full compatibility with Levy/Knuth CWEB. The most significant extras are: - Typedef declarations affect formatting througout source file - Include files are scanned for typedef definitions - Flexible selection of layout style - Possibility to refer to sections using symbolic labels - CTANGLE detects unbalanced braces and parentheses - CWEAVE can be made to report syntax errors more easily - Some additional mechanisms to avoid formatting problems - New and modular set of grammar rules, based on ANSI C syntax - Possibility to suppress #line directives - A new manual Support: bugs and remarks to M.van.Leeuwen@cwi.nl - ---------------------------------------------------------------------- - FunnelWeb ----------- Developer: Ross N. Williams: ross@guest.adelaide.edu.au Version: Unknown Hardware: MSDOS, Mac, VMS, Sun. Other ports reported. Languages: No restrictions. Formatter: Plain TeX for printing. Otherwise, no restrictions. Availability: Anonymous ftp from: CTAN:/web/funnelweb LPA:/independent ftp.adelaide.edu.au:/pub/funnelweb Readme: With bundle above. Description: FunnelWeb is a production-quality literate-programming tool that emphasises simplicity and reliability. Everything about FunnelWeb, from the simplicity of its language to the comprehensive tutorial in the user's manual, has been designed to make this as simple, as practical, and as usable a tool as possible. Features: + Provides a simple macro preprocessor facility. + Can produce typeset documentation. + Runs on Sun, VMS VAX, Macintosh, PC, and others. + Portable C source code distributed under GNU licence. + Comprehensive user's manual including tutorial. + Programming-language independent. + Can generate multiple output files. + Allows complete control over the output text. + Regression test suite with over 200 tests. + Fully worked example (in /pub/funnelweb/examples). - Requires TeX to produce typeset documentation. - Typesets program code using TT font only. Support: No formal support available. Mailing list maintained with about 50 subscribers. Informal assistance available from mailing list. - ---------------------------------------------------------------------- - FunnelWeb 3.0AC ----------------- Developer: Enhanced by A.B.Coates (coates@physics.uq.edu.au) from FunnelWeb v3.0 by Ross N. Williams (ross@guest.adelaide.edu.au) Version: 3.0AC Hardware: MSDOS, Mac, VMS, Sun, OSF/1, Linux, Sys.V, OS/2. Languages: No restrictions. Formatter: Tex, LaTeX, or HTML. Availability: Anonymous ftp from ftp.physics.uq.oz.au:/pub/funnelwebAC30.tar.gz Readme: With bundle above; for FunnelWeb manual see WWW page http://www.physics.uq.oz.au:8001/people/coates/funnelweb.html Description: FunnelWeb 3.0AC is an enhanced version of FunnelWeb (see the entry for FunnelWeb). FunnelWeb is designed to be typesetter independent, though FunnelWeb v3.0 only supports (La)TeX as the typesetter. FunnelWeb 3.0AC also supports HTML, and creates appropriate hypertext links within the document among the code sections. FunnelWeb 3.0AC also supports automatic and manual insertion of line directives, so that compiler errors can be flagged back to the original FunnelWeb source file. FunnelWeb 3.0AC is completely compatible with FunnelWeb v3.0 sources (with one minor exception; see the file README.ABC which comes with the FunnelWeb 3.0AC distribution). Support: Supported by A.B.Coates (coates@physics.uq.edu.au), subject to the time constraints imposed by his thesis. - ---------------------------------------------------------------------- - FWEB ------ Developer: John A. Krommes Version: 1.30a (1.40 for the experienced, patient, and brave) Hardware: Unix, VMS, and DOS platforms (anything with ANSI C) Languages: C, C++, Fortran-77, Fortran-90, Ratfor, TeX; also, a language-independent mode. Formatter: Plain TeX and LaTeX. Availability: Anonymous ftp from: ftp.pppl.gov:/pub/fweb CTAN:/web/fweb LPA:/fweb DOS version in LPA:/machines/ms-dos Readme: In bundle with above. Description: It also has a well-developed user's manual and its own FAQ (see above). Beginning with 1.40, documentation is maintained in gnu texinfo format. It runs on most platforms: VMS, PC, UNIX, and pretty much anything that the GNU C compiler (GCC) is supported for. Features: + Processes multiple languages during a single run (so one can mix C and Fortran, for example). + Language-independent mode (v1.40). + Ability to turn off pretty-printing (v1.40). + Built-in Ratfor translator. + Built-in macro preprocessor (closely follows ANSI C, with extensions). + A style file that allows the user to adjust many parameters and behavior patterns of FWEB. + Various operator-overloading features that provide additional pretty-printing capabilities to languages such as C++ and Fortran-90. + Numerous miscellaneous features and command-line options. Support: Bug reports and suggestions to krommes@princeton.edu The following text was relayed by utcke@tu-harburg.d400.de recently. A new entry for this FAQ will eventually be prepared. NOTICE (June 12, 1995) The 1.52 tar file was regenerated. If your version of that file included the file web/defaults.mk, you should say `make clean' before beginning the installation process, or use the new tar file. NOTICE (June 10, 1995) Version 1.52 is available. More bug fixes. 1.5x will remain in beta-testing until about Sept. 1, 1995; further changes are hoped to be minimal. If you have previously picked up 1.50 or 1.51, you definitely should install 1.52 instead. So it seems there's really 1.5x available for the experienced, patient and brave --- especially given the following statement (same source): Version 1.30, which for several years has been declared to be the stable version of choice, is gradually getting out of date. I now recommend that current users try VERY, VERY CAUTIOUSLY to upgrade to v1.50. Don't do that the week before a critical deadline. - ---------------------------------------------------------------------- - IMPACT -------- Developer: Timothy Larkin, from Levy/Knuth CWEB 3.1 Version: 1.0 Hardware: Macintosh; requires AppleEvents. Languages: C, C++ Formatter: TeX Availability: CTAN archives Readme: A short readme file is included in the SEA archive. Description: IMPACT implements CTangle from the Levy/Knuth CWEB 3.1. It operates as a foreground program, tangling files selected from the Mac File Picker. Or it can operate in the background, tangling files in response to odoc events sent by other applications, such as editors. Support: I welcome any reports of bugs. The product will be updated as new versions of the CWEB appear. Other features may be added as users suggest them. - ---------------------------------------------------------------------- - lit2x ------- Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/independent Readme: Unknown Description: None available Support: Unknown - ---------------------------------------------------------------------- - Literate Programmer's Workshop (LPW) -------------------------------------- Developer: Norbert Lindenberg Version: 1.1 Hardware: Apple Macintosh Languages: C++, Object Pascal & others Formatter: self-contained WYSIWYG system Availability: Anonymous ftp from: LPA:/machines/mac CTAN:/web/lpw ftp.apple.com:/pub/literate.prog Readme: With bundle above. Also comes with 38-page manual. Description: The Literate Programming Workshop is an environment for the integrated development of program source text and documentation in combined documents. It consists of a WYSIWYG word processor based on a style sheet approach, a mechanism to extract parts of the text in a document, and a project management system that handles multi-document projects. The system is designed to be used in conjunction with the Macintosh Programmer's Workshop: it prepares raw source text for the MPW compilers, accepts MPW error messages, and shows them in the context of the original documents. Automatic indexing and hypertext features allow for easy access to both source text and documentation. LPW is shareware. Support: Bugs, problems, and questions to lpw@aol.com. - ---------------------------------------------------------------------- - MapleWEB ---------- Developer: Unknown Version: Unknown Hardware: Unknown Languages: Maple Formatter: Unknown Availability: Anonymous ftp from: LPA:/maple Readme: Unknown Description: None Support: Unknown - ---------------------------------------------------------------------- - MWEB (Schrod/Detig) --------------------- Developer: Joachim Schrod Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. - ---------------------------------------------------------------------- - MWEB (Sewell) --------------- Developer: Sewell Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. - ---------------------------------------------------------------------- - noweb ------- Developer: Norman Ramsey Version: 2.7a Hardware: Unix and DOS platforms. Languages: All programming languages. Automatic indexing for C, Icon, Standard ML, TeX, Yacc Formatter: Plain TeX, LaTeX, and HTML (Mosaic/Netscape) formatters. Availability: Anonymous ftp from: CTAN:/web/noweb LPA:/independent Last recourse, use bellcore.com:/pub/norman Readme: With bundle above, or see ``Literate Programming Simplified,'' IEEE Software, September 1994, pp97-105. Description: noweb is designed to meet the needs of literate programmers while retaining the simplest possible input format. Its primary advantages are simplicity, extensibility, and language-independence. noweb uses 5 control sequences to WEB's 27. The simple noweb manual is only 2 pages; documenting the full power of noweave and notangle requires another 3 pages. noweb works ``out of the box'' with any programming language, and a simple back end for a new text formatter can be written in about 50 lines of awk. The primary sacrifice relative to WEB is the loss of prettyprinting. noweb supports indexing and identifier cross-reference, including hypertext ``hot links'' courtesy of Mosaic or Netscape. noweb includes a simple, efficient LaTeX-to-HTML converter, so you can use hypertext browsers on your legacy documents. noweb can also process nuweb programs, so you can use noweb to convert a standard nuweb program to HTML with one command. Support: email to the author - ---------------------------------------------------------------------- - nuweb ------- Developer: Preston Briggs: preston@cs.rice.edu Version: 0.87 Hardware: Unix systems: Sparcs, RS/6000s, HPs; (!) MSDOS and Amiga. Languages: Any programming language or combination of programming languages. Formatter: Latex Availability: Anonymous ftp from: Unix: CTAN:/web/nuweb DOS: CTAN:/web/nuweb-pc LPA:/independent Amiga: CTAN:/web/nuweb/nuweb_ami Amiga: wuarchive.wustl.edu/pub/aminet Readme: Send mail to preston@cs.rice.edu Description: A single program that takes a web file written in a combination of latex and any programming language(s) and produces a latex file that can be pretty printed and a set of files containing code for compilation/interpretation by the appropriate language processors. Strengths include speed, simplicity, multiple languages, nice indices and cross-references, latex. Doesn't require any special macros or macro files. Drawbacks: latex-dependent, no code pretty printing, harder to make indices than cweb. More good stuff: nice support for make, doesn't reformat source files, so they're easy to debug. Lots of control without too much effort. That is, it doesn't do too much! Future directions... Very little change planned, except perhaps refinements in the indexing software. Support: Hack it yourself or send e-mail to preston@cs.rice.edu - ---------------------------------------------------------------------- - ProTeX -------- Developer: Eitan Gurari Version: ProTeX 1.1, AlProTeX 1.4 Hardware: Any platform with (La)TeX Languages: Any language Formatter: TeX or LaTeX Availability: Anonymous ftp from: ftp.cis.ohio-state.edu : pub/tex/osu/gurari/ LPA:/independent Readme: With bundle above Description: + Easy to use + Extensible + Language independent + Multiple output files + Fast (single compilation provides output and dvi files) + No installation is needed besides copying the files (written in TeX) Introduction of main features and examples in pub/tex/osu/gurari/LitProg Complete manual in Eitan M. Gurari, "TeX and LaTeX: Drawing and Literate Programming", McGraw-Hill, 1994 Support: gurari@cis.ohio-state.edu - ---------------------------------------------------------------------- - RWEB ------ Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/reduce Readme: Unknown Description: Web generator in AWK. Support: Unknown - ---------------------------------------------------------------------- - SchemeWEB ----------- Developer: John D. Ramsdell Version: 2.1 Hardware: Unix and DOS platforms Languages: Any dialect of Lisp. Formatter: LaTeX. Availability: The Unix version is in the Scheme Repository and it is available via anonymous ftp from: cs.indiana.edu:/pub/scheme-repository/utl/schemeweb.sh LPA:/lisp CTAN:/tex-archive/web/schemeweb The DOS version is part of the PCS/Geneva Scheme system which is available via anonymous ftp from: cui.unige.ch:/pub/pcs LPA:/machines/ms-dos Readme: In bundle with above. Description: SchemeWEB is a Unix filter that allows you to generate both Lisp and LaTeX code from one source file. The generated LaTeX code formats Lisp programs in typewriter font obeying the spacing in the source file. Comments can include arbitrary LaTeX commands. SchemeWEB was originally developed for the Scheme dialect of Lisp, but it can easily be used with most other dialects. Support: Bug reports to ramsdell@mitre.org. - ---------------------------------------------------------------------- - SpideryWEB ------------ Developer: Norman Ramsey Version: Unknown Hardware: Unix and DOS platforms Languages: Most Algol-like languages, including C, Ada, Pascal, Awk, and many others. Formatter: Plain TeX and latex for text formatters. Availability: Anonymous ftp from: CTAN LPA:/spiderweb Readme: In distribution. Description: A system for building language-dependent WEBs. Spider is frozen; no further development is planned. Support: Bug reports to spider-bugs@oracorp.com. - ---------------------------------------------------------------------- - WEB ----- Developer: Donald Knuth Version: Unknown Hardware: Unknown Languages: Pascal Formatter: TeX (of course! ;-) Availability: Anonymous ftp from: LPA:/pascal Readme: Unknown Description: This is the original software that started it all. The original TeX processor was written in WEB. Support: None known. - ---------------------------------------------------------------------- - WinWordWEB ------------ Developer: Lee Wittenberg Version: Unknown Hardware: Needs Microsoft Word for Windows, v.2.x, and, of course, MS-Windows 3.x. Languages: Any programming language. Formatter: Word for Windows 2.x for text formatting and file maintenance. Availability: Anonymous ftp from: bart.kean.edu:pub/leew LPA:/machines/ms-dos World-Wide Web (WWW) Readme: WORDWEB.DOC in the downloadable package describes the system. Description: WinWordWEB is a set of a Word for Windows macros (plus a paragraph style) that provide a crude literate programming environment. The ``look and feel'' of the system is based on Norman Ramsey's noweb, but can easily be modified to suit individual tastes. Support: None. WinWordWEB was written as a prototype to see if a WYSIWYG literate programming system was possible. It is intended as a jumping off point for future work by others. However, the system is surprisingly usable as it stands, and the author is interested in hearing from users (satisfied and dissatisfied). Anyone interested in actively supporting (and improving) the product should contact the author via email. = ====================================================================== * Are there other tools I should know about? -------------------------------------------- First of all, I'll list some not-quite-literate-programming tools. Some may consider these to be pretty-printers. Others may call them literate programming tools. In any event, they don't seem to be quite in the same category as the tools listed above, so I'll include them here. - C2LaTeX --------- Developer: John D. Ramsdell Version: Unknown Hardware: Unix Languages: C Formatter: LaTeX but it's easy to change the formatter. Availability: Anonymous ftp from omnigate.clarkson.edu:/pub/tex/tex-programs/c2latex. Readme: Absent. Documentation is in the C source for c2latex. Description: C2latex provides simple support for literate programming in C. Given a C source file in which the comments have been written in LaTeX, c2latex converts the C source file into a LaTeX source file. It can be used to produce typeset listings of C programs and/or documentation associated with the program. C2latex produces LaTeX source by implementing a small number of rules. A C comment that starts at the beginning of a line is copied unmodified into the LaTeX source file. Otherwise, non-blank lines are surrounded by a pair of formatting commands (\begin{flushleft} and \end{flushleft}), and the lines are separated by \\*. Each non-blank line is formatted using LaTeX's \verb command, except comments within the line are formatted in an \mbox. Support: Send bug reports to ramsdell@mitre.org. - ---------------------------------------------------------------------- - c2cweb -------- Developer: Werner Lemberg Version: 1.4 Hardware: DOS, OS/2, Unix (gcc) - CWEB source included Languages: C, C++ Formatter: TeX Availability: Anonymous ftp from CTAN:/web/c_cpp/c2cweb Readme: In distribution. Description: c2cweb will transform plain C or C++ code into a CWEB file to get a pretty formatted output. A modified CWEAVE (which transforms the CWEB file into a TeX file, see below) is included also. Support: Werner Lemberg - ---------------------------------------------------------------------- - c2man ------- language: C, nroff, texinfo, latex, html package: c2man version: 2.0 patchlevel 33 parts: documentation generator (C -> nroff -man, -> texinfo, ->latex, -> html) author: Graham Stoney location: ftp from any comp.sources.misc archive, in volume42 (the version in the comp.sources.reviewed archive is obsolete) ftp /pub/Unix/Util/c2man-2.0.*.tar.gz from dnpap.et.tudelft.nl Australia: ftp /usenet/comp.sources.misc/volume42/c2man-2.0/* from archie.au N.America: ftp /usenet/comp.sources.misc/volume42/c2man-2.0/* from ftp.wustl.edu Europe: ftp /News/comp.sources.misc/volume42/c2man-2.0/* from ftp.irisa.fr Japan: ftp /pub/NetNews/comp.sources.misc/volume42/c2man-2.0/* from ftp.iij.ad.jp Patches: ftp pub/netnews/sources.bugs/volume93/sep/c2man* from lth.se description: c2man is an automatic documentation tool that extracts comments from C source code to generate functional interface documentation in the same format as sections 2 & 3 of the Unix Programmer's Manual. It requires minimal effort from the programmer by looking for comments in the usual places near the objects they document, rather than imposing a rigid function-comment syntax or requiring that the programmer learn and use a typesetting language. Acceptable documentation can often be generated from existing code with no modifications. conformance: supports both K&R and ISO/ANSI C coding styles features: + generates output in nroff -man, TeXinfo, LaTeX or HTML format + handles comments as part of the language grammar + automagically documents enum parameter & return values + handles C (/* */) and C++ (//) style comments - doesn't handle C++ grammar (yet) requires: yacc/byacc/bison, lex/flex, and nroff/groff/texinfo/LaTeX. ports: Unix, OS/2, MSDOS, VMS. portability: very high for unix, via Configure status: actively developed; contributions by users are encouraged. discussion: via a mailing list: send "subscribe c2man " (in the message body) to listserv@research.canon.oz.au help: from the author and other users on the mailing list: c2man@research.canon.oz.au announcements: patches appear first in comp.sources.bugs, and then in comp.sources.misc. updated: 1994/10/07 - ---------------------------------------------------------------------- - cnoweb -------- Developer: Jim Fox Version: 1.4 (January 4, 1991) Hardware: Anything with C and TeX. Languages: C Formatter: Plain TeX. Availability: Anonymous ftp from: CTAN LPA:/c.c++ Readme: Unknown, cnoweb.tex contains documentation. Description: cnoweb is as it's name describes: write C, not web. No tangling or weaving is implemented. Documentation (between standard /* */ delimiteres) is written in TeX. cnoweb provides typesetting of documentation, an table of contents of routines, and pretty-printing of C source. Support: None known. - ---------------------------------------------------------------------- - Fold2Web ---------- Developer: Bernhard Lang Version: V0.8 Hardware: MSDOS Languages: All (must allow comment lines) Formatter: LaTeX Availability: Anonymous ftp from: kirk.ti1.tu-harburg.de (134.28.41.50) /pub/fold2web/readme /pub/fold2web/fold2web.zip Readme: In distribution Description: The idea behind the Fold2Web tool is the following: A programmer can write his program source with a folding editor and later map the folded source files automatically to WEB-files. The generated WEB-files can then be modified by inserting required documentations. The advantage by starting program developement with original sources is to get short design cycles during the compile/debug steps. By using a folding editor the global structuring information can be already captured in folds during this developement phase. Fold information is typically stored in comment lines and thus will not affect the efficiency of the compile/debug design cycle. Some folding editors and a folding mode for the emacs are available (e.g. see our FUE folding editor for MSDOS machines which is a modified micro emacs. Pick it at kirk in directory /pub/fold2web). After reaching a stable version of a program source its time to convert the source file to a WEB-file and do the program documentation. Fold2Web is written to convert folded source text of any programming language to nuweb files. The folded structure is kept by mapping folds to scraps. Fold markers which differ between languages due to different ways of specifying comments can be configured for each language. Good results can also achived when given but poor documented program sources have to be modified. Such sources can be folded using a folding editor to extract the global structures. This offers a global view to the program structures and help to understand its functionality. Furthermore the program code is not affected, only comment lines are inserted. Once folded the program source can be automatically translated to a WEB document using the above tool. Support: email to lang@tu-harburg.d400.de - ---------------------------------------------------------------------- - Funnelweb Mode ---------------- Developer: Daniel Simmons Version: Unknown Availability: Litprog archives (was in email) Anonymous ftp from: ftp.imada.ou.dk Description: The other day I did a quick hack to nuweb.el as included with the nuweb distribution so as to make a funnelweb-mode.el. I've only used it briefly, and I'm sure that it can be improved quite a bit. I've been thinking about adding support for folding on sections, a pull-down menu to select macro definitions (like the recent functions posted to gnu.emacs.sources for a C function definition pull-down menu) and some kind of tags support for funnelweb. Support: Unknown - ---------------------------------------------------------------------- - noweb.el ---------- Developer: Bruce Stephens Version: Unknown. Availability: LitProg archives (in an email message). Description: This is a very simple mode I just hacked up. There's a lot wrong with it, but I thought others may be interested, even as it stands. It *requires* text properties, and assumes those used in GNU Emacs 19.22; it'll quite likely work with Lucid Emacs, but I haven't tried it. I use it with auctex8.1 and cc-mode 3.229, both of which are loaded separately (I think my emacs is dumped with them, in fact). The idea is to have one mode (which calls itself c-mode, but actually has LaTeX-mode keybindings) generally (this means that the code is hilighted nicely), and have the code chunks use a different keymap. Support: Email to bruce@liverpool.ac.uk - ---------------------------------------------------------------------- - nuweb.el ---------- Developer: Dominique de Waleffe Version: 1.99 Availability: Anonymous ftp from: LPA CTAN Description: Provides a major mode extending Auctex for editing nuweb files. Main features (in 2.0): - Edit scrap bodies in a separate buffer in a different mode (selected using emacs defaults for files, specific indication -*-mode-*-, or a buffer-local variable) - Extends Auctex commands so that nuweb is called before LaTeX, - Easy navigation on scrap definition and use points. - Now creates an imenu (C-M-mouse1) with user index entries, macro definition positions and file definition positions. Support: Email to ddw@acm.org - ---------------------------------------------------------------------- - TIE ----- Developer: Unknown Version: Unknown Hardware: Unknown Availability: Anonymous ftp from: LPA:/Tools Readme: Unknown Description: This software merges change files. Support: Unknown - ---------------------------------------------------------------------- - Web mode ---------- Developer: Bart Childs Version: Unknown Tools supported: web, fweb, cweb, funnelweb Availability: Anonymous ftp from ftp.cs.tamu.edu:pub/tex-web/web/EMACS.web-mode thrain.anu.edu.au:pub/web/EMACS.web-mode Description: This version works with versions 18 and 19 of Emacs to be best of my knowledge. I have cleaned up a number of documentation items ... In the same directory is wm_refcard.tex which is an edited version of the famous one to include some web-mode commands. The files limbo* are related to its use and notice that half them have an uppercase L in them for LaTeX. The setup is based upon the fact that we (I am not alone here) primarily use FWEB for C and Fortran programming. We are using version 1.40 of FWEB although John Krommes warns that it is not mature and the manual is not yet updated. The info files are! We are using LaTeX almost exclusively. That will likely change and we will revert to version 1.30 if the final form of 1.40 cannot return to the simple section numbers and avoid the HORRIBLE LATEX 0.1.7.2.4.6 type section numbers. Support: Unknown = ====================================================================== * What other resources are available? ------------------------------------- - World Wide Web ---------------- An untapped resource (by me anyway ;-) is the World Wide Web. Marcus Speh has expended considerable effort in this regard. If you're connected to WWW, then access: http://info.desy.de:80/user/projects/LitProg.html If you aren't connected to WWW, telnet to info.cern.ch and explore. You can reach Marcus' literate programming pages by typing: go http://info.desy.de:80/user/projects/LitProg.html or use a WWW browser and access the URL ftp://rtfm.mit.edu/pub/usenet/news-answers/www/resources/literate-programming Help for people who have only Email and neither WWW nor telnet, can be obtained by Email from TEST-LIST@INFO.CERN.CH by sending a message, SEND , for example, SEND http://info.desy.de:80/user/projects/LitProg.html to retrieve the LitProg library page. A help file can be retrieved by sending a message to the list server above with the text HELP in the body of the message. Instructions will be returned by email. For literate programming documents, you can try anonymous ftp to rtfm.mit.edu and retrieve the official Usenet resource file /pub/usenet/news.answers/www/resources/literate-programming - ---------------------------------------------------------------------- - TeX Resources --------------- Another resource of interest to literate programmers is the comp.text.tex newsgroup. If you're using (La)TeX as your typsetting system and have access to internet, then you should investigate this resource. Another reason the TeX resources should be important is that so many of the literate programming tools rely on either plain TeX or LaTeX as their text formatter. (La)TeX software systems exist for most computing platforms. These systems can be found on CTAN and other major archive sites. Use archie to find them or simply ftp to one of the CTAN sites and browse. = ====================================================================== * Are there any code examples? ------------------------------ Examples of web programs are included with the FWEB, CWEB, and noweb distributions. nuweb is written in itself. Cameron Smith converted the K&R calculator program into a literate program. It can be retrieved by anonymous ftp from: niord.shsu.edu [192.92.115.8] directory kr-cweb-sample as krcwsamp.zip or from LPA/Documentation Ross Williams has released a funnelweb example. You can retrieve this file from node ftp.adelaide.edu.au [129.127.40.3] as /pub/funnelweb/examples/except.* This file should be on CTAN as well. Lee Wittenberg has posted a few litprog examples. They are available via anonymous ftp from: bart.kean.edu:/pub/leew/samples.LP The Stanford GraphBase is a large collection of programs by Don Knuth for doing all kinds of computations and games with graphs; it is written in (Levy/Knuth) CWEB. More details in the distribution. It is available via anonymous ftp from: labrea.stanford.edu:/pub/sgb = ====================================================================== * Bibliographies ---------------- Nelson Beebe has collected an extensive bibliography treating literate programming. His work is available for anonymous ftp from ftp.math.utah.edu [128.110.198.2] in directory /pub/tex/bib as files: litprog.bib litprog.ltx litprog.twx. Although I have not verified this, LPA is an alternate source for these files. Note that they are updated frequently (Nelson says several times each week), so be sure to get a fresh copy before extensive use. Joachim Schrod indicates that these files may be updated daily and can be retrieved via anonymous ftp at LPA/documentation. = ====================================================================== * How to anonymously ftp ------------------------ Pretty much everything mentioned here is available by anonymous FTP. FAQ lists cross-posted to news.answers and rec.answers can be gotten from rtfm.mit.edu [18.181.0.24], under /pub/usenet/news.answers or under /pub/usenet/more.specific.group.name "anonymous FTP" is just a way for files to be stored where anyone can retrieve them over the Net. For example, to retrieve the latest version of the literate programming FAQ, do the following: > ftp rtfm.mit.edu /* connect to the site; message follows */ > anonymous /* type this when it asks for your name */ > /* type your address as the password */ > cd /pub/usenet /* go to the directory you want to be */ > cd comp.programming.literate /* one level down (no slash). */ > dir /* look at what's there */ > get literate-progamming-faq /* get the file; case-sensitive */ > quit /* stop this mysterious thing */ If your FTP program complains that it doesn't know where the site you want to use is, type the numerical address instead of the sitename: > ftp 18.181.0.24 /* connect with numerical address */ If you don't have ftp access, send e-mail to mail-server@rtfm.mit.edu with the single word "help" in the body of the message. Getting binary files (executables, or any compressed files) is only slightly more difficult. You need to set binary mode inside FTP before you transfer the file. > binary /* set binary transfer mode */ > ascii /* set back to text transfer mode */ FAQs and spoiler lists are generally ascii files; everything else is generally binary files. Some common extensions on binary files in archive sites are: .Z Compressed; extract with uncompress .tar.Z Compressed 'tape archive'; uncompress then untar or tar -xvf .gz or .z Gnu gzip; use gunzip (available from prep.gnu.ai.mit.edu) .sit (Mac) StufIt archive .zip Extract with Zip or Unzip .zoo Yet another archive/compress program .lhe (Amiga) ? .lzh Lha archive program. .arj (PC) Arj archive program. .exe (PC) Sometimes self-extracting archives-just execute them. .uue or .UUE Transfer as text file; use uudecode to convert to binary .hqx (Mac) BinHex format; transfer in text mode Generic help can be found in the FAQs of comp.binaries. for how to transfer, extract, and virus-check binary files. (At rtfm.mit.edu) If you can't FTP from your site, use one of the following ftp-by-mail servers: ftpmail@decwrl.dec.com ftpmail@src.doc.ic.ac.uk ftpmail@cs.uow.edu.au ftpmail@grasp.insa-lyon.fr For complete instructions, send a message reading "help" to the server. If you don't know exactly what you're looking for, or exactly where it is, there are programs and servers that can help you. For more info, send e-mail to mail-server@rtfm.mit.with with the body of the message reading send usenet/news.answers/finding-sources Thanks to Aliza R. Panitz (the "buglady") for this text. I copied it verbatim from her post on faq-maintainers with only minor modifications. = ====================================================================== * Acknowledgements ------------------ This document would not have happened without the help of many people. Among them are Marcus Speh, George Greenwade, Rob Beezer, Joachim Schrod, Piet van Oostrum, and Ross N. Williams. A special thanks to Aliza R. Panitz for the text describing how to execute an anonymous ftp for files of interest. Any omissions from these acknowledgements should be considered an act of stupidity on my part. Of course, the authors of literate programming tools mentioned above all play a vital role in the vitality of literate programming. Furthermore, participants in the comp.programming.literate newsgroup (and associated mailing list) all contributed in various fashions. Thank all of you. = ====================================================================== * End notes ----------- This document will continue to evolve. I'm planning on adding entries for additional literate programming tools and will expand the sections on examples as more examples become available. Tools I will include are WEB (the original pascal version) for starters. Others will be added as I find and document them. Omission of a particular tool should not be considered a snub in any sense--simply an error or oversight on my part. = End of File ========================================================== 15-Jun-1997 23:50:55-GMT,2632;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id RAA26843 for ; Sun, 15 Jun 1997 17:50:53 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 15 Jun 1997 18:40:49 EST From: furlos@alumni.rpi.edu (Steve Furlong) Reply-To: LitProg@SHSU.edu, furlos@alumni.rpi.edu Subject: Re: Anyone using Literate Programming for OO ? Date: 15 Jun 1997 23:29:09 GMT Message-ID: <5o1ts5$m96$1@readme.ican.net> To: LitProg@SHSU.edu In article <33A07DAD.4837@agcs.com>, William Davies wrote: >Greetings, > > Anyone have any experience using literate programming techniques > for developing OO programs ? > > There was a flurry of discussion a couple of years ago and the > newsgroup comp.programming.literate was created. I don't see > the newsgroup anymore .. is it still around ? > > I am curious to know if LP techniques have caught on anywhere outside > of academe. > >Thanks, >-- >Bill Davies e-mail: daviesw@agcs.com >AG Communication Systems voice: (602) 581-4314 >PO Box 52179 fax: (602) 582-7697 >Phoenix AZ 85072-2179 http://www.agcs.com Yes, indeed. I use litprog for almost all my programming. Now, I make no claim to excellence in OOA/OOD/OOP, but this seems to work well enough. Depending on the size and complexity of the classes, I'll typically either produce all files for a single class in a litprog file, or put a family of classes in a single file, or (only for a small program with a few simple classes) put all classes plus the main program code in a single file. The usenet group comp.programming.literate is alive and well. It has changed to a moderated format in the past few months because the number of junk postings outnumbered the real postings by about 2:1. Now the group sometimes doesn't have any traffic for a few days or a week, followed by a (relative) flurry if someone posts something. If you use a news reader which doesn't show groups with no active messages that may be why it doesn't show up. Every now and again someone will ask about litprog and OO on c.p.l. I haven't checked the FAQ in a while, so I don't know what that says, but you might check it out. Dejanews ought to cough up something, as well. I've changed the Newsgroups: line to add c.p.l. Regards, Steve Furlong -- Patrick TJ McPhee East York Canada ptjm@ican.net 19-Jun-1997 3:34:44-GMT,986;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id VAA12989 for ; Wed, 18 Jun 1997 21:34:42 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 18 Jun 1997 22:22:15 EST From: Nicolas Leulliot Reply-To: LitProg@SHSU.edu, leulliot@lpbc.jussieu.fr Subject: web-mode and highlighting Date: 19 Jun 1997 03:03:25 GMT Message-ID: <5oa7ht$2lj$1@readme.ican.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Does anyone know how to get syntax highlighting in fweb files, either using web-mode or another mode (for code both in fortran and C) Many thanks, Nick -- Patrick TJ McPhee East York Canada ptjm@ican.net 22-Jun-1997 11:34:48-GMT,1463;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id FAA16398 for ; Sun, 22 Jun 1997 05:34:46 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 22 Jun 1997 06:18:57 EST From: Balasubramanian Narasimhan Reply-To: LitProg@SHSU.edu, naras@stat.stanford.edu Subject: Re: web-mode and highlighting Date: 21 Jun 1997 13:40:49 GMT Message-ID: <5ogll1$mc3$1@elna.ethz.ch> To: LitProg@SHSU.edu Sven Utcke writes: > (defvar cweb-mode-version "2.2") > > Does anyone know: > > a) if there is a newer version around? > b) where to get it? > c) how to make it work properly with cc-mode instead of c-mode > (indentation is all screwed up, which it wasn't when I was still > using c-mode, and which it isn't when editing C directly). > I've been using happily using version 2.3.4 for over a year now. You can get the latest version from Christian Kumpf's web page which I hunted down some time ago: http://www.igd.fhg.de/~kumpf/. ________________________________________________________________ B. Narasimhan naras@stat.stanford.edu http://www-stat.stanford.edu/~naras 22-Jun-1997 12:14:59-GMT,1495;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id GAA17021 for ; Sun, 22 Jun 1997 06:14:57 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 22 Jun 1997 06:51:46 EST From: Sven Utcke Reply-To: LitProg@SHSU.edu, utcke@tu-harburg.d400.de Subject: Re: web-mode and highlighting Date: 21 Jun 1997 00:04:36 GMT Message-ID: <5of5qk$mos$1@elna.ethz.ch> To: LitProg@SHSU.edu Nicolas Leulliot writes: > Does anyone know how to get syntax highlighting in fweb files, > either using web-mode or another mode (for code both in fortran > and C) I use cweb-mode, which I think is excellent, despite the somewhat misleading name. The version I've got is: ;; Author: Christian Kumpf ;; $Id: cweb-mode.el,v 2.3 1995/02/10 16:51:44 smurf Exp smurf $ ;; Keywords: cweb,web,programming,literate,janus Although it says later on: (defvar cweb-mode-version "2.2") Does anyone know: a) if there is a newer version around? b) where to get it? c) how to make it work properly with cc-mode instead of c-mode (indentation is all screwed up, which it wasn't when I was still using c-mode, and which it isn't when editing C directly). Greetings Sven 23-Jun-1997 2:19:17-GMT,2335;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id UAA01987 for ; Sun, 22 Jun 1997 20:19:09 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from indy03.cs.monash.edu.au by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 22 Jun 1997 21:13:07 EST Received: from localhost (ajh@localhost) by indy03.cs.monash.edu.au (8.7.6/8.6.9) with SMTP id MAA23330; Mon, 23 Jun 1997 12:13:19 +1000 (EST) Message-ID: <199706230213.MAA23330@indy03.cs.monash.edu.au> To: LitProg@SHSU.edu, ddw@miscrit.be Subject: Re: Nuweb produces no output files! MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Mon, 23 Jun 1997 12:13:16 +1200 From: John Hurst Reply-To: LitProg@SHSU.edu, ajh@cs.monash.edu.au Dominique de Waleffe wrote: > >>> "Loris" == Loris Bennett writes: > > Loris> Hello All, > Loris> Having used nuweb (successfully!) on various workstations for quite some > Loris> time now, I tried it out on a CRAY T94 recently. To my dismay, the LaTeX > Loris> file was generated, but no source code. No error messages occur. > Loris> With the -v option, nuweb claims to write the output files. > > Loris> Has anyone else come across this phenomenon? > > Yes. If you specify for output files a directory which does not > exist, nuweb silently fails. I've patched this in the version of > nuweb I use. Also, (as I just recently discovered), if you don't have (Unix) permissions to write those files, nuweb claims to write the files but, of course, doesn't. --John Hurst: variously -- Associate Dean (Teaching), Faculty of Computing & Information Technology -- Program Chair, 2nd Australasian Conf. on Computer Science Education -- Postgraduate Coordinator, Department of Computer Science -- Associate Professor, Department of Computer Science --Computer Science, Monash, Clayton VIC 3168 ~ ~~~&#: --ajh@cs.monash.edu.au _..___ ---____@___H__ --+61 3 9905 5192 (fax +61 3 9905 5146) |_____[_|____________|_ --http://www.cs.monash.edu.au/~ajh oo oo oo O--O--O o=o 24-Jun-1997 22:35:30-GMT,990;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id QAA28981 for ; Tue, 24 Jun 1997 16:35:29 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from centaure.worldnet.net by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 24 Jun 1997 17:22:55 EST Received: from BEAR (paris28-151.paris.worldnet.fr [195.3.17.151]) by centaure.worldnet.net (8.8.5/8.8.5) with SMTP id AAA09698 for ; Wed, 25 Jun 1997 00:23:27 +0200 (MET DST) Message-ID: <199706242223.AAA09698@centaure.worldnet.net> From: savron@world-net.sct.fr Reply-To: LitProg@SHSU.edu, savron@world-net.sct.fr To: litprog@SHSU.edu Date: Tue, 24 Jun 1997 22:47:10 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7BIT Subject: test - ignore 26-Jun-1997 19:10:51-GMT,64439;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id NAA26921 for ; Thu, 26 Jun 1997 13:10:48 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 26 Jun 1997 12:44:59 EST From: thompson@sun1.coe.ttu.edu Subject: comp.programming.literate FAQ Date: 26 Jun 1997 08:48:56 GMT Message-ID: Reply-To: LitProg@SHSU.edu, thompson@sun1.coe.ttu.edu To: LitProg@SHSU.edu Archive-name: literate-programming-faq Last-modified: 1996/11/19 Version: 1.1.17 Welcome to the Literate Programming Frequently Asked Questions List ------------------------------------------------------------------- Information contained in this document is the best available at preparation. The original file was dated October 15, 1993 (just for historical purposes). Disclaimer: "This FAQ is presented with no warranties or guarantees of ANY KIND including correctness or fitness for any particular purpose. The author of this document has attempted to verify correctness of the data contained herein; however, slip-ups can and do happen. If you use this data, you do so at your own risk." Copyright 1993-1996 by David B. Thompson. All rights reserved worldwide. Permission is granted to copy this document for free distribution so long as it remains intact and unmodified. For other arrangements, contact the author/maintainer via email: thompson@sun1.coe.ttu.edu. What's New? ----------- + My email address. + General cleanup. = ====================================================================== * Introduction or "What's this all about?" ------------------------------------------ This document is for new and experienced users of literate programming tools. The purpose is to explain the concept of literate programming and to provide a resource for locating files of interest to literate programmers and those interested in literate programming. The Literate Programming (LitProg) Frequently Asked Questions (FAQ) list is maintained by Dave Thompson, who can be reached at: thompson@cam203g.ce.ttu.edu * Preferred mailing address for FAQ related comments/questions. Comment and constructive criticism is welcome. Direct flames to /dev/null (or nul if you're a msdos user! ;-) If you find an error, please report it. I'm particularly interested in establishing the locations of generally available literate programming tools. If you are the author of such a tool and wish to have it included in this list, please send email. Please note this is a work-in-progress. It is *not* complete, and probably will never be complete. Nevertheless, the information contained herein may be useful to some. Use it as it is intended. - ---------------------------------------------------------------------- - Typography ------------ Major sections of the FAQ are divided by double lines (====). Minor sections and other divisions are separated by single lines (----). Major topics use a "* " as a leader. Minor topics use a "- " as a leader. This should simplify searching for topics. = ====================================================================== Table of Contents: ------------------ * Introduction, or "What's this all about?" - Typography * How do I get the FAQ? - Literate Programming FAQ - FWEB FAQ * Is there a newsgroup? (The comp.programming.literate newsgroup) * What internet nodes are of interest to literate programmers? * What is literate programming? * How do I begin literate programming? * What literate programming tools are available and where are they? - APLWEB - AWEB - CLiP - CWEB - CWEBx3.0 - FunnelWeb - FunnelWeb3.0AC - FWEB - IMPACT - lit2x - Literate Programmer's Workshop (LPW) - MapleWEB - MWEB (Schrod/Detig) - MWEB (Sewell) - noweb - nuweb - ProTeX - RWEB - SchemeWEB - Spidery WEB - WEB - WinWordWEB * Are there other tools I should know about? - C2LaTeX - c2cweb - c2man - cnoweb - Fold2web - FunnelWeb mode - noweb.el - nuweb.el - TIE - Web mode * What other resources are available? - TeX Resources - Virtual Coursework * Are there any code examples? - Examples included with developer's tools - Cameron Smith's KR-CWEB - Stanford GraphBase * Bibliographies. * How to anonymously ftp. * Acknowledgements. * End notes. = ====================================================================== * How do I get the FAQ? ----------------------- - Literate Programming FAQ -------------------------- You have many ways to get a current copy of this FAQ. One is to use anonymous ftp (if you don't know how, see a later section in this FAQ) to connect to one of the Comprehensive TeX Arvchive Network (CTAN) sites or the Literate Programming Archive and retrieve a copy of the file. Open an ftp connection to one of the CTAN sites and retrieve the file: help/LitProg-FAQ (For more information on CTAN and the literate programming archive, see the section below entitled "Internet Nodes of Interest to Literate Programmers.") - ---------------------------------------------------------------------- - FWEB FAQ ---------- David Coker maintains the FWEB FAQ. The current version number is 1.30a. It can be retrieved in the same way as this FAQ. The FWEB FAQ exists in various formats, including HyperText (see other resources below). In Europe, the complete distribution can also be obtained from ftp.desy.de [131.169.10.115] in directory /pub/faq/web/fweb/. It is also available from the literate programming archive (LPA) in the directory LPA/Documentation/faq/fweb (see the references to LPA below for more information). = ====================================================================== * Is there a newsgroup? ----------------------- One of the most important resources is the literate programming newsgroup, comp.programming.literate. You can read this newsgroup using your standard reader. = ====================================================================== * What internet nodes are of interest to literate programmers? -------------------------------------------------------------- The principal nodes of interest to literate programmers are the Literate Programming Archive (LPA hereafter) and the CTAN (Comprehensive TeX Archive Network). The Literate Programming Archive (LPA) is: Node: ftp.th-darmstadt.de [130.83.55.75] Directory: programming/literate-programming Notes: Fastest response during off-U.S. [yep] business hours. Participating hosts in the Comprehensive TeX Archive Network are: ftp.dante.de (Deutschland) -- anonymous ftp /tex-archive (/pub/tex /pub/archive) -- gopher on node sun.dante.de -- e-mail via ftpmail@dante.de -- Administrator: ftp.tex.ac.uk (England) -- anonymous ftp /tex-archive (/pub/tex /pub/archive) -- gopher on node gopher.tex.ac.uk -- NFS mountable from nfs.tex.ac.uk:/public/ctan/tex-archive -- World Wide Web access on www.tex.ac.uk -- Administrator: The site ftp.shsu.edu used to be the American CTAN site. Apparently, that site has fallen into disrepair and should not be considered a primary source for either TeX related or literate programming related material. For the record, the address is: ftp.shsu.edu (Texas, USA) -- anonymous ftp and gopher /tex-archive (/pub/tex /pub/archive) -- NFS mountable from ftp.SHSU.edu:/pub/ftp/tex-archive -- e-mail via ftpmail@ftp.SHSU.edu -- World Wide Web access on www.SHSU.edu -- Administrator: A list of CTAN archive sites and their mirrors can be found on: ftp.dante.de:/tex-archive/CTAN.sites I presume that the other CTAN sites mirror this file, but have not checked. As of my last check (September 1994), it contains: "In order to reduce network load, it is recommended that you use the Comprehensive TeX Archive Network (CTAN) host which is located in the closest network proximity to your site." Known partial mirrors of the CTAN reside on (alphabetically): dongpo.math.ncu.edu.tw (Taiwan) /tex-archive ftp.adfa.oz.au (Australia) /pub/tex/ctan ftp.muni.cz (The Czech Republic) /pub/tex/CTAN ftp.cs.ruu.nl (The Netherlands) /pub/tex-archive ftp.uu.net (Virginia, USA) /pub/text-processing/TeX nic.switch.ch (Switzerland) /mirror/tex Known mirrors of the CTAN reside on (alphabetically): ftp.center.osaka-u.ac.jp (Japan) /CTAN ftp.ccu.edu.tw (Taiwan) /pub/tex ftp.cs.rmit.edu.au (Australia) /tex-archive ftp.duke.edu (North Carolina, USA) /tex-archive ftp.germany.eu.net (Deutschland) /pub/packages/TeX ftp.gwdg.de (Deutschland) /pub/dante ftp.jussieu.fr (France) /pub4/TeX/CTAN ftp.loria.fr (France) /pub/unix/tex/ctan ftp.mpi-sb.mpg.de (Deutschland) /pub4/tex/mirror/ftp.dante.de ftp.uni-bielefeld.de (Deutschland) /pub/tex ftp.uni-stuttgart.de (Deutschland) /tex-archive (/pub/tex) ftpserver.nus.sg (Singapore) /pub/zi/TeX src.doc.ic.ac.uk (England) /packages/tex/uk-tex sunsite.unc.edu (North Carolina, USA) /pub/packages/TeX wuarchive.wustl.edu (Missouri, USA) /packages/TeX Other nodes and directories of interest include: Node: ftp.desy.de [131.169.10.115] Directory: pub/web. Various documents, samples, and the FWEB FAQ. Notes: Has a www server, http://info.desy.de:80/ = ====================================================================== * What is Literate Programming? ------------------------------- Literate programming is the combination of documentation and source together in a fashion suited for reading by human beings. In fact, literate programs should be enjoyable reading, even inviting! (Sorry Bob, I couldn't resist!) In general, literate programs combine source and documentation in a single file. Literate programming tools then parse the file to produce either readable documentation or compilable source. The WEB style of literate programming was created by D.E. Knuth during the development of his TeX typsetting software. All the original work revolves around a particular literate programming tool called WEB. Knuth says: The philosophy behind WEB is that an experienced system programmer, who wants to provide the best possible documentation of his or her software products, needs two things simultaneously: a language like TeX for formatting, and a language like C for programming. Neither type of language can provide the best documentation by itself; but when both are appropriately combined, we obtain a system that is much more useful than either language separately. The structure of a software program may be thought of as a web that is made up of many interconnected pieces. To document such a program we want to explain each individual part of the web and how it relates to its neighbours. The typographic tools provided by TeX give us an opportunity to explain the local structure of each part by making that structure visible, and the programming tools provided by languages such as C or Fortran make it possible for us to specify the algorithms formally and unambigously. By combining the two, we can develop a style of programming that maximizes our ability to perceive the structure of a complex piece of software, and at the same time the documented programs can be mechanically translated into a working software system that matches the documentation. Another author (Eric W. van Ammers) wrote me a short article treating his opinions on literate programming. The text follows: First observation on LP About 90% of the disussion on this list is about problems with applying some WEB-family member to a particular programming language or a special documentation situation. This is ridiculous, I think. Let me explain shortly why... Lemma 1: I have proposed for many years that programming has nothing to do with programming langauges, i.e. a good programmer makes good programs in any language (given some time to learn the syntax) and a bad programmer will never make a good program, no matter the language he uses (today many people share this view, fortunately). Lemma 2: Literate Programming has (in a certain way not yet completely understood) to do with essential aspects of programming. Conclusion 1: A LP-tool should be independent of programming language. Lemma 3: It seems likely that the so called BOOK FORMAT PARADIGM [ref. 1] plays an important role in making literate programs work. Lemma 4: There are very many documentation systems currently being used to produce documents in the BOOK FORMAT. Conclusion 2: A LP-tool should be independent of the documentation system that the program author whishes to use. My remark some time ago that we should discuss the generic properties of an LP-tool was based on the above observation. References: [1] Paul W. Oman and Curtus Cook. Typographical style is more than cosmetic. CACM 33, 5, 506-520 (May 1990) Second observation on LP The idea of a literate program as a text book should be extendend even further. I would like to see a literate program as an (in)formal argument of the correctness of the program. Thus a literate program should be like a textbook on mathematicics. A mathematical textbook explains a theory in terms of lemma and theorems. But the proofs are never formal in the sense that they are obtaind by symbol manipulation of a proof checker. Rather the proofs are by so called "informal rigour", i.e. by very precise and unambiguous sentences in a natural language. Eric W. van Ammers Department of Computer Science Wageningen Agricultural University Dreijenplein 2 E-mail: ammers@rcl.wau.nl 6703 HB Wageningen voice: +31 (0)8370 83356/84154 The Netherlands fax: +31 (0)8370 84731 Another author (Norman Ramsey) wrote me and asked that his opinions be included in the FAQ. What follows are Norman's comments verbatim. I see it's time for the ``how is literate programming different from verbose commenting'' question. Perhaps David Thompson will get this into the FAQ. Alert! What follows are my opinions. In no way do I claim to speak for the (fractious) literate-programming community. How is literate programming different from verbose commenting? There are three distinguishing characteristics. In order of importance, they are: - flexible order of elaboration - automatic support for browsing - typeset documentation, especially diagrams and mathematics Flexible order of elaboration means being able to divide your source program into chunks and write the chunks in any order, independent of the order required by the compiler. In principle, you can choose the order best suited to explaining what you are doing. More subtly, this discipline encourages the author of a literate program to take the time to consider each fragment of the program in its proper sphere, e.g., not to rush past the error checking to get to the ``good parts.'' In its time and season, each part of the program is a good part. (This is the party line; your mileage may vary.) I find the reordering most useful for encapsulating tasks like input validation, error checking, and printing output fit for humans --- all tasks that tend to obscure ``real work'' when left inline. Reordering is less important when using languages like Modula-3, which has exceptions and permits declarations in any order, than when using languages like C, which has no exceptions and requires declaration before use. Automatic support for browsing means getting a table of contents, index, and cross-reference of your program. Cross-reference might be printed, so that you could consult an index to look up the definition of an identifier `foo'. With good tools, you might get a printed mini-index on every page if you wanted. Or if you can use a hypertext technology, cross-reference might be as simple as clicking on an identifier to reach its definition. Indexing is typically done automatically or `semi-automatically', the latter meaning that identifier definitions are marked by hand. Diligently done semi-automatic indexes seem to be best, because the author can mark only the identifiers he or she considers important, but automatic indexing can be almost as good and requires no work. Some tools allow a mix of the two strategies. Some people have applied literate-programming tools to large batches of legacy code just to get the table of contents, index, and cross-reference. I don't use diagrams and mathematics very often, but I wouldn't want to have to live without them. I have worked on one or two projects where the ability to use mathematical formulae to document the program was indispensible. I also wouldn't like to explain some of my concurrent programs without diagrams. Actually I write almost all of my literate programs using only sections headers, lists, and the occasional table. >Wouldn't it be easier to do one's literate programming using a wysiwyg >word processor (e.g. Word for Windows) and indicate what is source >code by putting it in a different font? The data formats used in wysiwyg products are proprietary, and they tend to be documented badly if at all. They are subject to change at the whim of the manufacturer. (I'll go out on a limb and say there are no significant wysiwyg tools in the public domain. I hope the Andrew people will forgive me.) These conditions make it nearly impossible to write tools, especially tools that provide automatic indexing and cross-reference support. The CLiP people have a partial solution that works for tools that can export text --- they plant tags and delimiters throughout the document that enable the reordering transformation (``tangling''). People use TeX, roff, and HTML because free implementations of these tools are widely available on a variety of platforms. TeX and HTML are well documented, and TeX and roff are stable. TeX is the most portable. I think I have just answered the FAQ ``how come all these tools use TeX, anyway?'' :-) Norman Ramsey = ====================================================================== * How do I begin literate programming? -------------------------------------- A recommended book is D.E. Knuth's collection of articles (1992) "Literate Programming," Center for the Study of Language and Information, Stanford University, ISBN 0-937073-80-6 (pbk). This book gives insight into Knuth's thoughts as he developed the web system of literate programming (and TeX for typesetting). It does not document methods for literate programming. A recommended book is Wayne Sewell's (1989) "Weaving a Program: Literate Programming in WEB," Van Nostrand Reinhold, ISBN 0-442-31946-0 (pbk). This book focuses on using Knuth's web system. Some talk exists in the newsgroup/mailing list for a Usenet University course in literate programming. I'm sure discussion of this topic will be welcomed. If you are interested, please participate. = ====================================================================== * What literate programming tools are available and where are they? ------------------------------------------------------------------- A significant number of tools for literate programming are available. Most have been ported from their original systems, so support multiple computer platforms. If you are the developer of such a tool, and would like to make the software freely available, please send me email and I'll reply with a form (like those below) for you to fill in. (Or short-circuit the process and kludge a form from below. :-) - ---------------------------------------------------------------------- - APLWEB -------- Developer: Christoph von Basum Version: Unknown Hardware: MSDOS Languages: IBM APL2 and STSC APL Formatter: Plain TeX Availability: Anonymous ftp from: LPA:/apl watserv1.uwaterloo.ca:/languages/apl/aplweb Readme: Unknown Description: None available. Support: Unknown Note: The status of this particular package is unknown. - ---------------------------------------------------------------------- - AWEB ------ Developer: Unknown Version: Unknown Hardware: Unknown Languages: Ada Formatter: Unknown Availability: Anonymous ftp from: LPA:/ada/web Readme: Unknown Description: None available Support: Not supported. - ---------------------------------------------------------------------- - CLiP ------ Developer: E.W. van Ammers and M.R. Kramer Version: Unknown Hardware: Vax/VMS, Unix, and MS-DOS Languages: Any programming language. Formatter: Any formatter (TeX, LaTeX, Troff, Runoff, etc) or any wordprocessor including WYSIWYG systems (Word Perfect, Win Word, Ami Pro, Word, etc.) Availability: Anonymous ftp from: sun01.info.wau.nl:/CLIP/ms_dos MS-DOS version sun01.info.wau.nl:/CLIP/vax_vms VAX/VMS version CTAN:/web/clip LPA:/machines/ms-dos LPA:/machines/vax Readme: With bundle above Description: CLiP does not use explicite commands to perform the extraction process. Rather it recognizes pseudostatemens written as comments in the programming language in question. CLiP distinguishes pseudostatments from ordinary comments because the former comply with a a particular style. This style can be adjusted to suit virtually any programming language. The CLiP approach to LP makes the system extremely versatile. It is independent of programming language and text processing environment. We designed CLiP to be compatible with hypertext systems as well but we have not yet experimented with this form of documentation. Features: + CLiP imposes virtually no limitations on the text-processing system used to produce the documentation. If the text-processor supports these items you can + structure the documentation according to your own taste. + include drawings, pictures, tables etc. + disclose your documentatio my means of X-ref tables, Indexes, Table of contents, Table of tables, Table of figures, etc. + typeset the documented code. + Extracts any number of modules from a maximum of 64 source files. + No pretty-printing. Code from the source files is copied "as is" to the module. + Appearance of code segments in the documentation matches those of the modules to ease the identification of code segements. + Supports partially specified data types. + Comprehensive user manual (preliminary version) and technical description. - No automatic generation of a X-ref table for program identifiers. Support: Bugs, problems and assistance by e-mail: ammers@rcl.wau.nl - ---------------------------------------------------------------------- - CWEB ------ Developer: Silvio Levy and D.E. Knuth Version: 3.0 Hardware: Unix systems (dos and amiga ports available) Languages: C and C++ Formatter: Plain TeX and LaTeX. Availability: Anonymous ftp from: labrea.stanford.edu:/pub/cweb LPA:/c.c++ CTAN:/web/c_cpp/cweb DOS version in CTAN:/web/c_cpp/cwb30p8c DOS version in LPA:/machines/ms-dos Amiga version CTAN:/web/c_cpp/AmigaCWEB Mac port of CTANGLE in LPA:/machines/mac LaTeX support in LPA:/c.c++ Readme: Bundled with above Description: No description provided. Support: Bugs to levy@math.berkeley.edu - ---------------------------------------------------------------------- - CWEBx3.0: ----------- Developer: Marc van Leeuwen Version: Unknown Hardware: Any system using ASCII code Languages: ANSI C Formatter: Plain TeX Availability: Anonymous ftp from: ftp.cwi.nl/pub/cweb Readme: Bundled with above Brief description: A modified implementation of CWEB, with some extensions. Provides a mode for full compatibility with Levy/Knuth CWEB. The most significant extras are: - Typedef declarations affect formatting througout source file - Include files are scanned for typedef definitions - Flexible selection of layout style - Possibility to refer to sections using symbolic labels - CTANGLE detects unbalanced braces and parentheses - CWEAVE can be made to report syntax errors more easily - Some additional mechanisms to avoid formatting problems - New and modular set of grammar rules, based on ANSI C syntax - Possibility to suppress #line directives - A new manual Support: bugs and remarks to M.van.Leeuwen@cwi.nl - ---------------------------------------------------------------------- - FunnelWeb ----------- Developer: Ross N. Williams: ross@guest.adelaide.edu.au Version: Unknown Hardware: MSDOS, Mac, VMS, Sun. Other ports reported. Languages: No restrictions. Formatter: Plain TeX for printing. Otherwise, no restrictions. Availability: Anonymous ftp from: CTAN:/web/funnelweb LPA:/independent ftp.adelaide.edu.au:/pub/funnelweb Readme: With bundle above. Description: FunnelWeb is a production-quality literate-programming tool that emphasises simplicity and reliability. Everything about FunnelWeb, from the simplicity of its language to the comprehensive tutorial in the user's manual, has been designed to make this as simple, as practical, and as usable a tool as possible. Features: + Provides a simple macro preprocessor facility. + Can produce typeset documentation. + Runs on Sun, VMS VAX, Macintosh, PC, and others. + Portable C source code distributed under GNU licence. + Comprehensive user's manual including tutorial. + Programming-language independent. + Can generate multiple output files. + Allows complete control over the output text. + Regression test suite with over 200 tests. + Fully worked example (in /pub/funnelweb/examples). - Requires TeX to produce typeset documentation. - Typesets program code using TT font only. Support: No formal support available. Mailing list maintained with about 50 subscribers. Informal assistance available from mailing list. - ---------------------------------------------------------------------- - FunnelWeb 3.0AC ----------------- Developer: Enhanced by A.B.Coates (coates@physics.uq.edu.au) from FunnelWeb v3.0 by Ross N. Williams (ross@guest.adelaide.edu.au) Version: 3.0AC Hardware: MSDOS, Mac, VMS, Sun, OSF/1, Linux, Sys.V, OS/2. Languages: No restrictions. Formatter: Tex, LaTeX, or HTML. Availability: Anonymous ftp from ftp.physics.uq.oz.au:/pub/funnelwebAC30.tar.gz Readme: With bundle above; for FunnelWeb manual see WWW page http://www.physics.uq.oz.au:8001/people/coates/funnelweb.html Description: FunnelWeb 3.0AC is an enhanced version of FunnelWeb (see the entry for FunnelWeb). FunnelWeb is designed to be typesetter independent, though FunnelWeb v3.0 only supports (La)TeX as the typesetter. FunnelWeb 3.0AC also supports HTML, and creates appropriate hypertext links within the document among the code sections. FunnelWeb 3.0AC also supports automatic and manual insertion of line directives, so that compiler errors can be flagged back to the original FunnelWeb source file. FunnelWeb 3.0AC is completely compatible with FunnelWeb v3.0 sources (with one minor exception; see the file README.ABC which comes with the FunnelWeb 3.0AC distribution). Support: Supported by A.B.Coates (coates@physics.uq.edu.au), subject to the time constraints imposed by his thesis. - ---------------------------------------------------------------------- - FWEB ------ Developer: John A. Krommes Version: 1.30a (1.40 for the experienced, patient, and brave) Hardware: Unix, VMS, and DOS platforms (anything with ANSI C) Languages: C, C++, Fortran-77, Fortran-90, Ratfor, TeX; also, a language-independent mode. Formatter: Plain TeX and LaTeX. Availability: Anonymous ftp from: ftp.pppl.gov:/pub/fweb CTAN:/web/fweb LPA:/fweb DOS version in LPA:/machines/ms-dos Readme: In bundle with above. Description: It also has a well-developed user's manual and its own FAQ (see above). Beginning with 1.40, documentation is maintained in gnu texinfo format. It runs on most platforms: VMS, PC, UNIX, and pretty much anything that the GNU C compiler (GCC) is supported for. Features: + Processes multiple languages during a single run (so one can mix C and Fortran, for example). + Language-independent mode (v1.40). + Ability to turn off pretty-printing (v1.40). + Built-in Ratfor translator. + Built-in macro preprocessor (closely follows ANSI C, with extensions). + A style file that allows the user to adjust many parameters and behavior patterns of FWEB. + Various operator-overloading features that provide additional pretty-printing capabilities to languages such as C++ and Fortran-90. + Numerous miscellaneous features and command-line options. Support: Bug reports and suggestions to krommes@princeton.edu The following text was relayed by utcke@tu-harburg.d400.de recently. A new entry for this FAQ will eventually be prepared. NOTICE (June 12, 1995) The 1.52 tar file was regenerated. If your version of that file included the file web/defaults.mk, you should say `make clean' before beginning the installation process, or use the new tar file. NOTICE (June 10, 1995) Version 1.52 is available. More bug fixes. 1.5x will remain in beta-testing until about Sept. 1, 1995; further changes are hoped to be minimal. If you have previously picked up 1.50 or 1.51, you definitely should install 1.52 instead. So it seems there's really 1.5x available for the experienced, patient and brave --- especially given the following statement (same source): Version 1.30, which for several years has been declared to be the stable version of choice, is gradually getting out of date. I now recommend that current users try VERY, VERY CAUTIOUSLY to upgrade to v1.50. Don't do that the week before a critical deadline. - ---------------------------------------------------------------------- - IMPACT -------- Developer: Timothy Larkin, from Levy/Knuth CWEB 3.1 Version: 1.0 Hardware: Macintosh; requires AppleEvents. Languages: C, C++ Formatter: TeX Availability: CTAN archives Readme: A short readme file is included in the SEA archive. Description: IMPACT implements CTangle from the Levy/Knuth CWEB 3.1. It operates as a foreground program, tangling files selected from the Mac File Picker. Or it can operate in the background, tangling files in response to odoc events sent by other applications, such as editors. Support: I welcome any reports of bugs. The product will be updated as new versions of the CWEB appear. Other features may be added as users suggest them. - ---------------------------------------------------------------------- - lit2x ------- Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/independent Readme: Unknown Description: None available Support: Unknown - ---------------------------------------------------------------------- - Literate Programmer's Workshop (LPW) -------------------------------------- Developer: Norbert Lindenberg Version: 1.1 Hardware: Apple Macintosh Languages: C++, Object Pascal & others Formatter: self-contained WYSIWYG system Availability: Anonymous ftp from: LPA:/machines/mac CTAN:/web/lpw ftp.apple.com:/pub/literate.prog Readme: With bundle above. Also comes with 38-page manual. Description: The Literate Programming Workshop is an environment for the integrated development of program source text and documentation in combined documents. It consists of a WYSIWYG word processor based on a style sheet approach, a mechanism to extract parts of the text in a document, and a project management system that handles multi-document projects. The system is designed to be used in conjunction with the Macintosh Programmer's Workshop: it prepares raw source text for the MPW compilers, accepts MPW error messages, and shows them in the context of the original documents. Automatic indexing and hypertext features allow for easy access to both source text and documentation. LPW is shareware. Support: Bugs, problems, and questions to lpw@aol.com. - ---------------------------------------------------------------------- - MapleWEB ---------- Developer: Unknown Version: Unknown Hardware: Unknown Languages: Maple Formatter: Unknown Availability: Anonymous ftp from: LPA:/maple Readme: Unknown Description: None Support: Unknown - ---------------------------------------------------------------------- - MWEB (Schrod/Detig) --------------------- Developer: Joachim Schrod Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. - ---------------------------------------------------------------------- - MWEB (Sewell) --------------- Developer: Sewell Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. - ---------------------------------------------------------------------- - noweb ------- Developer: Norman Ramsey Version: 2.7a Hardware: Unix and DOS platforms. Languages: All programming languages. Automatic indexing for C, Icon, Standard ML, TeX, Yacc Formatter: Plain TeX, LaTeX, and HTML (Mosaic/Netscape) formatters. Availability: Anonymous ftp from: CTAN:/web/noweb LPA:/independent Last recourse, use bellcore.com:/pub/norman Readme: With bundle above, or see ``Literate Programming Simplified,'' IEEE Software, September 1994, pp97-105. Description: noweb is designed to meet the needs of literate programmers while retaining the simplest possible input format. Its primary advantages are simplicity, extensibility, and language-independence. noweb uses 5 control sequences to WEB's 27. The simple noweb manual is only 2 pages; documenting the full power of noweave and notangle requires another 3 pages. noweb works ``out of the box'' with any programming language, and a simple back end for a new text formatter can be written in about 50 lines of awk. The primary sacrifice relative to WEB is the loss of prettyprinting. noweb supports indexing and identifier cross-reference, including hypertext ``hot links'' courtesy of Mosaic or Netscape. noweb includes a simple, efficient LaTeX-to-HTML converter, so you can use hypertext browsers on your legacy documents. noweb can also process nuweb programs, so you can use noweb to convert a standard nuweb program to HTML with one command. Support: email to the author - ---------------------------------------------------------------------- - nuweb ------- Developer: Preston Briggs: preston@cs.rice.edu Version: 0.87 Hardware: Unix systems: Sparcs, RS/6000s, HPs; (!) MSDOS and Amiga. Languages: Any programming language or combination of programming languages. Formatter: Latex Availability: Anonymous ftp from: Unix: CTAN:/web/nuweb DOS: CTAN:/web/nuweb-pc LPA:/independent Amiga: CTAN:/web/nuweb/nuweb_ami Amiga: wuarchive.wustl.edu/pub/aminet Readme: Send mail to preston@cs.rice.edu Description: A single program that takes a web file written in a combination of latex and any programming language(s) and produces a latex file that can be pretty printed and a set of files containing code for compilation/interpretation by the appropriate language processors. Strengths include speed, simplicity, multiple languages, nice indices and cross-references, latex. Doesn't require any special macros or macro files. Drawbacks: latex-dependent, no code pretty printing, harder to make indices than cweb. More good stuff: nice support for make, doesn't reformat source files, so they're easy to debug. Lots of control without too much effort. That is, it doesn't do too much! Future directions... Very little change planned, except perhaps refinements in the indexing software. Support: Hack it yourself or send e-mail to preston@cs.rice.edu - ---------------------------------------------------------------------- - ProTeX -------- Developer: Eitan Gurari Version: ProTeX 1.1, AlProTeX 1.4 Hardware: Any platform with (La)TeX Languages: Any language Formatter: TeX or LaTeX Availability: Anonymous ftp from: ftp.cis.ohio-state.edu : pub/tex/osu/gurari/ LPA:/independent Readme: With bundle above Description: + Easy to use + Extensible + Language independent + Multiple output files + Fast (single compilation provides output and dvi files) + No installation is needed besides copying the files (written in TeX) Introduction of main features and examples in pub/tex/osu/gurari/LitProg Complete manual in Eitan M. Gurari, "TeX and LaTeX: Drawing and Literate Programming", McGraw-Hill, 1994 Support: gurari@cis.ohio-state.edu - ---------------------------------------------------------------------- - RWEB ------ Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/reduce Readme: Unknown Description: Web generator in AWK. Support: Unknown - ---------------------------------------------------------------------- - SchemeWEB ----------- Developer: John D. Ramsdell Version: 2.1 Hardware: Unix and DOS platforms Languages: Any dialect of Lisp. Formatter: LaTeX. Availability: The Unix version is in the Scheme Repository and it is available via anonymous ftp from: cs.indiana.edu:/pub/scheme-repository/utl/schemeweb.sh LPA:/lisp CTAN:/tex-archive/web/schemeweb The DOS version is part of the PCS/Geneva Scheme system which is available via anonymous ftp from: cui.unige.ch:/pub/pcs LPA:/machines/ms-dos Readme: In bundle with above. Description: SchemeWEB is a Unix filter that allows you to generate both Lisp and LaTeX code from one source file. The generated LaTeX code formats Lisp programs in typewriter font obeying the spacing in the source file. Comments can include arbitrary LaTeX commands. SchemeWEB was originally developed for the Scheme dialect of Lisp, but it can easily be used with most other dialects. Support: Bug reports to ramsdell@mitre.org. - ---------------------------------------------------------------------- - SpideryWEB ------------ Developer: Norman Ramsey Version: Unknown Hardware: Unix and DOS platforms Languages: Most Algol-like languages, including C, Ada, Pascal, Awk, and many others. Formatter: Plain TeX and latex for text formatters. Availability: Anonymous ftp from: CTAN LPA:/spiderweb Readme: In distribution. Description: A system for building language-dependent WEBs. Spider is frozen; no further development is planned. Support: Bug reports to spider-bugs@oracorp.com. - ---------------------------------------------------------------------- - WEB ----- Developer: Donald Knuth Version: Unknown Hardware: Unknown Languages: Pascal Formatter: TeX (of course! ;-) Availability: Anonymous ftp from: LPA:/pascal Readme: Unknown Description: This is the original software that started it all. The original TeX processor was written in WEB. Support: None known. - ---------------------------------------------------------------------- - WinWordWEB ------------ Developer: Lee Wittenberg Version: Unknown Hardware: Needs Microsoft Word for Windows, v.2.x, and, of course, MS-Windows 3.x. Languages: Any programming language. Formatter: Word for Windows 2.x for text formatting and file maintenance. Availability: Anonymous ftp from: bart.kean.edu:pub/leew LPA:/machines/ms-dos World-Wide Web (WWW) Readme: WORDWEB.DOC in the downloadable package describes the system. Description: WinWordWEB is a set of a Word for Windows macros (plus a paragraph style) that provide a crude literate programming environment. The ``look and feel'' of the system is based on Norman Ramsey's noweb, but can easily be modified to suit individual tastes. Support: None. WinWordWEB was written as a prototype to see if a WYSIWYG literate programming system was possible. It is intended as a jumping off point for future work by others. However, the system is surprisingly usable as it stands, and the author is interested in hearing from users (satisfied and dissatisfied). Anyone interested in actively supporting (and improving) the product should contact the author via email. = ====================================================================== * Are there other tools I should know about? -------------------------------------------- First of all, I'll list some not-quite-literate-programming tools. Some may consider these to be pretty-printers. Others may call them literate programming tools. In any event, they don't seem to be quite in the same category as the tools listed above, so I'll include them here. - C2LaTeX --------- Developer: John D. Ramsdell Version: Unknown Hardware: Unix Languages: C Formatter: LaTeX but it's easy to change the formatter. Availability: Anonymous ftp from omnigate.clarkson.edu:/pub/tex/tex-programs/c2latex. Readme: Absent. Documentation is in the C source for c2latex. Description: C2latex provides simple support for literate programming in C. Given a C source file in which the comments have been written in LaTeX, c2latex converts the C source file into a LaTeX source file. It can be used to produce typeset listings of C programs and/or documentation associated with the program. C2latex produces LaTeX source by implementing a small number of rules. A C comment that starts at the beginning of a line is copied unmodified into the LaTeX source file. Otherwise, non-blank lines are surrounded by a pair of formatting commands (\begin{flushleft} and \end{flushleft}), and the lines are separated by \\*. Each non-blank line is formatted using LaTeX's \verb command, except comments within the line are formatted in an \mbox. Support: Send bug reports to ramsdell@mitre.org. - ---------------------------------------------------------------------- - c2cweb -------- Developer: Werner Lemberg Version: 1.4 Hardware: DOS, OS/2, Unix (gcc) - CWEB source included Languages: C, C++ Formatter: TeX Availability: Anonymous ftp from CTAN:/web/c_cpp/c2cweb Readme: In distribution. Description: c2cweb will transform plain C or C++ code into a CWEB file to get a pretty formatted output. A modified CWEAVE (which transforms the CWEB file into a TeX file, see below) is included also. Support: Werner Lemberg - ---------------------------------------------------------------------- - c2man ------- language: C, nroff, texinfo, latex, html package: c2man version: 2.0 patchlevel 33 parts: documentation generator (C -> nroff -man, -> texinfo, ->latex, -> html) author: Graham Stoney location: ftp from any comp.sources.misc archive, in volume42 (the version in the comp.sources.reviewed archive is obsolete) ftp /pub/Unix/Util/c2man-2.0.*.tar.gz from dnpap.et.tudelft.nl Australia: ftp /usenet/comp.sources.misc/volume42/c2man-2.0/* from archie.au N.America: ftp /usenet/comp.sources.misc/volume42/c2man-2.0/* from ftp.wustl.edu Europe: ftp /News/comp.sources.misc/volume42/c2man-2.0/* from ftp.irisa.fr Japan: ftp /pub/NetNews/comp.sources.misc/volume42/c2man-2.0/* from ftp.iij.ad.jp Patches: ftp pub/netnews/sources.bugs/volume93/sep/c2man* from lth.se description: c2man is an automatic documentation tool that extracts comments from C source code to generate functional interface documentation in the same format as sections 2 & 3 of the Unix Programmer's Manual. It requires minimal effort from the programmer by looking for comments in the usual places near the objects they document, rather than imposing a rigid function-comment syntax or requiring that the programmer learn and use a typesetting language. Acceptable documentation can often be generated from existing code with no modifications. conformance: supports both K&R and ISO/ANSI C coding styles features: + generates output in nroff -man, TeXinfo, LaTeX or HTML format + handles comments as part of the language grammar + automagically documents enum parameter & return values + handles C (/* */) and C++ (//) style comments - doesn't handle C++ grammar (yet) requires: yacc/byacc/bison, lex/flex, and nroff/groff/texinfo/LaTeX. ports: Unix, OS/2, MSDOS, VMS. portability: very high for unix, via Configure status: actively developed; contributions by users are encouraged. discussion: via a mailing list: send "subscribe c2man " (in the message body) to listserv@research.canon.oz.au help: from the author and other users on the mailing list: c2man@research.canon.oz.au announcements: patches appear first in comp.sources.bugs, and then in comp.sources.misc. updated: 1994/10/07 - ---------------------------------------------------------------------- - cnoweb -------- Developer: Jim Fox Version: 1.4 (January 4, 1991) Hardware: Anything with C and TeX. Languages: C Formatter: Plain TeX. Availability: Anonymous ftp from: CTAN LPA:/c.c++ Readme: Unknown, cnoweb.tex contains documentation. Description: cnoweb is as it's name describes: write C, not web. No tangling or weaving is implemented. Documentation (between standard /* */ delimiteres) is written in TeX. cnoweb provides typesetting of documentation, an table of contents of routines, and pretty-printing of C source. Support: None known. - ---------------------------------------------------------------------- - Fold2Web ---------- Developer: Bernhard Lang Version: V0.8 Hardware: MSDOS Languages: All (must allow comment lines) Formatter: LaTeX Availability: Anonymous ftp from: kirk.ti1.tu-harburg.de (134.28.41.50) /pub/fold2web/readme /pub/fold2web/fold2web.zip Readme: In distribution Description: The idea behind the Fold2Web tool is the following: A programmer can write his program source with a folding editor and later map the folded source files automatically to WEB-files. The generated WEB-files can then be modified by inserting required documentations. The advantage by starting program developement with original sources is to get short design cycles during the compile/debug steps. By using a folding editor the global structuring information can be already captured in folds during this developement phase. Fold information is typically stored in comment lines and thus will not affect the efficiency of the compile/debug design cycle. Some folding editors and a folding mode for the emacs are available (e.g. see our FUE folding editor for MSDOS machines which is a modified micro emacs. Pick it at kirk in directory /pub/fold2web). After reaching a stable version of a program source its time to convert the source file to a WEB-file and do the program documentation. Fold2Web is written to convert folded source text of any programming language to nuweb files. The folded structure is kept by mapping folds to scraps. Fold markers which differ between languages due to different ways of specifying comments can be configured for each language. Good results can also achived when given but poor documented program sources have to be modified. Such sources can be folded using a folding editor to extract the global structures. This offers a global view to the program structures and help to understand its functionality. Furthermore the program code is not affected, only comment lines are inserted. Once folded the program source can be automatically translated to a WEB document using the above tool. Support: email to lang@tu-harburg.d400.de - ---------------------------------------------------------------------- - Funnelweb Mode ---------------- Developer: Daniel Simmons Version: Unknown Availability: Litprog archives (was in email) Anonymous ftp from: ftp.imada.ou.dk Description: The other day I did a quick hack to nuweb.el as included with the nuweb distribution so as to make a funnelweb-mode.el. I've only used it briefly, and I'm sure that it can be improved quite a bit. I've been thinking about adding support for folding on sections, a pull-down menu to select macro definitions (like the recent functions posted to gnu.emacs.sources for a C function definition pull-down menu) and some kind of tags support for funnelweb. Support: Unknown - ---------------------------------------------------------------------- - noweb.el ---------- Developer: Bruce Stephens Version: Unknown. Availability: LitProg archives (in an email message). Description: This is a very simple mode I just hacked up. There's a lot wrong with it, but I thought others may be interested, even as it stands. It *requires* text properties, and assumes those used in GNU Emacs 19.22; it'll quite likely work with Lucid Emacs, but I haven't tried it. I use it with auctex8.1 and cc-mode 3.229, both of which are loaded separately (I think my emacs is dumped with them, in fact). The idea is to have one mode (which calls itself c-mode, but actually has LaTeX-mode keybindings) generally (this means that the code is hilighted nicely), and have the code chunks use a different keymap. Support: Email to bruce@liverpool.ac.uk - ---------------------------------------------------------------------- - nuweb.el ---------- Developer: Dominique de Waleffe Version: 1.99 Availability: Anonymous ftp from: LPA CTAN Description: Provides a major mode extending Auctex for editing nuweb files. Main features (in 2.0): - Edit scrap bodies in a separate buffer in a different mode (selected using emacs defaults for files, specific indication -*-mode-*-, or a buffer-local variable) - Extends Auctex commands so that nuweb is called before LaTeX, - Easy navigation on scrap definition and use points. - Now creates an imenu (C-M-mouse1) with user index entries, macro definition positions and file definition positions. Support: Email to ddw@acm.org - ---------------------------------------------------------------------- - TIE ----- Developer: Unknown Version: Unknown Hardware: Unknown Availability: Anonymous ftp from: LPA:/Tools Readme: Unknown Description: This software merges change files. Support: Unknown - ---------------------------------------------------------------------- - Web mode ---------- Developer: Bart Childs Version: Unknown Tools supported: web, fweb, cweb, funnelweb Availability: Anonymous ftp from ftp.cs.tamu.edu:pub/tex-web/web/EMACS.web-mode thrain.anu.edu.au:pub/web/EMACS.web-mode Description: This version works with versions 18 and 19 of Emacs to be best of my knowledge. I have cleaned up a number of documentation items ... In the same directory is wm_refcard.tex which is an edited version of the famous one to include some web-mode commands. The files limbo* are related to its use and notice that half them have an uppercase L in them for LaTeX. The setup is based upon the fact that we (I am not alone here) primarily use FWEB for C and Fortran programming. We are using version 1.40 of FWEB although John Krommes warns that it is not mature and the manual is not yet updated. The info files are! We are using LaTeX almost exclusively. That will likely change and we will revert to version 1.30 if the final form of 1.40 cannot return to the simple section numbers and avoid the HORRIBLE LATEX 0.1.7.2.4.6 type section numbers. Support: Unknown = ====================================================================== * What other resources are available? ------------------------------------- - World Wide Web ---------------- An untapped resource (by me anyway ;-) is the World Wide Web. Marcus Speh has expended considerable effort in this regard. If you're connected to WWW, then access: http://info.desy.de:80/user/projects/LitProg.html If you aren't connected to WWW, telnet to info.cern.ch and explore. You can reach Marcus' literate programming pages by typing: go http://info.desy.de:80/user/projects/LitProg.html or use a WWW browser and access the URL ftp://rtfm.mit.edu/pub/usenet/news-answers/www/resources/literate-programming Help for people who have only Email and neither WWW nor telnet, can be obtained by Email from TEST-LIST@INFO.CERN.CH by sending a message, SEND , for example, SEND http://info.desy.de:80/user/projects/LitProg.html to retrieve the LitProg library page. A help file can be retrieved by sending a message to the list server above with the text HELP in the body of the message. Instructions will be returned by email. For literate programming documents, you can try anonymous ftp to rtfm.mit.edu and retrieve the official Usenet resource file /pub/usenet/news.answers/www/resources/literate-programming - ---------------------------------------------------------------------- - TeX Resources --------------- Another resource of interest to literate programmers is the comp.text.tex newsgroup. If you're using (La)TeX as your typsetting system and have access to internet, then you should investigate this resource. Another reason the TeX resources should be important is that so many of the literate programming tools rely on either plain TeX or LaTeX as their text formatter. (La)TeX software systems exist for most computing platforms. These systems can be found on CTAN and other major archive sites. Use archie to find them or simply ftp to one of the CTAN sites and browse. = ====================================================================== * Are there any code examples? ------------------------------ Examples of web programs are included with the FWEB, CWEB, and noweb distributions. nuweb is written in itself. Cameron Smith converted the K&R calculator program into a literate program. It can be retrieved by anonymous ftp from: niord.shsu.edu [192.92.115.8] directory kr-cweb-sample as krcwsamp.zip or from LPA/Documentation Ross Williams has released a funnelweb example. You can retrieve this file from node ftp.adelaide.edu.au [129.127.40.3] as /pub/funnelweb/examples/except.* This file should be on CTAN as well. Lee Wittenberg has posted a few litprog examples. They are available via anonymous ftp from: bart.kean.edu:/pub/leew/samples.LP The Stanford GraphBase is a large collection of programs by Don Knuth for doing all kinds of computations and games with graphs; it is written in (Levy/Knuth) CWEB. More details in the distribution. It is available via anonymous ftp from: labrea.stanford.edu:/pub/sgb = ====================================================================== * Bibliographies ---------------- Nelson Beebe has collected an extensive bibliography treating literate programming. His work is available for anonymous ftp from ftp.math.utah.edu [128.110.198.2] in directory /pub/tex/bib as files: litprog.bib litprog.ltx litprog.twx. Although I have not verified this, LPA is an alternate source for these files. Note that they are updated frequently (Nelson says several times each week), so be sure to get a fresh copy before extensive use. Joachim Schrod indicates that these files may be updated daily and can be retrieved via anonymous ftp at LPA/documentation. = ====================================================================== * How to anonymously ftp ------------------------ Pretty much everything mentioned here is available by anonymous FTP. FAQ lists cross-posted to news.answers and rec.answers can be gotten from rtfm.mit.edu [18.181.0.24], under /pub/usenet/news.answers or under /pub/usenet/more.specific.group.name "anonymous FTP" is just a way for files to be stored where anyone can retrieve them over the Net. For example, to retrieve the latest version of the literate programming FAQ, do the following: > ftp rtfm.mit.edu /* connect to the site; message follows */ > anonymous /* type this when it asks for your name */ > /* type your address as the password */ > cd /pub/usenet /* go to the directory you want to be */ > cd comp.programming.literate /* one level down (no slash). */ > dir /* look at what's there */ > get literate-progamming-faq /* get the file; case-sensitive */ > quit /* stop this mysterious thing */ If your FTP program complains that it doesn't know where the site you want to use is, type the numerical address instead of the sitename: > ftp 18.181.0.24 /* connect with numerical address */ If you don't have ftp access, send e-mail to mail-server@rtfm.mit.edu with the single word "help" in the body of the message. Getting binary files (executables, or any compressed files) is only slightly more difficult. You need to set binary mode inside FTP before you transfer the file. > binary /* set binary transfer mode */ > ascii /* set back to text transfer mode */ FAQs and spoiler lists are generally ascii files; everything else is generally binary files. Some common extensions on binary files in archive sites are: .Z Compressed; extract with uncompress .tar.Z Compressed 'tape archive'; uncompress then untar or tar -xvf .gz or .z Gnu gzip; use gunzip (available from prep.gnu.ai.mit.edu) .sit (Mac) StufIt archive .zip Extract with Zip or Unzip .zoo Yet another archive/compress program .lhe (Amiga) ? .lzh Lha archive program. .arj (PC) Arj archive program. .exe (PC) Sometimes self-extracting archives-just execute them. .uue or .UUE Transfer as text file; use uudecode to convert to binary .hqx (Mac) BinHex format; transfer in text mode Generic help can be found in the FAQs of comp.binaries. for how to transfer, extract, and virus-check binary files. (At rtfm.mit.edu) If you can't FTP from your site, use one of the following ftp-by-mail servers: ftpmail@decwrl.dec.com ftpmail@src.doc.ic.ac.uk ftpmail@cs.uow.edu.au ftpmail@grasp.insa-lyon.fr For complete instructions, send a message reading "help" to the server. If you don't know exactly what you're looking for, or exactly where it is, there are programs and servers that can help you. For more info, send e-mail to mail-server@rtfm.mit.with with the body of the message reading send usenet/news.answers/finding-sources Thanks to Aliza R. Panitz (the "buglady") for this text. I copied it verbatim from her post on faq-maintainers with only minor modifications. = ====================================================================== * Acknowledgements ------------------ This document would not have happened without the help of many people. Among them are Marcus Speh, George Greenwade, Rob Beezer, Joachim Schrod, Piet van Oostrum, and Ross N. Williams. A special thanks to Aliza R. Panitz for the text describing how to execute an anonymous ftp for files of interest. Any omissions from these acknowledgements should be considered an act of stupidity on my part. Of course, the authors of literate programming tools mentioned above all play a vital role in the vitality of literate programming. Furthermore, participants in the comp.programming.literate newsgroup (and associated mailing list) all contributed in various fashions. Thank all of you. = ====================================================================== * End notes ----------- This document will continue to evolve. I'm planning on adding entries for additional literate programming tools and will expand the sections on examples as more examples become available. Tools I will include are WEB (the original pascal version) for starters. Others will be added as I find and document them. Omission of a particular tool should not be considered a snub in any sense--simply an error or oversight on my part. = End of File ========================================================== 27-Jun-1997 17:43:09-GMT,4141;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id LAA24648 for ; Fri, 27 Jun 1997 11:43:07 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 27 Jun 1997 12:23:09 EST From: Dan Schmidt Reply-To: LitProg@SHSU.edu, dfan@harmonixmusic.com Subject: New releases of two noweb tools, dpp and fu Message-ID: Date: Fri, 27 Jun 1997 16:54:26 GMT To: LitProg@SHSU.edu dpp (current version 0.2.0) is a C/C++ prettyprinter for noweb that tries to make the output look just like CWEB. fu (current version 0.2) is a replacement for noweb's "finduses" filter that can be given the regexp for identifying indentifiers as an argument (in finduses, the pattern for identifiers is hardcoded). I released versions of these a couple of months ago that often failed on Unix systems; these releases should be much better. There are some new features as well, such as the -N option in dpp. Both tools are written in Perl. Sorry if that offends you. Personally, I think Perl and literate programming work very well together. Sources and docs, including feature lists, can be found at . All comments are appreciated. To whet your appetite, here are a few more details on dpp, which I haven't bothered to deTeXify: --- begin doc --- This is {\tt dpp}, a C/C++ pretty-printer for the literate programming tool {\tt noweb}. {\tt noweb} does not prettyprint code by default; by inserting {\tt dpp} into the {\tt noweb} pipeline, you can produce output similar to that of {\tt CWEB}. Here are some of the features of {\tt dpp}: \begin{itemize} \item Keywords are typeset in {\bf bold}, variables in {\it italics}, comments in roman, strings in {\tt typewriter}. \item Some punctuation is prettyprinted as well. \item Keywords are definable by the user with the `{\tt @ \%keyword}' construct. \item All instances of code quoting ({\tt [{}[ ]{}]}) are prettyprinted, including quotes inside comments and chunk names. \item Comments are optionally fed straight to \TeX, so that you use (for example) \TeX's extensive math typesetting capabilities. \item Indentation and line-breaking are not messed with. \item {\tt dpp} is written in Perl, which you may or may not consider an advantage. \end{itemize} To use {\tt dpp}, just provide the `{\tt -filter dpp}' option to {\tt noweave}. There are a few options: \begin{itemize} \item `{\tt -tex}' will send your comments to \TeX\ rather than print them verbatim. It is off by default to avoid nasty surprises for people running their programs through {\tt dpp} for the first time. \item `{\tt -cw}' compresses whitespace in the code. It compresses all whitespace not at the beginning of a line to one space, and expands whitespace between code and comments to four characters. Basically, it undoes hand-formatting that looks good when monospaced but bad in a proportional font. \item `{\tt -N}{\it root\/}' turns off prettyprinting for the chunk named {\it root\/} and all of its descendants. This way you can include a makefile or test data in your {\tt .nw} file without having it printed like C code. \end{itemize} To tell {\tt dpp} about a user-defined keyword such as {\tt Elephant}, simply insert a line such as `{\tt @ \%keyword Elephant}' into the {\tt .nw} file. Multiple keywords may be specified on a single line. {\tt dpp} was written by Dan Schmidt ({\tt dfan@alum.mit.edu}). The current version is 0.2.0. --- end doc --- -- Dan Schmidt -> dfan@harmonixmusic.com, dfan@alum.mit.edu Honest Bob & the http://www2.thecia.net/users/dfan/ Factory-to-Dealer Incentives -> http://www2.thecia.net/users/dfan/hbob/ Gamelan Galak Tika -> http://web.mit.edu/galak-tika/www/ 27-Jun-1997 21:36:41-GMT,941;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id PAA29913 for ; Fri, 27 Jun 1997 15:36:40 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 27 Jun 1997 16:24:41 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: New releases of two noweb tools, dpp and fu Message-ID: Date: Fri, 27 Jun 1997 20:44:16 GMT To: LitProg@SHSU.edu I haven't had a chance to look these over yet, but it might be nice to have some html on your web page. I made a minor change to dpp.nw to get to http://www.cs.virginia.edu/~nr/tmp/dpp.html. Please let me know what you think. Norman 7-Jul-1997 14:05:10-GMT,3297;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id IAA13611 for ; Mon, 7 Jul 1997 08:05:09 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 07 Jul 1997 08:34:44 EST From: ptjm@ican.net (Patrick TJ McPhee) Reply-To: LitProg@SHSU.edu, ptjm@ican.net Subject: The value of pretty-printing and syntax highlighting Message-ID: Date: Sat, 5 Jul 1997 17:05:56 GMT To: LitProg@SHSU.edu Donald Knuth's literate programming systems format code fragments using bold face for keywords, italics for variables and a variety of mathematical symbols for language operators. This approach to formatting has been eschewed in many subsequent systems, on the grounds that it makes it more difficult to support a variety of programming languages within a single literate framework. I've been wondering whether you lose anything when you abandon this sort of syntax-highlighting. I must admit that I prefer to see printed code with all the bolds and italics, and using normal text typefaces rather than typewriter-style typefaces. Part of the reason for this may be that I do a substantial amount of my work in C. Almost all of the keywords in C have to do with either variable declaration or flow control, so bolded keywords tend to be visual anchors to the tops of loops or the start of some other logical section of code. In a language like cobol, which uses keywords for everything, it seems like the the page would be speckled with bold-faced words, and perhaps they would fail to aid in comprehension. ML, which I think falls somewhere between C and cobol in terms of having keywords all over the place, is pretty-printed in Paulson's _ML for the Working Programmer_, and the decision taken there was to put keywords and symbols in a normal-weight typewriter font, and everything else in a fixed-pitch italic font. The result is highly-readable, but I'd say the main aid to comprehension here is good indentation. There is a long tradition of pretty-printing using indentation only, especially in Lisp. It seems like most of the published programs I've seen don't go beyond this. I think that's too bad, because it ultimately makes them harder to read than they would be if the publisher had made some judicious use of typographic niceties. Lisp listings, for example, could usually be helped out by putting subscripts on all those parentheses, and making nested parentheses different sizes, and using different type weights or ink colours for each set of parentheses, in addition to careful indentation. So, I think pretty-printing is generally good, although I acknowledge different languages have to be treated differently. I would go so far as to say that replacing certain ascii symbols with proper math symbols (eg, \times for *, and, in C, \equiv for ==) can act as an aid to comprehension, which ought to be the whole point. Does anybody have an alternate view? Is there any research on source-code comprehension? -- Patrick TJ McPhee East York Canada ptjm@ican.net 7-Jul-1997 19:44:36-GMT,1106;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id NAA22043 for ; Mon, 7 Jul 1997 13:44:35 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 07 Jul 1997 14:27:18 EST From: rsalz@opengroup.org (Rich Salz) Reply-To: LitProg@SHSU.edu, rsalz@opengroup.org Subject: Re: The value of pretty-printing and syntax highlighting Message-ID: Date: Mon, 7 Jul 1997 18:26:50 GMT To: LitProg@SHSU.edu In ptjm@ican.net (Patrick TJ McPhee) writes: >Does anybody have an alternate view? Is there any research on >source-code comprehension? The ACM Press has a book that's several years old. Something like Readable Programs, or some such. A couple-hundred pages with lots of sample output, all about typography for programming. Wish I still had my copy. /r$ 7-Jul-1997 19:48:06-GMT,2306;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id NAA22134 for ; Mon, 7 Jul 1997 13:48:05 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 07 Jul 1997 14:27:35 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: The value of pretty-printing and syntax highlighting Message-ID: Date: Mon, 7 Jul 1997 18:36:16 GMT To: LitProg@SHSU.edu In article , Patrick TJ McPhee wrote: >So, I think pretty-printing is generally good, although I acknowledge >different languages have to be treated differently. I would go so far as >to say that replacing certain ascii symbols with proper math symbols >(eg, \times for *, and, in C, \equiv for ==) can act as an aid to >comprehension, which ought to be the whole point. > >Does anybody have an alternate view? I think prettyprinting has its place, and that place is usually between book covers. I have argued before that programs under development are frequently edited, and given the current state of editing tools for literate programming, it does not make sense for the output of the woven document to look wildly different from the input that is edited. When a document is going to be put between covers and read widely, then it makes sense to fine-tune its appearance, and it is OK if the code fills with unreadable TeX hieroglyphics in the process. > Is there any research on source-code comprehension? @Book{Baecker90, author = "Ronald M. Baecker and Aaron Marcus", title = "Human Factors and Typography for More Readable Programs", pages = "366", publisher = "Addison-Wesley Publishing Co. (ACM Press)", address = "Reading, MA", year = "1990", price = "25.25/27.95", ISBN = "0-201-10745-7", note = "ACM Order number 706890", } -- Norman Ramsey -- moderator, comp.programming.literate http://www.cs.virginia.edu/~nr 8-Jul-1997 19:15:19-GMT,3845;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id NAA21876 for ; Tue, 8 Jul 1997 13:15:18 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 08 Jul 1997 13:53:12 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@samson.kean.edu Subject: Re: The value of pretty-printing and syntax highlighting Content-Type: TEXT/PLAIN; charset=US-ASCII Message-ID: MIME-Version: 1.0 Date: Tue, 8 Jul 1997 15:10:23 GMT To: LitProg@SHSU.edu On Sat, 5 Jul 1997, Patrick TJ McPhee wrote: > There is a long tradition of pretty-printing using indentation only, > especially in Lisp. It seems like most of the published programs I've > seen don't go beyond this. I think that's too bad, because it > ultimately makes them harder to read than they would be if the publisher > had made some judicious use of typographic niceties. Lisp listings, for > example, could usually be helped out by putting subscripts on all those > parentheses, and making nested parentheses different sizes, and using > different type weights or ink colours for each set of parentheses, in > addition to careful indentation. Most people (including Lispers) forget that when Lisp was first introduced, it followed the Algol-60 example of providing both a "hardware language" and a "publication language". (Incidentally, Algol-60's publication language is the basis for most typesetting prettyprinters. The the brief paragraphs concerning this in the Algol Revised Report are well worth reading for anyone interested in typeset prettyprinting.) Lisp's publication language was known as "M-expressions", to distinguish them from S-expressions. Programs written as M-expressions are much easier for humans to understand (not surprisingly, since that's what it's designed for). > So, I think pretty-printing is generally good, although I acknowledge > different languages have to be treated differently. I would go so far as > to say that replacing certain ascii symbols with proper math symbols > (eg, \times for *, and, in C, \equiv for ==) can act as an aid to > comprehension, which ought to be the whole point. I've been working on a program recently to teach myself Java. Naturally, I'm using LP (noweb), and just as naturally (because I wrote it), I'm using the Pretzel prettyprinter for Java. I found it much more pleasant to work with the prettyprinted listings than with untypeset code (my experience is in direct contrast to Norman Ramsey's, but this is more personal preference than anything else. I agree with Norman about the best place for prettyprinting being between the covers of books). I've also found a number of bugs when the prettyprinter got confused, and the indentation (or whatever) wasn't what I expected (because what I wrote wasn't what I thought I was writing). I firmly believe that web source should be set up in such a way that it can be prettyprinted or not, depending on the weaver's preference. I'm trying to set up my Java webs that way, but Pretzel doesn't currently typeset [[...]] stuff, so it isn't completely possible. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Computer Science Department | You cannot judge the importance of things Kean College of New Jersey | by the noise they make. Union, NJ 07083 | | -- James Hilton leew@samson.kean.edu | "Good-bye Mr. Chips" (1934) ------------------------------------------------------------------------ 9-Jul-1997 18:48:22-GMT,15301;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id MAA21697 for ; Wed, 9 Jul 1997 12:48:20 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 09 Jul 1997 13:21:53 EST From: "RON STARK" Reply-To: LitProg@SHSU.edu, MASTERLU@worldnet.att.net Subject: $$$$!!!STOP!!!$$$$ Date: 9 Jul 1997 17:53:31 GMT Message-ID: <01bc8caa$0148abc0$1c4192cf@kfwtjunl> To: LitProg@SHSU.edu begin 600 $$$STOP!!!$$$.nws M1G)O;3H@(E)/3B!35$%22R(@/$U!4U1%4DQ50'=O2 D-2XP,"!W:71H:6X@,B!-3TY42%,_/S\_ M/PT*/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]#0H-"EEO M=2!G;W1T82!B92!C2$@($AO=R!O;B!E87)T:"!D;R!Y;W4@=&AI;FL@ M>6]U(&-A;B!B=7D@-3 @9W)A;F0@9F]R(&$-"FQO=7-Y(#4@8G5C:W,_("!7 M96QL('1H870G2!A;B!I M;FET:6%L(&EN=F5S=&UE;G0@;V8@)#4N,# A#0H@4V\@22!T:&]U9VAT+" B M665A:"P@3\-"@T*07,@22!M96YT M:6]N960@8F5F;W)E+"!L:6ME(&UO2!S:V5P M=&EC86P@86YD(&$@;&ET=&QE#0IW;W)R:65D(&%B;W5T('1H92!L96=A;"!A M6]U2!724Q,('-O=6YD(&QI:V4L(&EF('EO M=2!P87)T:6-I<&%T93H-"@T*5V5L;"!'54534R!72$%4(2$N+BX@=VET:"!I M;B W(&1A>7,L($D@2!F M:7)S="!W965K+"!)#0IM861E(&%B;W5T("0R,"XP,"!T;R D,S N,# @9&]L M;&%R2!S:6UP;&4@86YD(&-O;G-I2!S=&5P6]U('-H;W5L9"!N;W<@:&%V92 U('-E86QE9 T*96YV96QO<&5S+"!E86-H M('=I=&@@82!P:65C92!O9B!P87!E6]U M(&YE960@=&\L(&)U="!T6]U M('!O2!T:&4@9F]L;&]W:6YG.@T*#0I&3U(@3D544T-!4$4@55-%4E,Z M#0HQ*2!#;&EC:R!O;B!A;GD@;F5W2!T:71L92P@;&EK92!T:&4@;VYE($D@=7-E M9"P@&%C=&QY(&%S#0II="!I6]U M6]U6]U+BD-"@T*-2D@3F]W('1H870@>6]U(&AA=F4@6]U6]U('!O2!S=6)J96-T(&EN('1H90T*)U-50DI%0U0@0D]8)RP@=&AE;B!G;R!T M;R!T:&4@;65S6]U6]U6]U2!A M;F0@)T,G(&ME>2!A="!T:&4@6]U('=I;&P@8F4@6]U"!T;R!F;VQL M;W2!&;W)T92=S(")&7!E(")&;W)T92!&7,A("!9;W4@;6%Y(&5V96YT M=6%L;'D@=V%N="!T;R!R96YT(&$@4"Y/+B!";W@@9'5E('1O('1H92!L87)G M92!A;6]U;G0-"F]F(&UA:6P@>6]U(')E8V5I=F4N("!)9B!Y;W4@=VES:"!T M;R!S=&%Y(&%N;VYY;6]U6]U(&-A;B!I;G9E;G0@82!N86UE#0IT;R!U M6]U('=I;&P@0T*;F%M92!A=" C-"!A M;F0@;VYL>2 U('!E2!6 M15)9($Q/5R$@($%V97)A9V4@:7,@<')O8F%B;&4@,C @=&\-"C,P(2!3;R!L M971S('!U="!T:&]S92!F:6=U6]U('=I;&P@;6%K93H-"@T*870C M-2 D,34N,# -"F%T(S0@)#(R-2XP, T*870C,R D,RPS-S4N,# -"F%T(S(@ M)#4P+#8R-2XP, T*870C,2 D-S4Y+#,W-2XP, T*#0I7:&5N('EO=7(@;F%M M92!I61A>2P@2E535"!,24M%(%E/52!A6]U('1H92!M;VYE>3\- M"E-O('=H870A(%=H870@87)E('1H92!C:&%N8V5S(&]F('1H870@:&%P<&5N M:6YG('=H96X@=&AE61A>2!A;F0@87)E('=I;&QI;F<@=&\@ M9VEV92!I="!A('1R>3\@($5S=&EM871E2!D87DN("!296UE;6)E2!& M04E23%D@86YD($A/3D535$Q9#0IA;F0@=&AI6]U#0IM;VYE>2!A M;F0@86QW87ES(&ME97 @86X@97EE(&]N('1H92!N97=S9W)O=7 @=&\@;6%K M92!S=7)E(&5V97)Y;VYE(&ES#0IP;&%Y:6YG(&9A:7)L>2X-"@T*4F5M96UB M97(L($A/3D535%D@25,@5$A%($].3%D@4$],24-9($E.(%1(25,@1T%-12X@ M(%EO=2!D;VXG="!N965D('1O(&-H96%T#0IT:&4@8F%S:6,@:61E82!I2$A#0H-"D=/3T0@3%5#2R!T;R!A;&P@86YD('!L M96%S92!P;&%Y(&9A:7)L>2!A;F0@2!T M:&4@=V%Y+"!I9B!Y;W4@=')Y('1O(&1E8V5I=F4-"G!E;W!L92!B>2!P;W-T M:6YG('1H92!M97-S86=E2!T;R!T:&4@71H:6YG(&)U="!O=7(@=&EM92$A M(" -"@T*4&QE87-E(')E;65M8F5R('1O(&1E8VQA6]U'1R82!I L;F-O;64N("!4:&%N:W,@;VYC92!A9V%I;B!A;F0@1T]/1 T*3%5#2RX@#0II ` end 10-Jul-1997 15:06:33-GMT,2008;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id JAA16479 for ; Thu, 10 Jul 1997 09:06:32 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 10 Jul 1997 09:44:47 EST From: Dan Schmidt Reply-To: LitProg@SHSU.edu, dfan@harmonixmusic.com Subject: Re: The value of pretty-printing and syntax highlighting Message-ID: Date: Thu, 10 Jul 1997 14:30:59 GMT To: LitProg@SHSU.edu Lee Wittenberg writes: | I firmly believe that web source should be set up in such a way that | it can be prettyprinted or not, depending on the weaver's preference. | I'm trying to set up my Java webs that way, but Pretzel doesn't | currently typeset [[...]] stuff, so it isn't completely possible. You might want to try my dpp prettyprinter; it is written for C/C++. but off the top of my head, it should work for Java, you'd just have to change the @keywords list (which doesn't require any knowledge of Perl). dpp does handle [[...]] constructs correctly. The big noticeable difference between dpp and something like Pretzel is that it doesn't change line-breaking or indentation. This makes it possible to catch everything with an ad hoc technique rather than having to construct a grammar. It's available at . If the change is as trivial as I claim, I'll put Java support in myself for the next release. -- Dan Schmidt -> dfan@harmonixmusic.com, dfan@alum.mit.edu Honest Bob & the http://www2.thecia.net/users/dfan/ Factory-to-Dealer Incentives -> http://www2.thecia.net/users/dfan/hbob/ Gamelan Galak Tika -> http://web.mit.edu/galak-tika/www/ 12-Jul-1997 4:04:02-GMT,64454;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id WAA05318 for ; Fri, 11 Jul 1997 22:03:59 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 11 Jul 1997 22:17:54 EST From: thompson@sun1.coe.ttu.edu Subject: comp.programming.literate FAQ Date: 11 Jul 1997 09:48:50 GMT Message-ID: Reply-To: LitProg@SHSU.edu, thompson@sun1.coe.ttu.edu To: LitProg@SHSU.edu Archive-name: literate-programming-faq Last-modified: 1996/11/19 Version: 1.1.17 Welcome to the Literate Programming Frequently Asked Questions List ------------------------------------------------------------------- Information contained in this document is the best available at preparation. The original file was dated October 15, 1993 (just for historical purposes). Disclaimer: "This FAQ is presented with no warranties or guarantees of ANY KIND including correctness or fitness for any particular purpose. The author of this document has attempted to verify correctness of the data contained herein; however, slip-ups can and do happen. If you use this data, you do so at your own risk." Copyright 1993-1996 by David B. Thompson. All rights reserved worldwide. Permission is granted to copy this document for free distribution so long as it remains intact and unmodified. For other arrangements, contact the author/maintainer via email: thompson@sun1.coe.ttu.edu. What's New? ----------- + My email address. + General cleanup. = ====================================================================== * Introduction or "What's this all about?" ------------------------------------------ This document is for new and experienced users of literate programming tools. The purpose is to explain the concept of literate programming and to provide a resource for locating files of interest to literate programmers and those interested in literate programming. The Literate Programming (LitProg) Frequently Asked Questions (FAQ) list is maintained by Dave Thompson, who can be reached at: thompson@cam203g.ce.ttu.edu * Preferred mailing address for FAQ related comments/questions. Comment and constructive criticism is welcome. Direct flames to /dev/null (or nul if you're a msdos user! ;-) If you find an error, please report it. I'm particularly interested in establishing the locations of generally available literate programming tools. If you are the author of such a tool and wish to have it included in this list, please send email. Please note this is a work-in-progress. It is *not* complete, and probably will never be complete. Nevertheless, the information contained herein may be useful to some. Use it as it is intended. - ---------------------------------------------------------------------- - Typography ------------ Major sections of the FAQ are divided by double lines (====). Minor sections and other divisions are separated by single lines (----). Major topics use a "* " as a leader. Minor topics use a "- " as a leader. This should simplify searching for topics. = ====================================================================== Table of Contents: ------------------ * Introduction, or "What's this all about?" - Typography * How do I get the FAQ? - Literate Programming FAQ - FWEB FAQ * Is there a newsgroup? (The comp.programming.literate newsgroup) * What internet nodes are of interest to literate programmers? * What is literate programming? * How do I begin literate programming? * What literate programming tools are available and where are they? - APLWEB - AWEB - CLiP - CWEB - CWEBx3.0 - FunnelWeb - FunnelWeb3.0AC - FWEB - IMPACT - lit2x - Literate Programmer's Workshop (LPW) - MapleWEB - MWEB (Schrod/Detig) - MWEB (Sewell) - noweb - nuweb - ProTeX - RWEB - SchemeWEB - Spidery WEB - WEB - WinWordWEB * Are there other tools I should know about? - C2LaTeX - c2cweb - c2man - cnoweb - Fold2web - FunnelWeb mode - noweb.el - nuweb.el - TIE - Web mode * What other resources are available? - TeX Resources - Virtual Coursework * Are there any code examples? - Examples included with developer's tools - Cameron Smith's KR-CWEB - Stanford GraphBase * Bibliographies. * How to anonymously ftp. * Acknowledgements. * End notes. = ====================================================================== * How do I get the FAQ? ----------------------- - Literate Programming FAQ -------------------------- You have many ways to get a current copy of this FAQ. One is to use anonymous ftp (if you don't know how, see a later section in this FAQ) to connect to one of the Comprehensive TeX Arvchive Network (CTAN) sites or the Literate Programming Archive and retrieve a copy of the file. Open an ftp connection to one of the CTAN sites and retrieve the file: help/LitProg-FAQ (For more information on CTAN and the literate programming archive, see the section below entitled "Internet Nodes of Interest to Literate Programmers.") - ---------------------------------------------------------------------- - FWEB FAQ ---------- David Coker maintains the FWEB FAQ. The current version number is 1.30a. It can be retrieved in the same way as this FAQ. The FWEB FAQ exists in various formats, including HyperText (see other resources below). In Europe, the complete distribution can also be obtained from ftp.desy.de [131.169.10.115] in directory /pub/faq/web/fweb/. It is also available from the literate programming archive (LPA) in the directory LPA/Documentation/faq/fweb (see the references to LPA below for more information). = ====================================================================== * Is there a newsgroup? ----------------------- One of the most important resources is the literate programming newsgroup, comp.programming.literate. You can read this newsgroup using your standard reader. = ====================================================================== * What internet nodes are of interest to literate programmers? -------------------------------------------------------------- The principal nodes of interest to literate programmers are the Literate Programming Archive (LPA hereafter) and the CTAN (Comprehensive TeX Archive Network). The Literate Programming Archive (LPA) is: Node: ftp.th-darmstadt.de [130.83.55.75] Directory: programming/literate-programming Notes: Fastest response during off-U.S. [yep] business hours. Participating hosts in the Comprehensive TeX Archive Network are: ftp.dante.de (Deutschland) -- anonymous ftp /tex-archive (/pub/tex /pub/archive) -- gopher on node sun.dante.de -- e-mail via ftpmail@dante.de -- Administrator: ftp.tex.ac.uk (England) -- anonymous ftp /tex-archive (/pub/tex /pub/archive) -- gopher on node gopher.tex.ac.uk -- NFS mountable from nfs.tex.ac.uk:/public/ctan/tex-archive -- World Wide Web access on www.tex.ac.uk -- Administrator: The site ftp.shsu.edu used to be the American CTAN site. Apparently, that site has fallen into disrepair and should not be considered a primary source for either TeX related or literate programming related material. For the record, the address is: ftp.shsu.edu (Texas, USA) -- anonymous ftp and gopher /tex-archive (/pub/tex /pub/archive) -- NFS mountable from ftp.SHSU.edu:/pub/ftp/tex-archive -- e-mail via ftpmail@ftp.SHSU.edu -- World Wide Web access on www.SHSU.edu -- Administrator: A list of CTAN archive sites and their mirrors can be found on: ftp.dante.de:/tex-archive/CTAN.sites I presume that the other CTAN sites mirror this file, but have not checked. As of my last check (September 1994), it contains: "In order to reduce network load, it is recommended that you use the Comprehensive TeX Archive Network (CTAN) host which is located in the closest network proximity to your site." Known partial mirrors of the CTAN reside on (alphabetically): dongpo.math.ncu.edu.tw (Taiwan) /tex-archive ftp.adfa.oz.au (Australia) /pub/tex/ctan ftp.muni.cz (The Czech Republic) /pub/tex/CTAN ftp.cs.ruu.nl (The Netherlands) /pub/tex-archive ftp.uu.net (Virginia, USA) /pub/text-processing/TeX nic.switch.ch (Switzerland) /mirror/tex Known mirrors of the CTAN reside on (alphabetically): ftp.center.osaka-u.ac.jp (Japan) /CTAN ftp.ccu.edu.tw (Taiwan) /pub/tex ftp.cs.rmit.edu.au (Australia) /tex-archive ftp.duke.edu (North Carolina, USA) /tex-archive ftp.germany.eu.net (Deutschland) /pub/packages/TeX ftp.gwdg.de (Deutschland) /pub/dante ftp.jussieu.fr (France) /pub4/TeX/CTAN ftp.loria.fr (France) /pub/unix/tex/ctan ftp.mpi-sb.mpg.de (Deutschland) /pub4/tex/mirror/ftp.dante.de ftp.uni-bielefeld.de (Deutschland) /pub/tex ftp.uni-stuttgart.de (Deutschland) /tex-archive (/pub/tex) ftpserver.nus.sg (Singapore) /pub/zi/TeX src.doc.ic.ac.uk (England) /packages/tex/uk-tex sunsite.unc.edu (North Carolina, USA) /pub/packages/TeX wuarchive.wustl.edu (Missouri, USA) /packages/TeX Other nodes and directories of interest include: Node: ftp.desy.de [131.169.10.115] Directory: pub/web. Various documents, samples, and the FWEB FAQ. Notes: Has a www server, http://info.desy.de:80/ = ====================================================================== * What is Literate Programming? ------------------------------- Literate programming is the combination of documentation and source together in a fashion suited for reading by human beings. In fact, literate programs should be enjoyable reading, even inviting! (Sorry Bob, I couldn't resist!) In general, literate programs combine source and documentation in a single file. Literate programming tools then parse the file to produce either readable documentation or compilable source. The WEB style of literate programming was created by D.E. Knuth during the development of his TeX typsetting software. All the original work revolves around a particular literate programming tool called WEB. Knuth says: The philosophy behind WEB is that an experienced system programmer, who wants to provide the best possible documentation of his or her software products, needs two things simultaneously: a language like TeX for formatting, and a language like C for programming. Neither type of language can provide the best documentation by itself; but when both are appropriately combined, we obtain a system that is much more useful than either language separately. The structure of a software program may be thought of as a web that is made up of many interconnected pieces. To document such a program we want to explain each individual part of the web and how it relates to its neighbours. The typographic tools provided by TeX give us an opportunity to explain the local structure of each part by making that structure visible, and the programming tools provided by languages such as C or Fortran make it possible for us to specify the algorithms formally and unambigously. By combining the two, we can develop a style of programming that maximizes our ability to perceive the structure of a complex piece of software, and at the same time the documented programs can be mechanically translated into a working software system that matches the documentation. Another author (Eric W. van Ammers) wrote me a short article treating his opinions on literate programming. The text follows: First observation on LP About 90% of the disussion on this list is about problems with applying some WEB-family member to a particular programming language or a special documentation situation. This is ridiculous, I think. Let me explain shortly why... Lemma 1: I have proposed for many years that programming has nothing to do with programming langauges, i.e. a good programmer makes good programs in any language (given some time to learn the syntax) and a bad programmer will never make a good program, no matter the language he uses (today many people share this view, fortunately). Lemma 2: Literate Programming has (in a certain way not yet completely understood) to do with essential aspects of programming. Conclusion 1: A LP-tool should be independent of programming language. Lemma 3: It seems likely that the so called BOOK FORMAT PARADIGM [ref. 1] plays an important role in making literate programs work. Lemma 4: There are very many documentation systems currently being used to produce documents in the BOOK FORMAT. Conclusion 2: A LP-tool should be independent of the documentation system that the program author whishes to use. My remark some time ago that we should discuss the generic properties of an LP-tool was based on the above observation. References: [1] Paul W. Oman and Curtus Cook. Typographical style is more than cosmetic. CACM 33, 5, 506-520 (May 1990) Second observation on LP The idea of a literate program as a text book should be extendend even further. I would like to see a literate program as an (in)formal argument of the correctness of the program. Thus a literate program should be like a textbook on mathematicics. A mathematical textbook explains a theory in terms of lemma and theorems. But the proofs are never formal in the sense that they are obtaind by symbol manipulation of a proof checker. Rather the proofs are by so called "informal rigour", i.e. by very precise and unambiguous sentences in a natural language. Eric W. van Ammers Department of Computer Science Wageningen Agricultural University Dreijenplein 2 E-mail: ammers@rcl.wau.nl 6703 HB Wageningen voice: +31 (0)8370 83356/84154 The Netherlands fax: +31 (0)8370 84731 Another author (Norman Ramsey) wrote me and asked that his opinions be included in the FAQ. What follows are Norman's comments verbatim. I see it's time for the ``how is literate programming different from verbose commenting'' question. Perhaps David Thompson will get this into the FAQ. Alert! What follows are my opinions. In no way do I claim to speak for the (fractious) literate-programming community. How is literate programming different from verbose commenting? There are three distinguishing characteristics. In order of importance, they are: - flexible order of elaboration - automatic support for browsing - typeset documentation, especially diagrams and mathematics Flexible order of elaboration means being able to divide your source program into chunks and write the chunks in any order, independent of the order required by the compiler. In principle, you can choose the order best suited to explaining what you are doing. More subtly, this discipline encourages the author of a literate program to take the time to consider each fragment of the program in its proper sphere, e.g., not to rush past the error checking to get to the ``good parts.'' In its time and season, each part of the program is a good part. (This is the party line; your mileage may vary.) I find the reordering most useful for encapsulating tasks like input validation, error checking, and printing output fit for humans --- all tasks that tend to obscure ``real work'' when left inline. Reordering is less important when using languages like Modula-3, which has exceptions and permits declarations in any order, than when using languages like C, which has no exceptions and requires declaration before use. Automatic support for browsing means getting a table of contents, index, and cross-reference of your program. Cross-reference might be printed, so that you could consult an index to look up the definition of an identifier `foo'. With good tools, you might get a printed mini-index on every page if you wanted. Or if you can use a hypertext technology, cross-reference might be as simple as clicking on an identifier to reach its definition. Indexing is typically done automatically or `semi-automatically', the latter meaning that identifier definitions are marked by hand. Diligently done semi-automatic indexes seem to be best, because the author can mark only the identifiers he or she considers important, but automatic indexing can be almost as good and requires no work. Some tools allow a mix of the two strategies. Some people have applied literate-programming tools to large batches of legacy code just to get the table of contents, index, and cross-reference. I don't use diagrams and mathematics very often, but I wouldn't want to have to live without them. I have worked on one or two projects where the ability to use mathematical formulae to document the program was indispensible. I also wouldn't like to explain some of my concurrent programs without diagrams. Actually I write almost all of my literate programs using only sections headers, lists, and the occasional table. >Wouldn't it be easier to do one's literate programming using a wysiwyg >word processor (e.g. Word for Windows) and indicate what is source >code by putting it in a different font? The data formats used in wysiwyg products are proprietary, and they tend to be documented badly if at all. They are subject to change at the whim of the manufacturer. (I'll go out on a limb and say there are no significant wysiwyg tools in the public domain. I hope the Andrew people will forgive me.) These conditions make it nearly impossible to write tools, especially tools that provide automatic indexing and cross-reference support. The CLiP people have a partial solution that works for tools that can export text --- they plant tags and delimiters throughout the document that enable the reordering transformation (``tangling''). People use TeX, roff, and HTML because free implementations of these tools are widely available on a variety of platforms. TeX and HTML are well documented, and TeX and roff are stable. TeX is the most portable. I think I have just answered the FAQ ``how come all these tools use TeX, anyway?'' :-) Norman Ramsey = ====================================================================== * How do I begin literate programming? -------------------------------------- A recommended book is D.E. Knuth's collection of articles (1992) "Literate Programming," Center for the Study of Language and Information, Stanford University, ISBN 0-937073-80-6 (pbk). This book gives insight into Knuth's thoughts as he developed the web system of literate programming (and TeX for typesetting). It does not document methods for literate programming. A recommended book is Wayne Sewell's (1989) "Weaving a Program: Literate Programming in WEB," Van Nostrand Reinhold, ISBN 0-442-31946-0 (pbk). This book focuses on using Knuth's web system. Some talk exists in the newsgroup/mailing list for a Usenet University course in literate programming. I'm sure discussion of this topic will be welcomed. If you are interested, please participate. = ====================================================================== * What literate programming tools are available and where are they? ------------------------------------------------------------------- A significant number of tools for literate programming are available. Most have been ported from their original systems, so support multiple computer platforms. If you are the developer of such a tool, and would like to make the software freely available, please send me email and I'll reply with a form (like those below) for you to fill in. (Or short-circuit the process and kludge a form from below. :-) - ---------------------------------------------------------------------- - APLWEB -------- Developer: Christoph von Basum Version: Unknown Hardware: MSDOS Languages: IBM APL2 and STSC APL Formatter: Plain TeX Availability: Anonymous ftp from: LPA:/apl watserv1.uwaterloo.ca:/languages/apl/aplweb Readme: Unknown Description: None available. Support: Unknown Note: The status of this particular package is unknown. - ---------------------------------------------------------------------- - AWEB ------ Developer: Unknown Version: Unknown Hardware: Unknown Languages: Ada Formatter: Unknown Availability: Anonymous ftp from: LPA:/ada/web Readme: Unknown Description: None available Support: Not supported. - ---------------------------------------------------------------------- - CLiP ------ Developer: E.W. van Ammers and M.R. Kramer Version: Unknown Hardware: Vax/VMS, Unix, and MS-DOS Languages: Any programming language. Formatter: Any formatter (TeX, LaTeX, Troff, Runoff, etc) or any wordprocessor including WYSIWYG systems (Word Perfect, Win Word, Ami Pro, Word, etc.) Availability: Anonymous ftp from: sun01.info.wau.nl:/CLIP/ms_dos MS-DOS version sun01.info.wau.nl:/CLIP/vax_vms VAX/VMS version CTAN:/web/clip LPA:/machines/ms-dos LPA:/machines/vax Readme: With bundle above Description: CLiP does not use explicite commands to perform the extraction process. Rather it recognizes pseudostatemens written as comments in the programming language in question. CLiP distinguishes pseudostatments from ordinary comments because the former comply with a a particular style. This style can be adjusted to suit virtually any programming language. The CLiP approach to LP makes the system extremely versatile. It is independent of programming language and text processing environment. We designed CLiP to be compatible with hypertext systems as well but we have not yet experimented with this form of documentation. Features: + CLiP imposes virtually no limitations on the text-processing system used to produce the documentation. If the text-processor supports these items you can + structure the documentation according to your own taste. + include drawings, pictures, tables etc. + disclose your documentatio my means of X-ref tables, Indexes, Table of contents, Table of tables, Table of figures, etc. + typeset the documented code. + Extracts any number of modules from a maximum of 64 source files. + No pretty-printing. Code from the source files is copied "as is" to the module. + Appearance of code segments in the documentation matches those of the modules to ease the identification of code segements. + Supports partially specified data types. + Comprehensive user manual (preliminary version) and technical description. - No automatic generation of a X-ref table for program identifiers. Support: Bugs, problems and assistance by e-mail: ammers@rcl.wau.nl - ---------------------------------------------------------------------- - CWEB ------ Developer: Silvio Levy and D.E. Knuth Version: 3.0 Hardware: Unix systems (dos and amiga ports available) Languages: C and C++ Formatter: Plain TeX and LaTeX. Availability: Anonymous ftp from: labrea.stanford.edu:/pub/cweb LPA:/c.c++ CTAN:/web/c_cpp/cweb DOS version in CTAN:/web/c_cpp/cwb30p8c DOS version in LPA:/machines/ms-dos Amiga version CTAN:/web/c_cpp/AmigaCWEB Mac port of CTANGLE in LPA:/machines/mac LaTeX support in LPA:/c.c++ Readme: Bundled with above Description: No description provided. Support: Bugs to levy@math.berkeley.edu - ---------------------------------------------------------------------- - CWEBx3.0: ----------- Developer: Marc van Leeuwen Version: Unknown Hardware: Any system using ASCII code Languages: ANSI C Formatter: Plain TeX Availability: Anonymous ftp from: ftp.cwi.nl/pub/cweb Readme: Bundled with above Brief description: A modified implementation of CWEB, with some extensions. Provides a mode for full compatibility with Levy/Knuth CWEB. The most significant extras are: - Typedef declarations affect formatting througout source file - Include files are scanned for typedef definitions - Flexible selection of layout style - Possibility to refer to sections using symbolic labels - CTANGLE detects unbalanced braces and parentheses - CWEAVE can be made to report syntax errors more easily - Some additional mechanisms to avoid formatting problems - New and modular set of grammar rules, based on ANSI C syntax - Possibility to suppress #line directives - A new manual Support: bugs and remarks to M.van.Leeuwen@cwi.nl - ---------------------------------------------------------------------- - FunnelWeb ----------- Developer: Ross N. Williams: ross@guest.adelaide.edu.au Version: Unknown Hardware: MSDOS, Mac, VMS, Sun. Other ports reported. Languages: No restrictions. Formatter: Plain TeX for printing. Otherwise, no restrictions. Availability: Anonymous ftp from: CTAN:/web/funnelweb LPA:/independent ftp.adelaide.edu.au:/pub/funnelweb Readme: With bundle above. Description: FunnelWeb is a production-quality literate-programming tool that emphasises simplicity and reliability. Everything about FunnelWeb, from the simplicity of its language to the comprehensive tutorial in the user's manual, has been designed to make this as simple, as practical, and as usable a tool as possible. Features: + Provides a simple macro preprocessor facility. + Can produce typeset documentation. + Runs on Sun, VMS VAX, Macintosh, PC, and others. + Portable C source code distributed under GNU licence. + Comprehensive user's manual including tutorial. + Programming-language independent. + Can generate multiple output files. + Allows complete control over the output text. + Regression test suite with over 200 tests. + Fully worked example (in /pub/funnelweb/examples). - Requires TeX to produce typeset documentation. - Typesets program code using TT font only. Support: No formal support available. Mailing list maintained with about 50 subscribers. Informal assistance available from mailing list. - ---------------------------------------------------------------------- - FunnelWeb 3.0AC ----------------- Developer: Enhanced by A.B.Coates (coates@physics.uq.edu.au) from FunnelWeb v3.0 by Ross N. Williams (ross@guest.adelaide.edu.au) Version: 3.0AC Hardware: MSDOS, Mac, VMS, Sun, OSF/1, Linux, Sys.V, OS/2. Languages: No restrictions. Formatter: Tex, LaTeX, or HTML. Availability: Anonymous ftp from ftp.physics.uq.oz.au:/pub/funnelwebAC30.tar.gz Readme: With bundle above; for FunnelWeb manual see WWW page http://www.physics.uq.oz.au:8001/people/coates/funnelweb.html Description: FunnelWeb 3.0AC is an enhanced version of FunnelWeb (see the entry for FunnelWeb). FunnelWeb is designed to be typesetter independent, though FunnelWeb v3.0 only supports (La)TeX as the typesetter. FunnelWeb 3.0AC also supports HTML, and creates appropriate hypertext links within the document among the code sections. FunnelWeb 3.0AC also supports automatic and manual insertion of line directives, so that compiler errors can be flagged back to the original FunnelWeb source file. FunnelWeb 3.0AC is completely compatible with FunnelWeb v3.0 sources (with one minor exception; see the file README.ABC which comes with the FunnelWeb 3.0AC distribution). Support: Supported by A.B.Coates (coates@physics.uq.edu.au), subject to the time constraints imposed by his thesis. - ---------------------------------------------------------------------- - FWEB ------ Developer: John A. Krommes Version: 1.30a (1.40 for the experienced, patient, and brave) Hardware: Unix, VMS, and DOS platforms (anything with ANSI C) Languages: C, C++, Fortran-77, Fortran-90, Ratfor, TeX; also, a language-independent mode. Formatter: Plain TeX and LaTeX. Availability: Anonymous ftp from: ftp.pppl.gov:/pub/fweb CTAN:/web/fweb LPA:/fweb DOS version in LPA:/machines/ms-dos Readme: In bundle with above. Description: It also has a well-developed user's manual and its own FAQ (see above). Beginning with 1.40, documentation is maintained in gnu texinfo format. It runs on most platforms: VMS, PC, UNIX, and pretty much anything that the GNU C compiler (GCC) is supported for. Features: + Processes multiple languages during a single run (so one can mix C and Fortran, for example). + Language-independent mode (v1.40). + Ability to turn off pretty-printing (v1.40). + Built-in Ratfor translator. + Built-in macro preprocessor (closely follows ANSI C, with extensions). + A style file that allows the user to adjust many parameters and behavior patterns of FWEB. + Various operator-overloading features that provide additional pretty-printing capabilities to languages such as C++ and Fortran-90. + Numerous miscellaneous features and command-line options. Support: Bug reports and suggestions to krommes@princeton.edu The following text was relayed by utcke@tu-harburg.d400.de recently. A new entry for this FAQ will eventually be prepared. NOTICE (June 12, 1995) The 1.52 tar file was regenerated. If your version of that file included the file web/defaults.mk, you should say `make clean' before beginning the installation process, or use the new tar file. NOTICE (June 10, 1995) Version 1.52 is available. More bug fixes. 1.5x will remain in beta-testing until about Sept. 1, 1995; further changes are hoped to be minimal. If you have previously picked up 1.50 or 1.51, you definitely should install 1.52 instead. So it seems there's really 1.5x available for the experienced, patient and brave --- especially given the following statement (same source): Version 1.30, which for several years has been declared to be the stable version of choice, is gradually getting out of date. I now recommend that current users try VERY, VERY CAUTIOUSLY to upgrade to v1.50. Don't do that the week before a critical deadline. - ---------------------------------------------------------------------- - IMPACT -------- Developer: Timothy Larkin, from Levy/Knuth CWEB 3.1 Version: 1.0 Hardware: Macintosh; requires AppleEvents. Languages: C, C++ Formatter: TeX Availability: CTAN archives Readme: A short readme file is included in the SEA archive. Description: IMPACT implements CTangle from the Levy/Knuth CWEB 3.1. It operates as a foreground program, tangling files selected from the Mac File Picker. Or it can operate in the background, tangling files in response to odoc events sent by other applications, such as editors. Support: I welcome any reports of bugs. The product will be updated as new versions of the CWEB appear. Other features may be added as users suggest them. - ---------------------------------------------------------------------- - lit2x ------- Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/independent Readme: Unknown Description: None available Support: Unknown - ---------------------------------------------------------------------- - Literate Programmer's Workshop (LPW) -------------------------------------- Developer: Norbert Lindenberg Version: 1.1 Hardware: Apple Macintosh Languages: C++, Object Pascal & others Formatter: self-contained WYSIWYG system Availability: Anonymous ftp from: LPA:/machines/mac CTAN:/web/lpw ftp.apple.com:/pub/literate.prog Readme: With bundle above. Also comes with 38-page manual. Description: The Literate Programming Workshop is an environment for the integrated development of program source text and documentation in combined documents. It consists of a WYSIWYG word processor based on a style sheet approach, a mechanism to extract parts of the text in a document, and a project management system that handles multi-document projects. The system is designed to be used in conjunction with the Macintosh Programmer's Workshop: it prepares raw source text for the MPW compilers, accepts MPW error messages, and shows them in the context of the original documents. Automatic indexing and hypertext features allow for easy access to both source text and documentation. LPW is shareware. Support: Bugs, problems, and questions to lpw@aol.com. - ---------------------------------------------------------------------- - MapleWEB ---------- Developer: Unknown Version: Unknown Hardware: Unknown Languages: Maple Formatter: Unknown Availability: Anonymous ftp from: LPA:/maple Readme: Unknown Description: None Support: Unknown - ---------------------------------------------------------------------- - MWEB (Schrod/Detig) --------------------- Developer: Joachim Schrod Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. - ---------------------------------------------------------------------- - MWEB (Sewell) --------------- Developer: Sewell Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. - ---------------------------------------------------------------------- - noweb ------- Developer: Norman Ramsey Version: 2.7a Hardware: Unix and DOS platforms. Languages: All programming languages. Automatic indexing for C, Icon, Standard ML, TeX, Yacc Formatter: Plain TeX, LaTeX, and HTML (Mosaic/Netscape) formatters. Availability: Anonymous ftp from: CTAN:/web/noweb LPA:/independent Last recourse, use bellcore.com:/pub/norman Readme: With bundle above, or see ``Literate Programming Simplified,'' IEEE Software, September 1994, pp97-105. Description: noweb is designed to meet the needs of literate programmers while retaining the simplest possible input format. Its primary advantages are simplicity, extensibility, and language-independence. noweb uses 5 control sequences to WEB's 27. The simple noweb manual is only 2 pages; documenting the full power of noweave and notangle requires another 3 pages. noweb works ``out of the box'' with any programming language, and a simple back end for a new text formatter can be written in about 50 lines of awk. The primary sacrifice relative to WEB is the loss of prettyprinting. noweb supports indexing and identifier cross-reference, including hypertext ``hot links'' courtesy of Mosaic or Netscape. noweb includes a simple, efficient LaTeX-to-HTML converter, so you can use hypertext browsers on your legacy documents. noweb can also process nuweb programs, so you can use noweb to convert a standard nuweb program to HTML with one command. Support: email to the author - ---------------------------------------------------------------------- - nuweb ------- Developer: Preston Briggs: preston@cs.rice.edu Version: 0.87 Hardware: Unix systems: Sparcs, RS/6000s, HPs; (!) MSDOS and Amiga. Languages: Any programming language or combination of programming languages. Formatter: Latex Availability: Anonymous ftp from: Unix: CTAN:/web/nuweb DOS: CTAN:/web/nuweb-pc LPA:/independent Amiga: CTAN:/web/nuweb/nuweb_ami Amiga: wuarchive.wustl.edu/pub/aminet Readme: Send mail to preston@cs.rice.edu Description: A single program that takes a web file written in a combination of latex and any programming language(s) and produces a latex file that can be pretty printed and a set of files containing code for compilation/interpretation by the appropriate language processors. Strengths include speed, simplicity, multiple languages, nice indices and cross-references, latex. Doesn't require any special macros or macro files. Drawbacks: latex-dependent, no code pretty printing, harder to make indices than cweb. More good stuff: nice support for make, doesn't reformat source files, so they're easy to debug. Lots of control without too much effort. That is, it doesn't do too much! Future directions... Very little change planned, except perhaps refinements in the indexing software. Support: Hack it yourself or send e-mail to preston@cs.rice.edu - ---------------------------------------------------------------------- - ProTeX -------- Developer: Eitan Gurari Version: ProTeX 1.1, AlProTeX 1.4 Hardware: Any platform with (La)TeX Languages: Any language Formatter: TeX or LaTeX Availability: Anonymous ftp from: ftp.cis.ohio-state.edu : pub/tex/osu/gurari/ LPA:/independent Readme: With bundle above Description: + Easy to use + Extensible + Language independent + Multiple output files + Fast (single compilation provides output and dvi files) + No installation is needed besides copying the files (written in TeX) Introduction of main features and examples in pub/tex/osu/gurari/LitProg Complete manual in Eitan M. Gurari, "TeX and LaTeX: Drawing and Literate Programming", McGraw-Hill, 1994 Support: gurari@cis.ohio-state.edu - ---------------------------------------------------------------------- - RWEB ------ Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/reduce Readme: Unknown Description: Web generator in AWK. Support: Unknown - ---------------------------------------------------------------------- - SchemeWEB ----------- Developer: John D. Ramsdell Version: 2.1 Hardware: Unix and DOS platforms Languages: Any dialect of Lisp. Formatter: LaTeX. Availability: The Unix version is in the Scheme Repository and it is available via anonymous ftp from: cs.indiana.edu:/pub/scheme-repository/utl/schemeweb.sh LPA:/lisp CTAN:/tex-archive/web/schemeweb The DOS version is part of the PCS/Geneva Scheme system which is available via anonymous ftp from: cui.unige.ch:/pub/pcs LPA:/machines/ms-dos Readme: In bundle with above. Description: SchemeWEB is a Unix filter that allows you to generate both Lisp and LaTeX code from one source file. The generated LaTeX code formats Lisp programs in typewriter font obeying the spacing in the source file. Comments can include arbitrary LaTeX commands. SchemeWEB was originally developed for the Scheme dialect of Lisp, but it can easily be used with most other dialects. Support: Bug reports to ramsdell@mitre.org. - ---------------------------------------------------------------------- - SpideryWEB ------------ Developer: Norman Ramsey Version: Unknown Hardware: Unix and DOS platforms Languages: Most Algol-like languages, including C, Ada, Pascal, Awk, and many others. Formatter: Plain TeX and latex for text formatters. Availability: Anonymous ftp from: CTAN LPA:/spiderweb Readme: In distribution. Description: A system for building language-dependent WEBs. Spider is frozen; no further development is planned. Support: Bug reports to spider-bugs@oracorp.com. - ---------------------------------------------------------------------- - WEB ----- Developer: Donald Knuth Version: Unknown Hardware: Unknown Languages: Pascal Formatter: TeX (of course! ;-) Availability: Anonymous ftp from: LPA:/pascal Readme: Unknown Description: This is the original software that started it all. The original TeX processor was written in WEB. Support: None known. - ---------------------------------------------------------------------- - WinWordWEB ------------ Developer: Lee Wittenberg Version: Unknown Hardware: Needs Microsoft Word for Windows, v.2.x, and, of course, MS-Windows 3.x. Languages: Any programming language. Formatter: Word for Windows 2.x for text formatting and file maintenance. Availability: Anonymous ftp from: bart.kean.edu:pub/leew LPA:/machines/ms-dos World-Wide Web (WWW) Readme: WORDWEB.DOC in the downloadable package describes the system. Description: WinWordWEB is a set of a Word for Windows macros (plus a paragraph style) that provide a crude literate programming environment. The ``look and feel'' of the system is based on Norman Ramsey's noweb, but can easily be modified to suit individual tastes. Support: None. WinWordWEB was written as a prototype to see if a WYSIWYG literate programming system was possible. It is intended as a jumping off point for future work by others. However, the system is surprisingly usable as it stands, and the author is interested in hearing from users (satisfied and dissatisfied). Anyone interested in actively supporting (and improving) the product should contact the author via email. = ====================================================================== * Are there other tools I should know about? -------------------------------------------- First of all, I'll list some not-quite-literate-programming tools. Some may consider these to be pretty-printers. Others may call them literate programming tools. In any event, they don't seem to be quite in the same category as the tools listed above, so I'll include them here. - C2LaTeX --------- Developer: John D. Ramsdell Version: Unknown Hardware: Unix Languages: C Formatter: LaTeX but it's easy to change the formatter. Availability: Anonymous ftp from omnigate.clarkson.edu:/pub/tex/tex-programs/c2latex. Readme: Absent. Documentation is in the C source for c2latex. Description: C2latex provides simple support for literate programming in C. Given a C source file in which the comments have been written in LaTeX, c2latex converts the C source file into a LaTeX source file. It can be used to produce typeset listings of C programs and/or documentation associated with the program. C2latex produces LaTeX source by implementing a small number of rules. A C comment that starts at the beginning of a line is copied unmodified into the LaTeX source file. Otherwise, non-blank lines are surrounded by a pair of formatting commands (\begin{flushleft} and \end{flushleft}), and the lines are separated by \\*. Each non-blank line is formatted using LaTeX's \verb command, except comments within the line are formatted in an \mbox. Support: Send bug reports to ramsdell@mitre.org. - ---------------------------------------------------------------------- - c2cweb -------- Developer: Werner Lemberg Version: 1.4 Hardware: DOS, OS/2, Unix (gcc) - CWEB source included Languages: C, C++ Formatter: TeX Availability: Anonymous ftp from CTAN:/web/c_cpp/c2cweb Readme: In distribution. Description: c2cweb will transform plain C or C++ code into a CWEB file to get a pretty formatted output. A modified CWEAVE (which transforms the CWEB file into a TeX file, see below) is included also. Support: Werner Lemberg - ---------------------------------------------------------------------- - c2man ------- language: C, nroff, texinfo, latex, html package: c2man version: 2.0 patchlevel 33 parts: documentation generator (C -> nroff -man, -> texinfo, ->latex, -> html) author: Graham Stoney location: ftp from any comp.sources.misc archive, in volume42 (the version in the comp.sources.reviewed archive is obsolete) ftp /pub/Unix/Util/c2man-2.0.*.tar.gz from dnpap.et.tudelft.nl Australia: ftp /usenet/comp.sources.misc/volume42/c2man-2.0/* from archie.au N.America: ftp /usenet/comp.sources.misc/volume42/c2man-2.0/* from ftp.wustl.edu Europe: ftp /News/comp.sources.misc/volume42/c2man-2.0/* from ftp.irisa.fr Japan: ftp /pub/NetNews/comp.sources.misc/volume42/c2man-2.0/* from ftp.iij.ad.jp Patches: ftp pub/netnews/sources.bugs/volume93/sep/c2man* from lth.se description: c2man is an automatic documentation tool that extracts comments from C source code to generate functional interface documentation in the same format as sections 2 & 3 of the Unix Programmer's Manual. It requires minimal effort from the programmer by looking for comments in the usual places near the objects they document, rather than imposing a rigid function-comment syntax or requiring that the programmer learn and use a typesetting language. Acceptable documentation can often be generated from existing code with no modifications. conformance: supports both K&R and ISO/ANSI C coding styles features: + generates output in nroff -man, TeXinfo, LaTeX or HTML format + handles comments as part of the language grammar + automagically documents enum parameter & return values + handles C (/* */) and C++ (//) style comments - doesn't handle C++ grammar (yet) requires: yacc/byacc/bison, lex/flex, and nroff/groff/texinfo/LaTeX. ports: Unix, OS/2, MSDOS, VMS. portability: very high for unix, via Configure status: actively developed; contributions by users are encouraged. discussion: via a mailing list: send "subscribe c2man " (in the message body) to listserv@research.canon.oz.au help: from the author and other users on the mailing list: c2man@research.canon.oz.au announcements: patches appear first in comp.sources.bugs, and then in comp.sources.misc. updated: 1994/10/07 - ---------------------------------------------------------------------- - cnoweb -------- Developer: Jim Fox Version: 1.4 (January 4, 1991) Hardware: Anything with C and TeX. Languages: C Formatter: Plain TeX. Availability: Anonymous ftp from: CTAN LPA:/c.c++ Readme: Unknown, cnoweb.tex contains documentation. Description: cnoweb is as it's name describes: write C, not web. No tangling or weaving is implemented. Documentation (between standard /* */ delimiteres) is written in TeX. cnoweb provides typesetting of documentation, an table of contents of routines, and pretty-printing of C source. Support: None known. - ---------------------------------------------------------------------- - Fold2Web ---------- Developer: Bernhard Lang Version: V0.8 Hardware: MSDOS Languages: All (must allow comment lines) Formatter: LaTeX Availability: Anonymous ftp from: kirk.ti1.tu-harburg.de (134.28.41.50) /pub/fold2web/readme /pub/fold2web/fold2web.zip Readme: In distribution Description: The idea behind the Fold2Web tool is the following: A programmer can write his program source with a folding editor and later map the folded source files automatically to WEB-files. The generated WEB-files can then be modified by inserting required documentations. The advantage by starting program developement with original sources is to get short design cycles during the compile/debug steps. By using a folding editor the global structuring information can be already captured in folds during this developement phase. Fold information is typically stored in comment lines and thus will not affect the efficiency of the compile/debug design cycle. Some folding editors and a folding mode for the emacs are available (e.g. see our FUE folding editor for MSDOS machines which is a modified micro emacs. Pick it at kirk in directory /pub/fold2web). After reaching a stable version of a program source its time to convert the source file to a WEB-file and do the program documentation. Fold2Web is written to convert folded source text of any programming language to nuweb files. The folded structure is kept by mapping folds to scraps. Fold markers which differ between languages due to different ways of specifying comments can be configured for each language. Good results can also achived when given but poor documented program sources have to be modified. Such sources can be folded using a folding editor to extract the global structures. This offers a global view to the program structures and help to understand its functionality. Furthermore the program code is not affected, only comment lines are inserted. Once folded the program source can be automatically translated to a WEB document using the above tool. Support: email to lang@tu-harburg.d400.de - ---------------------------------------------------------------------- - Funnelweb Mode ---------------- Developer: Daniel Simmons Version: Unknown Availability: Litprog archives (was in email) Anonymous ftp from: ftp.imada.ou.dk Description: The other day I did a quick hack to nuweb.el as included with the nuweb distribution so as to make a funnelweb-mode.el. I've only used it briefly, and I'm sure that it can be improved quite a bit. I've been thinking about adding support for folding on sections, a pull-down menu to select macro definitions (like the recent functions posted to gnu.emacs.sources for a C function definition pull-down menu) and some kind of tags support for funnelweb. Support: Unknown - ---------------------------------------------------------------------- - noweb.el ---------- Developer: Bruce Stephens Version: Unknown. Availability: LitProg archives (in an email message). Description: This is a very simple mode I just hacked up. There's a lot wrong with it, but I thought others may be interested, even as it stands. It *requires* text properties, and assumes those used in GNU Emacs 19.22; it'll quite likely work with Lucid Emacs, but I haven't tried it. I use it with auctex8.1 and cc-mode 3.229, both of which are loaded separately (I think my emacs is dumped with them, in fact). The idea is to have one mode (which calls itself c-mode, but actually has LaTeX-mode keybindings) generally (this means that the code is hilighted nicely), and have the code chunks use a different keymap. Support: Email to bruce@liverpool.ac.uk - ---------------------------------------------------------------------- - nuweb.el ---------- Developer: Dominique de Waleffe Version: 1.99 Availability: Anonymous ftp from: LPA CTAN Description: Provides a major mode extending Auctex for editing nuweb files. Main features (in 2.0): - Edit scrap bodies in a separate buffer in a different mode (selected using emacs defaults for files, specific indication -*-mode-*-, or a buffer-local variable) - Extends Auctex commands so that nuweb is called before LaTeX, - Easy navigation on scrap definition and use points. - Now creates an imenu (C-M-mouse1) with user index entries, macro definition positions and file definition positions. Support: Email to ddw@acm.org - ---------------------------------------------------------------------- - TIE ----- Developer: Unknown Version: Unknown Hardware: Unknown Availability: Anonymous ftp from: LPA:/Tools Readme: Unknown Description: This software merges change files. Support: Unknown - ---------------------------------------------------------------------- - Web mode ---------- Developer: Bart Childs Version: Unknown Tools supported: web, fweb, cweb, funnelweb Availability: Anonymous ftp from ftp.cs.tamu.edu:pub/tex-web/web/EMACS.web-mode thrain.anu.edu.au:pub/web/EMACS.web-mode Description: This version works with versions 18 and 19 of Emacs to be best of my knowledge. I have cleaned up a number of documentation items ... In the same directory is wm_refcard.tex which is an edited version of the famous one to include some web-mode commands. The files limbo* are related to its use and notice that half them have an uppercase L in them for LaTeX. The setup is based upon the fact that we (I am not alone here) primarily use FWEB for C and Fortran programming. We are using version 1.40 of FWEB although John Krommes warns that it is not mature and the manual is not yet updated. The info files are! We are using LaTeX almost exclusively. That will likely change and we will revert to version 1.30 if the final form of 1.40 cannot return to the simple section numbers and avoid the HORRIBLE LATEX 0.1.7.2.4.6 type section numbers. Support: Unknown = ====================================================================== * What other resources are available? ------------------------------------- - World Wide Web ---------------- An untapped resource (by me anyway ;-) is the World Wide Web. Marcus Speh has expended considerable effort in this regard. If you're connected to WWW, then access: http://info.desy.de:80/user/projects/LitProg.html If you aren't connected to WWW, telnet to info.cern.ch and explore. You can reach Marcus' literate programming pages by typing: go http://info.desy.de:80/user/projects/LitProg.html or use a WWW browser and access the URL ftp://rtfm.mit.edu/pub/usenet/news-answers/www/resources/literate-programming Help for people who have only Email and neither WWW nor telnet, can be obtained by Email from TEST-LIST@INFO.CERN.CH by sending a message, SEND , for example, SEND http://info.desy.de:80/user/projects/LitProg.html to retrieve the LitProg library page. A help file can be retrieved by sending a message to the list server above with the text HELP in the body of the message. Instructions will be returned by email. For literate programming documents, you can try anonymous ftp to rtfm.mit.edu and retrieve the official Usenet resource file /pub/usenet/news.answers/www/resources/literate-programming - ---------------------------------------------------------------------- - TeX Resources --------------- Another resource of interest to literate programmers is the comp.text.tex newsgroup. If you're using (La)TeX as your typsetting system and have access to internet, then you should investigate this resource. Another reason the TeX resources should be important is that so many of the literate programming tools rely on either plain TeX or LaTeX as their text formatter. (La)TeX software systems exist for most computing platforms. These systems can be found on CTAN and other major archive sites. Use archie to find them or simply ftp to one of the CTAN sites and browse. = ====================================================================== * Are there any code examples? ------------------------------ Examples of web programs are included with the FWEB, CWEB, and noweb distributions. nuweb is written in itself. Cameron Smith converted the K&R calculator program into a literate program. It can be retrieved by anonymous ftp from: niord.shsu.edu [192.92.115.8] directory kr-cweb-sample as krcwsamp.zip or from LPA/Documentation Ross Williams has released a funnelweb example. You can retrieve this file from node ftp.adelaide.edu.au [129.127.40.3] as /pub/funnelweb/examples/except.* This file should be on CTAN as well. Lee Wittenberg has posted a few litprog examples. They are available via anonymous ftp from: bart.kean.edu:/pub/leew/samples.LP The Stanford GraphBase is a large collection of programs by Don Knuth for doing all kinds of computations and games with graphs; it is written in (Levy/Knuth) CWEB. More details in the distribution. It is available via anonymous ftp from: labrea.stanford.edu:/pub/sgb = ====================================================================== * Bibliographies ---------------- Nelson Beebe has collected an extensive bibliography treating literate programming. His work is available for anonymous ftp from ftp.math.utah.edu [128.110.198.2] in directory /pub/tex/bib as files: litprog.bib litprog.ltx litprog.twx. Although I have not verified this, LPA is an alternate source for these files. Note that they are updated frequently (Nelson says several times each week), so be sure to get a fresh copy before extensive use. Joachim Schrod indicates that these files may be updated daily and can be retrieved via anonymous ftp at LPA/documentation. = ====================================================================== * How to anonymously ftp ------------------------ Pretty much everything mentioned here is available by anonymous FTP. FAQ lists cross-posted to news.answers and rec.answers can be gotten from rtfm.mit.edu [18.181.0.24], under /pub/usenet/news.answers or under /pub/usenet/more.specific.group.name "anonymous FTP" is just a way for files to be stored where anyone can retrieve them over the Net. For example, to retrieve the latest version of the literate programming FAQ, do the following: > ftp rtfm.mit.edu /* connect to the site; message follows */ > anonymous /* type this when it asks for your name */ > /* type your address as the password */ > cd /pub/usenet /* go to the directory you want to be */ > cd comp.programming.literate /* one level down (no slash). */ > dir /* look at what's there */ > get literate-progamming-faq /* get the file; case-sensitive */ > quit /* stop this mysterious thing */ If your FTP program complains that it doesn't know where the site you want to use is, type the numerical address instead of the sitename: > ftp 18.181.0.24 /* connect with numerical address */ If you don't have ftp access, send e-mail to mail-server@rtfm.mit.edu with the single word "help" in the body of the message. Getting binary files (executables, or any compressed files) is only slightly more difficult. You need to set binary mode inside FTP before you transfer the file. > binary /* set binary transfer mode */ > ascii /* set back to text transfer mode */ FAQs and spoiler lists are generally ascii files; everything else is generally binary files. Some common extensions on binary files in archive sites are: .Z Compressed; extract with uncompress .tar.Z Compressed 'tape archive'; uncompress then untar or tar -xvf .gz or .z Gnu gzip; use gunzip (available from prep.gnu.ai.mit.edu) .sit (Mac) StufIt archive .zip Extract with Zip or Unzip .zoo Yet another archive/compress program .lhe (Amiga) ? .lzh Lha archive program. .arj (PC) Arj archive program. .exe (PC) Sometimes self-extracting archives-just execute them. .uue or .UUE Transfer as text file; use uudecode to convert to binary .hqx (Mac) BinHex format; transfer in text mode Generic help can be found in the FAQs of comp.binaries. for how to transfer, extract, and virus-check binary files. (At rtfm.mit.edu) If you can't FTP from your site, use one of the following ftp-by-mail servers: ftpmail@decwrl.dec.com ftpmail@src.doc.ic.ac.uk ftpmail@cs.uow.edu.au ftpmail@grasp.insa-lyon.fr For complete instructions, send a message reading "help" to the server. If you don't know exactly what you're looking for, or exactly where it is, there are programs and servers that can help you. For more info, send e-mail to mail-server@rtfm.mit.with with the body of the message reading send usenet/news.answers/finding-sources Thanks to Aliza R. Panitz (the "buglady") for this text. I copied it verbatim from her post on faq-maintainers with only minor modifications. = ====================================================================== * Acknowledgements ------------------ This document would not have happened without the help of many people. Among them are Marcus Speh, George Greenwade, Rob Beezer, Joachim Schrod, Piet van Oostrum, and Ross N. Williams. A special thanks to Aliza R. Panitz for the text describing how to execute an anonymous ftp for files of interest. Any omissions from these acknowledgements should be considered an act of stupidity on my part. Of course, the authors of literate programming tools mentioned above all play a vital role in the vitality of literate programming. Furthermore, participants in the comp.programming.literate newsgroup (and associated mailing list) all contributed in various fashions. Thank all of you. = ====================================================================== * End notes ----------- This document will continue to evolve. I'm planning on adding entries for additional literate programming tools and will expand the sections on examples as more examples become available. Tools I will include are WEB (the original pascal version) for starters. Others will be added as I find and document them. Omission of a particular tool should not be considered a snub in any sense--simply an error or oversight on my part. = End of File ========================================================== 12-Jul-1997 5:43:28-GMT,1843;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id XAA07094 for ; Fri, 11 Jul 1997 23:43:27 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sat, 12 Jul 1997 00:32:33 EST From: sofnews@aol.com (Sofnews) Reply-To: LitProg@SHSU.edu, sofnews@aol.com Subject: Ultimate Newsletter!!! Date: 11 Jul 1997 17:31:45 GMT Message-ID: <19970711173100.NAA12598@ladder01.news.aol.com> To: LitProg@SHSU.edu The Ulitmate NewsLetter! If you are: In home hobbyist Programmer: A place to advertise your programs to other programmers and consumers interested in buying or previewing your programs. A great place to find beta testers as well. Beta Tester: A place to find programmers who need beta testers. Programmer: A place to have your progam known, and advertise shareware. Consumer: A place to find programs put up by hobbyists and programmers. You might find something you could use. Newsletter goes out once a week. Subscription is free. 1st 2 weeks of advertising is free. Email to suscribe and place free advertisements. In your email simply write "Subscribe" to subscribe to the newsletter giving your email address afterwards. If you would also like to place an advertisement simply write "Adverstisement" and write out your advertisement afterwards. Free advertisements may be up to 15 words. You may cancel your subscription at any time by emailing and typing "Unsubscribe". Email To: Sofnews@aol.com 17-Jul-1997 1:49:11-GMT,1375;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id TAA28485 for ; Wed, 16 Jul 1997 19:49:09 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 16 Jul 1997 20:41:12 EST From: Jane Anderson / Monty Zukowski Subject: noweb problem Date: 17 Jul 1997 01:28:16 GMT Message-ID: <5qjsfh$d2h$1@readme.ican.net> Reply-To: LitProg@SHSU.edu, jamz@cdsnet.net MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit To: LitProg@SHSU.edu I'm trying to get noweb to work on Win95 using the Cygnus gnuwin32 distribution. I was able to compile it and run it with the nt console versions of icon. My source file comes out fine, it seems, but my tex file comes out with things duplicated: % this file was generated automatically by noweave --- better not edit it \nwfilename{undo.nw}\nwfilename{undo.nw}\nwbegindocs{0}\nwbegindocs{0}\ documentclass{article}\documentclass{article} \usepackage{noweb}%\usepackage{noweb}% .. As a new user of noweb I have no clue as to what might be causing this. Any ideas? Thanks, Monty 17-Jul-1997 14:55:51-GMT,1729;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id IAA13536 for ; Thu, 17 Jul 1997 08:55:50 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 17 Jul 1997 09:39:02 EST From: farich@vnet.net (Fred A Richard) Reply-To: LitProg@SHSU.edu, farich@vnet.net Subject: 1) moderated posting, how? (2) noweb syntax highlighting in emacs Date: Thu, 17 Jul 1997 14:05:45 GMT Message-ID: <33ce223a.3279358@news.vnet.net> To: LitProg@SHSU.edu first of all, I know that comp.programming.literate is a moderated newsgroup now, but after looking thru lots of old posts and the recent FAQ (7/11/97) I couldn't find any information on the correct method of posting. what's going on? how should this be done? and now to the reason for my query. I'm a new user of noweb, and since I use emacs and am fond of syntax highlighting of programming code, I'd like to find a suitable emacs highlighting package for noweb files. Of course I'm open to other suggestions; any other good ideas on this topic would be welcome. By the way, not XEmacs -- I noticed the post on 8 May '97 regarding noweb XEmacs support for syntax highlighting, I tried that code and it would not byte-compile in my version of emacs. My guess is the compilation failed because I'm not using XEmacs. Thanks in advance. -- Fred A. Richard Lincolnton,NC 28092-8238 farich@vnet.net "Our life is frittered away by detail. Simplicity, simplicity, simplicity!" Henry David Thoreau 18-Jul-1997 1:54:51-GMT,1529;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id TAA28974 for ; Thu, 17 Jul 1997 19:54:49 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 17 Jul 1997 20:42:55 EST From: "Dr E. Buxbaum" Reply-To: LitProg@SHSU.edu, EB15@leicester.ac.uk Subject: Re: noweb problem Content-Type: text/plain; charset=us-ascii Message-ID: Content-Transfer-Encoding: 7bit MIME-Version: 1.0 Date: Thu, 17 Jul 1997 15:42:04 GMT To: LitProg@SHSU.edu Jane Anderson / Monty Zukowski wrote: My source file comes out fine, it seems, but my tex >file comes out with things duplicated: > > >% this file was generated automatically by noweave --- better not edit >it >\nwfilename{undo.nw}\nwfilename{undo.nw}\nwbegindocs{0}\nwbegindocs{0}\ >documentclass{article}\documentclass{article} > >\usepackage{noweb}%\usepackage{noweb}% >.. > >As a new user of noweb I have no clue as to what might be causing this. > Any ideas? If your source code already contains a \usepackage statement, it will be duplicated by the one added by noweb. Use the -delay option to prevent this or (if you are satisfied with the header noweb produces) remove your own statement from the source. 18-Jul-1997 2:11:56-GMT,1752;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id UAA29328 for ; Thu, 17 Jul 1997 20:11:55 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 17 Jul 1997 21:03:05 EST From: farich@vnet.net (Fred A Richard) Subject: 1) moderated posting, how? (2) noweb syntax highlighting in emacs Message-ID: Reply-To: LitProg@SHSU.edu, LitProg@SHSU.edu, farich@vnet.net Date: Thu, 17 Jul 1997 15:44:23 GMT To: LitProg@SHSU.edu first of all, I know that comp.programming.literate is a moderated newsgroup now, but after looking thru lots of old posts and the recent FAQ (7/11/97) I couldn't find any information on the correct method of posting. what's going on? how should this be done? and now to the reason for my query. I'm a new user of noweb, and since I use emacs and am fond of syntax highlighting of programming code, I'd like to find a suitable emacs highlighting package for noweb files. Of course I'm open to other suggestions; any other good ideas on this topic would be welcome. By the way, not XEmacs -- I noticed the post on 8 May '97 regarding noweb XEmacs support for syntax highlighting, I tried that code and it would not byte-compile in my version of emacs. My guess is the compilation failed because I'm not using XEmacs. Thanks in advance. -- Fred A. Richard Lincolnton,NC 28092-8238 farich@vnet.net "Our life is frittered away by detail. Simplicity, simplicity, simplicity!" Henry David Thoreau 18-Jul-1997 2:35:16-GMT,2414;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id UAA29821 for ; Thu, 17 Jul 1997 20:35:14 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 17 Jul 1997 21:25:12 EST From: LEE WITTENBERG Reply-To: LitProg@SHSU.edu, leew@cs.utk.edu Subject: Re: noweb problem Content-Type: TEXT/PLAIN; charset=US-ASCII Message-ID: MIME-Version: 1.0 Date: Thu, 17 Jul 1997 16:48:44 GMT To: LitProg@SHSU.edu On 17 Jul 1997, Jane Anderson / Monty Zukowski wrote: > I'm trying to get noweb to work on Win95 using the Cygnus gnuwin32 > distribution. I was able to compile it and run it with the nt console > versions of icon. My source file comes out fine, it seems, but my tex > file comes out with things duplicated: > > > % this file was generated automatically by noweave --- better not edit > it > \nwfilename{undo.nw}\nwfilename{undo.nw}\nwbegindocs{0}\nwbegindocs{0}\ > documentclass{article}\documentclass{article} > > \usepackage{noweb}%\usepackage{noweb}% > .. > > As a new user of noweb I have no clue as to what might be causing this. > Any ideas? It might help to know what command line you used, and what the source file looked like (a minimal web that reproduces the problem would be best). In the meantime, you might want to compare your port with one I did using an earlier version of the cygnus stuff: ftp://samson.kean.edu/pub/leew/noweb/noweb2.7d-win32-alpha.zip As I recall, I had to revise & recompile the NT version of Icon because it insisted on using .cmd files. Details are in the readme (or should be). I've been meaning to update this port, but I just haven't gotten around to it. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Computer Science Department | You cannot judge the importance of things Kean College of New Jersey | by the noise they make. Union, NJ 07083 | | -- James Hilton leew@samson.kean.edu | "Good-bye Mr. Chips" (1934) ------------------------------------------------------------------------ 18-Jul-1997 8:48:07-GMT,1308;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id CAA06852 for ; Fri, 18 Jul 1997 02:48:06 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from igc7.igc.org by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 18 Jul 1997 03:33:04 EST Received: from cdp.igc.apc.org (root@cdp.igc.apc.org [192.82.108.1]) by igc7.igc.org (8.8.5/8.8.5) with ESMTP id BAA07863 for ; Fri, 18 Jul 1997 01:33:40 -0700 (PDT) Received: (from uucp) by cdp.igc.apc.org (8.8.5/8.8.5) id BAA08776 for litprog@shsu.edu; Fri, 18 Jul 1997 01:32:21 -0700 (PDT) Received: from -brucont (ts0-63 [200.10.186.63]) by wamani.wamani.apc.org (8.6.11/8.6.12) with SMTP id XAA00867 for ; Thu, 17 Jul 1997 23:35:38 -0400 Message-ID: <33CED4C6.48BC@wamani.apc.org> Date: Thu, 17 Jul 1997 23:28:22 -0300 From: Bruno Contigiani Reply-To: LitProg@SHSU.edu, brucont@wamani.apc.org MIME-Version: 1.0 To: litprog@SHSU.edu Subject: Subscribtion Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Subscribe 18-Jul-1997 13:00:14-GMT,1873;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id HAA11105 for ; Fri, 18 Jul 1997 07:00:13 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 18 Jul 1997 07:42:28 EST From: Sven Utcke Reply-To: LitProg@SHSU.edu, utcke@tu-harburg.d400.de Subject: Re: (2) noweb syntax highlighting in emacs Message-ID: Date: Fri, 18 Jul 1997 12:21:54 GMT To: LitProg@SHSU.edu farich@vnet.net (Fred A Richard) writes: > and now to the reason for my query. I'm a new user of noweb, and > since I use emacs and am fond of syntax highlighting of programming > code, I'd like to find a suitable emacs highlighting package for noweb > files. I'm using cweb-mode, which should easily adapt to noweb (it certainly was easy enough to adapt it to FWEB). The newest Version is supposedly available at http://www.igd.fhg.de/~kumpf/ However, I couldn't download it using Netscape 3.01. I mailed Christian Kumpf about it, but so far nothing changed. Try http://www.igd.fhg.de/~kumpf/cweb-mode/ for the distribution (cweb-mode 2.3.4). Hope this helps Sven -- _________ ____ /----------------------------------------------------------/ /___ __o/ /_ _/ / Sven Utcke phone +49 40-7718-2181 / / / _ // / TU Hamburg-Harburg fax +49 40-7718-2911 / / / // // / Technische Informatik I mailto:utcke@tu-harburg.d400.de / / / // _//_ / Harburger Schloss-Str.20 http://www.ti1.tu-harburg.de/ / /_/ // /___/ / D-21079 Hamburg, Germany ------------ ~utcke/utcke.html -/ 18-Jul-1997 19:02:06-GMT,1471;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id NAA19873 for ; Fri, 18 Jul 1997 13:02:05 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 18 Jul 1997 13:48:40 EST From: Marnix Klooster Reply-To: LitProg@SHSU.edu, mklooster@research.baan.nl Subject: Java literate programming Content-Type: text/plain; charset=us-ascii Message-ID: Content-Transfer-Encoding: 7bit MIME-Version: 1.0 Date: Fri, 18 Jul 1997 18:21:14 GMT To: LitProg@SHSU.edu Hello all, I'd like to experiment with literate programming. What tools are available under the following restrictions: * runs on Windows NT 4.0 * suitable for Java 1.1 code * doesn't use TeX * may use Perl 5.001 * preferably uses Word95/97 from which code is automatically extracted * ...but also acceptable is plain ASCII -> PostScript + Java code * preferably has human-readable indentation in the extracted Java code. Thanks a lot in advance! Groetjes, <>< Marnix -- Marnix Klooster | If you post a reply to a mklooster@research.baan.nl | News article of mine, please marnix@worldonline.nl | send me a copy by e-mail. 20-Jul-1997 3:58:36-GMT,2359;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id VAA25897 for ; Sat, 19 Jul 1997 21:58:35 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sat, 19 Jul 1997 22:46:59 EST From: Abdul Safar Reply-To: LitProg@SHSU.edu, ASE1000@1stfamily.com Subject: Free Internet Access World Wide Message-ID: <7137cd$16361a.31d@NEWS> Date: Sun, 20 Jul 1997 04:54:26 GMT To: LitProg@SHSU.edu Greetings from 1stfamily, As we all know unlimited Internet access is $19.95 / month with every major Internet access company. From Netcom to AT&T that price never changed. So what makes us any different when we are also charging $19.95 / month ??? Our Marketing Plan. Our method is this. Unlimited Internet access for $19.95 per month. If you find our service to be extremely satisfactory, in which we are sure you will, you can refer our service to 10 of your friends and family. If you do , you will get free Unlimited Internet access with your e-mail address for life ! What we offer is this: * The fastest, clearest Internet access in the world. * World Wide Internet access in over 110 countries. * An e-mail account that is also life time free if you refer 10 of your friends and family to using our service. * America On-line for only $10 / month ! * Much much more that will amaze you ! Our plan is by the year 2005 we will be the world's ONLY Internet service providers. With our technique of offering you life time free Internet access we will be. Please visit our web site http://www.freeisp.com/ any where from the world to know more about our opportunity and to even get on the wagon before every one else beats you there. http://www.freeisp.com/ Please forward this message to all of your online friends. Wouldn't you want all of them to get free Internet access ? -------------------------------------- Abdul ( SPONSOR ID # SAF5197 ) Stop paying for Internet access ! http://www.freeisp.com/ mailto:webmaster@freeisp.com -------------------------------------- 20-Jul-1997 23:35:11-GMT,1113;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id RAA00810 for ; Sun, 20 Jul 1997 17:35:09 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 20 Jul 1997 18:23:19 EST From: pwrlunch7@aol.com (Pwrlunch7) Reply-To: LitProg@SHSU.edu, pwrlunch7@aol.com Subject: Download help authoring tool for free! Date: 20 Jul 1997 23:18:36 GMT Message-ID: <19970720231800.TAA12912@ladder01.news.aol.com> To: LitProg@SHSU.edu Download Help Maker Plus--the award winning help authoring tool for free! Visit: http://members.aol.com/ILuvPasta7/helpmaker (requires Word 6.0/7.0/8.0) Ian Ippolito (ILuvPasta7@AOL.COM) Author of: Planet Source Code (FREE online VB source code at http://www.planet-source-code.com) Help Maker Plus (FREE download of award winnning help authoring tool at http://members.aol.com/ILuvPasta7/helpmaker) 20-Jul-1997 23:35:12-GMT,1191;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id RAA00816 for ; Sun, 20 Jul 1997 17:35:11 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 20 Jul 1997 18:23:22 EST From: pwrlunch7@aol.com (Pwrlunch7) Reply-To: LitProg@SHSU.edu, pwrlunch7@aol.com Subject: Thousands of lines of FREE Visual Basic source code!!! Date: 20 Jul 1997 23:18:46 GMT Message-ID: <19970720231800.TAA26730@ladder02.news.aol.com> To: LitProg@SHSU.edu Visit Planet Source Code(tm) and download thousands of lines of source code for FREE!!! http://www.planet-source-code.com/vb/ Code submitters have a chance to win cool development software for free! Check it out! Ian Ippolito (ILuvPasta7@AOL.COM) Author of: Planet Source Code (FREE online VB source code at http://www.planet-source-code.com) Help Maker Plus (FREE download of award winnning help authoring tool at http://members.aol.com/ILuvPasta7/helpmaker) 21-Jul-1997 14:20:44-GMT,1358;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id IAA19020 for ; Mon, 21 Jul 1997 08:20:43 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 21 Jul 1997 08:57:46 EST From: Uwe Knietzsch Reply-To: LitProg@SHSU.edu, Uwe.Knietzsch@informatik.tu-chemnitz.de Subject: c2cweb to cweave Problem Date: 21 Jul 1997 13:32:17 GMT Message-ID: <5qvod1$gd$1@elna.ethz.ch> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Es gibt das Paket c2cweb welches aus einem c-File ein cweb-File erzeugt, welches sich spaeter mit cweave weiterarbeiten laesst. Es entsteht zwar ein cweb-File, aber der anschliessende cweave-Aufruf bricht mit einer Fehlermeldung ab, dass der Freispeicher in TeX erschoeft waere. Wie kann man das Problem loesen? -- MfG 55&73 to you ... ---------------------------------------------- E-Mail: ukn@informatik.tu-chemnitz.de www: http://www.tu-chemnitz.de/~ukn/ukn.html ---------------------------------------------- 21-Jul-1997 17:14:46-GMT,4392;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id LAA23130 for ; Mon, 21 Jul 1997 11:14:35 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 21 Jul 1997 11:47:12 EST From: Sven Utcke Reply-To: LitProg@SHSU.edu, utcke@tu-harburg.d400.de Subject: Re: Java literate programming Message-ID: Date: Mon, 21 Jul 1997 15:27:30 GMT To: LitProg@SHSU.edu Hello Marnix, Marnix Klooster writes: > I'd like to experiment with literate programming. What tools are > available under the following restrictions: Well, I've never used it myself, but it seems that CliP might fit: > * runs on Windows NT 4.0 There seems to be an MS-DOS version, so I think an NT-Version should be easy to set up. > * suitable for Java 1.1 code Any language. > * doesn't use TeX Any formatter or wordprocessor. > * may use Perl 5.001 > * preferably uses Word95/97 from which code is automatically > extracted Well, depends on what you call automatically... > * ...but also acceptable is plain ASCII -> PostScript + Java code > * preferably has human-readable indentation in the extracted Java code. I would think so. Anyway, here is the description from the FAQ: Developer: E.W. van Ammers and M.R. Kramer Version: Unknown Hardware: Vax/VMS, Unix, and MS-DOS Languages: Any programming language. Formatter: Any formatter (TeX, LaTeX, Troff, Runoff, etc) or any wordprocessor including WYSIWYG systems (Word Perfect, Win Word, Ami Pro, Word, etc.) Availability: Anonymous ftp from: sun01.info.wau.nl:/CLIP/ms_dos MS-DOS version sun01.info.wau.nl:/CLIP/vax_vms VAX/VMS version CTAN:/web/clip LPA:/machines/ms-dos LPA:/machines/vax Readme: With bundle above Description: CLiP does not use explicite commands to perform the extraction process. Rather it recognizes pseudostatemens written as comments in the programming language in question. CLiP distinguishes pseudostatments from ordinary comments because the former comply with a a particular style. This style can be adjusted to suit virtually any programming language. The CLiP approach to LP makes the system extremely versatile. It is independent of programming language and text processing environment. We designed CLiP to be compatible with hypertext systems as well but we have not yet experimented with this form of documentation. Features: + CLiP imposes virtually no limitations on the text-processing system used to produce the documentation. If the text-processor supports these items you can + structure the documentation according to your own taste. + include drawings, pictures, tables etc. + disclose your documentatio my means of X-ref tables, Indexes, Table of contents, Table of tables, Table of figures, etc. + typeset the documented code. + Extracts any number of modules from a maximum of 64 source files. + No pretty-printing. Code from the source files is copied "as is" to the module. + Appearance of code segments in the documentation matches those of the modules to ease the identification of code segements. + Supports partially specified data types. + Comprehensive user manual (preliminary version) and technical description. - No automatic generation of a X-ref table for program identifiers. Support: Bugs, problems and assistance by e-mail: ammers@rcl.wau.nl Hope this helps Sven -- _________ ____ /----------------------------------------------------------/ /___ __o/ /_ _/ / Sven Utcke phone +49 40-7718-2181 / / / _ // / TU Hamburg-Harburg fax +49 40-7718-2911 / / / // // / Technische Informatik I mailto:utcke@tu-harburg.d400.de / / / // _//_ / Harburger Schloss-Str.20 http://www.ti1.tu-harburg.de/ / /_/ // /___/ / D-21079 Hamburg, Germany ------------ ~utcke/utcke.html -/ 22-Jul-1997 12:08:59-GMT,2182;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id GAA16315 for ; Tue, 22 Jul 1997 06:08:58 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 22 Jul 1997 06:57:45 EST From: Success@bellatlantic.net Reply-To: LitProg@SHSU.edu, Success@bellatlantic.net Subject: ========= SUCCESS ========================= Date: Tue, 22 Jul 1997 07:51:56 Message-ID: <5r2717$p4v@world1.bawave.com> To: LitProg@SHSU.edu KNOWLEDGE IS POWER. Do you know what separates the very successful people from the people just getting by? INFORMATION!!! The MOST successful people in any field, don't have all the answers... BUT they do know where to find them. Everyone needs to have information. Children need it for school, and good grades. Adults need it to keep informed and current with associates. Have ALL the information you need at your finger tips. I already spent hundreds of hours searching the internet to find the sites you need, with links to thousands of other sites. Here are a few examples: government sites, local and federal. Are you trying to find someone that owes you money? Do you need to check someone's background... potential employee, tennant, anyone. Find that lost love or college buddy. Lookup phone numbers around the block or around the world. Track down court records. Check someones credit, educational background, driving or criminal record. Locate military records. Get all the newest games, try them before you buy them. Search libraries around the world. Just about anything you can imagine , can be found on the internet. You just have to know WHERE to look. Don't wait... your competitors aren't waiting for you!!! INTERESTED ??? **** SEND $14.95 CHECK, MONEY ORDER OR CASH **** with your EMAIL ADDRESS or mailing address to: **** **** B.C.S. **** 39 GURLEY ROAD #123 **** EDISON, NJ 08817 **** **** ATT: Internet Offer 27-Jul-1997 7:39:41-GMT,790;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id BAA26185 for ; Sun, 27 Jul 1997 01:39:39 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 27 Jul 1997 02:18:06 EST From: wssxs@usa.net Reply-To: LitProg@SHSU.edu, wssxs@usa.net Subject: ..They GO NATIONAL!.. Date: 25 Jul 1997 23:08:22 GMT Message-ID: <5rbbl6$qhb@buck.innerx.net> To: LitProg@SHSU.edu Internet Marketing Company goes NATIONAL! Come check them out! Double click or cut and paste here this URL: http://www.cyberbundle.com 27-Jul-1997 10:19:26-GMT,64454;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id EAA28719 for ; Sun, 27 Jul 1997 04:19:23 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 27 Jul 1997 05:00:11 EST From: thompson@sun1.coe.ttu.edu Subject: comp.programming.literate FAQ Date: 27 Jul 1997 09:53:01 GMT Message-ID: Reply-To: LitProg@SHSU.edu, thompson@sun1.coe.ttu.edu To: LitProg@SHSU.edu Archive-name: literate-programming-faq Last-modified: 1996/11/19 Version: 1.1.17 Welcome to the Literate Programming Frequently Asked Questions List ------------------------------------------------------------------- Information contained in this document is the best available at preparation. The original file was dated October 15, 1993 (just for historical purposes). Disclaimer: "This FAQ is presented with no warranties or guarantees of ANY KIND including correctness or fitness for any particular purpose. The author of this document has attempted to verify correctness of the data contained herein; however, slip-ups can and do happen. If you use this data, you do so at your own risk." Copyright 1993-1996 by David B. Thompson. All rights reserved worldwide. Permission is granted to copy this document for free distribution so long as it remains intact and unmodified. For other arrangements, contact the author/maintainer via email: thompson@sun1.coe.ttu.edu. What's New? ----------- + My email address. + General cleanup. = ====================================================================== * Introduction or "What's this all about?" ------------------------------------------ This document is for new and experienced users of literate programming tools. The purpose is to explain the concept of literate programming and to provide a resource for locating files of interest to literate programmers and those interested in literate programming. The Literate Programming (LitProg) Frequently Asked Questions (FAQ) list is maintained by Dave Thompson, who can be reached at: thompson@cam203g.ce.ttu.edu * Preferred mailing address for FAQ related comments/questions. Comment and constructive criticism is welcome. Direct flames to /dev/null (or nul if you're a msdos user! ;-) If you find an error, please report it. I'm particularly interested in establishing the locations of generally available literate programming tools. If you are the author of such a tool and wish to have it included in this list, please send email. Please note this is a work-in-progress. It is *not* complete, and probably will never be complete. Nevertheless, the information contained herein may be useful to some. Use it as it is intended. - ---------------------------------------------------------------------- - Typography ------------ Major sections of the FAQ are divided by double lines (====). Minor sections and other divisions are separated by single lines (----). Major topics use a "* " as a leader. Minor topics use a "- " as a leader. This should simplify searching for topics. = ====================================================================== Table of Contents: ------------------ * Introduction, or "What's this all about?" - Typography * How do I get the FAQ? - Literate Programming FAQ - FWEB FAQ * Is there a newsgroup? (The comp.programming.literate newsgroup) * What internet nodes are of interest to literate programmers? * What is literate programming? * How do I begin literate programming? * What literate programming tools are available and where are they? - APLWEB - AWEB - CLiP - CWEB - CWEBx3.0 - FunnelWeb - FunnelWeb3.0AC - FWEB - IMPACT - lit2x - Literate Programmer's Workshop (LPW) - MapleWEB - MWEB (Schrod/Detig) - MWEB (Sewell) - noweb - nuweb - ProTeX - RWEB - SchemeWEB - Spidery WEB - WEB - WinWordWEB * Are there other tools I should know about? - C2LaTeX - c2cweb - c2man - cnoweb - Fold2web - FunnelWeb mode - noweb.el - nuweb.el - TIE - Web mode * What other resources are available? - TeX Resources - Virtual Coursework * Are there any code examples? - Examples included with developer's tools - Cameron Smith's KR-CWEB - Stanford GraphBase * Bibliographies. * How to anonymously ftp. * Acknowledgements. * End notes. = ====================================================================== * How do I get the FAQ? ----------------------- - Literate Programming FAQ -------------------------- You have many ways to get a current copy of this FAQ. One is to use anonymous ftp (if you don't know how, see a later section in this FAQ) to connect to one of the Comprehensive TeX Arvchive Network (CTAN) sites or the Literate Programming Archive and retrieve a copy of the file. Open an ftp connection to one of the CTAN sites and retrieve the file: help/LitProg-FAQ (For more information on CTAN and the literate programming archive, see the section below entitled "Internet Nodes of Interest to Literate Programmers.") - ---------------------------------------------------------------------- - FWEB FAQ ---------- David Coker maintains the FWEB FAQ. The current version number is 1.30a. It can be retrieved in the same way as this FAQ. The FWEB FAQ exists in various formats, including HyperText (see other resources below). In Europe, the complete distribution can also be obtained from ftp.desy.de [131.169.10.115] in directory /pub/faq/web/fweb/. It is also available from the literate programming archive (LPA) in the directory LPA/Documentation/faq/fweb (see the references to LPA below for more information). = ====================================================================== * Is there a newsgroup? ----------------------- One of the most important resources is the literate programming newsgroup, comp.programming.literate. You can read this newsgroup using your standard reader. = ====================================================================== * What internet nodes are of interest to literate programmers? -------------------------------------------------------------- The principal nodes of interest to literate programmers are the Literate Programming Archive (LPA hereafter) and the CTAN (Comprehensive TeX Archive Network). The Literate Programming Archive (LPA) is: Node: ftp.th-darmstadt.de [130.83.55.75] Directory: programming/literate-programming Notes: Fastest response during off-U.S. [yep] business hours. Participating hosts in the Comprehensive TeX Archive Network are: ftp.dante.de (Deutschland) -- anonymous ftp /tex-archive (/pub/tex /pub/archive) -- gopher on node sun.dante.de -- e-mail via ftpmail@dante.de -- Administrator: ftp.tex.ac.uk (England) -- anonymous ftp /tex-archive (/pub/tex /pub/archive) -- gopher on node gopher.tex.ac.uk -- NFS mountable from nfs.tex.ac.uk:/public/ctan/tex-archive -- World Wide Web access on www.tex.ac.uk -- Administrator: The site ftp.shsu.edu used to be the American CTAN site. Apparently, that site has fallen into disrepair and should not be considered a primary source for either TeX related or literate programming related material. For the record, the address is: ftp.shsu.edu (Texas, USA) -- anonymous ftp and gopher /tex-archive (/pub/tex /pub/archive) -- NFS mountable from ftp.SHSU.edu:/pub/ftp/tex-archive -- e-mail via ftpmail@ftp.SHSU.edu -- World Wide Web access on www.SHSU.edu -- Administrator: A list of CTAN archive sites and their mirrors can be found on: ftp.dante.de:/tex-archive/CTAN.sites I presume that the other CTAN sites mirror this file, but have not checked. As of my last check (September 1994), it contains: "In order to reduce network load, it is recommended that you use the Comprehensive TeX Archive Network (CTAN) host which is located in the closest network proximity to your site." Known partial mirrors of the CTAN reside on (alphabetically): dongpo.math.ncu.edu.tw (Taiwan) /tex-archive ftp.adfa.oz.au (Australia) /pub/tex/ctan ftp.muni.cz (The Czech Republic) /pub/tex/CTAN ftp.cs.ruu.nl (The Netherlands) /pub/tex-archive ftp.uu.net (Virginia, USA) /pub/text-processing/TeX nic.switch.ch (Switzerland) /mirror/tex Known mirrors of the CTAN reside on (alphabetically): ftp.center.osaka-u.ac.jp (Japan) /CTAN ftp.ccu.edu.tw (Taiwan) /pub/tex ftp.cs.rmit.edu.au (Australia) /tex-archive ftp.duke.edu (North Carolina, USA) /tex-archive ftp.germany.eu.net (Deutschland) /pub/packages/TeX ftp.gwdg.de (Deutschland) /pub/dante ftp.jussieu.fr (France) /pub4/TeX/CTAN ftp.loria.fr (France) /pub/unix/tex/ctan ftp.mpi-sb.mpg.de (Deutschland) /pub4/tex/mirror/ftp.dante.de ftp.uni-bielefeld.de (Deutschland) /pub/tex ftp.uni-stuttgart.de (Deutschland) /tex-archive (/pub/tex) ftpserver.nus.sg (Singapore) /pub/zi/TeX src.doc.ic.ac.uk (England) /packages/tex/uk-tex sunsite.unc.edu (North Carolina, USA) /pub/packages/TeX wuarchive.wustl.edu (Missouri, USA) /packages/TeX Other nodes and directories of interest include: Node: ftp.desy.de [131.169.10.115] Directory: pub/web. Various documents, samples, and the FWEB FAQ. Notes: Has a www server, http://info.desy.de:80/ = ====================================================================== * What is Literate Programming? ------------------------------- Literate programming is the combination of documentation and source together in a fashion suited for reading by human beings. In fact, literate programs should be enjoyable reading, even inviting! (Sorry Bob, I couldn't resist!) In general, literate programs combine source and documentation in a single file. Literate programming tools then parse the file to produce either readable documentation or compilable source. The WEB style of literate programming was created by D.E. Knuth during the development of his TeX typsetting software. All the original work revolves around a particular literate programming tool called WEB. Knuth says: The philosophy behind WEB is that an experienced system programmer, who wants to provide the best possible documentation of his or her software products, needs two things simultaneously: a language like TeX for formatting, and a language like C for programming. Neither type of language can provide the best documentation by itself; but when both are appropriately combined, we obtain a system that is much more useful than either language separately. The structure of a software program may be thought of as a web that is made up of many interconnected pieces. To document such a program we want to explain each individual part of the web and how it relates to its neighbours. The typographic tools provided by TeX give us an opportunity to explain the local structure of each part by making that structure visible, and the programming tools provided by languages such as C or Fortran make it possible for us to specify the algorithms formally and unambigously. By combining the two, we can develop a style of programming that maximizes our ability to perceive the structure of a complex piece of software, and at the same time the documented programs can be mechanically translated into a working software system that matches the documentation. Another author (Eric W. van Ammers) wrote me a short article treating his opinions on literate programming. The text follows: First observation on LP About 90% of the disussion on this list is about problems with applying some WEB-family member to a particular programming language or a special documentation situation. This is ridiculous, I think. Let me explain shortly why... Lemma 1: I have proposed for many years that programming has nothing to do with programming langauges, i.e. a good programmer makes good programs in any language (given some time to learn the syntax) and a bad programmer will never make a good program, no matter the language he uses (today many people share this view, fortunately). Lemma 2: Literate Programming has (in a certain way not yet completely understood) to do with essential aspects of programming. Conclusion 1: A LP-tool should be independent of programming language. Lemma 3: It seems likely that the so called BOOK FORMAT PARADIGM [ref. 1] plays an important role in making literate programs work. Lemma 4: There are very many documentation systems currently being used to produce documents in the BOOK FORMAT. Conclusion 2: A LP-tool should be independent of the documentation system that the program author whishes to use. My remark some time ago that we should discuss the generic properties of an LP-tool was based on the above observation. References: [1] Paul W. Oman and Curtus Cook. Typographical style is more than cosmetic. CACM 33, 5, 506-520 (May 1990) Second observation on LP The idea of a literate program as a text book should be extendend even further. I would like to see a literate program as an (in)formal argument of the correctness of the program. Thus a literate program should be like a textbook on mathematicics. A mathematical textbook explains a theory in terms of lemma and theorems. But the proofs are never formal in the sense that they are obtaind by symbol manipulation of a proof checker. Rather the proofs are by so called "informal rigour", i.e. by very precise and unambiguous sentences in a natural language. Eric W. van Ammers Department of Computer Science Wageningen Agricultural University Dreijenplein 2 E-mail: ammers@rcl.wau.nl 6703 HB Wageningen voice: +31 (0)8370 83356/84154 The Netherlands fax: +31 (0)8370 84731 Another author (Norman Ramsey) wrote me and asked that his opinions be included in the FAQ. What follows are Norman's comments verbatim. I see it's time for the ``how is literate programming different from verbose commenting'' question. Perhaps David Thompson will get this into the FAQ. Alert! What follows are my opinions. In no way do I claim to speak for the (fractious) literate-programming community. How is literate programming different from verbose commenting? There are three distinguishing characteristics. In order of importance, they are: - flexible order of elaboration - automatic support for browsing - typeset documentation, especially diagrams and mathematics Flexible order of elaboration means being able to divide your source program into chunks and write the chunks in any order, independent of the order required by the compiler. In principle, you can choose the order best suited to explaining what you are doing. More subtly, this discipline encourages the author of a literate program to take the time to consider each fragment of the program in its proper sphere, e.g., not to rush past the error checking to get to the ``good parts.'' In its time and season, each part of the program is a good part. (This is the party line; your mileage may vary.) I find the reordering most useful for encapsulating tasks like input validation, error checking, and printing output fit for humans --- all tasks that tend to obscure ``real work'' when left inline. Reordering is less important when using languages like Modula-3, which has exceptions and permits declarations in any order, than when using languages like C, which has no exceptions and requires declaration before use. Automatic support for browsing means getting a table of contents, index, and cross-reference of your program. Cross-reference might be printed, so that you could consult an index to look up the definition of an identifier `foo'. With good tools, you might get a printed mini-index on every page if you wanted. Or if you can use a hypertext technology, cross-reference might be as simple as clicking on an identifier to reach its definition. Indexing is typically done automatically or `semi-automatically', the latter meaning that identifier definitions are marked by hand. Diligently done semi-automatic indexes seem to be best, because the author can mark only the identifiers he or she considers important, but automatic indexing can be almost as good and requires no work. Some tools allow a mix of the two strategies. Some people have applied literate-programming tools to large batches of legacy code just to get the table of contents, index, and cross-reference. I don't use diagrams and mathematics very often, but I wouldn't want to have to live without them. I have worked on one or two projects where the ability to use mathematical formulae to document the program was indispensible. I also wouldn't like to explain some of my concurrent programs without diagrams. Actually I write almost all of my literate programs using only sections headers, lists, and the occasional table. >Wouldn't it be easier to do one's literate programming using a wysiwyg >word processor (e.g. Word for Windows) and indicate what is source >code by putting it in a different font? The data formats used in wysiwyg products are proprietary, and they tend to be documented badly if at all. They are subject to change at the whim of the manufacturer. (I'll go out on a limb and say there are no significant wysiwyg tools in the public domain. I hope the Andrew people will forgive me.) These conditions make it nearly impossible to write tools, especially tools that provide automatic indexing and cross-reference support. The CLiP people have a partial solution that works for tools that can export text --- they plant tags and delimiters throughout the document that enable the reordering transformation (``tangling''). People use TeX, roff, and HTML because free implementations of these tools are widely available on a variety of platforms. TeX and HTML are well documented, and TeX and roff are stable. TeX is the most portable. I think I have just answered the FAQ ``how come all these tools use TeX, anyway?'' :-) Norman Ramsey = ====================================================================== * How do I begin literate programming? -------------------------------------- A recommended book is D.E. Knuth's collection of articles (1992) "Literate Programming," Center for the Study of Language and Information, Stanford University, ISBN 0-937073-80-6 (pbk). This book gives insight into Knuth's thoughts as he developed the web system of literate programming (and TeX for typesetting). It does not document methods for literate programming. A recommended book is Wayne Sewell's (1989) "Weaving a Program: Literate Programming in WEB," Van Nostrand Reinhold, ISBN 0-442-31946-0 (pbk). This book focuses on using Knuth's web system. Some talk exists in the newsgroup/mailing list for a Usenet University course in literate programming. I'm sure discussion of this topic will be welcomed. If you are interested, please participate. = ====================================================================== * What literate programming tools are available and where are they? ------------------------------------------------------------------- A significant number of tools for literate programming are available. Most have been ported from their original systems, so support multiple computer platforms. If you are the developer of such a tool, and would like to make the software freely available, please send me email and I'll reply with a form (like those below) for you to fill in. (Or short-circuit the process and kludge a form from below. :-) - ---------------------------------------------------------------------- - APLWEB -------- Developer: Christoph von Basum Version: Unknown Hardware: MSDOS Languages: IBM APL2 and STSC APL Formatter: Plain TeX Availability: Anonymous ftp from: LPA:/apl watserv1.uwaterloo.ca:/languages/apl/aplweb Readme: Unknown Description: None available. Support: Unknown Note: The status of this particular package is unknown. - ---------------------------------------------------------------------- - AWEB ------ Developer: Unknown Version: Unknown Hardware: Unknown Languages: Ada Formatter: Unknown Availability: Anonymous ftp from: LPA:/ada/web Readme: Unknown Description: None available Support: Not supported. - ---------------------------------------------------------------------- - CLiP ------ Developer: E.W. van Ammers and M.R. Kramer Version: Unknown Hardware: Vax/VMS, Unix, and MS-DOS Languages: Any programming language. Formatter: Any formatter (TeX, LaTeX, Troff, Runoff, etc) or any wordprocessor including WYSIWYG systems (Word Perfect, Win Word, Ami Pro, Word, etc.) Availability: Anonymous ftp from: sun01.info.wau.nl:/CLIP/ms_dos MS-DOS version sun01.info.wau.nl:/CLIP/vax_vms VAX/VMS version CTAN:/web/clip LPA:/machines/ms-dos LPA:/machines/vax Readme: With bundle above Description: CLiP does not use explicite commands to perform the extraction process. Rather it recognizes pseudostatemens written as comments in the programming language in question. CLiP distinguishes pseudostatments from ordinary comments because the former comply with a a particular style. This style can be adjusted to suit virtually any programming language. The CLiP approach to LP makes the system extremely versatile. It is independent of programming language and text processing environment. We designed CLiP to be compatible with hypertext systems as well but we have not yet experimented with this form of documentation. Features: + CLiP imposes virtually no limitations on the text-processing system used to produce the documentation. If the text-processor supports these items you can + structure the documentation according to your own taste. + include drawings, pictures, tables etc. + disclose your documentatio my means of X-ref tables, Indexes, Table of contents, Table of tables, Table of figures, etc. + typeset the documented code. + Extracts any number of modules from a maximum of 64 source files. + No pretty-printing. Code from the source files is copied "as is" to the module. + Appearance of code segments in the documentation matches those of the modules to ease the identification of code segements. + Supports partially specified data types. + Comprehensive user manual (preliminary version) and technical description. - No automatic generation of a X-ref table for program identifiers. Support: Bugs, problems and assistance by e-mail: ammers@rcl.wau.nl - ---------------------------------------------------------------------- - CWEB ------ Developer: Silvio Levy and D.E. Knuth Version: 3.0 Hardware: Unix systems (dos and amiga ports available) Languages: C and C++ Formatter: Plain TeX and LaTeX. Availability: Anonymous ftp from: labrea.stanford.edu:/pub/cweb LPA:/c.c++ CTAN:/web/c_cpp/cweb DOS version in CTAN:/web/c_cpp/cwb30p8c DOS version in LPA:/machines/ms-dos Amiga version CTAN:/web/c_cpp/AmigaCWEB Mac port of CTANGLE in LPA:/machines/mac LaTeX support in LPA:/c.c++ Readme: Bundled with above Description: No description provided. Support: Bugs to levy@math.berkeley.edu - ---------------------------------------------------------------------- - CWEBx3.0: ----------- Developer: Marc van Leeuwen Version: Unknown Hardware: Any system using ASCII code Languages: ANSI C Formatter: Plain TeX Availability: Anonymous ftp from: ftp.cwi.nl/pub/cweb Readme: Bundled with above Brief description: A modified implementation of CWEB, with some extensions. Provides a mode for full compatibility with Levy/Knuth CWEB. The most significant extras are: - Typedef declarations affect formatting througout source file - Include files are scanned for typedef definitions - Flexible selection of layout style - Possibility to refer to sections using symbolic labels - CTANGLE detects unbalanced braces and parentheses - CWEAVE can be made to report syntax errors more easily - Some additional mechanisms to avoid formatting problems - New and modular set of grammar rules, based on ANSI C syntax - Possibility to suppress #line directives - A new manual Support: bugs and remarks to M.van.Leeuwen@cwi.nl - ---------------------------------------------------------------------- - FunnelWeb ----------- Developer: Ross N. Williams: ross@guest.adelaide.edu.au Version: Unknown Hardware: MSDOS, Mac, VMS, Sun. Other ports reported. Languages: No restrictions. Formatter: Plain TeX for printing. Otherwise, no restrictions. Availability: Anonymous ftp from: CTAN:/web/funnelweb LPA:/independent ftp.adelaide.edu.au:/pub/funnelweb Readme: With bundle above. Description: FunnelWeb is a production-quality literate-programming tool that emphasises simplicity and reliability. Everything about FunnelWeb, from the simplicity of its language to the comprehensive tutorial in the user's manual, has been designed to make this as simple, as practical, and as usable a tool as possible. Features: + Provides a simple macro preprocessor facility. + Can produce typeset documentation. + Runs on Sun, VMS VAX, Macintosh, PC, and others. + Portable C source code distributed under GNU licence. + Comprehensive user's manual including tutorial. + Programming-language independent. + Can generate multiple output files. + Allows complete control over the output text. + Regression test suite with over 200 tests. + Fully worked example (in /pub/funnelweb/examples). - Requires TeX to produce typeset documentation. - Typesets program code using TT font only. Support: No formal support available. Mailing list maintained with about 50 subscribers. Informal assistance available from mailing list. - ---------------------------------------------------------------------- - FunnelWeb 3.0AC ----------------- Developer: Enhanced by A.B.Coates (coates@physics.uq.edu.au) from FunnelWeb v3.0 by Ross N. Williams (ross@guest.adelaide.edu.au) Version: 3.0AC Hardware: MSDOS, Mac, VMS, Sun, OSF/1, Linux, Sys.V, OS/2. Languages: No restrictions. Formatter: Tex, LaTeX, or HTML. Availability: Anonymous ftp from ftp.physics.uq.oz.au:/pub/funnelwebAC30.tar.gz Readme: With bundle above; for FunnelWeb manual see WWW page http://www.physics.uq.oz.au:8001/people/coates/funnelweb.html Description: FunnelWeb 3.0AC is an enhanced version of FunnelWeb (see the entry for FunnelWeb). FunnelWeb is designed to be typesetter independent, though FunnelWeb v3.0 only supports (La)TeX as the typesetter. FunnelWeb 3.0AC also supports HTML, and creates appropriate hypertext links within the document among the code sections. FunnelWeb 3.0AC also supports automatic and manual insertion of line directives, so that compiler errors can be flagged back to the original FunnelWeb source file. FunnelWeb 3.0AC is completely compatible with FunnelWeb v3.0 sources (with one minor exception; see the file README.ABC which comes with the FunnelWeb 3.0AC distribution). Support: Supported by A.B.Coates (coates@physics.uq.edu.au), subject to the time constraints imposed by his thesis. - ---------------------------------------------------------------------- - FWEB ------ Developer: John A. Krommes Version: 1.30a (1.40 for the experienced, patient, and brave) Hardware: Unix, VMS, and DOS platforms (anything with ANSI C) Languages: C, C++, Fortran-77, Fortran-90, Ratfor, TeX; also, a language-independent mode. Formatter: Plain TeX and LaTeX. Availability: Anonymous ftp from: ftp.pppl.gov:/pub/fweb CTAN:/web/fweb LPA:/fweb DOS version in LPA:/machines/ms-dos Readme: In bundle with above. Description: It also has a well-developed user's manual and its own FAQ (see above). Beginning with 1.40, documentation is maintained in gnu texinfo format. It runs on most platforms: VMS, PC, UNIX, and pretty much anything that the GNU C compiler (GCC) is supported for. Features: + Processes multiple languages during a single run (so one can mix C and Fortran, for example). + Language-independent mode (v1.40). + Ability to turn off pretty-printing (v1.40). + Built-in Ratfor translator. + Built-in macro preprocessor (closely follows ANSI C, with extensions). + A style file that allows the user to adjust many parameters and behavior patterns of FWEB. + Various operator-overloading features that provide additional pretty-printing capabilities to languages such as C++ and Fortran-90. + Numerous miscellaneous features and command-line options. Support: Bug reports and suggestions to krommes@princeton.edu The following text was relayed by utcke@tu-harburg.d400.de recently. A new entry for this FAQ will eventually be prepared. NOTICE (June 12, 1995) The 1.52 tar file was regenerated. If your version of that file included the file web/defaults.mk, you should say `make clean' before beginning the installation process, or use the new tar file. NOTICE (June 10, 1995) Version 1.52 is available. More bug fixes. 1.5x will remain in beta-testing until about Sept. 1, 1995; further changes are hoped to be minimal. If you have previously picked up 1.50 or 1.51, you definitely should install 1.52 instead. So it seems there's really 1.5x available for the experienced, patient and brave --- especially given the following statement (same source): Version 1.30, which for several years has been declared to be the stable version of choice, is gradually getting out of date. I now recommend that current users try VERY, VERY CAUTIOUSLY to upgrade to v1.50. Don't do that the week before a critical deadline. - ---------------------------------------------------------------------- - IMPACT -------- Developer: Timothy Larkin, from Levy/Knuth CWEB 3.1 Version: 1.0 Hardware: Macintosh; requires AppleEvents. Languages: C, C++ Formatter: TeX Availability: CTAN archives Readme: A short readme file is included in the SEA archive. Description: IMPACT implements CTangle from the Levy/Knuth CWEB 3.1. It operates as a foreground program, tangling files selected from the Mac File Picker. Or it can operate in the background, tangling files in response to odoc events sent by other applications, such as editors. Support: I welcome any reports of bugs. The product will be updated as new versions of the CWEB appear. Other features may be added as users suggest them. - ---------------------------------------------------------------------- - lit2x ------- Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/independent Readme: Unknown Description: None available Support: Unknown - ---------------------------------------------------------------------- - Literate Programmer's Workshop (LPW) -------------------------------------- Developer: Norbert Lindenberg Version: 1.1 Hardware: Apple Macintosh Languages: C++, Object Pascal & others Formatter: self-contained WYSIWYG system Availability: Anonymous ftp from: LPA:/machines/mac CTAN:/web/lpw ftp.apple.com:/pub/literate.prog Readme: With bundle above. Also comes with 38-page manual. Description: The Literate Programming Workshop is an environment for the integrated development of program source text and documentation in combined documents. It consists of a WYSIWYG word processor based on a style sheet approach, a mechanism to extract parts of the text in a document, and a project management system that handles multi-document projects. The system is designed to be used in conjunction with the Macintosh Programmer's Workshop: it prepares raw source text for the MPW compilers, accepts MPW error messages, and shows them in the context of the original documents. Automatic indexing and hypertext features allow for easy access to both source text and documentation. LPW is shareware. Support: Bugs, problems, and questions to lpw@aol.com. - ---------------------------------------------------------------------- - MapleWEB ---------- Developer: Unknown Version: Unknown Hardware: Unknown Languages: Maple Formatter: Unknown Availability: Anonymous ftp from: LPA:/maple Readme: Unknown Description: None Support: Unknown - ---------------------------------------------------------------------- - MWEB (Schrod/Detig) --------------------- Developer: Joachim Schrod Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. - ---------------------------------------------------------------------- - MWEB (Sewell) --------------- Developer: Sewell Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. - ---------------------------------------------------------------------- - noweb ------- Developer: Norman Ramsey Version: 2.7a Hardware: Unix and DOS platforms. Languages: All programming languages. Automatic indexing for C, Icon, Standard ML, TeX, Yacc Formatter: Plain TeX, LaTeX, and HTML (Mosaic/Netscape) formatters. Availability: Anonymous ftp from: CTAN:/web/noweb LPA:/independent Last recourse, use bellcore.com:/pub/norman Readme: With bundle above, or see ``Literate Programming Simplified,'' IEEE Software, September 1994, pp97-105. Description: noweb is designed to meet the needs of literate programmers while retaining the simplest possible input format. Its primary advantages are simplicity, extensibility, and language-independence. noweb uses 5 control sequences to WEB's 27. The simple noweb manual is only 2 pages; documenting the full power of noweave and notangle requires another 3 pages. noweb works ``out of the box'' with any programming language, and a simple back end for a new text formatter can be written in about 50 lines of awk. The primary sacrifice relative to WEB is the loss of prettyprinting. noweb supports indexing and identifier cross-reference, including hypertext ``hot links'' courtesy of Mosaic or Netscape. noweb includes a simple, efficient LaTeX-to-HTML converter, so you can use hypertext browsers on your legacy documents. noweb can also process nuweb programs, so you can use noweb to convert a standard nuweb program to HTML with one command. Support: email to the author - ---------------------------------------------------------------------- - nuweb ------- Developer: Preston Briggs: preston@cs.rice.edu Version: 0.87 Hardware: Unix systems: Sparcs, RS/6000s, HPs; (!) MSDOS and Amiga. Languages: Any programming language or combination of programming languages. Formatter: Latex Availability: Anonymous ftp from: Unix: CTAN:/web/nuweb DOS: CTAN:/web/nuweb-pc LPA:/independent Amiga: CTAN:/web/nuweb/nuweb_ami Amiga: wuarchive.wustl.edu/pub/aminet Readme: Send mail to preston@cs.rice.edu Description: A single program that takes a web file written in a combination of latex and any programming language(s) and produces a latex file that can be pretty printed and a set of files containing code for compilation/interpretation by the appropriate language processors. Strengths include speed, simplicity, multiple languages, nice indices and cross-references, latex. Doesn't require any special macros or macro files. Drawbacks: latex-dependent, no code pretty printing, harder to make indices than cweb. More good stuff: nice support for make, doesn't reformat source files, so they're easy to debug. Lots of control without too much effort. That is, it doesn't do too much! Future directions... Very little change planned, except perhaps refinements in the indexing software. Support: Hack it yourself or send e-mail to preston@cs.rice.edu - ---------------------------------------------------------------------- - ProTeX -------- Developer: Eitan Gurari Version: ProTeX 1.1, AlProTeX 1.4 Hardware: Any platform with (La)TeX Languages: Any language Formatter: TeX or LaTeX Availability: Anonymous ftp from: ftp.cis.ohio-state.edu : pub/tex/osu/gurari/ LPA:/independent Readme: With bundle above Description: + Easy to use + Extensible + Language independent + Multiple output files + Fast (single compilation provides output and dvi files) + No installation is needed besides copying the files (written in TeX) Introduction of main features and examples in pub/tex/osu/gurari/LitProg Complete manual in Eitan M. Gurari, "TeX and LaTeX: Drawing and Literate Programming", McGraw-Hill, 1994 Support: gurari@cis.ohio-state.edu - ---------------------------------------------------------------------- - RWEB ------ Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/reduce Readme: Unknown Description: Web generator in AWK. Support: Unknown - ---------------------------------------------------------------------- - SchemeWEB ----------- Developer: John D. Ramsdell Version: 2.1 Hardware: Unix and DOS platforms Languages: Any dialect of Lisp. Formatter: LaTeX. Availability: The Unix version is in the Scheme Repository and it is available via anonymous ftp from: cs.indiana.edu:/pub/scheme-repository/utl/schemeweb.sh LPA:/lisp CTAN:/tex-archive/web/schemeweb The DOS version is part of the PCS/Geneva Scheme system which is available via anonymous ftp from: cui.unige.ch:/pub/pcs LPA:/machines/ms-dos Readme: In bundle with above. Description: SchemeWEB is a Unix filter that allows you to generate both Lisp and LaTeX code from one source file. The generated LaTeX code formats Lisp programs in typewriter font obeying the spacing in the source file. Comments can include arbitrary LaTeX commands. SchemeWEB was originally developed for the Scheme dialect of Lisp, but it can easily be used with most other dialects. Support: Bug reports to ramsdell@mitre.org. - ---------------------------------------------------------------------- - SpideryWEB ------------ Developer: Norman Ramsey Version: Unknown Hardware: Unix and DOS platforms Languages: Most Algol-like languages, including C, Ada, Pascal, Awk, and many others. Formatter: Plain TeX and latex for text formatters. Availability: Anonymous ftp from: CTAN LPA:/spiderweb Readme: In distribution. Description: A system for building language-dependent WEBs. Spider is frozen; no further development is planned. Support: Bug reports to spider-bugs@oracorp.com. - ---------------------------------------------------------------------- - WEB ----- Developer: Donald Knuth Version: Unknown Hardware: Unknown Languages: Pascal Formatter: TeX (of course! ;-) Availability: Anonymous ftp from: LPA:/pascal Readme: Unknown Description: This is the original software that started it all. The original TeX processor was written in WEB. Support: None known. - ---------------------------------------------------------------------- - WinWordWEB ------------ Developer: Lee Wittenberg Version: Unknown Hardware: Needs Microsoft Word for Windows, v.2.x, and, of course, MS-Windows 3.x. Languages: Any programming language. Formatter: Word for Windows 2.x for text formatting and file maintenance. Availability: Anonymous ftp from: bart.kean.edu:pub/leew LPA:/machines/ms-dos World-Wide Web (WWW) Readme: WORDWEB.DOC in the downloadable package describes the system. Description: WinWordWEB is a set of a Word for Windows macros (plus a paragraph style) that provide a crude literate programming environment. The ``look and feel'' of the system is based on Norman Ramsey's noweb, but can easily be modified to suit individual tastes. Support: None. WinWordWEB was written as a prototype to see if a WYSIWYG literate programming system was possible. It is intended as a jumping off point for future work by others. However, the system is surprisingly usable as it stands, and the author is interested in hearing from users (satisfied and dissatisfied). Anyone interested in actively supporting (and improving) the product should contact the author via email. = ====================================================================== * Are there other tools I should know about? -------------------------------------------- First of all, I'll list some not-quite-literate-programming tools. Some may consider these to be pretty-printers. Others may call them literate programming tools. In any event, they don't seem to be quite in the same category as the tools listed above, so I'll include them here. - C2LaTeX --------- Developer: John D. Ramsdell Version: Unknown Hardware: Unix Languages: C Formatter: LaTeX but it's easy to change the formatter. Availability: Anonymous ftp from omnigate.clarkson.edu:/pub/tex/tex-programs/c2latex. Readme: Absent. Documentation is in the C source for c2latex. Description: C2latex provides simple support for literate programming in C. Given a C source file in which the comments have been written in LaTeX, c2latex converts the C source file into a LaTeX source file. It can be used to produce typeset listings of C programs and/or documentation associated with the program. C2latex produces LaTeX source by implementing a small number of rules. A C comment that starts at the beginning of a line is copied unmodified into the LaTeX source file. Otherwise, non-blank lines are surrounded by a pair of formatting commands (\begin{flushleft} and \end{flushleft}), and the lines are separated by \\*. Each non-blank line is formatted using LaTeX's \verb command, except comments within the line are formatted in an \mbox. Support: Send bug reports to ramsdell@mitre.org. - ---------------------------------------------------------------------- - c2cweb -------- Developer: Werner Lemberg Version: 1.4 Hardware: DOS, OS/2, Unix (gcc) - CWEB source included Languages: C, C++ Formatter: TeX Availability: Anonymous ftp from CTAN:/web/c_cpp/c2cweb Readme: In distribution. Description: c2cweb will transform plain C or C++ code into a CWEB file to get a pretty formatted output. A modified CWEAVE (which transforms the CWEB file into a TeX file, see below) is included also. Support: Werner Lemberg - ---------------------------------------------------------------------- - c2man ------- language: C, nroff, texinfo, latex, html package: c2man version: 2.0 patchlevel 33 parts: documentation generator (C -> nroff -man, -> texinfo, ->latex, -> html) author: Graham Stoney location: ftp from any comp.sources.misc archive, in volume42 (the version in the comp.sources.reviewed archive is obsolete) ftp /pub/Unix/Util/c2man-2.0.*.tar.gz from dnpap.et.tudelft.nl Australia: ftp /usenet/comp.sources.misc/volume42/c2man-2.0/* from archie.au N.America: ftp /usenet/comp.sources.misc/volume42/c2man-2.0/* from ftp.wustl.edu Europe: ftp /News/comp.sources.misc/volume42/c2man-2.0/* from ftp.irisa.fr Japan: ftp /pub/NetNews/comp.sources.misc/volume42/c2man-2.0/* from ftp.iij.ad.jp Patches: ftp pub/netnews/sources.bugs/volume93/sep/c2man* from lth.se description: c2man is an automatic documentation tool that extracts comments from C source code to generate functional interface documentation in the same format as sections 2 & 3 of the Unix Programmer's Manual. It requires minimal effort from the programmer by looking for comments in the usual places near the objects they document, rather than imposing a rigid function-comment syntax or requiring that the programmer learn and use a typesetting language. Acceptable documentation can often be generated from existing code with no modifications. conformance: supports both K&R and ISO/ANSI C coding styles features: + generates output in nroff -man, TeXinfo, LaTeX or HTML format + handles comments as part of the language grammar + automagically documents enum parameter & return values + handles C (/* */) and C++ (//) style comments - doesn't handle C++ grammar (yet) requires: yacc/byacc/bison, lex/flex, and nroff/groff/texinfo/LaTeX. ports: Unix, OS/2, MSDOS, VMS. portability: very high for unix, via Configure status: actively developed; contributions by users are encouraged. discussion: via a mailing list: send "subscribe c2man " (in the message body) to listserv@research.canon.oz.au help: from the author and other users on the mailing list: c2man@research.canon.oz.au announcements: patches appear first in comp.sources.bugs, and then in comp.sources.misc. updated: 1994/10/07 - ---------------------------------------------------------------------- - cnoweb -------- Developer: Jim Fox Version: 1.4 (January 4, 1991) Hardware: Anything with C and TeX. Languages: C Formatter: Plain TeX. Availability: Anonymous ftp from: CTAN LPA:/c.c++ Readme: Unknown, cnoweb.tex contains documentation. Description: cnoweb is as it's name describes: write C, not web. No tangling or weaving is implemented. Documentation (between standard /* */ delimiteres) is written in TeX. cnoweb provides typesetting of documentation, an table of contents of routines, and pretty-printing of C source. Support: None known. - ---------------------------------------------------------------------- - Fold2Web ---------- Developer: Bernhard Lang Version: V0.8 Hardware: MSDOS Languages: All (must allow comment lines) Formatter: LaTeX Availability: Anonymous ftp from: kirk.ti1.tu-harburg.de (134.28.41.50) /pub/fold2web/readme /pub/fold2web/fold2web.zip Readme: In distribution Description: The idea behind the Fold2Web tool is the following: A programmer can write his program source with a folding editor and later map the folded source files automatically to WEB-files. The generated WEB-files can then be modified by inserting required documentations. The advantage by starting program developement with original sources is to get short design cycles during the compile/debug steps. By using a folding editor the global structuring information can be already captured in folds during this developement phase. Fold information is typically stored in comment lines and thus will not affect the efficiency of the compile/debug design cycle. Some folding editors and a folding mode for the emacs are available (e.g. see our FUE folding editor for MSDOS machines which is a modified micro emacs. Pick it at kirk in directory /pub/fold2web). After reaching a stable version of a program source its time to convert the source file to a WEB-file and do the program documentation. Fold2Web is written to convert folded source text of any programming language to nuweb files. The folded structure is kept by mapping folds to scraps. Fold markers which differ between languages due to different ways of specifying comments can be configured for each language. Good results can also achived when given but poor documented program sources have to be modified. Such sources can be folded using a folding editor to extract the global structures. This offers a global view to the program structures and help to understand its functionality. Furthermore the program code is not affected, only comment lines are inserted. Once folded the program source can be automatically translated to a WEB document using the above tool. Support: email to lang@tu-harburg.d400.de - ---------------------------------------------------------------------- - Funnelweb Mode ---------------- Developer: Daniel Simmons Version: Unknown Availability: Litprog archives (was in email) Anonymous ftp from: ftp.imada.ou.dk Description: The other day I did a quick hack to nuweb.el as included with the nuweb distribution so as to make a funnelweb-mode.el. I've only used it briefly, and I'm sure that it can be improved quite a bit. I've been thinking about adding support for folding on sections, a pull-down menu to select macro definitions (like the recent functions posted to gnu.emacs.sources for a C function definition pull-down menu) and some kind of tags support for funnelweb. Support: Unknown - ---------------------------------------------------------------------- - noweb.el ---------- Developer: Bruce Stephens Version: Unknown. Availability: LitProg archives (in an email message). Description: This is a very simple mode I just hacked up. There's a lot wrong with it, but I thought others may be interested, even as it stands. It *requires* text properties, and assumes those used in GNU Emacs 19.22; it'll quite likely work with Lucid Emacs, but I haven't tried it. I use it with auctex8.1 and cc-mode 3.229, both of which are loaded separately (I think my emacs is dumped with them, in fact). The idea is to have one mode (which calls itself c-mode, but actually has LaTeX-mode keybindings) generally (this means that the code is hilighted nicely), and have the code chunks use a different keymap. Support: Email to bruce@liverpool.ac.uk - ---------------------------------------------------------------------- - nuweb.el ---------- Developer: Dominique de Waleffe Version: 1.99 Availability: Anonymous ftp from: LPA CTAN Description: Provides a major mode extending Auctex for editing nuweb files. Main features (in 2.0): - Edit scrap bodies in a separate buffer in a different mode (selected using emacs defaults for files, specific indication -*-mode-*-, or a buffer-local variable) - Extends Auctex commands so that nuweb is called before LaTeX, - Easy navigation on scrap definition and use points. - Now creates an imenu (C-M-mouse1) with user index entries, macro definition positions and file definition positions. Support: Email to ddw@acm.org - ---------------------------------------------------------------------- - TIE ----- Developer: Unknown Version: Unknown Hardware: Unknown Availability: Anonymous ftp from: LPA:/Tools Readme: Unknown Description: This software merges change files. Support: Unknown - ---------------------------------------------------------------------- - Web mode ---------- Developer: Bart Childs Version: Unknown Tools supported: web, fweb, cweb, funnelweb Availability: Anonymous ftp from ftp.cs.tamu.edu:pub/tex-web/web/EMACS.web-mode thrain.anu.edu.au:pub/web/EMACS.web-mode Description: This version works with versions 18 and 19 of Emacs to be best of my knowledge. I have cleaned up a number of documentation items ... In the same directory is wm_refcard.tex which is an edited version of the famous one to include some web-mode commands. The files limbo* are related to its use and notice that half them have an uppercase L in them for LaTeX. The setup is based upon the fact that we (I am not alone here) primarily use FWEB for C and Fortran programming. We are using version 1.40 of FWEB although John Krommes warns that it is not mature and the manual is not yet updated. The info files are! We are using LaTeX almost exclusively. That will likely change and we will revert to version 1.30 if the final form of 1.40 cannot return to the simple section numbers and avoid the HORRIBLE LATEX 0.1.7.2.4.6 type section numbers. Support: Unknown = ====================================================================== * What other resources are available? ------------------------------------- - World Wide Web ---------------- An untapped resource (by me anyway ;-) is the World Wide Web. Marcus Speh has expended considerable effort in this regard. If you're connected to WWW, then access: http://info.desy.de:80/user/projects/LitProg.html If you aren't connected to WWW, telnet to info.cern.ch and explore. You can reach Marcus' literate programming pages by typing: go http://info.desy.de:80/user/projects/LitProg.html or use a WWW browser and access the URL ftp://rtfm.mit.edu/pub/usenet/news-answers/www/resources/literate-programming Help for people who have only Email and neither WWW nor telnet, can be obtained by Email from TEST-LIST@INFO.CERN.CH by sending a message, SEND , for example, SEND http://info.desy.de:80/user/projects/LitProg.html to retrieve the LitProg library page. A help file can be retrieved by sending a message to the list server above with the text HELP in the body of the message. Instructions will be returned by email. For literate programming documents, you can try anonymous ftp to rtfm.mit.edu and retrieve the official Usenet resource file /pub/usenet/news.answers/www/resources/literate-programming - ---------------------------------------------------------------------- - TeX Resources --------------- Another resource of interest to literate programmers is the comp.text.tex newsgroup. If you're using (La)TeX as your typsetting system and have access to internet, then you should investigate this resource. Another reason the TeX resources should be important is that so many of the literate programming tools rely on either plain TeX or LaTeX as their text formatter. (La)TeX software systems exist for most computing platforms. These systems can be found on CTAN and other major archive sites. Use archie to find them or simply ftp to one of the CTAN sites and browse. = ====================================================================== * Are there any code examples? ------------------------------ Examples of web programs are included with the FWEB, CWEB, and noweb distributions. nuweb is written in itself. Cameron Smith converted the K&R calculator program into a literate program. It can be retrieved by anonymous ftp from: niord.shsu.edu [192.92.115.8] directory kr-cweb-sample as krcwsamp.zip or from LPA/Documentation Ross Williams has released a funnelweb example. You can retrieve this file from node ftp.adelaide.edu.au [129.127.40.3] as /pub/funnelweb/examples/except.* This file should be on CTAN as well. Lee Wittenberg has posted a few litprog examples. They are available via anonymous ftp from: bart.kean.edu:/pub/leew/samples.LP The Stanford GraphBase is a large collection of programs by Don Knuth for doing all kinds of computations and games with graphs; it is written in (Levy/Knuth) CWEB. More details in the distribution. It is available via anonymous ftp from: labrea.stanford.edu:/pub/sgb = ====================================================================== * Bibliographies ---------------- Nelson Beebe has collected an extensive bibliography treating literate programming. His work is available for anonymous ftp from ftp.math.utah.edu [128.110.198.2] in directory /pub/tex/bib as files: litprog.bib litprog.ltx litprog.twx. Although I have not verified this, LPA is an alternate source for these files. Note that they are updated frequently (Nelson says several times each week), so be sure to get a fresh copy before extensive use. Joachim Schrod indicates that these files may be updated daily and can be retrieved via anonymous ftp at LPA/documentation. = ====================================================================== * How to anonymously ftp ------------------------ Pretty much everything mentioned here is available by anonymous FTP. FAQ lists cross-posted to news.answers and rec.answers can be gotten from rtfm.mit.edu [18.181.0.24], under /pub/usenet/news.answers or under /pub/usenet/more.specific.group.name "anonymous FTP" is just a way for files to be stored where anyone can retrieve them over the Net. For example, to retrieve the latest version of the literate programming FAQ, do the following: > ftp rtfm.mit.edu /* connect to the site; message follows */ > anonymous /* type this when it asks for your name */ > /* type your address as the password */ > cd /pub/usenet /* go to the directory you want to be */ > cd comp.programming.literate /* one level down (no slash). */ > dir /* look at what's there */ > get literate-progamming-faq /* get the file; case-sensitive */ > quit /* stop this mysterious thing */ If your FTP program complains that it doesn't know where the site you want to use is, type the numerical address instead of the sitename: > ftp 18.181.0.24 /* connect with numerical address */ If you don't have ftp access, send e-mail to mail-server@rtfm.mit.edu with the single word "help" in the body of the message. Getting binary files (executables, or any compressed files) is only slightly more difficult. You need to set binary mode inside FTP before you transfer the file. > binary /* set binary transfer mode */ > ascii /* set back to text transfer mode */ FAQs and spoiler lists are generally ascii files; everything else is generally binary files. Some common extensions on binary files in archive sites are: .Z Compressed; extract with uncompress .tar.Z Compressed 'tape archive'; uncompress then untar or tar -xvf .gz or .z Gnu gzip; use gunzip (available from prep.gnu.ai.mit.edu) .sit (Mac) StufIt archive .zip Extract with Zip or Unzip .zoo Yet another archive/compress program .lhe (Amiga) ? .lzh Lha archive program. .arj (PC) Arj archive program. .exe (PC) Sometimes self-extracting archives-just execute them. .uue or .UUE Transfer as text file; use uudecode to convert to binary .hqx (Mac) BinHex format; transfer in text mode Generic help can be found in the FAQs of comp.binaries. for how to transfer, extract, and virus-check binary files. (At rtfm.mit.edu) If you can't FTP from your site, use one of the following ftp-by-mail servers: ftpmail@decwrl.dec.com ftpmail@src.doc.ic.ac.uk ftpmail@cs.uow.edu.au ftpmail@grasp.insa-lyon.fr For complete instructions, send a message reading "help" to the server. If you don't know exactly what you're looking for, or exactly where it is, there are programs and servers that can help you. For more info, send e-mail to mail-server@rtfm.mit.with with the body of the message reading send usenet/news.answers/finding-sources Thanks to Aliza R. Panitz (the "buglady") for this text. I copied it verbatim from her post on faq-maintainers with only minor modifications. = ====================================================================== * Acknowledgements ------------------ This document would not have happened without the help of many people. Among them are Marcus Speh, George Greenwade, Rob Beezer, Joachim Schrod, Piet van Oostrum, and Ross N. Williams. A special thanks to Aliza R. Panitz for the text describing how to execute an anonymous ftp for files of interest. Any omissions from these acknowledgements should be considered an act of stupidity on my part. Of course, the authors of literate programming tools mentioned above all play a vital role in the vitality of literate programming. Furthermore, participants in the comp.programming.literate newsgroup (and associated mailing list) all contributed in various fashions. Thank all of you. = ====================================================================== * End notes ----------- This document will continue to evolve. I'm planning on adding entries for additional literate programming tools and will expand the sections on examples as more examples become available. Tools I will include are WEB (the original pascal version) for starters. Others will be added as I find and document them. Omission of a particular tool should not be considered a snub in any sense--simply an error or oversight on my part. = End of File ========================================================== 28-Jul-1997 3:13:17-GMT,1098;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id VAA15068 for ; Sun, 27 Jul 1997 21:13:15 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 27 Jul 1997 22:02:55 EST From: jshu524@aol.com (Jshu524) Reply-To: LitProg@SHSU.edu, jshu524@aol.com Subject: Poor Girl needs your help in Java Programming :-( Date: 28 Jul 1997 03:02:14 GMT Message-ID: <19970728030200.XAA03356@ladder01.news.aol.com> To: LitProg@SHSU.edu I just graduated from school and work as a programmer, my first project is very tough, could somebody give me a help regarding any of the following questions? 1) Can CGI be written in Java? 2) Can Java read system environment variables like C & Perl? 3) How to get country name from IP address? 4) How to check if an IP address is valid? Thank you very much for attention! Jasmine 28-Jul-1997 3:28:27-GMT,1098;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id VAA15322 for ; Sun, 27 Jul 1997 21:28:26 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 27 Jul 1997 22:02:56 EST From: jshu524@aol.com (Jshu524) Reply-To: LitProg@SHSU.edu, jshu524@aol.com Subject: Poor Girl needs your help in Java Programming :-( Date: 28 Jul 1997 03:02:40 GMT Message-ID: <19970728030200.XAA17012@ladder02.news.aol.com> To: LitProg@SHSU.edu I just graduated from school and work as a programmer, my first project is very tough, could somebody give me a help regarding any of the following questions? 1) Can CGI be written in Java? 2) Can Java read system environment variables like C & Perl? 3) How to get country name from IP address? 4) How to check if an IP address is valid? Thank you very much for attention! Jasmine 28-Jul-1997 21:01:52-GMT,1968;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id PAA05255 for ; Mon, 28 Jul 1997 15:01:50 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 28 Jul 1997 15:48:52 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: a question about noweb for dos Message-ID: Date: Mon, 28 Jul 1997 20:38:41 GMT To: LitProg@SHSU.edu In article , Uwe Knietzsch wrote: >Exucuse me, but i have a little problem with noweb for dos. I have heard other reports of trouble with DOS noweb. When you have trouble, it is important to specify what version you have, plus to say whether you are using the C++-based port by Lee Wittenberg or the Perl-based port by Philip Miller. (There is also a Win32 port by Paolo Ciccone.) I am hoping that with some help from Lee, I will get a DOS-based port that I will be able to maintain myself. >After reboot, i have started to make the test.tex with > >make test.tex in the c:\noweb\example - directory. > >The result was, that the sterr-output goes to the console >within the stdout. This sounds like there could be a problem with make, or it could be expecting you to run a Unix-like shell (e.g. from mks toolkit). >How can i redirekt the stderr-output to a seperated >error-file or what must i do to get a test.tex without >stderr-mesages. Perhaps if you reproduce the error messages we will have a better idea how to eliminate them. Norman -- Norman Ramsey -- moderator, comp.programming.literate http://www.cs.virginia.edu/~nr 28-Jul-1997 21:02:20-GMT,2541;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id PAA05264 for ; Mon, 28 Jul 1997 15:02:18 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 28 Jul 1997 15:48:46 EST From: Uwe Knietzsch Reply-To: LitProg@SHSU.edu, Uwe.Knietzsch@informatik.tu-chemnitz.de Subject: a question about noweb for dos Content-Type: text/plain; charset=us-ascii Message-ID: Content-Transfer-Encoding: 7bit MIME-Version: 1.0 Date: Mon, 28 Jul 1997 20:23:31 GMT To: LitProg@SHSU.edu Exucuse me, but i have a little problem with noweb for dos. The noweb for linux and sun-sparc runs without problems - noweb is a realy nice tool, but the dos-version may not work. I have downloaded the noweb for dos and i have unziped all the executable zip-compressed files and copied into the path c:\noweb\bin for binaries and c:\noweb\examples for the example-files. The environment in the auotexec.bat was set to set nolib=c:\noweb\bin set dirsep=\ And in the path-environment was included the c:\noweb\bin path. After reboot, i have started to make the test.tex with make test.tex in the c:\noweb\example - directory. The result was, that the sterr-output goes to the console within the stdout. A file test.tex was never seen on the hardisk (have searched with norton alt-f7 and wildcard matching to any file, that beginns with test - no result) The conole output was ok. In the case of make test.htm a html-file war displayed and in the case of make test.tex a tex-file was displayed on the console, but no output goes to the test.tex or test.htm. This was redirected with $(NOWEEAVE)....many options...test.nw > test.tex the original makefile. A make test.tex > test.err contains any output - the output for the stdout and the stderr. In msdows exists not the same way to redirekt the stderr to a file such as unix. How can i redirekt the stderr-output to a seperated error-file or what must i do to get a test.tex without stderr-mesages. -- MfG 55&73 to you ... ---------------------------------------------- E-Mail: ukn@informatik.tu-chemnitz.de www: http://www.tu-chemnitz.de/~ukn/ukn.html ---------------------------------------------- 28-Jul-1997 21:20:12-GMT,1170;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id PAA05689 for ; Mon, 28 Jul 1997 15:20:10 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 28 Jul 1997 16:08:01 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Temporary moderation change Message-ID: Date: Mon, 28 Jul 1997 20:46:48 GMT To: LitProg@SHSU.edu I will be away for a couple of weeks, during which time there will be no response to mail to litprog-admin, and there may be no new ``regular contributors.'' Patrick McPhee and Matthias Neeracher will continue moderating articles, so postings will continue getting through. I will update the list of regular contributors when I return. Norman -- Norman Ramsey -- moderator, comp.programming.literate http://www.cs.virginia.edu/~nr 29-Jul-1997 11:23:02-GMT,2776;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id FAA21032 for ; Tue, 29 Jul 1997 05:23:00 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 29 Jul 1997 06:07:00 EST From: Uwe Knietzsch Reply-To: LitProg@SHSU.edu, Uwe.Knietzsch@informatik.tu-chemnitz.de Subject: Re: a question about noweb for dos Content-Type: text/plain; charset=us-ascii Message-ID: Content-Transfer-Encoding: 7bit MIME-Version: 1.0 Date: Tue, 29 Jul 1997 10:46:41 GMT To: LitProg@SHSU.edu Norman Ramsey wrote: > I have heard other reports of trouble with DOS noweb. > When you have trouble, it is important to specify what version you > have, plus to say whether you are using the C++-based port by Lee > Wittenberg or the Perl-based port by Philip Miller. (There is also a > Win32 port by Paolo Ciccone.) > The binaries are from : ftp://ftp.dante.de/tex-archive/web/noweb/binaries/dos-2.7/ and comes from philip.miller@jhuapl.edu > > This sounds like there could be a problem with make, or it could be > expecting you to run a Unix-like shell (e.g. from mks toolkit). > First i must correkt a mistake. I have written a little type-error in my question, a 'E' was to much. The original call in the Makefile is $(NOWEAVE)....many options...test.nw > test.tex ...this do redirect the std-output to text.tex by using the > operator. But the output comes not to test.tex, it comes to the screen mixed with the stderr-output. The call $(NOWEAVE) executes a bat-File and this bat-File calles perl. > > Perhaps if you reproduce the error messages we will have a better idea > how to eliminate them. > The errormessages come from the noweave.bat . In this files where are 'print STDERR text' - calls and may these may be correct. There STDERR messages shows only the steps that noweave.bat currenlty executing, but incorect is that the std-output not goes to the test.tex File, it comes to the screen. This is the problem. The make, that i use is from my c-compiler and in the past i had no problems with this make, but it may be thats this make cannot handle redirekt the stdout, this fact must be now testing exaktly, this week. May be it exists a gmake for dos, i don't know. -- MfG 55&73 to you ... ---------------------------------------------- E-Mail: ukn@informatik.tu-chemnitz.de www: http://www.tu-chemnitz.de/~ukn/ukn.html ---------------------------------------------- 29-Jul-1997 12:01:13-GMT,2306;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id GAA21596 for ; Tue, 29 Jul 1997 06:01:11 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 29 Jul 1997 06:49:36 EST From: Uwe Knietzsch Reply-To: LitProg@SHSU.edu, Uwe.Knietzsch@informatik.tu-chemnitz.de Subject: Re: a question about noweb for dos Content-Type: text/plain; charset=us-ascii Message-ID: Content-Transfer-Encoding: 7bit MIME-Version: 1.0 Date: Tue, 29 Jul 1997 11:20:58 GMT To: LitProg@SHSU.edu Norman Ramsey wrote: > > This sounds like there could be a problem with make, or it could be > expecting you to run a Unix-like shell (e.g. from mks toolkit). > I have tested my make. First i have written a little test-makefile ---begin---Makefile--- all: makefile @ver > ver.txt @echo Message1: Now i show the os-version @type ver.txt @echo Message2: IF (you_see_the_version_between_message_1_and_2) @echo Message3: THEN (may_the_redirekt_console_output_correkt - i_hope); ---end--- and now i have make with c:\make all > testmake ... result from ver goes to ver.txt and the contents of ver.txt is ---begin--- ver.txt--- MS-DOS Version 6.22 ---end--- That`s all, what i want :-) ...and the console-std-output goes to the testmake-Files and the contents of this testmake-file is: ---begin---testmake--- MAKE Version 3.5 Copyright (c) 1991 Borland International Available memory 430240 bytes Message1: Now i show the os-version MS-DOS Version 6.22 Message2: IF (you_see_the_version_between_message_1_and_2) Message3: THEN (may_the_redirekt_console_output_correkt - i_hope); ---end---------- ...this is the correkt answer :-) and what i'm expect to. Now i think my make workes correct. -- MfG 55&73 to you ... ---------------------------------------------- E-Mail: ukn@informatik.tu-chemnitz.de www: http://www.tu-chemnitz.de/~ukn/ukn.html ---------------------------------------------- 29-Jul-1997 16:28:59-GMT,2129;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id KAA27123 for ; Tue, 29 Jul 1997 10:28:58 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 29 Jul 1997 11:09:19 EST From: LEE WITTENBERG Reply-To: LitProg@SHSU.edu, leew@cs.utk.edu Subject: Re: a question about noweb for dos Content-Type: TEXT/PLAIN; charset=US-ASCII Message-ID: MIME-Version: 1.0 Date: Tue, 29 Jul 1997 15:48:45 GMT To: LitProg@SHSU.edu On Tue, 29 Jul 1997, Uwe Knietzsch wrote: > $(NOWEAVE)....many options...test.nw > test.tex > > ...this do redirect the std-output to text.tex by using the > operator. > But the output comes not to test.tex, it comes to the screen mixed with > the stderr-output. > > The call $(NOWEAVE) executes a bat-File and this bat-File > calles perl. Since you're using the Phillip Miller's Perl port, I can't help with most of your problems, but I may be able to help with these points. DOS does not provide any way (at all) to redirect stderr. Since both streams get redirected, it appears that Phillip's port does not use stderr at all. Also, for some strange reason, batch file output cannot be redirected in DOS. This may have something to do with your problem. There are several workarounds for this, but there's no point going into them unless we're sure this is a problem (they're strange and quite kludgey). -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Computer Science Department | You cannot judge the importance of things Kean College of New Jersey | by the noise they make. Union, NJ 07083 | | -- James Hilton leew@samson.kean.edu | "Good-bye Mr. Chips" (1934) ------------------------------------------------------------------------ 30-Jul-1997 19:10:47-GMT,1538;000000000000 Received: from Niord.shsu.edu (niord.sam.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id NAA29833 for ; Wed, 30 Jul 1997 13:10:43 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 30 Jul 1997 13:49:52 EST From: jshu524@aol.com (Jshu524) Reply-To: LitProg@SHSU.edu, jshu524@aol.com Subject: Jasmine wants to thank you! Date: 30 Jul 1997 18:44:47 GMT Message-ID: <19970730184400.OAA16639@ladder01.news.aol.com> To: LitProg@SHSU.edu Hi! This is Jasmine, I'm very grateful to all the responses, you guys are great help! 1) Dan, thank you for your great help from UK. 2) Lars, thank you as well, though all I received from you was your email address. 3) Victor, thank you for your mail, you speak good English, I'll try your MyClass. 4) Matt, I'll take your advice, thanks a lot! 5) Arjun, thanks for your mail, I'll try the Socket s 6) Mark, I'm so grateful if you would let me try your code! 7) Joseph, thanks for your mail, is your last name from Chinese? 8) Hi, Chuck, I'll find that book, thanks. I graduated from Stony Brook Uni, and now work in Manhattan. 9) Peter, thanks for the advice, is your last name from German or Austrian? Ich bedanke mich sehr fuer Deine Hilfe! mach's gut! Special thanks to those whose name I can't remember (Sorry!) Thank you all! 1-Aug-1997 12:50:10-GMT,1423;000000000000 Received: from Niord.shsu.edu (niord.sam.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id GAA19219 for ; Fri, 1 Aug 1997 06:50:09 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 01 Aug 1997 07:36:45 EST From: Free4You@aol.com Reply-To: LitProg@SHSU.edu, Free4You@aol.com Subject: FREE CASH GRANTS AVAILABLE Date: Fri, 1 Aug 1997 08:29:50 Message-ID: <5rsl0v$ht6@world1.bawave.com> To: LitProg@SHSU.edu CASH GRANTS CASH GRANTS CASH GRANTS Foundations all over the United States GIVE CASH GRANTS. ANYONE can apply for a Grant from 18 years and up... This money HAS to be given away, WHY not to YOU? Grants from $500.00 to $50,000.00 possible, in some instances. Grants don't have to be paid back. Grants can be ideal for people who are or were bankrupt or just have bad credit. Get the money you need to start that business, you have always wanted. To get your list of FOUNDATIONS that give grants, AND instructions on how to apply. Send a check or money order for ONLY $6.00 to: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ B.C.S. 39 GURLEY ROAD #200 EDISON, NJ 08817 Att: GRANT INFO ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Include your E-MAIL ADDRESS 1-Aug-1997 14:18:53-GMT,1862;000000000000 Received: from Niord.shsu.edu (niord.sam.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id IAA20953 for ; Fri, 1 Aug 1997 08:18:51 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from brickbat8.mindspring.com by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 01 Aug 1997 09:01:57 EST Received: from default (user-37kbu6e.dialup.mindspring.com [207.69.248.206]) by brickbat8.mindspring.com (8.8.5/8.8.5) with SMTP id KAA00184; Fri, 1 Aug 1997 10:02:58 -0400 (EDT) Message-ID: <1.5.4.32.19970801141216.00675c70@pop.mindspring.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Fri, 01 Aug 1997 10:12:16 -0400 To: LitProg@SHSU.edu, Free4You@aol.com From: Patrick Sadler Reply-To: LitProg@SHSU.edu, techwerk@mindspring.com Subject: REMOVE At 08:29 AM 8/1/97, you wrote: >CASH GRANTS CASH GRANTS CASH GRANTS > >Foundations all over the United States GIVE CASH GRANTS. > >ANYONE can apply for a Grant from 18 years and up... > >This money HAS to be given away, WHY not to YOU? > >Grants from $500.00 to $50,000.00 possible, in some instances. > >Grants don't have to be paid back. > >Grants can be ideal for people who are or were bankrupt >or just have bad credit. > >Get the money you need to start that business, you have always wanted. > >To get your list of FOUNDATIONS that give grants, AND instructions >on how to apply. > >Send a check or money order for ONLY $6.00 to: >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >B.C.S. >39 GURLEY ROAD #200 >EDISON, NJ 08817 >Att: GRANT INFO >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >Include your E-MAIL ADDRESS > > > Patrick Sadler Office: 770.531.9227 Home: 770.531.1152 4-Aug-1997 16:29:37-GMT,1733;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id KAA11113 for ; Mon, 4 Aug 1997 10:29:35 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 04 Aug 1997 11:12:37 EST From: "Peter S. Housel" Reply-To: LitProg@SHSU.edu, peter_housel@SNMP.DLINK.COM.TW Subject: Writing styles for literate programming Date: 4 Aug 1997 15:53:47 GMT Message-ID: <5s4tub$2e9$1@readme.ican.net> To: LitProg@SHSU.edu I find that my comment style for literate programs, in addition to being pedantic, tends towards being somewhat "chatty", sometimes coming dangerously close to "cute" or "smart-assed." Does anybody else do this, or is it my own unique affliction? (In grade school, I used to amuse myself (and my teachers) by turning the vocabulary/spelling list sentence construction exercises into a game, writing them into surrealistically connected vignettes.) Does this sort of style tend to distract, or does it improve the readability of the program? I'm also toying with the idea of writing a program in the form of a dialog between two programmers trying to figure out the code, inspired by the dialogs in Douglas Hofstadter's Goedel Escher Bach: An Eternal Golden Braid, or some of the classic philosophical dialogs. Has anybody tried this before? Is this taking the idea of "programs as literature" a step too far? Does anyone want to encourage or discourage me? -Peter S. Housel- housel @ acm.org 4-Aug-1997 18:31:32-GMT,2036;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id MAA13895 for ; Mon, 4 Aug 1997 12:31:31 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 04 Aug 1997 13:04:21 EST From: ptjm@ican.net (Patrick TJ McPhee) Reply-To: LitProg@SHSU.edu, ptjm@ican.net Subject: Re: Writing styles for literate programming Message-ID: Date: Mon, 4 Aug 1997 16:37:01 GMT To: LitProg@SHSU.edu In article <5s4tub$2e9$1@readme.ican.net>, Peter S. Housel wrote: % I find that my comment style for literate programs, in addition to being % pedantic, tends towards being somewhat "chatty", sometimes coming % dangerously close to "cute" or "smart-assed." Does anybody else do this, or % is it my own unique affliction? I think it's just you. I had a situation a while ago where some poor sod who was charged with taking some proof of concept I'd created and adding it to a product came to me with a print-out of the thing and said `I don't understand this sentence.' It was just a joke. I told him to just ignore that one sentence. He walked away with a kind-of stunned look on his face, muttering `a joke?' Probably making jokes in the middle of your programs distracts other, more serious, people, but do you really want to encourage that sort of person? I'm trying to elminate my tendency to write `we now do blah blah blah'. % I'm also toying with the idea of writing a program in the form of a dialog % between two programmers trying to figure out the code, It sounds insane, but it's probably not a bad method of exposition (good enough for Plato, anyway). You could do up a UI package and call it `the dialogue dialogues'. -- Patrick TJ McPhee East York Canada ptjm@ican.net 4-Aug-1997 21:15:06-GMT,3093;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id PAA17786 for ; Mon, 4 Aug 1997 15:15:04 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 04 Aug 1997 16:03:46 EST From: LEE WITTENBERG Reply-To: LitProg@SHSU.edu, leew@cs.utk.edu Subject: Re: Writing styles for literate programming Content-Type: TEXT/PLAIN; charset=US-ASCII Message-ID: MIME-Version: 1.0 Date: Mon, 4 Aug 1997 20:52:31 GMT To: LitProg@SHSU.edu On Mon, 4 Aug 1997, Patrick TJ McPhee wrote: > In article <5s4tub$2e9$1@readme.ican.net>, > Peter S. Housel wrote: > > % I find that my comment style for literate programs, in addition to being > % pedantic, tends towards being somewhat "chatty", sometimes coming > % dangerously close to "cute" or "smart-assed." Does anybody else do this, or > % is it my own unique affliction? > > I think it's just you. I had a situation a while ago where some poor > sod who was charged with taking some proof of concept I'd created and > adding it to a product came to me with a print-out of the thing and > said `I don't understand this sentence.' It was just a joke. I told him > to just ignore that one sentence. He walked away with a kind-of stunned > look on his face, muttering `a joke?' > > Probably making jokes in the middle of your programs distracts other, > more serious, people, but do you really want to encourage that sort of > person? I'm trying to elminate my tendency to write `we now do blah blah > blah'. Knuth always lists his jokes in the index. I believe that both the TeX and Metafont source have quite a few jokes in them. Of course, it might not be appropriate for us mere mortals :-) > % I'm also toying with the idea of writing a program in the form of a dialog > % between two programmers trying to figure out the code, > > It sounds insane, but it's probably not a bad method of exposition (good > enough for Plato, anyway). You could do up a UI package and call it `the > dialogue dialogues'. I agree with Patrick about its probable insanity, but it's worth a try anyway. On the other hand (on the risk of starting an off-topic religious war), I found "Godel, Escher & Bach" incredibly pretentious and not nearly as clever as its author thought it was, so I wouldn't really care for anything based on GEB. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Computer Science Department | You cannot judge the importance of things Kean College of New Jersey | by the noise they make. Union, NJ 07083 | | -- James Hilton leew@samson.kean.edu | "Good-bye Mr. Chips" (1934) ------------------------------------------------------------------------ 4-Aug-1997 23:10:05-GMT,2931;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id RAA20329 for ; Mon, 4 Aug 1997 17:10:01 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from indy03.cs.monash.edu.au by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 04 Aug 1997 17:59:41 EST Received: from localhost (ajh@localhost) by indy03.cs.monash.edu.au (8.7.6/8.6.9) with SMTP id IAA19176; Tue, 5 Aug 1997 08:59:24 +1000 (EST) Message-ID: <199708042259.IAA19176@indy03.cs.monash.edu.au> To: LitProg@SHSU.edu, peter_housel@snmp.dlink.com.tw Subject: Re: Writing styles for literate programming MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 05 Aug 1997 08:59:18 +1000 From: John Hurst Reply-To: LitProg@SHSU.edu, ajh@cs.monash.edu.au > I find that my comment style for literate programs, in addition to being > pedantic, tends towards being somewhat "chatty", sometimes coming > dangerously close to "cute" or "smart-assed." Does anybody else do this, or > is it my own unique affliction? (In grade school, I used to amuse myself > (and my teachers) by turning the vocabulary/spelling list sentence > construction exercises into a game, writing them into surrealistically > connected vignettes.) Does this sort of style tend to distract, or does it > improve the readability of the program? I find this style very satisfying and intellectually stimulating (of course, I try to do it myself :-), so keep it up. One thing that comes through to me as reader is that the writer has taken immense pains to craft his text, and there is usually a flow on into the code. There is a danger of focussing too much upon the former, and not upon the latter, so I would not encourage this explicitly amongst tyros, but once litprogramming is mastered, I think it well worth the effort. > > I'm also toying with the idea of writing a program in the form of a dialog > between two programmers trying to figure out the code, inspired by the > dialogs in Douglas Hofstadter's Goedel Escher Bach: An Eternal Golden Braid, > or some of the classic philosophical dialogs. Has anybody tried this > before? Is this taking the idea of "programs as literature" a step too far? > Does anyone want to encourage or discourage me? My vote is a definite "encourage"! --John Hurst -- Associate Dean (Teaching), Faculty of Computing & Information Technology -- Associate Professor, Department of Computer Science --rm 110/26, Computer Science, Monash, Clayton VIC 3168 ~ ~~~&#: --ajh@cs.monash.edu.au _..___ ---____@___H__ --+61 3 9905 5192 (fax +61 3 9905 5146) |_____[_|_________[__]_ --http://www.cs.monash.edu.au/~ajh oo oo oo O--O--O o=o 5-Aug-1997 19:05:48-GMT,1661;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id NAA02590 for ; Tue, 5 Aug 1997 13:05:42 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 05 Aug 1997 13:00:33 EST From: mip@pobox.com (Michael Pruemm) Reply-To: LitProg@SHSU.edu, mip@pobox.com Subject: Re: Writing styles for literate programming Date: 5 Aug 1997 17:52:27 GMT Message-ID: <5s7p8r$44f$1@elna.ethz.ch> To: LitProg@SHSU.edu Peter S. Housel wrote: > I'm also toying with the idea of writing a program in the form of a dialog > between two programmers trying to figure out the code, inspired by the > dialogs in Douglas Hofstadter's Goedel Escher Bach: An Eternal Golden Braid, > or some of the classic philosophical dialogs. Has anybody tried this > before? Is this taking the idea of "programs as literature" a step too far? Have a look at "The Little Schemer" and "The Seasoned Schemer" by Felleisen & Friedman? how this could be done. These books introduce you to programming in Scheme (with lots of footnotes for Lispers) in the form of a dialog. Actually, it's more question & answer style. [I'll look up the names of the authors as soon as I'm back home. I'll post the correct info tomorrow...] Both books are written in a funny way. They contain stuff like: "How about a tea break? --- We are taking our now"... Really worth reading! - Michael Pruemm 5-Aug-1997 19:44:47-GMT,1185;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id NAA03431 for ; Tue, 5 Aug 1997 13:44:45 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 05 Aug 1997 14:28:48 EST From: Bill Davies Reply-To: LitProg@SHSU.edu, daviesw@agcs.com Subject: Any Conferences ? Date: Tue, 05 Aug 1997 12:27:47 -0700 Message-ID: <33E77EB3.7136@agcs.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Greetings, Does the literate programming community sponsor conferences along the lines of OOPSLA, PLoP, etc. ? If so, where would I find a schedule ? (I checked the FAQ .. didn't see it there). Thanks, -- Bill Davies e-mail: daviesw@agcs.com AG Communication Systems voice: (602) 581-4314 PO Box 52179 fax: (602) 582-7697 Phoenix AZ 85072-2179 http://www.agcs.com 5-Aug-1997 21:55:04-GMT,2713;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id PAA06461 for ; Tue, 5 Aug 1997 15:54:44 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from waves.kevol.com by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 05 Aug 1997 16:24:12 EST Received: by waves.kevol.com (SMI-8.6/SMI-SVR4) id RAA01243; Tue, 5 Aug 1997 17:06:10 -0400 Date: Tue, 5 Aug 1997 17:06:10 -0400 From: sbailin@waves.kevol.com Reply-To: LitProg@SHSU.edu, sbailin@waves.kevol.com Message-ID: <199708052106.RAA01243@waves.kevol.com> To: LitProg@SHSU.edu Subject: Re: Writing styles for literate programming > From: "Peter S. Housel" > Subject: Writing styles for literate programming > Date: 4 Aug 1997 15:53:47 GMT > To: LitProg@SHSU.EDU > > I find that my comment style for literate programs, in addition to being > pedantic, tends towards being somewhat "chatty", sometimes coming > dangerously close to "cute" or "smart-assed." Does anybody else do this, or > is it my own unique affliction? (In grade school, I used to amuse myself > (and my teachers) by turning the vocabulary/spelling list sentence > construction exercises into a game, writing them into surrealistically > connected vignettes.) Does this sort of style tend to distract, or does it > improve the readability of the program? > > I'm also toying with the idea of writing a program in the form of a dialog > between two programmers trying to figure out the code, inspired by the > dialogs in Douglas Hofstadter's Goedel Escher Bach: An Eternal Golden Braid, > or some of the classic philosophical dialogs. Has anybody tried this > before? Is this taking the idea of "programs as literature" a step too far? > Does anyone want to encourage or discourage me? I would also encourage this. The idea of a dialog introduces (or at least implies) the presence of "characters" who may have different knowledge, goals, experiences, preferences, models of the world, etc. This is closely related to the idea of a "stakeholder" in a development project. Articulating the diversity of stakeholders and their respective stakes in a project can go a long way to preventing myopic design decisions. I myself have been working on the idea of a "design narrative" which takes the presence of characters and (explicit or implicit) dialog quite seriously and seeks to organize them according to narrative principles. (BTW, wrt GEB: Lee Wittenberg, you are not alone! ) Sidney Bailin Knowledge Evolution, Inc. 6-Aug-1997 10:43:08-GMT,1630;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id EAA20930 for ; Wed, 6 Aug 1997 04:43:07 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 06 Aug 1997 05:32:48 EST From: "Bill Kossmann" Reply-To: LitProg@SHSU.edu, kossmann@ccinet.ab.ca Subject: Re: Writing styles for literate programming Date: 6 Aug 1997 09:24:34 GMT Message-ID: <5s9fsi$3be$1@elna.ethz.ch> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Peter S. Housel wrote: > I find that my comment style for literate programs, in addition to being > pedantic, tends towards being somewhat "chatty", sometimes coming > dangerously close to "cute" or "smart-assed." Does anybody else do this, > or is it my own unique affliction? I also lean towards this style. I like to think that in some cases, it helps keep the reader interested--much more so than writing "First we do this: <> and then we do this: <> which leads into: <> etc." Literate Programming is supposed to make writing programs more enjoyable. If that's the case then we should be allowed some literary license. As long as we clearly convey the meaning of our programs in good taste, what's the harm in being "cute" or "smart-assed"? Regards, Bill 6-Aug-1997 14:01:26-GMT,2380;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id IAA24578 for ; Wed, 6 Aug 1997 08:01:25 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 06 Aug 1997 08:44:12 EST From: David Kastrup Reply-To: LitProg@SHSU.edu, dak@fsnif.neuroinformatik.ruhr-uni-bochum.de Subject: Re: Writing styles for literate programming Content-Type: text/plain; charset=ISO-8859-1 Message-ID: Content-Transfer-Encoding: 8bit MIME-Version: 1.0 (generated by tm-edit 7.93) Date: Wed, 6 Aug 1997 13:08:18 GMT To: LitProg@SHSU.edu LEE WITTENBERG writes: > >> It sounds insane, but it's probably not a bad method of exposition >> (good enough for Plato, anyway). You could do up a UI package and >> call it `the dialogue dialogues'. > I agree with Patrick about its probable insanity, but it's worth a > try anyway. On the other hand (on the risk of starting an off-topic > religious war), I found "Godel, Escher & Bach" incredibly > pretentious and not nearly as clever as its author thought it was, > so I wouldn't really care for anything based on GEB. I'm afraid you were expecting too much from Gvdel, Escher, Bach. Hofstadter is just playing around with things in what he considers amusing or interesting ways, and I find it not too difficult to just relax into his stance and draw some amusement from that. I haven't got the impression the book was particularly intended to look "clever". Curious (in several meanings of the word), yes. Anyhow, that the mentioning of dialogues in connection with representing technical matters reminds you immediately and unsolicitedly of GEB shows that at least the book's organization is somewhat unusual for our time, and has left some impression on you. One need not be Hofstadter, however, to know about Plato's dialogues. -- David Kastrup Phone: +49-234-700-5570 Email: dak@neuroinformatik.ruhr-uni-bochum.de Fax: +49-234-709-4209 Institut f|r Neuroinformatik, Universitdtsstr. 150, 44780 Bochum, Germany 6-Aug-1997 14:16:35-GMT,2137;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id IAA24925 for ; Wed, 6 Aug 1997 08:16:33 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 06 Aug 1997 09:04:16 EST From: LEE WITTENBERG Reply-To: LitProg@SHSU.edu, leew@cs.utk.edu Subject: Re: Writing styles for literate programming Content-Type: TEXT/PLAIN; charset=US-ASCII Message-ID: MIME-Version: 1.0 Date: Wed, 6 Aug 1997 13:50:32 GMT To: LitProg@SHSU.edu On Tue, 5 Aug 1997, John Hurst wrote: > One thing that comes > through to me as reader is that the writer has taken immense pains to craft > his text, and there is usually a flow on into the code. There is a danger > of focussing too much upon the former, and not upon the latter... I'm not really sure this is a "danger", since I've found that the best way to make my literate programs correct is to make sure the code matches the comments (text chunks), rather than the other way around (as in traditional programming). I once caught a bug when the code didn't match the chunk name! A rather extreme example, but the name was correct and the code wasn't. In fact, I find it much more useful to concentrate on getting the text correct and then (merely) make sure that the code does what the text says it should. While I still have my quota of typos and compilation errors, my logic error rate has gone way down. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Computer Science Department | Read the directions, even if you don't Kean College of New Jersey | follow them. Union, NJ 07083 | | -- Kurt Vonnegut leew@samson.kean.edu | Commencement address at MIT (1997) ------------------------------------------------------------------------ 6-Aug-1997 15:59:56-GMT,1353;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id JAA27152 for ; Wed, 6 Aug 1997 09:59:54 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 06 Aug 1997 10:45:46 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: Writing styles for literate programming Message-ID: Date: Wed, 6 Aug 1997 15:37:23 GMT To: LitProg@SHSU.edu In article <5s4tub$2e9$1@readme.ican.net>, Peter S. Housel wrote: > I find that my comment style for literate programs, in addition to being >pedantic, tends towards being somewhat "chatty", sometimes coming >dangerously close to "cute" or "smart-assed." Does anybody else do this, or >is it my own unique affliction? Read Don Knuth's originals and you will discover you are far from unique. There is no substitute for having somebody else review your literate programs. Norman -- Norman Ramsey -- moderator, comp.programming.literate http://www.cs.virginia.edu/~nr 6-Aug-1997 19:50:02-GMT,967;000000000000 Received: from Niord.shsu.edu (niord.sam.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id NAA02273 for ; Wed, 6 Aug 1997 13:50:00 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 06 Aug 1997 14:34:04 EST From: Malcolm Lloyd Subject: Active Server Page Scripting Date: Wed, 06 Aug 1997 14:30:37 -0500 Message-ID: <33E8D0DD.577@tribune.com> Reply-To: LitProg@SHSU.edu, mlloyd@tribune.com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu I need help assigning variables from an HTML Layout(.alx) page to Visual Basic or Java Script. If anyone can help, please CC Mail me. My name is Malcolm Lloyd (312)-222-2904. Thank you 7-Aug-1997 5:00:42-GMT,897;000000000000 Received: from Niord.shsu.edu (niord.sam.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id XAA13450 for ; Wed, 6 Aug 1997 23:00:41 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from Test-Mac.sonicsys.stph.net by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 06 Aug 1997 23:38:40 EST Received: from [196.12.54.33] by with SMTP id AGP2953794366; Thu, 07 Aug 1997 10:26:07 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Thu, 7 Aug 1997 10:10:39 +0630 To: LitProg@SHSU.edu From: "Jaya Kumar Raj .P" Reply-To: LitProg@SHSU.edu, kumar@sonicsys.stph.net Subject: Remove Take me off 7-Aug-1997 5:29:04-GMT,1415;000000000000 Received: from Niord.shsu.edu (niord.sam.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id XAA14002 for ; Wed, 6 Aug 1997 23:29:03 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from indy03.cs.monash.edu.au by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 07 Aug 1997 00:15:00 EST Received: from localhost (ajh@localhost) by indy03.cs.monash.edu.au (8.7.6/8.6.9) with SMTP id PAA14296; Thu, 7 Aug 1997 15:14:59 +1000 (EST) Message-ID: <199708070514.PAA14296@indy03.cs.monash.edu.au> To: LitProg@SHSU.edu, kumar@sonicsys.stph.net Subject: Re: Remove MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Thu, 07 Aug 1997 15:14:59 +1000 From: John Hurst Reply-To: LitProg@SHSU.edu, ajh@cs.monash.edu.au > Take me off > where would you like to go? --John Hurst -- Associate Dean (Teaching), Faculty of Computing & Information Technology -- Associate Professor, Department of Computer Science --rm 110/26, Computer Science, Monash, Clayton VIC 3168 ~ ~~~&#: --ajh@cs.monash.edu.au _..___ ---____@___H__ --+61 3 9905 5192 (fax +61 3 9905 5146) |_____[_|_________[__]_ --http://www.cs.monash.edu.au/~ajh oo oo oo O--O--O o=o 7-Aug-1997 6:37:21-GMT,876;000000000000 Received: from Niord.shsu.edu (niord.sam.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id AAA15484 for ; Thu, 7 Aug 1997 00:37:19 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from ns ([159.226.39.1]) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 07 Aug 1997 01:18:35 EST Received: from ios22 ([159.226.40.152]) by ns (8.6.11/8.6.11) with SMTP id CAA17464 for ; Thu, 7 Aug 1997 02:11:21 +0900 Date: Thu, 7 Aug 1997 02:11:21 +0900 Message-ID: <199708061711.CAA17464@ns> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: litprog@SHSU.edu From: hyx@ns.ict.ac.cn Reply-To: LitProg@SHSU.edu, hyx@ns.ict.ac.cn Please take me off. xw Tel:(010)62563753 7-Aug-1997 10:27:29-GMT,2526;000000000000 Received: from Niord.shsu.edu (niord.sam.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id EAA19440 for ; Thu, 7 Aug 1997 04:27:28 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 07 Aug 1997 05:19:35 EST From: John Hurst Reply-To: LitProg@SHSU.edu, ajh@cs.monash.edu.au Subject: Re: Writing styles for literate programming Date: 7 Aug 1997 10:13:48 GMT Message-ID: <5sc74s$8r$1@elna.ethz.ch> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii To: LitProg@SHSU.edu Lee Wittenberg wrote: > On Tue, 5 Aug 1997, John Hurst wrote: > > > One thing that comes > > through to me as reader is that the writer has taken immense pains to craft > > his text, and there is usually a flow on into the code. There is a danger > > of focussing too much upon the former, and not upon the latter... > > I'm not really sure this is a "danger", since I've found that the best > way to make my literate programs correct is to make sure the code > matches the comments (text chunks), rather than the other way around > (as in traditional programming). I once caught a bug when the code > didn't match the chunk name! A rather extreme example, but the name > was correct and the code wasn't. Agreed. Providing that you do it your way, no problem. But my perception of the danger was that (in the spirit of the original post), an unduly "clever style" may lead to too much emphasis upon trying to get the text to be highly sophisticated, and not enough emphasis upon writing readable code. LitProg does not absolve the coder from writing clean, readable code! One might argue that there is a double onus upon the litprogger, a) to write good code just like any other good programmer, and b) to write a readable, enjoyable discursion about the code (and the design, specification, etc., etc.). cheers, --John Hurst -- Associate Dean (Teaching), Faculty of Computing & Information Technology -- Associate Professor, Department of Computer Science --rm 110/26, Computer Science, Monash, Clayton VIC 3168 ~ ~~~&#: --ajh@cs.monash.edu.au _..___ ---____@___H__ --+61 3 9905 5192 (fax +61 3 9905 5146) |_____[_|_________[__]_ --http://www.cs.monash.edu.au/~ajh oo oo oo O--O--O o=o 7-Aug-1997 10:27:35-GMT,1564;000000000000 Received: from Niord.shsu.edu (niord.sam.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id EAA19444 for ; Thu, 7 Aug 1997 04:27:34 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 07 Aug 1997 05:19:33 EST From: peter@premise.demon.co.uk (Peter Hancock) Subject: Re: Writing styles for literate programming Date: 7 Aug 1997 10:14:35 GMT Message-ID: <5sc76b$8s$1@elna.ethz.ch> Reply-To: LitProg@SHSU.edu, pgh@dcs.ed.ac.uk To: LitProg@SHSU.edu > I find that my comment style for literate programs, in addition to being >pedantic, tends towards being somewhat "chatty", sometimes coming >dangerously close to "cute" or "smart-assed." Does anybody else do this, or >is it my own unique affliction? Yes, I feel something similar. Maybe we need to keep our spirits up, while we are writing something which if we are honest no-one will ever read? Or because if we are honest the words are a cover for the fact we're not really too sure what we're doing or why? Mind you, one can be too harsh about this. Some of the funniest things I've read have been in the comments of computer programs, where the personality of the author gets a chance to come out. Some of the most toe-curling, precious, cringe-making literate programs I've read (apart from my own) are by disciples of Dijkstra. Peter Hancock 8-Aug-1997 2:47:29-GMT,1593;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id UAA10021 for ; Thu, 7 Aug 1997 20:47:28 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 07 Aug 1997 21:29:36 EST From: "Peter S. Housel" Reply-To: LitProg@SHSU.edu, housel@acm.org Subject: Re: Writing styles for literate programming Date: 8 Aug 1997 02:24:54 GMT Message-ID: <5se01m$s7f$1@readme.ican.net> To: LitProg@SHSU.edu Norman Ramsey wrote, >There is no substitute for having somebody else review your literate >programs. I agree completely, in principle. But where does one find someone who cares enough to do it well? It's hard to find someone motivated to put out the effort to give you honest, helpful comments. For the past three years I've been working as a technical writer (since I'm living in Taiwan, where people who can write in English are highly in demand). I have found it almost impossible to get any helpful comments from anybody (even colleagues who are native English speakers), other than on typos, minor errors in grammar, and technical errors. There are plenty of writers workshops (online and off) for mutual critique of creative writing of all genres. If there were one for literate programmers, would it be helpful? Would it get used? -Peter S. Housel- housel at acm.org 8-Aug-1997 3:02:18-GMT,2394;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id VAA10291 for ; Thu, 7 Aug 1997 21:02:16 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 07 Aug 1997 21:29:39 EST From: ok@cs.rmit.edu.au (Richard A. O'Keefe) Reply-To: LitProg@SHSU.edu, ok@cs.rmit.edu.au Subject: 10 million lines Date: 8 Aug 1997 02:24:10 GMT Message-ID: <5se00a$s65$1@readme.ican.net> To: LitProg@SHSU.edu I'm looking for ideas. There's an organisation that expects to have 10 million lines of code in one system in a couple of years. They expect this to grow rather faster than hardware size, so that there might even be 100 million lines of code before the C++ standard is ready. (Just my little joke at the expense of C++.) They already have one single program that is about 300 000 lines of functional-language code (which they estimate would be 6 times as much in C). I've been asked to think about tools and techniques and possible modifications to the language that would make the construction of large reliable systems by geographically and organisationally distributed teams possible. The thing that concerns me here is `what about the internal documentation'? I don't know if there's an LP tool for this language yet (other of course than nuweb, which I like a lot). If we can benefit from cross-referencing like nuweb and Web provide, for book-size systems, and we can (the Stanford GraphBase book isn't the world's best C code, but it is certainly easy to find your way around), what will we need for `library size' systems (say 500 to 5 000 books)? Worse still, what will we need for systems that are changing and growing faster than any one person can _possibly_ keep up? I don't see any prospect of developing such large systems _without_ world- beating documentation tools. Already I would expect to see somewhat more documentation than code, so we're really talking about 1 000 books in the `library' Real Soon Now and 10 000 books in a decade or two. -- Four policemen playing jazz on an up escalator in the railway station. Richard A. O'Keefe; http://www.cs.rmit.edu.au/%7Eok; RMIT Comp.Sci. 8-Aug-1997 3:03:07-GMT,2921;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id VAA10324 for ; Thu, 7 Aug 1997 21:03:06 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from indy03.cs.monash.edu.au by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 07 Aug 1997 21:55:34 EST Received: from localhost (ajh@localhost) by indy03.cs.monash.edu.au (8.7.6/8.6.9) with SMTP id MAA19873; Fri, 8 Aug 1997 12:56:13 +1000 (EST) Message-ID: <199708080256.MAA19873@indy03.cs.monash.edu.au> To: LitProg@SHSU.edu, housel@acm.org Subject: Re: Writing styles for literate programming MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Fri, 08 Aug 1997 12:56:12 +1000 From: John Hurst Reply-To: LitProg@SHSU.edu, ajh@cs.monash.edu.au > Peter Housel wrote: > >There is no substitute for having somebody else review your literate > >programs. > > I agree completely, in principle. But where does one find someone who cares > enough to do it well? It's hard to find someone motivated to put out the > effort to give you honest, helpful comments. > > For the past three years I've been working as a technical writer (since I'm > living in Taiwan, where people who can write in English are highly in > demand). I have found it almost impossible to get any helpful comments from > anybody (even colleagues who are native English speakers), other than on > typos, minor errors in grammar, and technical errors. > > There are plenty of writers workshops (online and off) for mutual critique > of creative writing of all genres. If there were one for literate > programmers, would it be helpful? Would it get used? Indeed. A good question. Maybe it has been floated before, but what about an electronic journal of literate programs? Would people subscribe to it? It would be up to people such as ourselves to review submissions, and the comments that that would generate would be good feedback, surely. Or maybe we don't need a journal, just a repository. Would that get enough people prepared to browse and comment? I seem to recall that ACM dropped its litprog column some years ago because the submissions were about litprog tools, not the litprogs themselves, so I'm not sure that this idea would fare much better. Good idea? Lousy idea? --John Hurst -- Associate Dean (Teaching), Faculty of Computing & Information Technology -- Associate Professor, Department of Computer Science --rm 110/26, Computer Science, Monash, Clayton VIC 3168 ~ ~~~&#: --ajh@cs.monash.edu.au _..___ ---____@___H__ --+61 3 9905 5192 (fax +61 3 9905 5146) |_____[_|_________[__]_ --http://www.cs.monash.edu.au/~ajh oo oo oo O--O--O o=o 8-Aug-1997 4:26:15-GMT,3342;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id WAA11820 for ; Thu, 7 Aug 1997 22:26:14 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 07 Aug 1997 23:06:30 EST From: ptjm@ican.net (Patrick TJ McPhee) Reply-To: LitProg@SHSU.edu, ptjm@ican.net Subject: Re: Writing styles for literate programming Message-ID: Date: Fri, 8 Aug 1997 03:51:29 GMT To: LitProg@SHSU.edu In article <5sc76b$8s$1@elna.ethz.ch>, Peter Hancock wrote: % > I find that my comment style for literate programs, in addition to being % >pedantic, tends towards being somewhat "chatty", sometimes coming % >dangerously close to "cute" or "smart-assed." Does anybody else do this, or % >is it my own unique affliction? % % Yes, I feel something similar. Maybe we need to keep our spirits up, % while we are writing something which if we are honest no-one will ever % read? Or because if we are honest the words are a cover for the fact % we're not really too sure what we're doing or why? Or how to say it. Sometimes being cutesy and making jokes is the best way to blow through a writer's block. On the other hand, I had a variable called `snuggle_puff' in a program once. It was just a counter which was written to a screen every so often because there was some long-winded process going on in the background. I call that kind of thing cosmetic fluff, so snuggle_puff is a very good description of what was going on, but it's still a pretty funny name for a variable, if I say so myself. Before it left my hands, though, the users decided they needed to have the program do its long-winded process 10 000 times or 100 000 times, and not necessarily run to completion, so snuggle_puff became a controlling variable. The thing that burned this in my mind was getting a call a couple of years later from some irate programmer demanding to know why there was a variable called snuggle_puff in the middle of his program. I understand he changed it to g_processCount or something humourless like that. The other thing I remember about that project was the way I commented out blocks of code that were or weren't needed as the users changed their minds about the requirements (this was for a bank): #ifdef I_HATE_THE_BANK #ifdef I_HATE_THE_BANK_I_DO_I_DO #ifdef I_DO_HATE_THE_BANK which would then be changed to #ifdef IHTBIDID if there was a chance it might be seen by the customer (except for that one time...). I've found that literate programming allows me to express this sort of thing in a more controlled and productive manner, although if I were back in that environment I'd probably have sections with names like `idiot code because they changed their stupid minds again'. I do find that I like to give my opinion of both the code and the requirements, which if nothing else breaks the monotony of `we do blah blah blah because blah blah'. Has anyone written descriptive sections using acrostics? How about iambic pentameter, or rhyming slang? -- Patrick TJ McPhee East York Canada ptjm@ican.net 8-Aug-1997 16:45:05-GMT,1267;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id KAA26196 for ; Fri, 8 Aug 1997 10:45:02 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from holonet.net by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 08 Aug 1997 11:30:12 EST Received: from usbr.gov ([140.218.20.231]) by holonet.net (Hugh S. Myers) with SMTP id JAA07744; Fri, 8 Aug 1997 09:22:42 -0700 Message-ID: <3.0.3.32.19970808102234.00869210@holonet.net> Date: Fri, 08 Aug 1997 10:22:34 -0600 To: LitProg@SHSU.edu, ajh@CS.MONASH.EDU.AU From: "Hugh S. Myers" Reply-To: LitProg@SHSU.edu, hsmyers@holonet.net Subject: Re: Writing styles for literate programming MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" At 12:56 PM 8/8/97 +1000, John Hurst wrote: > >Indeed. A good question. Maybe it has been floated before, but what about >an electronic journal of literate programs? Would people subscribe to it? Yes, I would. But in a sense, isn't that what we are reading and writing with our email? >Good idea? Lousy idea? Good! hsm 8-Aug-1997 16:46:14-GMT,2743;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id KAA26206 for ; Fri, 8 Aug 1997 10:46:13 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 08 Aug 1997 11:34:39 EST From: LEE WITTENBERG Reply-To: LitProg@SHSU.edu, leew@cs.utk.edu Subject: Re: Writing styles for literate programming Content-Type: TEXT/PLAIN; charset=US-ASCII Message-ID: MIME-Version: 1.0 Date: Fri, 8 Aug 1997 16:18:54 GMT To: LitProg@SHSU.edu On 7 Aug 1997, Peter Hancock wrote: > > I find that my comment style for literate programs, in addition to being > >pedantic, tends towards being somewhat "chatty", sometimes coming > >dangerously close to "cute" or "smart-assed." Does anybody else do this, or > >is it my own unique affliction? > > Yes, I feel something similar. Maybe we need to keep our spirits up, > while we are writing something which if we are honest no-one will ever > read? The only reason for the comments never to be read is if the program is never modified. Even if the original author is the only one who ever modifies the program, we all know how difficult it is to figure out the subtleties of code we wrote only a month ago. My personal experience with LP is that I can pick up a web I haven't touched in (literally) months, and resume work on it after a single reading. Similar experience with my own non-literate programs (of about the same size) required about a week of study before I could resume. It's probably also good to remember Kernighan & Plauger's dictum about "one-off programs" that turn out to have a long life anyway. > Or because if we are honest the words are a cover for the fact > we're not really too sure what we're doing or why? I try to use the text chunks to convince myself that I do know what I'm doing. I don't accept fuzzy phrasing from my students, and I try not to accept it from myself. My technique of matching the code to the text helps here, since it's impossible to translate ambiguous or fuzzy English into code. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Computer Science Department | Read the directions, even if you don't Kean College of New Jersey | follow them. Union, NJ 07083 | | -- attributed to Kurt Vonnegut leew@samson.kean.edu | ------------------------------------------------------------------------ 8-Aug-1997 16:47:10-GMT,1988;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id KAA26246 for ; Fri, 8 Aug 1997 10:47:09 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 08 Aug 1997 11:34:33 EST From: LEE WITTENBERG Reply-To: LitProg@SHSU.edu, leew@cs.utk.edu Subject: Re: Writing styles for literate programming Content-Type: TEXT/PLAIN; charset=US-ASCII Message-ID: MIME-Version: 1.0 Date: Fri, 8 Aug 1997 16:09:35 GMT To: LitProg@SHSU.edu On 7 Aug 1997, John Hurst wrote: > ... my perception > of the danger was that (in the spirit of the original post), an unduly > "clever style" may lead to too much emphasis upon trying to get the text to > be highly sophisticated, and not enough emphasis upon writing readable > code. LitProg does not absolve the coder from writing clean, readable > code! One might argue that there is a double onus upon the litprogger, a) > to write good code just like any other good programmer, and b) to write a > readable, enjoyable discursion about the code (and the design, > specification, etc., etc.). I would add to that the responsibility of writing clean, readable text, although I suspect that is what you mean by "a readable, enjoyable discursion...". Otherwise, I heartily concur. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Computer Science Department | Read the directions, even if you don't Kean College of New Jersey | follow them. Union, NJ 07083 | | -- attributed to Kurt Vonnegut leew@samson.kean.edu | ------------------------------------------------------------------------ 8-Aug-1997 17:01:30-GMT,2252;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id LAA26566 for ; Fri, 8 Aug 1997 11:01:29 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 08 Aug 1997 11:49:17 EST From: LEE WITTENBERG Reply-To: LitProg@SHSU.edu, leew@cs.utk.edu Subject: Re: Writing styles for literate programming Content-Type: TEXT/PLAIN; charset=US-ASCII Message-ID: MIME-Version: 1.0 Date: Fri, 8 Aug 1997 16:30:46 GMT To: LitProg@SHSU.edu On Fri, 8 Aug 1997, Patrick TJ McPhee wrote: > I've found that literate programming allows me to express this sort > of thing in a more controlled and productive manner, although if I > were back in that environment I'd probably have sections with names > like `idiot code because they changed their stupid minds again'. > I do find that I like to give my opinion of both the code and the > requirements, which if nothing else breaks the monotony of `we do > blah blah blah because blah blah'. I had similar experiences working with Paradox and Paradox for Windows a few years back. When I had to write kludgey code to get around some bizarre language restriction, I would explain the kludge with a nasty comment about the language designers. It helped keep me (somewhat :-) sane. > Has anyone written descriptive sections using acrostics? How about > iambic pentameter, or rhyming slang? G. B. Shaw claimed that iambic pentameter is easier to write than plain prose, and a friend of mine who's just written a play in iambic pentameter confirms this. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Computer Science Department | Read the directions, even if you don't Kean College of New Jersey | follow them. Union, NJ 07083 | | -- attributed to Kurt Vonnegut leew@samson.kean.edu | ------------------------------------------------------------------------ 8-Aug-1997 18:56:39-GMT,3994;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id MAA29306 for ; Fri, 8 Aug 1997 12:56:38 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 08 Aug 1997 13:48:14 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: 10 million lines Message-ID: Date: Fri, 8 Aug 1997 18:25:04 GMT To: LitProg@SHSU.edu In article <5se00a$s65$1@readme.ican.net>, Richard A. O'Keefe wrote: >I'm looking for ideas. How do you feel about gloom and doom? >There's an organisation that expects to have 10 million lines of code in >one system in a couple of years. They expect this to grow rather faster >than hardware size, so that there might even be 100 million lines of code >before the C++ standard is ready. Since this is c.p.l., I'll forbear from wondering what on Earth they are thinking of. >I've been asked to think about tools and techniques and possible >modifications to the language that would make the construction of large >reliable systems by geographically and organisationally distributed teams >possible. This reminds me of when I used to work for the phone companies, and we wondered what they were thinking of, too. There are some standard solutions, all of which amount to getting armies of programmers to shuffle slowly in some direction. >The thing that concerns me here is `what about the internal documentation'? >I don't know if there's an LP tool for this language yet (other of course >than nuweb, which I like a lot). If we can benefit from cross-referencing >like nuweb and Web provide, for book-size systems, ... >what will we need for `library size' systems (say >500 to 5 000 books)? >I don't see any prospect of developing such large systems _without_ world- >beating documentation tools. It happens all the time. Expect to spend a lot of time sitting in design meetings. ObLitprog: I don't have any solutions, just depressing observations: - As far as I am aware of, there are no document-processing systems capable of doing much that is useful for 500+ documents. Bellcore's Superbook might come close, but I have no idea if it would scale to that size. - Hypertext notwithstanding, we don't have a good story about links between documents in a collection that size. - No litprog tool of which I am aware handles cross-reference links between documents, which means that to cross-reference one program it must be one document. This paradigm is lousy even for ten thousand lines of code, let alone ten million. - No litprog tool of which I am aware handles cross-reference links involving identifiers with the same name in different name spaces (e.g., different modules). This is unacceptable for large systems (unless you're writing in C or Pascal or some other language with a single global name space). Right now, the only tool that does automatic cross-reference for multiple languages is noweb, but it suffers from problems above. (Inter-document references have been on my wish list for some time.) Moreover, its cross-referneces are integrated neither with the compiler nor with the standard index mechanism. How ugly. If I were to take one step toward improving the state of large literate programs, it would be to develop better cross-reference tools, both approximate and exact, and to integrate them with a tool like noweb or nuweb. Norman >Four policemen playing jazz on an up escalator in the railway station. I am dying to know the origin of this .sig. -- Norman Ramsey -- moderator, comp.programming.literate http://www.cs.virginia.edu/~nr 8-Aug-1997 19:18:55-GMT,1623;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id NAA29899 for ; Fri, 8 Aug 1997 13:18:54 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 08 Aug 1997 14:05:21 EST From: Uwe Knietzsch Reply-To: LitProg@SHSU.edu, Uwe.Knietzsch@INFORMATIK.TU-CHEMNITZ.DE Subject: searching for asm2latex Content-Type: text/plain; charset=us-ascii Message-ID: Content-Transfer-Encoding: 7bit MIME-Version: 1.0 Date: Fri, 8 Aug 1997 18:49:18 GMT To: LitProg@SHSU.edu I'm searching for a fast tool such as c2latex, but for assembler, simple weave a file with latex-source into assembler-comments between ; and the newline-character. The changeing of commentcharcters from `/*` and `*/` to `;` and `newline` in the c2latex-source and recompiling have no effekt. The assemblercomment ';' ist a expresion in c and the comment in assembler have only effekt to the end of line, but c2latex ignores the end of line as a end-of-comment character. The second problem is tangling a c2latex-source (a normal c-source) without any changes. -- MfG 55&73 to you ... ---------------------------------------------- E-Mail: ukn@informatik.tu-chemnitz.de www: http://www.tu-chemnitz.de/~ukn/ukn.html ---------------------------------------------- 9-Aug-1997 6:58:39-GMT,1017;000000000000 Received: from Niord.shsu.edu (niord.sam.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id AAA13447 for ; Sat, 9 Aug 1997 00:58:37 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sat, 09 Aug 1997 01:51:35 EST From: kissfm@commercialfree.net Reply-To: LitProg@SHSU.edu, kissfm@COMMERCIALFREE.NET Subject: *Hottest XXX Action Around* Date: 9 Aug 1997 06:47:29 GMT Message-ID: <5sh3q1$i0p375@inetgate.tp.ac.sg> To: LitProg@SHSU.edu Get Instant Access to Over 2000! Adult sites and XXX chats! http://www.xxxsc.com/ Theres Live xxx video, xxx pics, xxx mov, xxx avi, xxx mpg, and more. A system that will help prevent minors from accessing adult related material and still allow the adult web surfer to access xxx content fast and easy! http://www.xxxsc.com/ 9-Aug-1997 8:21:24-GMT,2341;000000000000 Received: from Niord.shsu.edu (niord.sam.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id CAA14763 for ; Sat, 9 Aug 1997 02:21:23 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sat, 09 Aug 1997 03:06:22 EST From: afriend@msn.com Reply-To: LitProg@SHSU.edu, afriend@msn.com Subject: lllll DON'T READ THIS llllll Message-ID: <897cd$3910.2e3@NEWS> Date: Sat, 9 Aug 1997 03:55:47 To: LitProg@SHSU.edu KNOWLEDGE IS POWER. It separates the WINNERS from the LOSERS. Do you want to be a winner? Do you know what separates the very successful people from the people just getting by? INFORMATION!!! The MOST successful people in any field, don't have all the answers... BUT they do know where to find them. Everyone needs to have information. Children need it for school, and good grades. Adults need it to keep informed and current with associates. Don't you know someone that always seems to be on the inside track? They may have already bought this report. Have ALL the information you need at your finger tips. I already spent hundreds of hours searching the internet to find the sites you need, with links to thousands of other sites. Here are a few examples: government sites, local and federal. Are you trying to find someone that owes you money? Do you need to check someone's background... potential employee, tennant, anyone. Find that lost love or college buddy. Lookup phone numbers around the block or around the world. Track down court records. Check someones credit, educational background, driving or criminal record. Locate military records. Get all the newest games, try them before you buy them. Find dozens of free offers. Search libraries around the world. Just about anything you can imagine , can be found on the internet. You just have to know WHERE to look. Don't wait... your competitors aren't waiting for you!!! INTERESTED ??? **** SEND $ 9.95 CHECK, MONEY ORDER **** with your EMAIL ADDRESS or mailing address to: **** **** B.C.S. **** 39 GURLEY ROAD #123 **** EDISON, NJ 08817 **** **** ATT: Internet Offer 9-Aug-1997 10:32:00-GMT,1356;000000000000 Received: from Niord.shsu.edu (niord.sam.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id EAA17012 for ; Sat, 9 Aug 1997 04:31:59 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sat, 09 Aug 1997 05:26:42 EST From: "James Davis (Fishguard High School)" Reply-To: LitProg@SHSU.edu, james@fishguar.demon.co.uk Subject: How do I choose variable names? Date: 9 Aug 1997 10:15:43 GMT Message-ID: <5shg0f$b2f$1@elna.ethz.ch> MIME-Version: 1.0 To: LitProg@SHSU.edu Hi, When Im programming how do I choose good names for my variables? My VB programmes at the moment have non very memorable names e.g. Dim surname as string Dim age as string It seems ok to start with but after a while when I get many more variables I'm always having to come back to where I define the variables to remember what I called them. Please help as t gets very annoying having to look back on my work. James Davis, Pupil Fishguard High School --- james@fishguar.demon.co.uk - e-mail www.fishguar.demon.co.uk/james/ - WWW site --- Visit my Web site to see latest details of Signature Creator v1.21 9-Aug-1997 19:40:14-GMT,2336;000000000000 Received: from Niord.shsu.edu (niord.sam.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id NAA26183 for ; Sat, 9 Aug 1997 13:40:13 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sat, 09 Aug 1997 14:28:35 EST From: Corey Minyard Reply-To: LitProg@SHSU.edu, minyard@acm.org Subject: Re: 10 million lines Date: Sat, 9 Aug 1997 17:44:50 GMT Message-ID: To: LitProg@SHSU.edu Norman Ramsey writes: > > ObLitprog: > > I don't have any solutions, just depressing observations: > - As far as I am aware of, there are no document-processing systems > capable of doing much that is useful for 500+ documents. > Bellcore's Superbook might come close, but I have no idea if it > would scale to that size. LaTeX is certainly capable of it. I have produced thousand page document with it. > - Hypertext notwithstanding, we don't have a good story about links > between documents in a collection that size. > - No litprog tool of which I am aware handles cross-reference links > between documents, which means that to cross-reference one program > it must be one document. This paradigm is lousy even for ten > thousand lines of code, let alone ten million. I wrote a literate programming tool called tango-weevil (available on CTAN, and yes, it is a dumb name) that supported cross-document links. It was not completely convenient, but it was better than nothing and was workable. > - No litprog tool of which I am aware handles cross-reference links > involving identifiers with the same name in different name spaces > (e.g., different modules). This is unacceptable for large systems > (unless you're writing in C or Pascal or some other language with > a single global name space). This is certainly more difficult. I might entertain an extension for Ada95 (since that is what I'm doing now), but not for C++ or anything like that. -- Corey Minyard Internet: minyard@acm.org Work: minyard@nortel.ca UUCP: minyard@wf-rch.cirr.com 10-Aug-1997 14:36:00-GMT,896;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id IAA15286 for ; Sun, 10 Aug 1997 08:35:59 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 10 Aug 1997 09:28:48 EST From: askjfdlksj@lkdjfsldjfsad.com Reply-To: LitProg@SHSU.edu, askjfdlksj@LKDJFSLDJFSAD.COM Subject: http://www.hot-asians.com Message-ID: <33edd010.0@news1.ibm.net> Date: 10 Aug 97 14:28:32 GMT To: LitProg@SHSU.edu Check out the Hottest New Asian Sex Site on the Net !!! The Worlds most Erotic Young Asians Around UNCENSORED !!! Visit: http://www.hot-asians.com All Models are over the Age of 18 Years of Age or Older. 11-Aug-1997 10:56:49-GMT,1408;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id EAA06325 for ; Mon, 11 Aug 1997 04:56:48 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 11 Aug 1997 05:44:21 EST From: Unbeliev@ble.com Reply-To: LitProg@SHSU.edu, Unbeliev@ble.com Subject: ///// FREE CASH GRANTS \\\\\\\ Message-ID: <8b7cd$53135.45@NEWS> Date: Mon, 11 Aug 1997 06:35:36 To: LitProg@SHSU.edu CASH GRANTS CASH GRANTS CASH GRANTS Foundations all over the United States GIVE CASH GRANTS. ANYONE can apply for a Grant from 18 years and up... This money HAS to be given away, WHY not to YOU? Grants from $500.00 to $50,000.00 possible, in some instances. Grants don't have to be paid back. Grants can be ideal for people who are or were bankrupt or just have bad credit. Get the money you need to start that business, you have always wanted. To get your list of FOUNDATIONS that give grants, AND instructions on how to apply. Send a check or money order for ONLY $6.00 to: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ B.C.S. 39 GURLEY ROAD #200 EDISON, NJ 08817 Att: GRANT INFO ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Include your E-MAIL ADDRESS 11-Aug-1997 20:51:52-GMT,1391;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id OAA18665 for ; Mon, 11 Aug 1997 14:51:51 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 11 Aug 1997 15:35:29 EST From: Johan Larsson Reply-To: LitProg@SHSU.edu, jola@ts.umu.se Subject: S.O.S :: Literate programming Date: 11 Aug 1997 20:29:22 GMT Message-ID: <5snsn2$ds1$1@elna.ethz.ch> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Hi. I am trying to create documentation for a huge Pascal application framework. I would like to do it from the richly commented source code. The documentation is intended to be published together with the OO framework on the Web (for free). I have tried to create TeX documents but without success. The file gets to large (800K ++) and is not very well-structured. It dependes on a macro that makes the TeX ==> HTML conversion very difficult.' I just heard about literate programming. Maybe there is some conversion program out there that could do the job? Best Regards, Johan Larsson jola@ts.umu.se http://www.ts.umu.se/~jola/ 12-Aug-1997 8:42:33-GMT,2100;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id CAA01838 for ; Tue, 12 Aug 1997 02:42:32 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 12 Aug 1997 03:32:22 EST From: jonas.andersson@adiuvabo.se (Jonas Andersson) Reply-To: LitProg@SHSU.edu, jonas.andersson@adiuvabo.se Subject: Re: How do I choose variable names? Date: 12 Aug 1997 08:29:30 GMT Message-ID: <5sp6ta$boe$1@elna.ethz.ch> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit To: LitProg@SHSU.edu On 9 Aug 1997 10:15:43 GMT, "James Davis (Fishguard High School)" wrote: >Hi, >When Im programming how do I choose good names for my variables? My VB >programmes at the moment have non very memorable names e.g. > >Dim surname as string >Dim age as string > >It seems ok to start with but after a while when I get many more >variables I'm always having to come back to where I define the variables >to remember what I called them. > >Please help as t gets very annoying having to look back on my work. > >James Davis, Pupil Fishguard High School >--- >james@fishguar.demon.co.uk - e-mail >www.fishguar.demon.co.uk/james/ - WWW site >--- >Visit my Web site to see latest details of Signature Creator v1.21 You are using very good variable names, good variable names are meaningful variable names. What I think is your problem is that you write very long routines so that you cannot see the varible declarations on top of the screen. You should consider breaking your program down into sub routines (check the manual for this), this allows you to get smaller routines. Also try to avoid global variables since it gets very hard to remember them all over time(aside from other difficulties). Jonas --------------------------- Jonas Andersson E-mail: jonas.andersson@adiuvabo.se 12-Aug-1997 10:12:38-GMT,64439;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id EAA03297 for ; Tue, 12 Aug 1997 04:12:36 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 12 Aug 1997 04:43:02 EST From: thompson@sun1.coe.ttu.edu Subject: comp.programming.literate FAQ Date: 12 Aug 1997 09:35:57 GMT Message-ID: Reply-To: LitProg@SHSU.edu, thompson@sun1.coe.ttu.edu To: LitProg@SHSU.edu Archive-name: literate-programming-faq Last-modified: 1996/11/19 Version: 1.1.17 Welcome to the Literate Programming Frequently Asked Questions List ------------------------------------------------------------------- Information contained in this document is the best available at preparation. The original file was dated October 15, 1993 (just for historical purposes). Disclaimer: "This FAQ is presented with no warranties or guarantees of ANY KIND including correctness or fitness for any particular purpose. The author of this document has attempted to verify correctness of the data contained herein; however, slip-ups can and do happen. If you use this data, you do so at your own risk." Copyright 1993-1996 by David B. Thompson. All rights reserved worldwide. Permission is granted to copy this document for free distribution so long as it remains intact and unmodified. For other arrangements, contact the author/maintainer via email: thompson@sun1.coe.ttu.edu. What's New? ----------- + My email address. + General cleanup. = ====================================================================== * Introduction or "What's this all about?" ------------------------------------------ This document is for new and experienced users of literate programming tools. The purpose is to explain the concept of literate programming and to provide a resource for locating files of interest to literate programmers and those interested in literate programming. The Literate Programming (LitProg) Frequently Asked Questions (FAQ) list is maintained by Dave Thompson, who can be reached at: thompson@cam203g.ce.ttu.edu * Preferred mailing address for FAQ related comments/questions. Comment and constructive criticism is welcome. Direct flames to /dev/null (or nul if you're a msdos user! ;-) If you find an error, please report it. I'm particularly interested in establishing the locations of generally available literate programming tools. If you are the author of such a tool and wish to have it included in this list, please send email. Please note this is a work-in-progress. It is *not* complete, and probably will never be complete. Nevertheless, the information contained herein may be useful to some. Use it as it is intended. - ---------------------------------------------------------------------- - Typography ------------ Major sections of the FAQ are divided by double lines (====). Minor sections and other divisions are separated by single lines (----). Major topics use a "* " as a leader. Minor topics use a "- " as a leader. This should simplify searching for topics. = ====================================================================== Table of Contents: ------------------ * Introduction, or "What's this all about?" - Typography * How do I get the FAQ? - Literate Programming FAQ - FWEB FAQ * Is there a newsgroup? (The comp.programming.literate newsgroup) * What internet nodes are of interest to literate programmers? * What is literate programming? * How do I begin literate programming? * What literate programming tools are available and where are they? - APLWEB - AWEB - CLiP - CWEB - CWEBx3.0 - FunnelWeb - FunnelWeb3.0AC - FWEB - IMPACT - lit2x - Literate Programmer's Workshop (LPW) - MapleWEB - MWEB (Schrod/Detig) - MWEB (Sewell) - noweb - nuweb - ProTeX - RWEB - SchemeWEB - Spidery WEB - WEB - WinWordWEB * Are there other tools I should know about? - C2LaTeX - c2cweb - c2man - cnoweb - Fold2web - FunnelWeb mode - noweb.el - nuweb.el - TIE - Web mode * What other resources are available? - TeX Resources - Virtual Coursework * Are there any code examples? - Examples included with developer's tools - Cameron Smith's KR-CWEB - Stanford GraphBase * Bibliographies. * How to anonymously ftp. * Acknowledgements. * End notes. = ====================================================================== * How do I get the FAQ? ----------------------- - Literate Programming FAQ -------------------------- You have many ways to get a current copy of this FAQ. One is to use anonymous ftp (if you don't know how, see a later section in this FAQ) to connect to one of the Comprehensive TeX Arvchive Network (CTAN) sites or the Literate Programming Archive and retrieve a copy of the file. Open an ftp connection to one of the CTAN sites and retrieve the file: help/LitProg-FAQ (For more information on CTAN and the literate programming archive, see the section below entitled "Internet Nodes of Interest to Literate Programmers.") - ---------------------------------------------------------------------- - FWEB FAQ ---------- David Coker maintains the FWEB FAQ. The current version number is 1.30a. It can be retrieved in the same way as this FAQ. The FWEB FAQ exists in various formats, including HyperText (see other resources below). In Europe, the complete distribution can also be obtained from ftp.desy.de [131.169.10.115] in directory /pub/faq/web/fweb/. It is also available from the literate programming archive (LPA) in the directory LPA/Documentation/faq/fweb (see the references to LPA below for more information). = ====================================================================== * Is there a newsgroup? ----------------------- One of the most important resources is the literate programming newsgroup, comp.programming.literate. You can read this newsgroup using your standard reader. = ====================================================================== * What internet nodes are of interest to literate programmers? -------------------------------------------------------------- The principal nodes of interest to literate programmers are the Literate Programming Archive (LPA hereafter) and the CTAN (Comprehensive TeX Archive Network). The Literate Programming Archive (LPA) is: Node: ftp.th-darmstadt.de [130.83.55.75] Directory: programming/literate-programming Notes: Fastest response during off-U.S. [yep] business hours. Participating hosts in the Comprehensive TeX Archive Network are: ftp.dante.de (Deutschland) -- anonymous ftp /tex-archive (/pub/tex /pub/archive) -- gopher on node sun.dante.de -- e-mail via ftpmail@dante.de -- Administrator: ftp.tex.ac.uk (England) -- anonymous ftp /tex-archive (/pub/tex /pub/archive) -- gopher on node gopher.tex.ac.uk -- NFS mountable from nfs.tex.ac.uk:/public/ctan/tex-archive -- World Wide Web access on www.tex.ac.uk -- Administrator: The site ftp.shsu.edu used to be the American CTAN site. Apparently, that site has fallen into disrepair and should not be considered a primary source for either TeX related or literate programming related material. For the record, the address is: ftp.shsu.edu (Texas, USA) -- anonymous ftp and gopher /tex-archive (/pub/tex /pub/archive) -- NFS mountable from ftp.SHSU.edu:/pub/ftp/tex-archive -- e-mail via ftpmail@ftp.SHSU.edu -- World Wide Web access on www.SHSU.edu -- Administrator: A list of CTAN archive sites and their mirrors can be found on: ftp.dante.de:/tex-archive/CTAN.sites I presume that the other CTAN sites mirror this file, but have not checked. As of my last check (September 1994), it contains: "In order to reduce network load, it is recommended that you use the Comprehensive TeX Archive Network (CTAN) host which is located in the closest network proximity to your site." Known partial mirrors of the CTAN reside on (alphabetically): dongpo.math.ncu.edu.tw (Taiwan) /tex-archive ftp.adfa.oz.au (Australia) /pub/tex/ctan ftp.muni.cz (The Czech Republic) /pub/tex/CTAN ftp.cs.ruu.nl (The Netherlands) /pub/tex-archive ftp.uu.net (Virginia, USA) /pub/text-processing/TeX nic.switch.ch (Switzerland) /mirror/tex Known mirrors of the CTAN reside on (alphabetically): ftp.center.osaka-u.ac.jp (Japan) /CTAN ftp.ccu.edu.tw (Taiwan) /pub/tex ftp.cs.rmit.edu.au (Australia) /tex-archive ftp.duke.edu (North Carolina, USA) /tex-archive ftp.germany.eu.net (Deutschland) /pub/packages/TeX ftp.gwdg.de (Deutschland) /pub/dante ftp.jussieu.fr (France) /pub4/TeX/CTAN ftp.loria.fr (France) /pub/unix/tex/ctan ftp.mpi-sb.mpg.de (Deutschland) /pub4/tex/mirror/ftp.dante.de ftp.uni-bielefeld.de (Deutschland) /pub/tex ftp.uni-stuttgart.de (Deutschland) /tex-archive (/pub/tex) ftpserver.nus.sg (Singapore) /pub/zi/TeX src.doc.ic.ac.uk (England) /packages/tex/uk-tex sunsite.unc.edu (North Carolina, USA) /pub/packages/TeX wuarchive.wustl.edu (Missouri, USA) /packages/TeX Other nodes and directories of interest include: Node: ftp.desy.de [131.169.10.115] Directory: pub/web. Various documents, samples, and the FWEB FAQ. Notes: Has a www server, http://info.desy.de:80/ = ====================================================================== * What is Literate Programming? ------------------------------- Literate programming is the combination of documentation and source together in a fashion suited for reading by human beings. In fact, literate programs should be enjoyable reading, even inviting! (Sorry Bob, I couldn't resist!) In general, literate programs combine source and documentation in a single file. Literate programming tools then parse the file to produce either readable documentation or compilable source. The WEB style of literate programming was created by D.E. Knuth during the development of his TeX typsetting software. All the original work revolves around a particular literate programming tool called WEB. Knuth says: The philosophy behind WEB is that an experienced system programmer, who wants to provide the best possible documentation of his or her software products, needs two things simultaneously: a language like TeX for formatting, and a language like C for programming. Neither type of language can provide the best documentation by itself; but when both are appropriately combined, we obtain a system that is much more useful than either language separately. The structure of a software program may be thought of as a web that is made up of many interconnected pieces. To document such a program we want to explain each individual part of the web and how it relates to its neighbours. The typographic tools provided by TeX give us an opportunity to explain the local structure of each part by making that structure visible, and the programming tools provided by languages such as C or Fortran make it possible for us to specify the algorithms formally and unambigously. By combining the two, we can develop a style of programming that maximizes our ability to perceive the structure of a complex piece of software, and at the same time the documented programs can be mechanically translated into a working software system that matches the documentation. Another author (Eric W. van Ammers) wrote me a short article treating his opinions on literate programming. The text follows: First observation on LP About 90% of the disussion on this list is about problems with applying some WEB-family member to a particular programming language or a special documentation situation. This is ridiculous, I think. Let me explain shortly why... Lemma 1: I have proposed for many years that programming has nothing to do with programming langauges, i.e. a good programmer makes good programs in any language (given some time to learn the syntax) and a bad programmer will never make a good program, no matter the language he uses (today many people share this view, fortunately). Lemma 2: Literate Programming has (in a certain way not yet completely understood) to do with essential aspects of programming. Conclusion 1: A LP-tool should be independent of programming language. Lemma 3: It seems likely that the so called BOOK FORMAT PARADIGM [ref. 1] plays an important role in making literate programs work. Lemma 4: There are very many documentation systems currently being used to produce documents in the BOOK FORMAT. Conclusion 2: A LP-tool should be independent of the documentation system that the program author whishes to use. My remark some time ago that we should discuss the generic properties of an LP-tool was based on the above observation. References: [1] Paul W. Oman and Curtus Cook. Typographical style is more than cosmetic. CACM 33, 5, 506-520 (May 1990) Second observation on LP The idea of a literate program as a text book should be extendend even further. I would like to see a literate program as an (in)formal argument of the correctness of the program. Thus a literate program should be like a textbook on mathematicics. A mathematical textbook explains a theory in terms of lemma and theorems. But the proofs are never formal in the sense that they are obtaind by symbol manipulation of a proof checker. Rather the proofs are by so called "informal rigour", i.e. by very precise and unambiguous sentences in a natural language. Eric W. van Ammers Department of Computer Science Wageningen Agricultural University Dreijenplein 2 E-mail: ammers@rcl.wau.nl 6703 HB Wageningen voice: +31 (0)8370 83356/84154 The Netherlands fax: +31 (0)8370 84731 Another author (Norman Ramsey) wrote me and asked that his opinions be included in the FAQ. What follows are Norman's comments verbatim. I see it's time for the ``how is literate programming different from verbose commenting'' question. Perhaps David Thompson will get this into the FAQ. Alert! What follows are my opinions. In no way do I claim to speak for the (fractious) literate-programming community. How is literate programming different from verbose commenting? There are three distinguishing characteristics. In order of importance, they are: - flexible order of elaboration - automatic support for browsing - typeset documentation, especially diagrams and mathematics Flexible order of elaboration means being able to divide your source program into chunks and write the chunks in any order, independent of the order required by the compiler. In principle, you can choose the order best suited to explaining what you are doing. More subtly, this discipline encourages the author of a literate program to take the time to consider each fragment of the program in its proper sphere, e.g., not to rush past the error checking to get to the ``good parts.'' In its time and season, each part of the program is a good part. (This is the party line; your mileage may vary.) I find the reordering most useful for encapsulating tasks like input validation, error checking, and printing output fit for humans --- all tasks that tend to obscure ``real work'' when left inline. Reordering is less important when using languages like Modula-3, which has exceptions and permits declarations in any order, than when using languages like C, which has no exceptions and requires declaration before use. Automatic support for browsing means getting a table of contents, index, and cross-reference of your program. Cross-reference might be printed, so that you could consult an index to look up the definition of an identifier `foo'. With good tools, you might get a printed mini-index on every page if you wanted. Or if you can use a hypertext technology, cross-reference might be as simple as clicking on an identifier to reach its definition. Indexing is typically done automatically or `semi-automatically', the latter meaning that identifier definitions are marked by hand. Diligently done semi-automatic indexes seem to be best, because the author can mark only the identifiers he or she considers important, but automatic indexing can be almost as good and requires no work. Some tools allow a mix of the two strategies. Some people have applied literate-programming tools to large batches of legacy code just to get the table of contents, index, and cross-reference. I don't use diagrams and mathematics very often, but I wouldn't want to have to live without them. I have worked on one or two projects where the ability to use mathematical formulae to document the program was indispensible. I also wouldn't like to explain some of my concurrent programs without diagrams. Actually I write almost all of my literate programs using only sections headers, lists, and the occasional table. >Wouldn't it be easier to do one's literate programming using a wysiwyg >word processor (e.g. Word for Windows) and indicate what is source >code by putting it in a different font? The data formats used in wysiwyg products are proprietary, and they tend to be documented badly if at all. They are subject to change at the whim of the manufacturer. (I'll go out on a limb and say there are no significant wysiwyg tools in the public domain. I hope the Andrew people will forgive me.) These conditions make it nearly impossible to write tools, especially tools that provide automatic indexing and cross-reference support. The CLiP people have a partial solution that works for tools that can export text --- they plant tags and delimiters throughout the document that enable the reordering transformation (``tangling''). People use TeX, roff, and HTML because free implementations of these tools are widely available on a variety of platforms. TeX and HTML are well documented, and TeX and roff are stable. TeX is the most portable. I think I have just answered the FAQ ``how come all these tools use TeX, anyway?'' :-) Norman Ramsey = ====================================================================== * How do I begin literate programming? -------------------------------------- A recommended book is D.E. Knuth's collection of articles (1992) "Literate Programming," Center for the Study of Language and Information, Stanford University, ISBN 0-937073-80-6 (pbk). This book gives insight into Knuth's thoughts as he developed the web system of literate programming (and TeX for typesetting). It does not document methods for literate programming. A recommended book is Wayne Sewell's (1989) "Weaving a Program: Literate Programming in WEB," Van Nostrand Reinhold, ISBN 0-442-31946-0 (pbk). This book focuses on using Knuth's web system. Some talk exists in the newsgroup/mailing list for a Usenet University course in literate programming. I'm sure discussion of this topic will be welcomed. If you are interested, please participate. = ====================================================================== * What literate programming tools are available and where are they? ------------------------------------------------------------------- A significant number of tools for literate programming are available. Most have been ported from their original systems, so support multiple computer platforms. If you are the developer of such a tool, and would like to make the software freely available, please send me email and I'll reply with a form (like those below) for you to fill in. (Or short-circuit the process and kludge a form from below. :-) - ---------------------------------------------------------------------- - APLWEB -------- Developer: Christoph von Basum Version: Unknown Hardware: MSDOS Languages: IBM APL2 and STSC APL Formatter: Plain TeX Availability: Anonymous ftp from: LPA:/apl watserv1.uwaterloo.ca:/languages/apl/aplweb Readme: Unknown Description: None available. Support: Unknown Note: The status of this particular package is unknown. - ---------------------------------------------------------------------- - AWEB ------ Developer: Unknown Version: Unknown Hardware: Unknown Languages: Ada Formatter: Unknown Availability: Anonymous ftp from: LPA:/ada/web Readme: Unknown Description: None available Support: Not supported. - ---------------------------------------------------------------------- - CLiP ------ Developer: E.W. van Ammers and M.R. Kramer Version: Unknown Hardware: Vax/VMS, Unix, and MS-DOS Languages: Any programming language. Formatter: Any formatter (TeX, LaTeX, Troff, Runoff, etc) or any wordprocessor including WYSIWYG systems (Word Perfect, Win Word, Ami Pro, Word, etc.) Availability: Anonymous ftp from: sun01.info.wau.nl:/CLIP/ms_dos MS-DOS version sun01.info.wau.nl:/CLIP/vax_vms VAX/VMS version CTAN:/web/clip LPA:/machines/ms-dos LPA:/machines/vax Readme: With bundle above Description: CLiP does not use explicite commands to perform the extraction process. Rather it recognizes pseudostatemens written as comments in the programming language in question. CLiP distinguishes pseudostatments from ordinary comments because the former comply with a a particular style. This style can be adjusted to suit virtually any programming language. The CLiP approach to LP makes the system extremely versatile. It is independent of programming language and text processing environment. We designed CLiP to be compatible with hypertext systems as well but we have not yet experimented with this form of documentation. Features: + CLiP imposes virtually no limitations on the text-processing system used to produce the documentation. If the text-processor supports these items you can + structure the documentation according to your own taste. + include drawings, pictures, tables etc. + disclose your documentatio my means of X-ref tables, Indexes, Table of contents, Table of tables, Table of figures, etc. + typeset the documented code. + Extracts any number of modules from a maximum of 64 source files. + No pretty-printing. Code from the source files is copied "as is" to the module. + Appearance of code segments in the documentation matches those of the modules to ease the identification of code segements. + Supports partially specified data types. + Comprehensive user manual (preliminary version) and technical description. - No automatic generation of a X-ref table for program identifiers. Support: Bugs, problems and assistance by e-mail: ammers@rcl.wau.nl - ---------------------------------------------------------------------- - CWEB ------ Developer: Silvio Levy and D.E. Knuth Version: 3.0 Hardware: Unix systems (dos and amiga ports available) Languages: C and C++ Formatter: Plain TeX and LaTeX. Availability: Anonymous ftp from: labrea.stanford.edu:/pub/cweb LPA:/c.c++ CTAN:/web/c_cpp/cweb DOS version in CTAN:/web/c_cpp/cwb30p8c DOS version in LPA:/machines/ms-dos Amiga version CTAN:/web/c_cpp/AmigaCWEB Mac port of CTANGLE in LPA:/machines/mac LaTeX support in LPA:/c.c++ Readme: Bundled with above Description: No description provided. Support: Bugs to levy@math.berkeley.edu - ---------------------------------------------------------------------- - CWEBx3.0: ----------- Developer: Marc van Leeuwen Version: Unknown Hardware: Any system using ASCII code Languages: ANSI C Formatter: Plain TeX Availability: Anonymous ftp from: ftp.cwi.nl/pub/cweb Readme: Bundled with above Brief description: A modified implementation of CWEB, with some extensions. Provides a mode for full compatibility with Levy/Knuth CWEB. The most significant extras are: - Typedef declarations affect formatting througout source file - Include files are scanned for typedef definitions - Flexible selection of layout style - Possibility to refer to sections using symbolic labels - CTANGLE detects unbalanced braces and parentheses - CWEAVE can be made to report syntax errors more easily - Some additional mechanisms to avoid formatting problems - New and modular set of grammar rules, based on ANSI C syntax - Possibility to suppress #line directives - A new manual Support: bugs and remarks to M.van.Leeuwen@cwi.nl - ---------------------------------------------------------------------- - FunnelWeb ----------- Developer: Ross N. Williams: ross@guest.adelaide.edu.au Version: Unknown Hardware: MSDOS, Mac, VMS, Sun. Other ports reported. Languages: No restrictions. Formatter: Plain TeX for printing. Otherwise, no restrictions. Availability: Anonymous ftp from: CTAN:/web/funnelweb LPA:/independent ftp.adelaide.edu.au:/pub/funnelweb Readme: With bundle above. Description: FunnelWeb is a production-quality literate-programming tool that emphasises simplicity and reliability. Everything about FunnelWeb, from the simplicity of its language to the comprehensive tutorial in the user's manual, has been designed to make this as simple, as practical, and as usable a tool as possible. Features: + Provides a simple macro preprocessor facility. + Can produce typeset documentation. + Runs on Sun, VMS VAX, Macintosh, PC, and others. + Portable C source code distributed under GNU licence. + Comprehensive user's manual including tutorial. + Programming-language independent. + Can generate multiple output files. + Allows complete control over the output text. + Regression test suite with over 200 tests. + Fully worked example (in /pub/funnelweb/examples). - Requires TeX to produce typeset documentation. - Typesets program code using TT font only. Support: No formal support available. Mailing list maintained with about 50 subscribers. Informal assistance available from mailing list. - ---------------------------------------------------------------------- - FunnelWeb 3.0AC ----------------- Developer: Enhanced by A.B.Coates (coates@physics.uq.edu.au) from FunnelWeb v3.0 by Ross N. Williams (ross@guest.adelaide.edu.au) Version: 3.0AC Hardware: MSDOS, Mac, VMS, Sun, OSF/1, Linux, Sys.V, OS/2. Languages: No restrictions. Formatter: Tex, LaTeX, or HTML. Availability: Anonymous ftp from ftp.physics.uq.oz.au:/pub/funnelwebAC30.tar.gz Readme: With bundle above; for FunnelWeb manual see WWW page http://www.physics.uq.oz.au:8001/people/coates/funnelweb.html Description: FunnelWeb 3.0AC is an enhanced version of FunnelWeb (see the entry for FunnelWeb). FunnelWeb is designed to be typesetter independent, though FunnelWeb v3.0 only supports (La)TeX as the typesetter. FunnelWeb 3.0AC also supports HTML, and creates appropriate hypertext links within the document among the code sections. FunnelWeb 3.0AC also supports automatic and manual insertion of line directives, so that compiler errors can be flagged back to the original FunnelWeb source file. FunnelWeb 3.0AC is completely compatible with FunnelWeb v3.0 sources (with one minor exception; see the file README.ABC which comes with the FunnelWeb 3.0AC distribution). Support: Supported by A.B.Coates (coates@physics.uq.edu.au), subject to the time constraints imposed by his thesis. - ---------------------------------------------------------------------- - FWEB ------ Developer: John A. Krommes Version: 1.30a (1.40 for the experienced, patient, and brave) Hardware: Unix, VMS, and DOS platforms (anything with ANSI C) Languages: C, C++, Fortran-77, Fortran-90, Ratfor, TeX; also, a language-independent mode. Formatter: Plain TeX and LaTeX. Availability: Anonymous ftp from: ftp.pppl.gov:/pub/fweb CTAN:/web/fweb LPA:/fweb DOS version in LPA:/machines/ms-dos Readme: In bundle with above. Description: It also has a well-developed user's manual and its own FAQ (see above). Beginning with 1.40, documentation is maintained in gnu texinfo format. It runs on most platforms: VMS, PC, UNIX, and pretty much anything that the GNU C compiler (GCC) is supported for. Features: + Processes multiple languages during a single run (so one can mix C and Fortran, for example). + Language-independent mode (v1.40). + Ability to turn off pretty-printing (v1.40). + Built-in Ratfor translator. + Built-in macro preprocessor (closely follows ANSI C, with extensions). + A style file that allows the user to adjust many parameters and behavior patterns of FWEB. + Various operator-overloading features that provide additional pretty-printing capabilities to languages such as C++ and Fortran-90. + Numerous miscellaneous features and command-line options. Support: Bug reports and suggestions to krommes@princeton.edu The following text was relayed by utcke@tu-harburg.d400.de recently. A new entry for this FAQ will eventually be prepared. NOTICE (June 12, 1995) The 1.52 tar file was regenerated. If your version of that file included the file web/defaults.mk, you should say `make clean' before beginning the installation process, or use the new tar file. NOTICE (June 10, 1995) Version 1.52 is available. More bug fixes. 1.5x will remain in beta-testing until about Sept. 1, 1995; further changes are hoped to be minimal. If you have previously picked up 1.50 or 1.51, you definitely should install 1.52 instead. So it seems there's really 1.5x available for the experienced, patient and brave --- especially given the following statement (same source): Version 1.30, which for several years has been declared to be the stable version of choice, is gradually getting out of date. I now recommend that current users try VERY, VERY CAUTIOUSLY to upgrade to v1.50. Don't do that the week before a critical deadline. - ---------------------------------------------------------------------- - IMPACT -------- Developer: Timothy Larkin, from Levy/Knuth CWEB 3.1 Version: 1.0 Hardware: Macintosh; requires AppleEvents. Languages: C, C++ Formatter: TeX Availability: CTAN archives Readme: A short readme file is included in the SEA archive. Description: IMPACT implements CTangle from the Levy/Knuth CWEB 3.1. It operates as a foreground program, tangling files selected from the Mac File Picker. Or it can operate in the background, tangling files in response to odoc events sent by other applications, such as editors. Support: I welcome any reports of bugs. The product will be updated as new versions of the CWEB appear. Other features may be added as users suggest them. - ---------------------------------------------------------------------- - lit2x ------- Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/independent Readme: Unknown Description: None available Support: Unknown - ---------------------------------------------------------------------- - Literate Programmer's Workshop (LPW) -------------------------------------- Developer: Norbert Lindenberg Version: 1.1 Hardware: Apple Macintosh Languages: C++, Object Pascal & others Formatter: self-contained WYSIWYG system Availability: Anonymous ftp from: LPA:/machines/mac CTAN:/web/lpw ftp.apple.com:/pub/literate.prog Readme: With bundle above. Also comes with 38-page manual. Description: The Literate Programming Workshop is an environment for the integrated development of program source text and documentation in combined documents. It consists of a WYSIWYG word processor based on a style sheet approach, a mechanism to extract parts of the text in a document, and a project management system that handles multi-document projects. The system is designed to be used in conjunction with the Macintosh Programmer's Workshop: it prepares raw source text for the MPW compilers, accepts MPW error messages, and shows them in the context of the original documents. Automatic indexing and hypertext features allow for easy access to both source text and documentation. LPW is shareware. Support: Bugs, problems, and questions to lpw@aol.com. - ---------------------------------------------------------------------- - MapleWEB ---------- Developer: Unknown Version: Unknown Hardware: Unknown Languages: Maple Formatter: Unknown Availability: Anonymous ftp from: LPA:/maple Readme: Unknown Description: None Support: Unknown - ---------------------------------------------------------------------- - MWEB (Schrod/Detig) --------------------- Developer: Joachim Schrod Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. - ---------------------------------------------------------------------- - MWEB (Sewell) --------------- Developer: Sewell Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. - ---------------------------------------------------------------------- - noweb ------- Developer: Norman Ramsey Version: 2.7a Hardware: Unix and DOS platforms. Languages: All programming languages. Automatic indexing for C, Icon, Standard ML, TeX, Yacc Formatter: Plain TeX, LaTeX, and HTML (Mosaic/Netscape) formatters. Availability: Anonymous ftp from: CTAN:/web/noweb LPA:/independent Last recourse, use bellcore.com:/pub/norman Readme: With bundle above, or see ``Literate Programming Simplified,'' IEEE Software, September 1994, pp97-105. Description: noweb is designed to meet the needs of literate programmers while retaining the simplest possible input format. Its primary advantages are simplicity, extensibility, and language-independence. noweb uses 5 control sequences to WEB's 27. The simple noweb manual is only 2 pages; documenting the full power of noweave and notangle requires another 3 pages. noweb works ``out of the box'' with any programming language, and a simple back end for a new text formatter can be written in about 50 lines of awk. The primary sacrifice relative to WEB is the loss of prettyprinting. noweb supports indexing and identifier cross-reference, including hypertext ``hot links'' courtesy of Mosaic or Netscape. noweb includes a simple, efficient LaTeX-to-HTML converter, so you can use hypertext browsers on your legacy documents. noweb can also process nuweb programs, so you can use noweb to convert a standard nuweb program to HTML with one command. Support: email to the author - ---------------------------------------------------------------------- - nuweb ------- Developer: Preston Briggs: preston@cs.rice.edu Version: 0.87 Hardware: Unix systems: Sparcs, RS/6000s, HPs; (!) MSDOS and Amiga. Languages: Any programming language or combination of programming languages. Formatter: Latex Availability: Anonymous ftp from: Unix: CTAN:/web/nuweb DOS: CTAN:/web/nuweb-pc LPA:/independent Amiga: CTAN:/web/nuweb/nuweb_ami Amiga: wuarchive.wustl.edu/pub/aminet Readme: Send mail to preston@cs.rice.edu Description: A single program that takes a web file written in a combination of latex and any programming language(s) and produces a latex file that can be pretty printed and a set of files containing code for compilation/interpretation by the appropriate language processors. Strengths include speed, simplicity, multiple languages, nice indices and cross-references, latex. Doesn't require any special macros or macro files. Drawbacks: latex-dependent, no code pretty printing, harder to make indices than cweb. More good stuff: nice support for make, doesn't reformat source files, so they're easy to debug. Lots of control without too much effort. That is, it doesn't do too much! Future directions... Very little change planned, except perhaps refinements in the indexing software. Support: Hack it yourself or send e-mail to preston@cs.rice.edu - ---------------------------------------------------------------------- - ProTeX -------- Developer: Eitan Gurari Version: ProTeX 1.1, AlProTeX 1.4 Hardware: Any platform with (La)TeX Languages: Any language Formatter: TeX or LaTeX Availability: Anonymous ftp from: ftp.cis.ohio-state.edu : pub/tex/osu/gurari/ LPA:/independent Readme: With bundle above Description: + Easy to use + Extensible + Language independent + Multiple output files + Fast (single compilation provides output and dvi files) + No installation is needed besides copying the files (written in TeX) Introduction of main features and examples in pub/tex/osu/gurari/LitProg Complete manual in Eitan M. Gurari, "TeX and LaTeX: Drawing and Literate Programming", McGraw-Hill, 1994 Support: gurari@cis.ohio-state.edu - ---------------------------------------------------------------------- - RWEB ------ Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/reduce Readme: Unknown Description: Web generator in AWK. Support: Unknown - ---------------------------------------------------------------------- - SchemeWEB ----------- Developer: John D. Ramsdell Version: 2.1 Hardware: Unix and DOS platforms Languages: Any dialect of Lisp. Formatter: LaTeX. Availability: The Unix version is in the Scheme Repository and it is available via anonymous ftp from: cs.indiana.edu:/pub/scheme-repository/utl/schemeweb.sh LPA:/lisp CTAN:/tex-archive/web/schemeweb The DOS version is part of the PCS/Geneva Scheme system which is available via anonymous ftp from: cui.unige.ch:/pub/pcs LPA:/machines/ms-dos Readme: In bundle with above. Description: SchemeWEB is a Unix filter that allows you to generate both Lisp and LaTeX code from one source file. The generated LaTeX code formats Lisp programs in typewriter font obeying the spacing in the source file. Comments can include arbitrary LaTeX commands. SchemeWEB was originally developed for the Scheme dialect of Lisp, but it can easily be used with most other dialects. Support: Bug reports to ramsdell@mitre.org. - ---------------------------------------------------------------------- - SpideryWEB ------------ Developer: Norman Ramsey Version: Unknown Hardware: Unix and DOS platforms Languages: Most Algol-like languages, including C, Ada, Pascal, Awk, and many others. Formatter: Plain TeX and latex for text formatters. Availability: Anonymous ftp from: CTAN LPA:/spiderweb Readme: In distribution. Description: A system for building language-dependent WEBs. Spider is frozen; no further development is planned. Support: Bug reports to spider-bugs@oracorp.com. - ---------------------------------------------------------------------- - WEB ----- Developer: Donald Knuth Version: Unknown Hardware: Unknown Languages: Pascal Formatter: TeX (of course! ;-) Availability: Anonymous ftp from: LPA:/pascal Readme: Unknown Description: This is the original software that started it all. The original TeX processor was written in WEB. Support: None known. - ---------------------------------------------------------------------- - WinWordWEB ------------ Developer: Lee Wittenberg Version: Unknown Hardware: Needs Microsoft Word for Windows, v.2.x, and, of course, MS-Windows 3.x. Languages: Any programming language. Formatter: Word for Windows 2.x for text formatting and file maintenance. Availability: Anonymous ftp from: bart.kean.edu:pub/leew LPA:/machines/ms-dos World-Wide Web (WWW) Readme: WORDWEB.DOC in the downloadable package describes the system. Description: WinWordWEB is a set of a Word for Windows macros (plus a paragraph style) that provide a crude literate programming environment. The ``look and feel'' of the system is based on Norman Ramsey's noweb, but can easily be modified to suit individual tastes. Support: None. WinWordWEB was written as a prototype to see if a WYSIWYG literate programming system was possible. It is intended as a jumping off point for future work by others. However, the system is surprisingly usable as it stands, and the author is interested in hearing from users (satisfied and dissatisfied). Anyone interested in actively supporting (and improving) the product should contact the author via email. = ====================================================================== * Are there other tools I should know about? -------------------------------------------- First of all, I'll list some not-quite-literate-programming tools. Some may consider these to be pretty-printers. Others may call them literate programming tools. In any event, they don't seem to be quite in the same category as the tools listed above, so I'll include them here. - C2LaTeX --------- Developer: John D. Ramsdell Version: Unknown Hardware: Unix Languages: C Formatter: LaTeX but it's easy to change the formatter. Availability: Anonymous ftp from omnigate.clarkson.edu:/pub/tex/tex-programs/c2latex. Readme: Absent. Documentation is in the C source for c2latex. Description: C2latex provides simple support for literate programming in C. Given a C source file in which the comments have been written in LaTeX, c2latex converts the C source file into a LaTeX source file. It can be used to produce typeset listings of C programs and/or documentation associated with the program. C2latex produces LaTeX source by implementing a small number of rules. A C comment that starts at the beginning of a line is copied unmodified into the LaTeX source file. Otherwise, non-blank lines are surrounded by a pair of formatting commands (\begin{flushleft} and \end{flushleft}), and the lines are separated by \\*. Each non-blank line is formatted using LaTeX's \verb command, except comments within the line are formatted in an \mbox. Support: Send bug reports to ramsdell@mitre.org. - ---------------------------------------------------------------------- - c2cweb -------- Developer: Werner Lemberg Version: 1.4 Hardware: DOS, OS/2, Unix (gcc) - CWEB source included Languages: C, C++ Formatter: TeX Availability: Anonymous ftp from CTAN:/web/c_cpp/c2cweb Readme: In distribution. Description: c2cweb will transform plain C or C++ code into a CWEB file to get a pretty formatted output. A modified CWEAVE (which transforms the CWEB file into a TeX file, see below) is included also. Support: Werner Lemberg - ---------------------------------------------------------------------- - c2man ------- language: C, nroff, texinfo, latex, html package: c2man version: 2.0 patchlevel 33 parts: documentation generator (C -> nroff -man, -> texinfo, ->latex, -> html) author: Graham Stoney location: ftp from any comp.sources.misc archive, in volume42 (the version in the comp.sources.reviewed archive is obsolete) ftp /pub/Unix/Util/c2man-2.0.*.tar.gz from dnpap.et.tudelft.nl Australia: ftp /usenet/comp.sources.misc/volume42/c2man-2.0/* from archie.au N.America: ftp /usenet/comp.sources.misc/volume42/c2man-2.0/* from ftp.wustl.edu Europe: ftp /News/comp.sources.misc/volume42/c2man-2.0/* from ftp.irisa.fr Japan: ftp /pub/NetNews/comp.sources.misc/volume42/c2man-2.0/* from ftp.iij.ad.jp Patches: ftp pub/netnews/sources.bugs/volume93/sep/c2man* from lth.se description: c2man is an automatic documentation tool that extracts comments from C source code to generate functional interface documentation in the same format as sections 2 & 3 of the Unix Programmer's Manual. It requires minimal effort from the programmer by looking for comments in the usual places near the objects they document, rather than imposing a rigid function-comment syntax or requiring that the programmer learn and use a typesetting language. Acceptable documentation can often be generated from existing code with no modifications. conformance: supports both K&R and ISO/ANSI C coding styles features: + generates output in nroff -man, TeXinfo, LaTeX or HTML format + handles comments as part of the language grammar + automagically documents enum parameter & return values + handles C (/* */) and C++ (//) style comments - doesn't handle C++ grammar (yet) requires: yacc/byacc/bison, lex/flex, and nroff/groff/texinfo/LaTeX. ports: Unix, OS/2, MSDOS, VMS. portability: very high for unix, via Configure status: actively developed; contributions by users are encouraged. discussion: via a mailing list: send "subscribe c2man " (in the message body) to listserv@research.canon.oz.au help: from the author and other users on the mailing list: c2man@research.canon.oz.au announcements: patches appear first in comp.sources.bugs, and then in comp.sources.misc. updated: 1994/10/07 - ---------------------------------------------------------------------- - cnoweb -------- Developer: Jim Fox Version: 1.4 (January 4, 1991) Hardware: Anything with C and TeX. Languages: C Formatter: Plain TeX. Availability: Anonymous ftp from: CTAN LPA:/c.c++ Readme: Unknown, cnoweb.tex contains documentation. Description: cnoweb is as it's name describes: write C, not web. No tangling or weaving is implemented. Documentation (between standard /* */ delimiteres) is written in TeX. cnoweb provides typesetting of documentation, an table of contents of routines, and pretty-printing of C source. Support: None known. - ---------------------------------------------------------------------- - Fold2Web ---------- Developer: Bernhard Lang Version: V0.8 Hardware: MSDOS Languages: All (must allow comment lines) Formatter: LaTeX Availability: Anonymous ftp from: kirk.ti1.tu-harburg.de (134.28.41.50) /pub/fold2web/readme /pub/fold2web/fold2web.zip Readme: In distribution Description: The idea behind the Fold2Web tool is the following: A programmer can write his program source with a folding editor and later map the folded source files automatically to WEB-files. The generated WEB-files can then be modified by inserting required documentations. The advantage by starting program developement with original sources is to get short design cycles during the compile/debug steps. By using a folding editor the global structuring information can be already captured in folds during this developement phase. Fold information is typically stored in comment lines and thus will not affect the efficiency of the compile/debug design cycle. Some folding editors and a folding mode for the emacs are available (e.g. see our FUE folding editor for MSDOS machines which is a modified micro emacs. Pick it at kirk in directory /pub/fold2web). After reaching a stable version of a program source its time to convert the source file to a WEB-file and do the program documentation. Fold2Web is written to convert folded source text of any programming language to nuweb files. The folded structure is kept by mapping folds to scraps. Fold markers which differ between languages due to different ways of specifying comments can be configured for each language. Good results can also achived when given but poor documented program sources have to be modified. Such sources can be folded using a folding editor to extract the global structures. This offers a global view to the program structures and help to understand its functionality. Furthermore the program code is not affected, only comment lines are inserted. Once folded the program source can be automatically translated to a WEB document using the above tool. Support: email to lang@tu-harburg.d400.de - ---------------------------------------------------------------------- - Funnelweb Mode ---------------- Developer: Daniel Simmons Version: Unknown Availability: Litprog archives (was in email) Anonymous ftp from: ftp.imada.ou.dk Description: The other day I did a quick hack to nuweb.el as included with the nuweb distribution so as to make a funnelweb-mode.el. I've only used it briefly, and I'm sure that it can be improved quite a bit. I've been thinking about adding support for folding on sections, a pull-down menu to select macro definitions (like the recent functions posted to gnu.emacs.sources for a C function definition pull-down menu) and some kind of tags support for funnelweb. Support: Unknown - ---------------------------------------------------------------------- - noweb.el ---------- Developer: Bruce Stephens Version: Unknown. Availability: LitProg archives (in an email message). Description: This is a very simple mode I just hacked up. There's a lot wrong with it, but I thought others may be interested, even as it stands. It *requires* text properties, and assumes those used in GNU Emacs 19.22; it'll quite likely work with Lucid Emacs, but I haven't tried it. I use it with auctex8.1 and cc-mode 3.229, both of which are loaded separately (I think my emacs is dumped with them, in fact). The idea is to have one mode (which calls itself c-mode, but actually has LaTeX-mode keybindings) generally (this means that the code is hilighted nicely), and have the code chunks use a different keymap. Support: Email to bruce@liverpool.ac.uk - ---------------------------------------------------------------------- - nuweb.el ---------- Developer: Dominique de Waleffe Version: 1.99 Availability: Anonymous ftp from: LPA CTAN Description: Provides a major mode extending Auctex for editing nuweb files. Main features (in 2.0): - Edit scrap bodies in a separate buffer in a different mode (selected using emacs defaults for files, specific indication -*-mode-*-, or a buffer-local variable) - Extends Auctex commands so that nuweb is called before LaTeX, - Easy navigation on scrap definition and use points. - Now creates an imenu (C-M-mouse1) with user index entries, macro definition positions and file definition positions. Support: Email to ddw@acm.org - ---------------------------------------------------------------------- - TIE ----- Developer: Unknown Version: Unknown Hardware: Unknown Availability: Anonymous ftp from: LPA:/Tools Readme: Unknown Description: This software merges change files. Support: Unknown - ---------------------------------------------------------------------- - Web mode ---------- Developer: Bart Childs Version: Unknown Tools supported: web, fweb, cweb, funnelweb Availability: Anonymous ftp from ftp.cs.tamu.edu:pub/tex-web/web/EMACS.web-mode thrain.anu.edu.au:pub/web/EMACS.web-mode Description: This version works with versions 18 and 19 of Emacs to be best of my knowledge. I have cleaned up a number of documentation items ... In the same directory is wm_refcard.tex which is an edited version of the famous one to include some web-mode commands. The files limbo* are related to its use and notice that half them have an uppercase L in them for LaTeX. The setup is based upon the fact that we (I am not alone here) primarily use FWEB for C and Fortran programming. We are using version 1.40 of FWEB although John Krommes warns that it is not mature and the manual is not yet updated. The info files are! We are using LaTeX almost exclusively. That will likely change and we will revert to version 1.30 if the final form of 1.40 cannot return to the simple section numbers and avoid the HORRIBLE LATEX 0.1.7.2.4.6 type section numbers. Support: Unknown = ====================================================================== * What other resources are available? ------------------------------------- - World Wide Web ---------------- An untapped resource (by me anyway ;-) is the World Wide Web. Marcus Speh has expended considerable effort in this regard. If you're connected to WWW, then access: http://info.desy.de:80/user/projects/LitProg.html If you aren't connected to WWW, telnet to info.cern.ch and explore. You can reach Marcus' literate programming pages by typing: go http://info.desy.de:80/user/projects/LitProg.html or use a WWW browser and access the URL ftp://rtfm.mit.edu/pub/usenet/news-answers/www/resources/literate-programming Help for people who have only Email and neither WWW nor telnet, can be obtained by Email from TEST-LIST@INFO.CERN.CH by sending a message, SEND , for example, SEND http://info.desy.de:80/user/projects/LitProg.html to retrieve the LitProg library page. A help file can be retrieved by sending a message to the list server above with the text HELP in the body of the message. Instructions will be returned by email. For literate programming documents, you can try anonymous ftp to rtfm.mit.edu and retrieve the official Usenet resource file /pub/usenet/news.answers/www/resources/literate-programming - ---------------------------------------------------------------------- - TeX Resources --------------- Another resource of interest to literate programmers is the comp.text.tex newsgroup. If you're using (La)TeX as your typsetting system and have access to internet, then you should investigate this resource. Another reason the TeX resources should be important is that so many of the literate programming tools rely on either plain TeX or LaTeX as their text formatter. (La)TeX software systems exist for most computing platforms. These systems can be found on CTAN and other major archive sites. Use archie to find them or simply ftp to one of the CTAN sites and browse. = ====================================================================== * Are there any code examples? ------------------------------ Examples of web programs are included with the FWEB, CWEB, and noweb distributions. nuweb is written in itself. Cameron Smith converted the K&R calculator program into a literate program. It can be retrieved by anonymous ftp from: niord.shsu.edu [192.92.115.8] directory kr-cweb-sample as krcwsamp.zip or from LPA/Documentation Ross Williams has released a funnelweb example. You can retrieve this file from node ftp.adelaide.edu.au [129.127.40.3] as /pub/funnelweb/examples/except.* This file should be on CTAN as well. Lee Wittenberg has posted a few litprog examples. They are available via anonymous ftp from: bart.kean.edu:/pub/leew/samples.LP The Stanford GraphBase is a large collection of programs by Don Knuth for doing all kinds of computations and games with graphs; it is written in (Levy/Knuth) CWEB. More details in the distribution. It is available via anonymous ftp from: labrea.stanford.edu:/pub/sgb = ====================================================================== * Bibliographies ---------------- Nelson Beebe has collected an extensive bibliography treating literate programming. His work is available for anonymous ftp from ftp.math.utah.edu [128.110.198.2] in directory /pub/tex/bib as files: litprog.bib litprog.ltx litprog.twx. Although I have not verified this, LPA is an alternate source for these files. Note that they are updated frequently (Nelson says several times each week), so be sure to get a fresh copy before extensive use. Joachim Schrod indicates that these files may be updated daily and can be retrieved via anonymous ftp at LPA/documentation. = ====================================================================== * How to anonymously ftp ------------------------ Pretty much everything mentioned here is available by anonymous FTP. FAQ lists cross-posted to news.answers and rec.answers can be gotten from rtfm.mit.edu [18.181.0.24], under /pub/usenet/news.answers or under /pub/usenet/more.specific.group.name "anonymous FTP" is just a way for files to be stored where anyone can retrieve them over the Net. For example, to retrieve the latest version of the literate programming FAQ, do the following: > ftp rtfm.mit.edu /* connect to the site; message follows */ > anonymous /* type this when it asks for your name */ > /* type your address as the password */ > cd /pub/usenet /* go to the directory you want to be */ > cd comp.programming.literate /* one level down (no slash). */ > dir /* look at what's there */ > get literate-progamming-faq /* get the file; case-sensitive */ > quit /* stop this mysterious thing */ If your FTP program complains that it doesn't know where the site you want to use is, type the numerical address instead of the sitename: > ftp 18.181.0.24 /* connect with numerical address */ If you don't have ftp access, send e-mail to mail-server@rtfm.mit.edu with the single word "help" in the body of the message. Getting binary files (executables, or any compressed files) is only slightly more difficult. You need to set binary mode inside FTP before you transfer the file. > binary /* set binary transfer mode */ > ascii /* set back to text transfer mode */ FAQs and spoiler lists are generally ascii files; everything else is generally binary files. Some common extensions on binary files in archive sites are: .Z Compressed; extract with uncompress .tar.Z Compressed 'tape archive'; uncompress then untar or tar -xvf .gz or .z Gnu gzip; use gunzip (available from prep.gnu.ai.mit.edu) .sit (Mac) StufIt archive .zip Extract with Zip or Unzip .zoo Yet another archive/compress program .lhe (Amiga) ? .lzh Lha archive program. .arj (PC) Arj archive program. .exe (PC) Sometimes self-extracting archives-just execute them. .uue or .UUE Transfer as text file; use uudecode to convert to binary .hqx (Mac) BinHex format; transfer in text mode Generic help can be found in the FAQs of comp.binaries. for how to transfer, extract, and virus-check binary files. (At rtfm.mit.edu) If you can't FTP from your site, use one of the following ftp-by-mail servers: ftpmail@decwrl.dec.com ftpmail@src.doc.ic.ac.uk ftpmail@cs.uow.edu.au ftpmail@grasp.insa-lyon.fr For complete instructions, send a message reading "help" to the server. If you don't know exactly what you're looking for, or exactly where it is, there are programs and servers that can help you. For more info, send e-mail to mail-server@rtfm.mit.with with the body of the message reading send usenet/news.answers/finding-sources Thanks to Aliza R. Panitz (the "buglady") for this text. I copied it verbatim from her post on faq-maintainers with only minor modifications. = ====================================================================== * Acknowledgements ------------------ This document would not have happened without the help of many people. Among them are Marcus Speh, George Greenwade, Rob Beezer, Joachim Schrod, Piet van Oostrum, and Ross N. Williams. A special thanks to Aliza R. Panitz for the text describing how to execute an anonymous ftp for files of interest. Any omissions from these acknowledgements should be considered an act of stupidity on my part. Of course, the authors of literate programming tools mentioned above all play a vital role in the vitality of literate programming. Furthermore, participants in the comp.programming.literate newsgroup (and associated mailing list) all contributed in various fashions. Thank all of you. = ====================================================================== * End notes ----------- This document will continue to evolve. I'm planning on adding entries for additional literate programming tools and will expand the sections on examples as more examples become available. Tools I will include are WEB (the original pascal version) for starters. Others will be added as I find and document them. Omission of a particular tool should not be considered a snub in any sense--simply an error or oversight on my part. = End of File ========================================================== 12-Aug-1997 11:33:15-GMT,1101;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id FAA04561 for ; Tue, 12 Aug 1997 05:33:14 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from stpn.soft.net by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 12 Aug 1997 06:17:04 EST Received: from shilpa.pcl.stpn.soft.net (unverified [204.143.116.98]) by stpn.soft.net (EMWAC SMTPRS 0.83) with SMTP id ; Tue, 12 Aug 1997 16:50:39 +0530 Received: from [192.168.200.233] by shilpa.pcl.stpn.soft.net id aa24034; 12 Aug 97 16:17 IST Message-ID: <33F04687.4754@pcl.stpn.soft.net> Date: Tue, 12 Aug 1997 16:48:32 +0530 From: amitav Reply-To: LitProg@SHSU.edu, amitav@pcl.stpn.soft.net MIME-Version: 1.0 To: litprog@SHSU.edu Subject: (no subject) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit subscribe Amitav Bhattacharjee 13-Aug-1997 9:39:48-GMT,3018;000000000000 Received: from Niord.shsu.edu (niord.sam.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id DAA01594 for ; Wed, 13 Aug 1997 03:39:47 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 13 Aug 1997 04:29:47 EST From: Daniel Perron Reply-To: LitProg@SHSU.edu, cde@cam.org Subject: O-O literate framework (any taker?) Date: 13 Aug 1997 09:30:14 GMT Message-ID: <5srur6$49k$1@elna.ethz.ch> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Hello everyone, We (me and probably a couple of other persons) are thinking to start a new business. We plan to target the development of object-oriented applications framework using literate programming. We are thinking to use a sponsorship scheme in which a company would sponsor one of their employee to collaborate with us to develop a prototype framework for their uses. The company who sponsors a project with us would have the chance to experiment with the development of a framework without spending a fortune. In return, we would like to keep the right to publish the result on the Net. By putting the result on the Net, we would expect to get suggestions on how to improve certain aspects (we have enough experience with the Net to know that there is always someone somewhere who can do something better than us and we intend to actively seek these advices) and we would incorporate those suggestions for the greatest benefit of all. This is not the place to argue about the benefits of object-oriented technology or literate programming but we would like to comment on the use of literate programming for developing applications framework. We have been using this approach since the beginning of the year and while this is not the ideal tool for everything, it allows us to stress important design decisions. And it avoids the situation where the architect grumbles about developer X who has broken his/her architecture because he/she didn't understand certain design decisions (you have to assume that the developer will now read the literate program and would not make the same mistake). We realize that the use of literate programming and the development of applications framework might not be for everyone's taste and this is reason for this post. Is there enough interest out there to try such an experiment? We are at a very early stage in the creation of our business and we welcome suggestions. So if you have suggestions, or you or your company would be interested in participating in such an endeavour, please drop us a line. -- ============================================================================= Daniel Perron, Ph.D. "Your quote here" e-mail: cde@cam.org B. Stroustrup http://www.cam.org/~cde 13-Aug-1997 17:23:17-GMT,2776;000000000001 Received: from Niord.shsu.edu (niord.sam.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id LAA10491 for ; Wed, 13 Aug 1997 11:23:16 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 13 Aug 1997 12:04:28 EST From: cameron@lexis-nexis.com (Cameron Smith) Reply-To: LitProg@SHSU.edu, cameron@lexis-nexis.com Subject: Re: Any Conferences ? Date: 13 Aug 1997 16:49:31 GMT Message-ID: <5ssoir$aal@mailgate.lexis-nexis.com> To: LitProg@SHSU.edu In article <33E77EB3.7136@agcs.com> in comp.programming.literate, Bill Davies (daviesw@agcs.com) wrote: > Does the literate programming community sponsor conferences along the > lines of OOPSLA, PLoP, etc. ? If so, where would I find a schedule ? > (I checked the FAQ .. didn't see it there). Since literate programming originated in the sources for TeX and Metafont, the annual meeting/conference of the TeX Users' Group seems like a reasonable place to hold sessions on literate programming. It would probably be easier to attach sessions to an established conference and see how many people showed up, and then (if interest warrants) start up a separate LitProg conference, rather than set up a whole conference and risk having nobody attend. The only TUG meetings I've been able to attend so far were in 1995 and 1997. At both meetings a half-day was set aside for "birds of a feather" sessions, impromptu gatherings to allow topics not originally on the program to be addressed. At both meetings I proposed a BOF on literate programming. In the 1997 meeting I was the only one who was interested. In 1995 Knuth himself attended the TUG meeting, and agreed to sit in on the litprog BOF, so there was a little more interest :) but it really turned into just a bull session with people swapping anecdotes and war stories. It would be much MUCH better to have a formal session, with submitted papers etc., and the results published in the conference proceedings. As of the 1997 meeting I am now on the board of directors of TUG. I would be happy to "sponsor" a LitProg session (whatever that would entail... I really don't know) at one of TUG's 1998 meetings (*) if I had reason to expect that I would not be the only presenter. Anyone else interested? (*) Yes, in 1998 (for the first time) TUG will hold *two* conferences: one in Poland (which is where TUG's official annual business meeting will be held) and one in the eastern U.S. (I have heard Boston, New York, and Providence RI suggested as possible sites). --Cameron Smith cameron@dnaco.net 14-Aug-1997 4:28:27-GMT,3039;000000000001 Received: from Niord.shsu.edu (niord.sam.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id WAA24792 for ; Wed, 13 Aug 1997 22:28:26 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 13 Aug 1997 23:18:47 EST From: Daniel Perron Reply-To: LitProg@SHSU.edu, cde@cam.org Subject: O-O literate framework (any taker?) Date: 14 Aug 1997 01:29:46 GMT Message-ID: <5stn2a$725$1@readme.ican.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Hello everyone, We (me and probably a couple of other persons) are thinking to start a new business. We plan to target the development of object-oriented applications framework using literate programming. We are thinking to use a sponsorship scheme in which a company would sponsor one of their employee to collaborate with us to develop a prototype framework for their uses. The company who sponsors a project with us would have the chance to experiment with the development of a framework without spending a fortune. In return, we would like to keep the right to publish the result on the Net. By putting the result on the Net, we would expect to get suggestions on how to improve certain aspects (we have enough experience with the Net to know that there is always someone somewhere who can do something better than us and we intend to actively seek these advices) and we would incorporate those suggestions for the greatest benefit of all. This is not the place to argue about the benefits of object-oriented technology or literate programming but we would like to comment on the use of literate programming for developing applications framework. We have been using this approach since the beginning of the year and while this is not the ideal tool for everything, it allows us to stress important design decisions. And it avoids the situation where the architect grumbles about developer X who has broken his/her architecture because he/she didn't understand certain design decisions (you have to assume that the developer will now read the literate program and would not make the same mistake). We realize that the use of literate programming and the development of applications framework might not be for everyone's taste and this is reason for this post. Is there enough interest out there to try such an experiment? We are at a very early stage in the creation of our business and we welcome suggestions. So if you have suggestions, or you or your company would be interested in participating in such an endeavour, please drop us a line. -- ============================================================================= Daniel Perron, Ph.D. "Your quote here" e-mail: cde@cam.org B. Stroustrup http://www.cam.org/~cde 14-Aug-1997 4:29:56-GMT,5213;000000000001 Received: from Niord.shsu.edu (niord.sam.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id WAA24822 for ; Wed, 13 Aug 1997 22:29:55 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 13 Aug 1997 23:18:42 EST From: Craig Dupuis Reply-To: LitProg@SHSU.edu, cdupuis@BELLSOUTH.net Subject: certification Date: 14 Aug 1997 01:28:25 GMT Message-ID: <5stmvp$71t$1@readme.ican.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu what's better? MCSE status or CNE status? >From POPmail Wed Aug 13 21:20:41 1997 Return-Path: nr@ares.cs.virginia.edu Received: from mail.virginia.edu (mail.Virginia.EDU [128.143.2.9]) by mail.ican.net (8.8.6/8.8.6) with SMTP id AAA10718 for ; Wed, 13 Aug 1997 00:24:49 -0400 (EDT) Received: from mail.cs.virginia.edu by mail.virginia.edu id aa21058; 13 Aug 97 0:24 EDT Received: (from nr@localhost) by ares.cs.Virginia.EDU (8.8.5/8.8.5) id AAA07177; Wed, 13 Aug 1997 00:24:53 -0400 (EDT) Date: Wed, 13 Aug 1997 00:24:53 -0400 (EDT) Message-Id: <199708130424.AAA07177@ares.cs.Virginia.EDU> To: Patrick TJ McPhee From: Litprog moderation robot Subject: submission to comp.programming.literate X-UIDL: 8be1ee1302af562063ed05b11fd1118d Status: RO Dear Moderator, Because the message was cross-posted to multiple newsgroups, this submission was forwarded to you for your consideration. The Litprog moderation robot %% cut here --- the lp-sub -mod script looks for this line %% Received: from relay3.UU.NET (relay3.UU.NET [192.48.96.8]) Received: from relay3.UU.NET (relay3.UU.NET [192.48.96.8]) by ares.cs.Virginia.EDU (8.8.5/8.8.5) with ESMTP id AAA07163 for ; Wed, 13 Aug 1997 00:24:50 -0400 (EDT) Received: from Tandem.CAM.ORG by relay3.UU.NET with ESMTP (peer crosschecked as: Tandem.CAM.ORG [198.168.100.2]) id QQdcjh24311; Wed, 13 Aug 1997 00:24:37 -0400 (EDT) Received: (from news@localhost) by Tandem.CAM.ORG (8.8.4/8.8.4) id AAA16002; Wed, 13 Aug 1997 00:24:38 -0400 (EDT) To: comp-programming-literate@Moderated-Postings.CAM.ORG Path: usenet From: Daniel Perron Newsgroups: comp.programming.literate,comp.object,comp.lang.c++,comp.software-engHello,everyone, Subject: O-O literate framework (any taker?) Date: Wed, 13 Aug 1997 00:23:48 -0400 Organization: Communications Accessibles Montreal, Quebec Canada Lines: 57 Message-ID: <33F136D4.2DF3@cam.org> NNTP-Posting-Host: dynamicppp-173.hip.cam.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 3.0 (Win95; I) Hello everyone, We (me and probably a couple of other persons) are thinking to start a new business. We plan to target the development of object-oriented applications framework using literate programming. We are thinking to use a sponsorship scheme in which a company would sponsor one of their employee to collaborate with us to develop a prototype framework for their uses. The company who sponsors a project with us would have the chance to experiment with the development of a framework without spending a fortune. In return, we would like to keep the right to publish the result on the Net. By putting the result on the Net, we would expect to get suggestions on how to improve certain aspects (we have enough experience with the Net to know that there is always someone somewhere who can do something better than us and we intend to actively seek these advices) and we would incorporate those suggestions for the greatest benefit of all. This is not the place to argue about the benefits of object-oriented technology or literate programming but we would like to comment on the use of literate programming for developing applications framework. We have been using this approach since the beginning of the year and while this is not the ideal tool for everything, it allows us to stress important design decisions. And it avoids the situation where the architect grumbles about developer X who has broken his/her architecture because he/she didn't understand certain design decisions (you have to assume that the developer will now read the literate program and would not make the same mistake). We realize that the use of literate programming and the development of applications framework might not be for everyone's taste and this is reason for this post. Is there enough interest out there to try such an expirement? We are at a very early stage in the creation of our business and we welcome suggestions. So if you have suggestions, or you or your company would be interested in participating in such an endeavour, please drop us a line. -- ============================================================================= Daniel Perron, Ph.D. "Your quote here" e-mail: cde@cam.org B. Stroustrup http://www.cam.org/~cde 15-Aug-1997 8:51:07-GMT,1041;000000000000 Received: from Niord.shsu.edu (niord.sam.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id CAA00546 for ; Fri, 15 Aug 1997 02:51:06 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM (mvb.saic.com) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 15 Aug 1997 03:33:04 EST From: "Brandon Burt" Reply-To: LitProg@SHSU.edu, bb6078@m.cc.utah.edu Subject: Re: How do I choose variable names? Date: 15 Aug 1997 08:26:24 GMT Message-ID: <5t13rg$rfu$1@elna.ethz.ch> To: LitProg@SHSU.edu James Davis (Fishguard High School) wrote in article <5shg0f$b2f$1@elna.ethz.ch>... > Hi, > When Im programming how do I choose good names for my variables? My VB > programmes at the moment have non very memorable names e.g. > > Dim surname as string > Dim age as string How about "Dim sum as chinese_appetizers"? 20-Aug-1997 10:46:59-GMT,1018;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id EAA19434 for ; Wed, 20 Aug 1997 04:46:58 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 20 Aug 1997 05:33:58 EST From: detective@PI.com Reply-To: LitProg@SHSU.edu, detective@PI.com Subject: Know What The Wealthy Know Date: Wed, 20 Aug 1997 09:49:54 -0000 Message-ID: <33fabdc200000299@news.mskcc.org-MINC> To: LitProg@SHSU.edu How to Get Anything on Anyone! 157 True Poor Man's James Bond Techniques: Go to http://www.thorn.by.net/sx030001.htm ========================================================= Discover How to Use Spy Techniques to Legally & Ethically Take Your Competitor's Business... "The Age of The Digital Business Detective..." http://www.thorn.by.net 20-Aug-1997 10:47:00-GMT,974;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id EAA19433 for ; Wed, 20 Aug 1997 04:46:58 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 20 Aug 1997 05:33:45 EST From: mailservice@bulkmail.net Reply-To: LitProg@SHSU.edu, mailservice@bulkmail.net Subject: Do you like to receive $2 million ? Date: Sun, 17 Aug 1997 03:20:44 Message-ID: <5t5jlq$53r$8028@news.worldonline.nl> To: LitProg@SHSU.edu Hello Reader, Would you be interested in..... * receiving money by snail mail from all over the world? * in terms of MILLIONS, starting with $2 million ? * magic hands who create your financial future? Look at mailto:mm5413@persnet.com You'll be very - very - sorry if you don't! 22-Aug-1997 0:08:47-GMT,1136;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id SAA05539 for ; Thu, 21 Aug 1997 18:08:46 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 21 Aug 1997 18:55:54 EST From: thompson@shelob.ce.ttu.edu (David B. Thompson) Reply-To: LitProg@SHSU.edu, thompson@shelob.ce.ttu.edu Subject: New FAQ Message-ID: Date: Thu, 21 Aug 1997 20:16:56 GMT To: LitProg@SHSU.edu I've just posted a new version of the c.p.l FAQ on the FAQ server. In addition, I've converted to SGML so that I can produce multiple formats from one source document. (Thanks Andrew!) The URL for my machine is http://shelob.ce.ttu.edu/daves/faq.html for a starting point. I'll be modifying the FAQ further in the next few months and including URLs for the various tools. Tool maintainers, please review your entries for accuracy. Thanks! -=d 22-Aug-1997 0:25:10-GMT,1504;000000000001 Received: from shelob.ce.ttu.edu (shelob.ce.ttu.edu [129.118.20.23]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id SAA05891 for ; Thu, 21 Aug 1997 18:25:09 -0600 (MDT) Received: from shelob.ce.ttu.edu (localhost [127.0.0.1]) by shelob.ce.ttu.edu (8.8.5/8.8.5) with ESMTP id TAA05555; Thu, 21 Aug 1997 19:23:39 -0500 Message-Id: <199708220023.TAA05555@shelob.ce.ttu.edu> X-Mailer: exmh version 1.6.9 05/05/96 To: "Nelson H. F. Beebe" cc: thompson@shelob.ce.ttu.edu Subject: Re: New FAQ In-reply-to: Your message of "Thu, 21 Aug 1997 18:18:22 MDT." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Thu, 21 Aug 1997 19:23:39 -0500 From: "David B. Thompson" Roger. I'll fix this (and a lot of other things). Was it a bad thing to issue the FAQ in this fashion so soon? (In my editing cycle.) Thanks! -=d ===================================================================== David B. Thompson Ph.D., P.E. Email: thompson@shelob.ce.ttu.edu Civil Engineering Dept. Email: thompson@balrog.ce.ttu.edu Texas Tech University P.O. Box 41023 If you wanna run cool, Lubbock, Texas 79409-1023 USA you got ta run, (806) 742-3485x251 (Voice) on heavy, heavy fuel... (806) 742-3449 (Fax) -- Mark Knopfler ===================================================================== 22-Aug-1997 22:12:57-GMT,1959;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id QAA01607 for ; Fri, 22 Aug 1997 16:12:56 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 22 Aug 1997 17:04:53 EST From: Dan Schmidt Reply-To: LitProg@SHSU.edu, dfan@harmonixmusic.com Subject: Re: noweb: TeX code in a chunk? Message-ID: Date: Fri, 22 Aug 1997 20:59:23 GMT To: LitProg@SHSU.edu Norman Ramsey writes: | In article , | Jose Luis Diaz de Arriba. wrote: | >Is it possible to include TeX code in a [code] chunk? | >For example: | > | ><>= | >/* This is only a test for including \TeX{} commands */ | >@ | | Such features were deemed to be not in the spirit of noweb. | If you want something like this, your best bet is to write a noweave | back end (replacement for 'totex') that assumes text in comments is | TeX code. I think a number of people have done this already, but I | don't remember who they are. Perhaps they will speak up! I wrote dpp, a C/C++ prettyprinter for noweb. If you give it the -tex option, it will have TeX process all comments, rather than printing them verbatim. It will prettyprint all your source, so if you don't want that, find a simpler tool. :) You can find dpp at -- Dan Schmidt -> dfan@harmonixmusic.com, dfan@alum.mit.edu Honest Bob & the http://www2.thecia.net/users/dfan/ Factory-to-Dealer Incentives -> http://www2.thecia.net/users/dfan/hbob/ Gamelan Galak Tika -> http://web.mit.edu/galak-tika/www/ 22-Aug-1997 22:20:48-GMT,2137;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id QAA01779 for ; Fri, 22 Aug 1997 16:20:47 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 22 Aug 1997 17:04:40 EST From: jdiaz@sirio.etsiig.uniovi.es (Jose Luis Diaz de Arriba.) Reply-To: LitProg@SHSU.edu, jdiaz@sirio.etsiig.uniovi.es Subject: noweb: TeX code in a chunk? Content-Type: text/plain; charset=iso-8859-1 Message-ID: Content-Transfer-Encoding: 8bit MIME-Version: 1.0 Date: Fri, 22 Aug 1997 18:57:22 GMT To: LitProg@SHSU.edu Is it possible to include TeX code in a chunk? For example: <>= /* This is only a test for including \TeX{} commands */ main(int argc, char *argv[]) { <> <> <
> } @ The LaTeX code that noweave generates for this is: ------------------------------------------- \nwbegincode{1}\moddef{main.c}\enmoddef /* This is only a test for including \\TeX\{\} commands */ main(int argc, char *argv[]) \{ \LA{}Declarations\RA{} \LA{}Initializations\RA{} \LA{}Main loop\RA{} \} \nwendcode{}\nwbegindocs{2}\nwdocspar ------------------------------------------------- The characters \, { and } around "TeX" has been "escaped", so I asume that the code environment is not a verbatim but a kind of "altt" (the characters \, { and } retains is usual meaning). This leaves an open door for including TeX code in the chunk, but I didn't find any way of signaling this to noweb (in order to avoid the escaped \\, \{ and \}). There is a kind of "meta-escape" character for entering in TeX mode when in a code chunk? Excuse my english. I hope my question was clear. -- -|----|-------------------------------------------------------------- \|ose |_uis Diaz de Arriba e-mail: jdiaz@etsiig.uniovi.es --------------------------------------------------------------------- 22-Aug-1997 23:56:09-GMT,1603;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id RAA03562 for ; Fri, 22 Aug 1997 17:56:08 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 22 Aug 1997 18:48:36 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: noweb: TeX code in a chunk? Message-ID: Date: Fri, 22 Aug 1997 19:58:42 GMT To: LitProg@SHSU.edu In article , Jose Luis Diaz de Arriba. wrote: >Is it possible to include TeX code in a [code] chunk? >For example: > ><>= >/* This is only a test for including \TeX{} commands */ >main(int argc, char *argv[]) >{ > <> > <> > <
> >} >@ >There is a kind of "meta-escape" character for entering in TeX mode >when in a code chunk? Such features were deemed to be not in the spirit of noweb. If you want something like this, your best bet is to write a noweave back end (replacement for 'totex') that assumes text in comments is TeX code. I think a number of people have done this already, but I don't remember who they are. Perhaps they will speak up! Norman -- Norman Ramsey -- moderator, comp.programming.literate http://www.cs.virginia.edu/~nr 20-Aug-1997 16:48:41-GMT,1654;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id KAA27076 for ; Wed, 20 Aug 1997 10:48:40 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 20 Aug 1997 11:35:47 EST From: g.johnson@worldnet.att.net (Gregg Johnson) Reply-To: LitProg@SHSU.edu, g.johnson@worldnet.att.net Subject: Software developers Focus Group-Seattlke,WA area Date: Wed, 20 Aug 1997 16:19:06 GMT Message-ID: <33fb18dc.7181498@netnews.worldnet.att.net> To: LitProg@SHSU.edu Hi my name is Gregg and I'm from Infoco, an independent market research company. We are putting together a focus group to discuss software applications and development with individuals who are using MS C++ as one of their programming languages. This will be an informal, round table type discussion group and no sales attempt will be made as a result of this study. These discussion groups are being scheduled for Wednesday and Thursday, August 27 and 28, will last no longer than 2 hours and each participant would recieve a $125.00 honorarium as a thank you for helping with the research. I just have a few short questions to ask to see if you qualify for the study. If you are interested please give me a call at 408-354-2550 or email me at this adress with your phone number and I would be happy to give you a call. Thank you for your time. Gregg Johnson, Research Coordinator InFoCo 24-Aug-1997 1:54:12-GMT,1164;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id TAA28793 for ; Sat, 23 Aug 1997 19:54:11 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from hooters.entelchile.net (polux.entelchile.net) by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sat, 23 Aug 1997 20:44:26 EST Received: from alanmi.chilepac.net (ab12-48.entelchile.net [207.79.139.108]) by hooters.entelchile.net (950413.SGI.8.6.12/950213.SGI.Mitzio) via SMTP id VAA24586 for ; Sat, 23 Aug 1997 21:46:10 -0700 Message-ID: <3.0.1.32.19970823213810.00689418@entelchile.net> Date: Sat, 23 Aug 1997 21:38:10 -0400 To: LitProg@SHSU.edu From: Alberto Mihovilovic Reply-To: LitProg@SHSU.edu, alanmi@entelchile.net Subject: Question MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Hello Olivier: Does it exist a manual for HP 48 programming (freeware)for download in ftp or web sites. Waiting for response, thanks. 27-Aug-1997 15:51:01-GMT,64888;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id JAA04057 for ; Wed, 27 Aug 1997 09:50:59 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 27 Aug 1997 10:05:29 EST From: thompson@sun1.coe.ttu.edu Subject: comp.programming.literate FAQ Date: 27 Aug 1997 09:36:18 GMT Message-ID: Reply-To: LitProg@SHSU.edu, thompson@sun1.coe.ttu.edu To: LitProg@SHSU.edu Archive-name: literate-programming-faq Last-modified: 1997/08/15 Version: 1.1.18 The Literate Programming FAQ David B. Thompson 15 August 1997 This document is for new and experienced users of literate programming tools. The purpose is to explain the concept of literate programming and to provide a resource for locating files of interest to literate programmers and those interested in literate programming. ______________________________________________________________________ Table of Contents: 1. Welcome 1.1. Disclaimer 1.2. Copyright 1.3. What's New? 2. Introduction or 3. How do I get the FAQ? 3.1. Literate Programming FAQ 3.2. FWEB FAQ 4. Is there a newsgroup? 5. What internet nodes are of interest to literate programmers? 6. What is Literate Programming? 7. How do I begin literate programming? 8. What literate programming tools are available? 8.1. APLWEB 8.2. AWEB 8.3. CLiP 8.4. CWEB 8.5. CWEBx3.0 8.6. mCWEB 8.7. FunnelWeb 8.8. FunnelWeb 3.0AC 8.9. FWEB 8.10. IMPACT 8.11. lit2x 8.12. Literate Programmer's Workshop (LPW) 8.13. MapleWEB 8.14. MWEB (Schrod/Detig) 8.15. MWEB (Sewell) 8.16. noweb 8.17. nuweb 8.18. ProTeX 8.19. RWEB 8.20. SchemeWEB 8.21. SpideryWEB 8.22. WEB 8.23. WinWordWEB 9. Are there other tools I should know about? 9.1. C2LaTeX 9.2. c2cweb 9.3. c2man 9.4. cnoweb 9.5. Fold2Web 9.6. Funnelweb Mode 9.7. noweb.el 9.8. nuweb.el 9.9. TIE 9.10. Web mode 10. What other resources are available? 10.1. World Wide Web 10.2. TeX Resources 11. Are there any code examples? 12. Bibliographies 13. How to anonymously ftp 14. Acknowledgements 15. End notes ______________________________________________________________________ 1. Welcome Information contained in this document is the best available at preparation. The original file was dated October 15, 1993 (just for historical purposes). 1.1. Disclaimer Disclaimer: ``This FAQ is presented with no warranties or guarantees of ANY KIND including correctness or fitness for any particular purpose. The author of this document has attempted to verify correctness of the data contained herein; however, slip-ups can and do happen. If you use this data, you do so at your own risk.'' 1.2. Copyright Copyright 1993-1997 by David B. Thompson. All rights reserved worldwide. Permission is granted to copy this document for free distribution so long as it remains intact and unmodified. For other arrangements, contact the author/maintainer via email: 1.3. What's New? o My email address has changed (once again). o Newsgroup is moderated. o Updated fweb entry. o Updated noweb entry. o Added mCWEB entry. o Updated c2cweb entry. o Updated nuweb.el entry. o Updated cLiP entry. o Updated Lee W's examples (from bart). o Last, but not least, new formatting of the FAQ. Many thanks go to Andrew Johnson for helping make this happen. 2. Introduction or ``What's this all about?'' This document is for new and experienced users of literate programming tools. The purpose is to explain the concept of literate programming and to provide a resource for locating files of interest to literate programmers and those interested in literate programming. The Literate Programming (LitProg) Frequently Asked Questions (FAQ) list is maintained by Dave Thompson Comments and constructive criticisms are welcome. Direct flames to /dev/null (or nul if you're a msdos user! ;-) If you find an error, please report it. I'm particularly interested in establishing the locations of generally available literate programming tools. If you are the author of such a tool and wish to have it included in this list, please send email. Please note this is a work-in-progress. It is not complete, and probably will never be complete. Nevertheless, the information contained herein may be useful to some. Use it as it is intended. 3. How do I get the FAQ? 3.1. Literate Programming FAQ You have many ways to get a current copy of this FAQ. One is to use anonymous ftp (if you don't know how, see a later section in this FAQ) to connect to one of the Comprehensive TeX Arvchive Network (CTAN) sites or the Literate Programming Archive and retrieve a copy of the file. Open an ftp connection to one of the CTAN sites and retrieve the file: help/LitProg-FAQ (For more information on CTAN and the literate programming archive, see the section below entitled ``Internet Nodes of Interest to Literate Programmers''.) 3.2. FWEB FAQ David Coker maintains the FWEB FAQ. The current version number is 1.30a. It can be retrieved in the same way as this FAQ. The FWEB FAQ exists in various formats, including HyperText (see other resources below). In Europe, the complete distribution can also be obtained from ftp.desy.de 131.169.10.115 in directory /pub/faq/web/fweb/. It is also available from the literate programming archive in the directory LPA/Documentation/faq/fweb (see the references to LPA below for more information). 4. Is there a newsgroup? One of the most important resources is the literate programming newsgroup, comp.programming.literate. Because of the amount of spamming and unrelated the posts, the newsgroup is now moderated. Posts to the newsgroup are now routed through litprog- mod@cs.virginia.edu. If your news reader does not post through this address, then you will be unable to post messages to the newgroup. You can read this newsgroup using your standard reader. 5. What internet nodes are of interest to literate programmers? The principal nodes of interest to literate programmers are the Literate Programming Archive (LPA hereafter) and the CTAN (Comprehensive TeX Archive Network). The Literate Programming Archive (LPA) is: Node: ftp.th-darmstadt.de [130.83.55.75] Directory: programming/literate-programming Notes: Fastest response during off-U.S. [yep] business hours. Participating hosts in the Comprehensive TeX Archive Network are: ftp.dante.de (Deutschland) -- anonymous ftp /tex-archive (/pub/tex /pub/archive) -- gopher on node sun.dante.de -- e-mail via ftpmail@dante.de -- Administrator: ftp.tex.ac.uk (England) -- anonymous ftp /tex-archive (/pub/tex /pub/archive) -- gopher on node gopher.tex.ac.uk -- NFS mountable from nfs.tex.ac.uk:/public/ctan/tex-archive -- World Wide Web access on www.tex.ac.uk -- Administrator: The site ftp.shsu.edu used to be the American CTAN site. Apparently, that site has fallen into disrepair and should not be considered a primary source for either TeX related or literate programming related material. For the record, the address is: ftp.shsu.edu (Texas, USA) -- anonymous ftp and gopher /tex-archive (/pub/tex /pub/archive) -- NFS mountable from ftp.SHSU.edu:/pub/ftp/tex-archive -- e-mail via ftpmail@ftp.SHSU.edu -- World Wide Web access on www.SHSU.edu -- Administrator: A list of CTAN archive sites and their mirrors can be found on: ftp.dante.de:/tex-archive/CTAN.sites I presume that the other CTAN sites mirror this file, but have not checked. As of my last check (September 1994), it contains: "In order to reduce network load, it is recommended that you use the Comprehensive TeX Archive Network (CTAN) host which is located in the closest network proximity to your site." Known partial mirrors of the CTAN reside on (alphabetically): dongpo.math.ncu.edu.tw (Taiwan) /tex-archive ftp.adfa.oz.au (Australia) /pub/tex/ctan ftp.muni.cz (The Czech Republic) /pub/tex/CTAN ftp.cs.ruu.nl (The Netherlands) /pub/tex-archive ftp.uu.net (Virginia, USA) /pub/text-processing/TeX nic.switch.ch (Switzerland) /mirror/tex Known mirrors of the CTAN reside on (alphabetically): ftp.center.osaka-u.ac.jp (Japan) /CTAN ftp.ccu.edu.tw (Taiwan) /pub/tex ftp.cs.rmit.edu.au (Australia) /tex-archive ftp.duke.edu (North Carolina, USA) /tex-archive ftp.germany.eu.net (Deutschland) /pub/packages/TeX ftp.gwdg.de (Deutschland) /pub/dante ftp.jussieu.fr (France) /pub4/TeX/CTAN ftp.loria.fr (France) /pub/unix/tex/ctan ftp.mpi-sb.mpg.de (Deutschland) /pub4/tex/mirror/ftp.dante.de ftp.uni-bielefeld.de (Deutschland) /pub/tex ftp.uni-stuttgart.de (Deutschland) /tex-archive (/pub/tex) ftpserver.nus.sg (Singapore) /pub/zi/TeX src.doc.ic.ac.uk (England) /packages/tex/uk-tex sunsite.unc.edu (North Carolina, USA) /pub/packages/TeX wuarchive.wustl.edu (Missouri, USA) /packages/TeX Other nodes and directories of interest include: Node: ftp.desy.de [131.169.10.115] Directory: pub/web. Various documents, samples, and the FWEB FAQ. Notes: Has a www server, http://info.desy.de:80/ 6. What is Literate Programming? Literate programming is the combination of documentation and source together in a fashion suited for reading by human beings. In fact, literate programs should be enjoyable reading, even inviting! (Sorry Bob, I couldn't resist!) In general, literate programs combine source and documentation in a single file. Literate programming tools then parse the file to produce either readable documentation or compilable source. The WEB style of literate programming was created by D.E. Knuth during the development of his TeX typsetting software. All the original work revolves around a particular literate programming tool called WEB. Knuth says: The philosophy behind WEB is that an experienced system pro- grammer, who wants to provide the best possible documenta- tion of his or her software products, needs two things simultaneously: a language like TeX for formatting, and a language like C for programming. Neither type of language can provide the best documentation by itself; but when both are appropriately combined, we obtain a system that is much more useful than either language separately. The structure of a software program may be thought of as a web that is made up of many interconnected pieces. To docu- ment such a program we want to explain each individual part of the web and how it relates to its neighbours. The typo- graphic tools provided by TeX give us an opportunity to explain the local structure of each part by making that structure visible, and the programming tools provided by languages such as C or Fortran make it possible for us to specify the algorithms formally and unambigously. By combin- ing the two, we can develop a style of programming that max- imizes our ability to perceive the structure of a complex piece of software, and at the same time the documented pro- grams can be mechanically translated into a working software system that matches the documentation. Another author (Eric W. van Ammers) wrote me a short article treating his opinions on literate programming. The text follows: First observation on LP About 90% of the disussion on this list is about problems with applying some WEB-family member to a particular programming language or a special documentation situation. This is ridiculous, I think. Let me explain shortly why. Lemma 1: I have proposed for many years that programming has nothing to do with programming langauges, i.e. a good programmer makes good programs in any language (given some time to learn the syntax) and a bad programmer will never make a good program, no matter the language he uses (today many people share this view, fortunately). Lemma 2: Literate Programming has (in a certain way not yet completely understood) to do with essential aspects of programming. Conclusion 1: A LP-tool should be independent of programming language. Lemma 3: It seems likely that the so called BOOK FORMAT PARADIGM ref. 1 plays an important role in making literate programs work. Lemma 4: There are very many documentation systems currently being used to produce documents in the BOOK FORMAT. Conclusion 2: A LP-tool should be independent of the documentation system that the program author whishes to use. My remark some time ago that we should discuss the generic properties of an LP-tool was based on the above observation. References 1 Paul W. Oman and Curtus Cook. ``Typographical style is more than cosmetic.'' CACM 33, 5, 506-520 (May 1990) Second observation on LP The idea of a literate program as a text book should be extendend even further. I would like to see a literate program as an (in)formal argument of the correctness of the program. Thus a literate program should be like a textbook on mathematicics. A mathematical textbook explains a theory in terms of lemma and theorems. But the proofs are never formal in the sense that they are obtaind by symbol manipulation of a proof checker. Rather the proofs are by so called ``informal rigour'', i.e. by very precise and unambiguous sentences in a natural language. Eric W. van Ammers Department of Computer Science Wageningen Agricultural University Dreijenplein 2 E-mail: ammers@rcl.wau.nl 6703 HB Wageningen voice: +31 (0)8370 83356/84154 The Netherlands fax: +31 (0)8370 84731 Another author (Norman Ramsey) wrote me and asked that his opinions be included in the FAQ. What follows are Norman's comments verbatim. I see it's time for the ``how is literate programming dif- ferent from verbose commenting'' question. Perhaps David Thompson will get this into the FAQ. Alert! What follows are my opinions. In no way do I claim to speak for the (fractious) literate-programming community. How is literate programming different from verbose commenting? There are three distinguishing characteristics. In order of importance, they are: o flexible order of elaboration o automatic support for browsing o typeset documentation, especially diagrams and mathematics Flexible order of elaboration means being able to divide your source program into chunks and write the chunks in any order, independent of the order required by the compiler. In principle, you can choose the order best suited to explaining what you are doing. More subtly, this discipline encourages the author of a literate program to take the time to consider each fragment of the program in its proper sphere, e.g., not to rush past the error checking to get to the ``good parts.'' In its time and season, each part of the program is a good part. (This is the party line; your mileage may vary.) I find the reordering most useful for encapsulating tasks like input validation, error checking, and printing output fit for humans --- all tasks that tend to obscure ``real work'' when left inline. Reordering is less important when using languages like Modula-3, which has exceptions and permits declarations in any order, than when using languages like C, which has no exceptions and requires declaration before use. Automatic support for browsing means getting a table of contents, index, and cross-reference of your program. Cross-reference might be printed, so that you could consult an index to look up the definition of an identifier `foo'. With good tools, you might get a printed mini-index on every page if you wanted. Or if you can use a hypertext technology, cross-reference might be as simple as clicking on an identifier to reach its definition. Indexing is typically done automatically or `semi- automatically', the latter meaning that identifier definitions are marked by hand. Diligently done semi- automatic indexes seem to be best, because the author can mark only the identifiers he or she considers important, but automatic indexing can be almost as good and requires no work. Some tools allow a mix of the two strategies. Some people have applied literate-programming tools to large batches of legacy code just to get the table of contents, index, and cross-reference. I don't use diagrams and mathematics very often, but I wouldn't want to have to live without them. I have worked on one or two projects where the ability to use mathematical formulae to document the program was indispensible. I also wouldn't like to explain some of my concurrent programs without diagrams. Actually I write almost all of my literate programs using only sections headers, lists, and the occasional table. >Wouldn't it be easier to do one's literate programming using >a wysiwyg word processor (e.g. Word for Windows) and >indicate what is source code by putting it in a different >font? The data formats used in wysiwyg products are proprietary, and they tend to be documented badly if at all. They are subject to change at the whim of the manufacturer. (I'll go out on a limb and say there are no significant wysiwyg tools in the public domain. I hope the Andrew people will forgive me.) These conditions make it nearly impossible to write tools, especially tools that provide automatic indexing and cross-reference support. The CLiP people have a partial solution that works for tools that can export text --- they plant tags and delimiters throughout the document that enable the reordering transformation (``tangling''). People use TeX, roff, and HTML because free implementations of these tools are widely available on a variety of platforms. TeX and HTML are well documented, and TeX and roff are stable. TeX is the most portable. I think I have just answered the FAQ ``how come all these tools use TeX, anyway?'' :-) Norman Ramsey 7. How do I begin literate programming? A recommended book is D.E. Knuth's collection of articles (1992) Literate Programming. Center for the Study of Language and Information, Stanford University, ISBN 0-937073-80-6 (pbk). This book gives insight into Knuth's thoughts as he developed the web system of literate programming (and TeX for typesetting). It does not document methods for literate programming. A recommended book is Wayne Sewell's (1989) Weaving a Program: Literate Programming in WEB. Van Nostrand Reinhold, ISBN 0-442-31946-0 (pbk). This book focuses on using Knuth's web system. Some talk exists in the newsgroup/mailing list for a Usenet University course in literate programming. I'm sure discussion of this topic will be welcomed. If you are interested, please participate. 8. What literate programming tools are available? A significant number of tools for literate programming are available. Most have been ported from their original systems, so support multiple computer platforms. If you are the developer of such a tool, and would like to make the software freely available, please send me email and I'll reply with a form (like those below) for you to fill in. (Or short-circuit the process and kludge a form from below. :-) 8.1. APLWEB Developer: Christoph von Basum Version: Unknown Hardware: MSDOS Languages: IBM APL2 and STSC APL Formatter: Plain TeX Availability: Anonymous ftp from: LPA:/apl watserv1.uwaterloo.ca:/languages/apl/aplweb Readme: Unknown Description: None available. Support: Unknown Note: The status of this particular package is unknown. 8.2. AWEB Developer: Unknown Version: Unknown Hardware: Unknown Languages: Ada Formatter: Unknown Availability: Anonymous ftp from: LPA:/ada/web Readme: Unknown Description: None available Support: Not supported. 8.3. CLiP Developer: E.W. van Ammers and M.R. Kramer Versions: 2.0 and 2.4b (DOS only) Platform: Vax/VMS, Unix, DOS Languages: Any programming language Formatter: Any formatter (TeX, LaTeX, Troff, Runoff, HTML, etc) or any wordprocessor including WYSIWYG systems (Word Perfect, WinWord, Ami Pro, Word Pro, etc.) Availability: Anonymous ftp from: sun01.info.wau.nl:/CLIP/ms_dos DOS sun01.info.wau.nl:/CLIP/ms_dos_24b DOS (v. 2.4b) sun01.info.wau.nl:/CLIP/vax_vms VAX/VMS sun01.info.wau.nl:/CLIP/unix Unix CTAN:/web/clip LPA:/machines/ms-dos LPA:/machines/vax Readme: With bundle above Description: CLiP does not use explicit commands to perform the extraction process. Rather it recognizes pseudostatements written as comments in the programming language in question. CLiP distinguishes pseudostatements from ordinary comments because the former comply with a particular style. This style can be adjusted to suit virtually any programming language. The CLiP approach to LP makes the system extremely versatile. It is independent of programming language and text processing environment. We designed CLiP to be compatible with hypertext systems as well. Some hypertext examples are at ftp://sun01.info.wau.nl/clip/html/queens.htm ftp://sun01.info.wau.nl/clip/html/pal1.htm Features: + CLiP imposes virtually no limitations on the text-processing system used to produce the documentation. If the text-processor supports these items you can + structure the documentation according to your own taste. + include drawings, pictures, tables etc. + disclose your documentation my means of X-ref tables, Indexes, Table of contents, Table of tables, Table of figures, etc. + typeset the documented code. + Extracts any number of modules from a maximum of 64 source files. + No pretty-printing. Code from the source files is copied "as is" to the module. + Appearance of code segments in the documentation matches those of the modules to ease the identification of code segments. + Supports partially specified data types. + Comprehensive user manual (preliminary version) and technical description. - No automatic generation of a X-ref table for program identifiers. Support: Bugs, problems and assistance by e-mail to Eric.vanAmmers@user.info.wau.nl 8.4. CWEB Developer: Silvio Levy and D.E. Knuth Version: 3.0 Hardware: Unix systems (dos and amiga ports available) Languages: C and C++ Formatter: Plain TeX and LaTeX. Availability: Anonymous ftp from: labrea.stanford.edu:/pub/cweb LPA:/c.c++ CTAN:/web/c_cpp/cweb DOS version in CTAN:/web/c_cpp/cwb30p8c DOS version in LPA:/machines/ms-dos Amiga version CTAN:/web/c_cpp/AmigaCWEB Mac port of CTANGLE in LPA:/machines/mac LaTeX support in LPA:/c.c++ Readme: Bundled with above Description: No description provided. Support: Bugs to levy@math.berkeley.edu 8.5. CWEBx3.0 Developer: Marc van Leeuwen Version: Unknown Hardware: Any system using ASCII code Languages: ANSI C Formatter: Plain TeX Availability: Anonymous ftp from: ftp.cwi.nl/pub/cweb Readme: Bundled with above Brief description: A modified implementation of CWEB, with some extensions. Provides a mode for full compatibility with Levy/Knuth CWEB. The most significant extras are: - Typedef declarations affect formatting througout source file - Include files are scanned for typedef definitions - Flexible selection of layout style - Possibility to refer to sections using symbolic labels - CTANGLE detects unbalanced braces and parentheses - CWEAVE can be made to report syntax errors more easily - Some additional mechanisms to avoid formatting problems - New and modular set of grammar rules, based on ANSI C syntax - Possibility to suppress #line directives - A new manual Support: bugs and remarks to M.van.Leeuwen@cwi.nl 8.6. mCWEB Developer: Markus Oellinger Version: 1.0 Hardware: Unix Languages: C/C++ Formatter: plainTeX Availability: anonymous ftp from ist.tu-graz.ac.at:/pub/utils/litprog/mcweb/mcweb.tgz Readme: at same location Description: This is mCWEB 1.0, a descendant of the CWEB system of structured documentation by Donald E. Knuth and Silvio Levy. It adds some features that are indispensable when working in a team. mCWEB regards a project of a book consisting of several chapter files. By means of import and export commands, it automatically manages all relationships between the chapters of a book and to other books. Interface documentation is now also part of mCWEB. It is extracted into a second TeX file. This makes it possible to define well known interfaces between the individual parts of a project that will be implemented by different persons. In addition, mCWEB parses C header files to find out about all the datatypes defined there. mCWEB comes with a full completely rewritten user manual and is compatible with CWEB. Support: Institute of Software Technology moell@ist.tu-graz.ac.at 8.7. FunnelWeb Developer: Ross N. Williams: ross@guest.adelaide.edu.au Version: Unknown Hardware: MSDOS, Mac, VMS, Sun. Other ports reported. Languages: No restrictions. Formatter: Plain TeX for printing. Otherwise, no restrictions. Availability: Anonymous ftp from: CTAN:/web/funnelweb LPA:/independent ftp.adelaide.edu.au:/pub/funnelweb Readme: With bundle above. Description: FunnelWeb is a production-quality literate-programming tool that emphasises simplicity and reliability. Everything about FunnelWeb, from the simplicity of its language to the comprehensive tutorial in the user's manual, has been designed to make this as simple, as practical, and as usable a tool as possible. Features: + Provides a simple macro preprocessor facility. + Can produce typeset documentation. + Runs on Sun, VMS VAX, Macintosh, PC, and others. + Portable C source code distributed under GNU licence. + Comprehensive user's manual including tutorial. + Programming-language independent. + Can generate multiple output files. + Allows complete control over the output text. + Regression test suite with over 200 tests. + Fully worked example (in /pub/funnelweb/examples). - Requires TeX to produce typeset documentation. - Typesets program code using TT font only. Support: No formal support available. Mailing list maintained with about 50 subscribers. Informal assistance available from mailing list. 8.8. FunnelWeb 3.0AC Developer: Enhanced by A.B.Coates (coates@physics.uq.edu.au) from FunnelWeb v3.0 by Ross N. Williams (ross@guest.adelaide.edu.au) Version: 3.0AC Hardware: MSDOS, Mac, VMS, Sun, OSF/1, Linux, Sys.V, OS/2. Languages: No restrictions. Formatter: Tex, LaTeX, or HTML. Availability: Anonymous ftp from ftp.physics.uq.oz.au:/pub/funnelwebAC30.tar.gz Readme: With bundle above; for FunnelWeb manual see WWW page http://www.physics.uq.oz.au:8001/people/coates/funnelweb.html Description: FunnelWeb 3.0AC is an enhanced version of FunnelWeb (see the entry for FunnelWeb). FunnelWeb is designed to be typesetter independent, though FunnelWeb v3.0 only supports (La)TeX as the typesetter. FunnelWeb 3.0AC also supports HTML, and creates appropriate hypertext links within the document among the code sections. FunnelWeb 3.0AC also supports automatic and manual insertion of line directives, so that compiler errors can be flagged back to the original FunnelWeb source file. FunnelWeb 3.0AC is completely compatible with FunnelWeb v3.0 sources (with one minor exception; see the file README.ABC which comes with the FunnelWeb 3.0AC distribution). Support: Supported by A.B.Coates (coates@physics.uq.edu.au), subject to the time constraints imposed by his thesis. 8.9. FWEB Developer: John A. Krommes Version: 1.53 (1.60-beta for the experienced, patient, and brave) Hardware: Unix, VMS, and DOS platforms (anything with ANSI C) Languages: C, C++, Fortran-77, Fortran-90, Ratfor, TeX; also, a language-independent mode. Formatter: LaTeX. Plain TeX may work, but is no longer supported. Availability: Anonymous ftp from: ftp.pppl.gov:/pub/fweb CTAN:/web/fweb LPA:/fweb DOS version in LPA:/machines/ms-dos Readme: In bundle with above. Description: It also has a well-developed user's manual and its own FAQ (see above). Beginning with 1.40, documentation is maintained in gnu texinfo format. It runs on most platforms: VMS, PC, UNIX, and pretty much anything that the GNU C compiler (GCC) is supported for. Features: + Processes multiple languages during a single run (so one can mix C and Fortran, for example). + Language-independent mode (v1.40). + Ability to turn off pretty-printing (v1.40). + Built-in Ratfor translator. + Built-in macro preprocessor (closely follows ANSI C, with extensions). + A style file that allows the user to adjust many parameters and behavior patterns of FWEB. + Various operator-overloading features that provide additional pretty-printing capabilities to languages such as C++ and Fortran-90. + Numerous miscellaneous features and command-line options. Support: Bug reports and suggestions to krommes@princeton.edu 8.10. IMPACT Developer: Timothy Larkin, from Levy/Knuth CWEB 3.1 Version: 1.0 Hardware: Macintosh; requires AppleEvents. Languages: C, C++ Formatter: TeX Availability: CTAN archives Readme: A short readme file is included in the SEA archive. Description: IMPACT implements CTangle from the Levy/Knuth CWEB 3.1. It operates as a foreground program, tangling files selected from the Mac File Picker. Or it can operate in the background, tangling files in response to odoc events sent by other applications, such as editors. Support: I welcome any reports of bugs. The product will be updated as new versions of the CWEB appear. Other features may be added as users suggest them. 8.11. lit2x Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/independent Readme: Unknown Description: None available Support: Unknown 8.12. Literate Programmer's Workshop (LPW) Developer: Norbert Lindenberg Version: 1.1 Hardware: Apple Macintosh Languages: C++, Object Pascal & others Formatter: self-contained WYSIWYG system Availability: Anonymous ftp from: LPA:/machines/mac CTAN:/web/lpw ftp.apple.com:/pub/literate.prog Readme: With bundle above. Also comes with 38-page manual. Description: The Literate Programming Workshop is an environment for the integrated development of program source text and documentation in combined documents. It consists of a WYSIWYG word processor based on a style sheet approach, a mechanism to extract parts of the text in a document, and a project management system that handles multi-document projects. The system is designed to be used in conjunction with the Macintosh Programmer's Workshop: it prepares raw source text for the MPW compilers, accepts MPW error messages, and shows them in the context of the original documents. Automatic indexing and hypertext features allow for easy access to both source text and documentation. LPW is shareware. Support: Bugs, problems, and questions to lpw@aol.com. 8.13. MapleWEB Developer: Unknown Version: Unknown Hardware: Unknown Languages: Maple Formatter: Unknown Availability: Anonymous ftp from: LPA:/maple Readme: Unknown Description: None Support: Unknown 8.14. MWEB (Schrod/Detig) Developer: Joachim Schrod Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. 8.15. MWEB (Sewell) Developer: Sewell Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. 8.16. noweb Developer: Norman Ramsey Version: 2.8 Hardware: Unix and DOS platforms (DOS binaries available for v2.7). Languages: All programming languages, singly or in combination. Automatic indexing for C, Icon, Pascal, Standard ML, TeX, Yacc Formatter: Plain TeX, LaTeX, and HTML formatters. Will convert LaTeX to HTML automatically. Availability: Anonymous ftp from: CTAN:/web/noweb LPA:/independent Last recourse, use ftp.cs.virginia.edu:pub/nr Readme: With bundle above, or see the noweb home page: http://www.cs.virginia.edu/~nr/noweb Those without ftp access can consult ``Literate Programming Simplified,'' IEEE Software, September 1994, pp97-105. Description: noweb is designed to meet the needs of literate programmers while retaining the simplest possible input format. 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. The primary sacrifice relative to WEB is that code is not prettyprinted. noweb supports indexing and identifier cross-reference, including hypertext ``hot links.'' noweb includes a simple, efficient LaTeX-to-HTML converter, so you can use hypertext browsers on your legacy documents. noweb can also process nuweb programs, so you can use noweb to convert a standard nuweb program to HTML with one command. Support: email to the author 8.17. nuweb Developer: Preston Briggs: preston@cs.rice.edu Version: 0.87 Hardware: Unix systems: Sparcs, RS/6000s, HPs; (!) MSDOS and Amiga. Languages: Any programming language or combination of programming languages. Formatter: Latex Availability: Anonymous ftp from: Unix: CTAN:/web/nuweb DOS: CTAN:/web/nuweb-pc LPA:/independent Amiga: CTAN:/web/nuweb/nuweb_ami Amiga: wuarchive.wustl.edu/pub/aminet Readme: Send mail to preston@cs.rice.edu Description: A single program that takes a web file written in a combination of latex and any programming language(s) and produces a latex file that can be pretty printed and a set of files containing code for compilation/interpretation by the appropriate language processors. Strengths include speed, simplicity, multiple languages, nice indices and cross-references, latex. Doesn't require any special macros or macro files. Drawbacks: latex-dependent, no code pretty printing, harder to make indices than cweb. More good stuff: nice support for make, doesn't reformat source files, so they're easy to debug. Lots of control without too much effort. That is, it doesn't do too much! Future directions... Very little change planned, except perhaps refinements in the indexing software. Support: Hack it yourself or send e-mail to preston@cs.rice.edu 8.18. ProTeX Developer: Eitan Gurari Version: ProTeX 1.1, AlProTeX 1.4 Hardware: Any platform with (La)TeX Languages: Any language Formatter: TeX or LaTeX Availability: Anonymous ftp from: ftp.cis.ohio-state.edu : pub/tex/osu/gurari/ LPA:/independent Readme: With bundle above Description: + Easy to use + Extensible + Language independent + Multiple output files + Fast (single compilation provides output and dvi files) + No installation is needed besides copying the files (written in TeX) Introduction of main features and examples in pub/tex/osu/gurari/LitProg Complete manual in Eitan M. Gurari, "TeX and LaTeX: Drawing and Literate Programming", McGraw-Hill, 1994 Support: gurari@cis.ohio-state.edu 8.19. RWEB Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/reduce Readme: Unknown Description: Web generator in AWK. Support: Unknown 8.20. SchemeWEB Developer: John D. Ramsdell Version: 2.1 Hardware: Unix and DOS platforms Languages: Any dialect of Lisp. Formatter: LaTeX. Availability: The Unix version is in the Scheme Repository and it is available via anonymous ftp from: cs.indiana.edu:/pub/scheme-repository/utl/schemeweb.sh LPA:/lisp CTAN:/tex-archive/web/schemeweb The DOS version is part of the PCS/Geneva Scheme system which is available via anonymous ftp from: cui.unige.ch:/pub/pcs LPA:/machines/ms-dos Readme: In bundle with above. Description: SchemeWEB is a Unix filter that allows you to generate both Lisp and LaTeX code from one source file. The generated LaTeX code formats Lisp programs in typewriter font obeying the spacing in the source file. Comments can include arbitrary LaTeX commands. SchemeWEB was originally developed for the Scheme dialect of Lisp, but it can easily be used with most other dialects. Support: Bug reports to ramsdell@mitre.org. 8.21. SpideryWEB Developer: Norman Ramsey Version: Unknown Hardware: Unix and DOS platforms Languages: Most Algol-like languages, including C, Ada, Pascal, Awk, and many others. Formatter: Plain TeX and latex for text formatters. Availability: Anonymous ftp from: CTAN LPA:/spiderweb Readme: In distribution. Description: A system for building language-dependent WEBs. Spider is frozen; no further development is planned. Support: Bug reports to spider-bugs@oracorp.com. 8.22. WEB Developer: Donald Knuth Version: Unknown Hardware: Unknown Languages: Pascal Formatter: TeX (of course! ;-) Availability: Anonymous ftp from: LPA:/pascal Readme: Unknown Description: This is the original software that started it all. The original TeX processor was written in WEB. Support: None known. 8.23. WinWordWEB Developer: Lee Wittenberg Version: Unknown Hardware: Needs Microsoft Word for Windows, v.2.x, and, of course, MS-Windows 3.x. Languages: Any programming language. Formatter: Word for Windows 2.x for text formatting and file maintenance. Availability: Anonymous ftp from: bart.kean.edu:pub/leew LPA:/machines/ms-dos World-Wide Web (WWW) Readme: WORDWEB.DOC in the downloadable package describes the system. Description: WinWordWEB is a set of a Word for Windows macros (plus a paragraph style) that provide a crude literate programming environment. The ``look and feel'' of the system is based on Norman Ramsey's noweb, but can easily be modified to suit individual tastes. Support: None. WinWordWEB was written as a prototype to see if a WYSIWYG literate programming system was possible. It is intended as a jumping off point for future work by others. However, the system is surprisingly usable as it stands, and the author is interested in hearing from users (satisfied and dissatisfied). Anyone interested in actively supporting (and improving) the product should contact the author via email. 9. Are there other tools I should know about? First of all, I'll list some not-quite-literate-programming tools. Some may consider these to be pretty-printers. Others may call them literate programming tools. In any event, they don't seem to be quite in the same category as the tools listed above, so I'll include them here. 9.1. C2LaTeX Developer: John D. Ramsdell Version: Unknown Hardware: Unix Languages: C Formatter: LaTeX but it's easy to change the formatter. Availability: Anonymous ftp from omnigate.clarkson.edu:/pub/tex/tex-programs/c2latex. Readme: Absent. Documentation is in the C source for c2latex. Description: C2latex provides simple support for literate programming in C. Given a C source file in which the comments have been written in LaTeX, c2latex converts the C source file into a LaTeX source file. It can be used to produce typeset listings of C programs and/or documentation associated with the program. C2latex produces LaTeX source by implementing a small number of rules. A C comment that starts at the beginning of a line is copied unmodified into the LaTeX source file. Otherwise, non-blank lines are surrounded by a pair of formatting commands (\begin{flushleft} and \end{flushleft}), and the lines are separated by \\*. Each non-blank line is formatted using LaTeX's \verb command, except comments within the line are formatted in an \mbox. Support: Send bug reports to ramsdell@mitre.org. 9.2. c2cweb Developer: Werner Lemberg Version: 1.5 Hardware: DOS, OS/2, Unix (gcc) - CWEB source included Languages: C, C++ Formatter: TeX Availability: Anonymous ftp from CTAN:/web/c_cpp/c2cweb Readme: In distribution. Description: c2cweb will transform plain C or C++ code into a CWEB file to get a pretty formatted output. A modified CWEAVE (which transforms the CWEB file into a TeX file, see below) is included also. Support: Werner Lemberg 9.3. c2man language: C, nroff, texinfo, latex, html package: c2man version: 2.0 patchlevel 33 parts: documentation generator (C -> nroff -man, -> texinfo, ->latex, -> html) author: Graham Stoney location: ftp from any comp.sources.misc archive, in volume42 (the version in the comp.sources.reviewed archive is obsolete) ftp /pub/Unix/Util/c2man-2.0.*.tar.gz from dnpap.et.tudelft.nl Australia: ftp /usenet/comp.sources.misc/volume42/c2man-2.0/* from archie.au N.America: ftp /usenet/comp.sources.misc/volume42/c2man-2.0/* from ftp.wustl.edu Europe: ftp /News/comp.sources.misc/volume42/c2man-2.0/* from ftp.irisa.fr Japan: ftp /pub/NetNews/comp.sources.misc/volume42/c2man-2.0/* from ftp.iij.ad.jp Patches: ftp pub/netnews/sources.bugs/volume93/sep/c2man* from lth.se description: c2man is an automatic documentation tool that extracts comments from C source code to generate functional interface documentation in the same format as sections 2 & 3 of the Unix Programmer's Manual. It requires minimal effort from the programmer by looking for comments in the usual places near the objects they document, rather than imposing a rigid function-comment syntax or requiring that the programmer learn and use a typesetting language. Acceptable documentation can often be generated from existing code with no modifications. conformance: supports both K&R and ISO/ANSI C coding styles features: + generates output in nroff -man, TeXinfo, LaTeX or HTML format + handles comments as part of the language grammar + automagically documents enum parameter & return values + handles C (/* */) and C++ (//) style comments - doesn't handle C++ grammar (yet) requires: yacc/byacc/bison, lex/flex, and nroff/groff/texinfo/LaTeX. ports: Unix, OS/2, MSDOS, VMS. portability: very high for unix, via Configure status: actively developed; contributions by users are encouraged. discussion: via a mailing list: send "subscribe c2man " (in the message body) to listserv@research.canon.oz.au help: from the author and other users on the mailing list: c2man@research.canon.oz.au announcements: patches appear first in comp.sources.bugs, and then in comp.sources.misc. updated: 1994/10/07 9.4. cnoweb Developer: Jim Fox Version: 1.4 (January 4, 1991) Hardware: Anything with C and TeX. Languages: C Formatter: Plain TeX. Availability: Anonymous ftp from: CTAN LPA:/c.c++ Readme: Unknown, cnoweb.tex contains documentation. Description: cnoweb is as it's name describes: write C, not web. No tangling or weaving is implemented. Documentation (between standard /* */ delimiteres) is written in TeX. cnoweb provides typesetting of documentation, an table of contents of routines, and pretty-printing of C source. Support: None known. 9.5. Fold2Web Developer: Bernhard Lang Version: V0.8 Hardware: MSDOS Languages: All (must allow comment lines) Formatter: LaTeX Availability: Anonymous ftp from: kirk.ti1.tu-harburg.de (134.28.41.50) /pub/fold2web/readme /pub/fold2web/fold2web.zip Readme: In distribution Description: The idea behind the Fold2Web tool is the following: A programmer can write his program source with a folding editor and later map the folded source files automatically to WEB-files. The generated WEB-files can then be modified by inserting required documentations. The advantage by starting program developement with original sources is to get short design cycles during the compile/debug steps. By using a folding editor the global structuring information can be already captured in folds during this developement phase. Fold information is typically stored in comment lines and thus will not affect the efficiency of the compile/debug design cycle. Some folding editors and a folding mode for the emacs are available (e.g. see our FUE folding editor for MSDOS machines which is a modified micro emacs. Pick it at kirk in directory /pub/fold2web). After reaching a stable version of a program source its time to convert the source file to a WEB-file and do the program documentation. Fold2Web is written to convert folded source text of any programming language to nuweb files. The folded structure is kept by mapping folds to scraps. Fold markers which differ between languages due to different ways of specifying comments can be configured for each language. Good results can also achived when given but poor documented program sources have to be modified. Such sources can be folded using a folding editor to extract the global structures. This offers a global view to the program structures and help to understand its functionality. Furthermore the program code is not affected, only comment lines are inserted. Once folded the program source can be automatically translated to a WEB document using the above tool. Support: email to lang@tu-harburg.d400.de 9.6. Funnelweb Mode Developer: Daniel Simmons Version: Unknown Availability: http://www.miscrit.be/~ddw Description: The other day I did a quick hack to nuweb.el as included with the nuweb distribution so as to make a funnelweb-mode.el. I've only used it briefly, and I'm sure that it can be improved quite a bit. I've been thinking about adding support for folding on sections, a pull-down menu to select macro definitions (like the recent functions posted to gnu.emacs.sources for a C function definition pull-down menu) and some kind of tags support for funnelweb. Support: Unknown 9.7. noweb.el Developer: Bruce Stephens Version: Unknown. Availability: LitProg archives (in an email message). Description: This is a very simple mode I just hacked up. There's a lot wrong with it, but I thought others may be interested, even as it stands. It *requires* text properties, and assumes those used in GNU Emacs 19.22; it'll quite likely work with Lucid Emacs, but I haven't tried it. I use it with auctex8.1 and cc-mode 3.229, both of which are loaded separately (I think my emacs is dumped with them, in fact). The idea is to have one mode (which calls itself c-mode, but actually has LaTeX-mode keybindings) generally (this means that the code is hilighted nicely), and have the code chunks use a different keymap. Support: Email to bruce@liverpool.ac.uk 9.8. nuweb.el Developer: Dominique de Waleffe Version: 1.99 Availability: Anonymous ftp from: LPA CTAN Description: Provides a major mode extending Auctex for editing nuweb files. Main features (in 2.0): - Edit scrap bodies in a separate buffer in a different mode (selected using emacs defaults for files, specific indication -*-mode-*-, or a buffer-local variable) - Extends Auctex commands so that nuweb is called before LaTeX, - Easy navigation on scrap definition and use points. - Now creates an imenu (C-M-mouse1) with user index entries, macro definition positions and file definition positions. Support: Email to ddw@acm.org 9.9. TIE Developer: Unknown Version: Unknown Hardware: Unknown Availability: Anonymous ftp from: LPA:/Tools Readme: Unknown Description: This software merges change files. Support: Unknown 9.10. Web mode Developer: Bart Childs Version: Unknown Tools supported: web, fweb, cweb, funnelweb Availability: Anonymous ftp from ftp.cs.tamu.edu:pub/tex-web/web/EMACS.web-mode thrain.anu.edu.au:pub/web/EMACS.web-mode Description: This version works with versions 18 and 19 of Emacs to be best of my knowledge. I have cleaned up a number of documentation items ... In the same directory is wm_refcard.tex which is an edited version of the famous one to include some web-mode commands. The files limbo* are related to its use and notice that half them have an uppercase L in them for LaTeX. The setup is based upon the fact that we (I am not alone here) primarily use FWEB for C and Fortran programming. We are using version 1.40 of FWEB although John Krommes warns that it is not mature and the manual is not yet updated. The info files are! We are using LaTeX almost exclusively. That will likely change and we will revert to version 1.30 if the final form of 1.40 cannot return to the simple section numbers and avoid the HORRIBLE LATEX 0.1.7.2.4.6 type section numbers. Support: Unknown 10. What other resources are available? 10.1. World Wide Web An untapped resource (by me anyway ;-) is the World Wide Web. Marcus Speh has expended considerable effort in this regard. If you're connected to WWW, then access: http://info.desy.de:80/user/projects/LitProg.html If you aren't connected to WWW, telnet to info.cern.ch and explore. You can reach Marcus' literate programming pages by typing: go http://info.desy.de:80/user/projects/LitProg.html or use a WWW browser and access the URL ftp://rtfm.mit.edu/pub/usenet/news-answers/www/resources/literate-programming Help for people who have only Email and neither WWW nor telnet, can be obtained by Email from TEST-LIST@INFO.CERN.CH by sending a message, SEND , for example, SEND http://info.desy.de:80/user/projects/LitProg.html to retrieve the LitProg library page. A help file can be retrieved by sending a message to the list server above with the text HELP in the body of the message. Instructions will be returned by email. For literate programming documents, you can try anonymous ftp to rtfm.mit.edu and retrieve the official Usenet resource file /pub/usenet/news.answers/www/resources/literate-programming 10.2. TeX Resources Another resource of interest to literate programmers is the comp.text.tex newsgroup. If you're using (La)TeX as your typsetting system and have access to internet, then you should investigate this resource. Another reason the TeX resources should be important is that so many of the literate programming tools rely on either plain TeX or LaTeX as their text formatter. (La)TeX software systems exist for most computing platforms. These systems can be found on CTAN and other major archive sites. Use archie to find them or simply ftp to one of the CTAN sites and browse. 11. Are there any code examples? Examples of web programs are included with the FWEB, CWEB, and noweb distributions. nuweb is written in itself. Cameron Smith converted the K&R calculator program into a literate program. It can be retrieved by anonymous ftp from: niord.shsu.edu [192.92.115.8] directory kr-cweb-sample as krcwsamp.zip or from LPA/Documentation Ross Williams has released a funnelweb example. You can retrieve this file from node ftp.adelaide.edu.au 129.127.40.3 as /pub/funnelweb/examples/except.* This file should be on CTAN as well. Lee Wittenberg has posted a few litprog examples. They are available via anonymous ftp from: ftp://samson.kean.edu/pub/leew/samples.LP The Stanford GraphBase is a large collection of programs by Don Knuth for doing all kinds of computations and games with graphs; it is writ- ten in (Levy/Knuth) CWEB. More details in the distribution. It is available via anonymous ftp from: labrea.stanford.edu:/pub/sgb 12. Bibliographies Nelson Beebe has collected an extensive bibliography treating literate programming. His work is available for anonymous ftp from ftp.math.utah.edu 128.110.198.2 in directory /pub/tex/bib as files: litprog.bib litprog.ltx litprog.twx. Although I have not verified this, LPA is an alternate source for these files. Note that they are updated frequently (Nelson says sev- eral times each week), so be sure to get a fresh copy before extensive use. Joachim Schrod indicates that these files may be updated daily and can be retrieved via anonymous ftp at LPA/documentation. 13. How to anonymously ftp Pretty much everything mentioned here is available by anonymous FTP. FAQ lists cross-posted to news.answers and rec.answers can be gotten from rtfm.mit.edu 18.181.0.24, under /pub/usenet/news.answers or under /pub/usenet/more.specific.group.name "anonymous FTP" is just a way for files to be stored where anyone can retrieve them over the Net. For example, to retrieve the latest version of the literate programming FAQ, do the following: > ftp rtfm.mit.edu /* connect to the site; message follows */ > anonymous /* type this when it asks for your name */ > /* type your address as the password */ > cd /pub/usenet /* go to the directory you want to be */ > cd comp.programming.literate /* one level down (no slash). */ > dir /* look at what's there */ > get literate-progamming-faq /* get the file; case-sensitive */ > quit /* stop this mysterious thing */ If your FTP program complains that it doesn't know where the site you want to use is, type the numerical address instead of the sitename: > ftp 18.181.0.24 /* connect with numerical address */ If you don't have ftp access, send e-mail to mail-server@rtfm.mit.edu with the single word "help" in the body of the message. Getting binary files (executables, or any compressed files) is only slightly more difficult. You need to set binary mode inside FTP before you transfer the file. > binary /* set binary transfer mode */ > ascii /* set back to text transfer mode */ FAQs and spoiler lists are generally ascii files; everything else is generally binary files. Some common extensions on binary files in archive sites are: .Z Compressed; extract with uncompress .tar.Z Compressed 'tape archive'; uncompress then untar or tar -xvf .gz or .z Gnu gzip; use gunzip (available from prep.gnu.ai.mit.edu) .sit (Mac) StufIt archive .zip Extract with Zip or Unzip .zoo Yet another archive/compress program .lhe (Amiga) ? .lzh Lha archive program. .arj (PC) Arj archive program. .exe (PC) Sometimes self-extracting archives-just execute them. .uue or .UUE Transfer as text file; use uudecode to convert to binary .hqx (Mac) BinHex format; transfer in text mode Generic help can be found in the FAQs of comp.binaries. for how to transfer, extract, and virus-check binary files. (At rtfm.mit.edu) If you can't FTP from your site, use one of the following ftp-by-mail servers: ftpmail@decwrl.dec.com ftpmail@src.doc.ic.ac.uk ftpmail@cs.uow.edu.au ftpmail@grasp.insa-lyon.fr For complete instructions, send a message reading "help" to the server. If you don't know exactly what you're looking for, or exactly where it is, there are programs and servers that can help you. For more info, send e-mail to mail-server@rtfm.mit.with with the body of the message reading send usenet/news.answers/finding-sources Thanks to Aliza R. Panitz (the "buglady") for this text. I copied it verbatim from her post on faq-maintainers with only minor modifications. 14. Acknowledgements This document would not have happened without the help of many people. Among them are Marcus Speh, George Greenwade, Rob Beezer, Joachim Schrod, Piet van Oostrum, and Ross N. Williams. A special thanks to Aliza R. Panitz for the text describing how to execute an anonymous ftp for files of interest. Any omissions from these acknowledgements should be considered an act of stupidity on my part. Of course, the authors of literate programming tools mentioned above all play a vital role in the vitality of literate programming. Furthermore, participants in the comp.programming.literate newsgroup (and associated mailing list) all contributed in various fashions. Thank all of you. 15. End notes This document will continue to evolve. I'm planning on adding entries for additional literate programming tools and will expand the sections on examples as more examples become available. Tools I will include are WEB (the original pascal version) for starters. Others will be added as I find and document them. Omission of a particular tool should not be considered a snub in any sense--simply an error or oversight on my part. 27-Aug-1997 16:35:47-GMT,2344;000000000001 Received: from plot79.math.utah.edu (beebe@plot79.math.utah.edu [128.110.198.3]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id KAA05562; Wed, 27 Aug 1997 10:35:46 -0600 (MDT) From: "Nelson H. F. Beebe" Received: (from beebe@localhost) by plot79.math.utah.edu (8.8.5/8.8.5) id KAA25682; Wed, 27 Aug 1997 10:35:45 -0600 (MDT) Date: Wed, 27 Aug 1997 10:35:45 -0600 (MDT) To: thompson@sun1.coe.ttu.edu Cc: beebe@math.utah.edu X-US-Mail: "Center for Scientific Computing, University of Utah, 155 S 1400 E RM 233, Salt Lake City, UT 84112-0090, USA" X-Telephone: +1 801 581 5254 X-FAX: +1 801 581 4148 X-URL: http://www.math.utah.edu/~beebe Subject: Re: Literate Programming FAQ Version: 1.1.18: Bibliographies Message-ID: You might note in the next edition of the Literate Programming FAQ that the litprog bibliography is also available in other formats, viz -rw-rw-r-- 1 staff 161052 Aug 20 10:18 litprog.bib -rw-rw-r-- 1 staff 92212 Aug 20 16:01 litprog.dvi -rw-rw-r-- 1 staff 194624 Aug 20 16:01 litprog.html -rw-rw-r-- 1 staff 2857 Aug 20 10:18 litprog.ltx -rw-rw-r-- 1 staff 221101 Aug 20 16:02 litprog.pdf.gz -rw-rw-r-- 1 staff 405427 Aug 20 16:01 litprog.ps.gz -rw-rw-r-- 1 staff 6171 Jul 21 06:05 litprog.sok -rw-rw-r-- 1 staff 27517 Aug 20 16:01 litprog.twx In particular, for Web users the litprog.html file (URL: ftp://ftp.math.utah.edu/pub/tex/bib/litprog.html) provides a view that when cut and pasted preserves BibTeX entries exactly, but in addition, provides full cross-referencing and hypertext linking, and also addressability of individual entries, such as ftp://ftp.math.utah.edu/pub/tex/bib/litprog.html#Deursen:1996:LPA The HTML files in that direction are created completely automatically from the BibTeX files. ======================================================================== Nelson H. F. Beebe Tel: +1 801 581 5254 Center for Scientific Computing FAX: +1 801 581 4148 University of Utah Internet e-mail: beebe@math.utah.edu Department of Mathematics, 105 JWB URL: http://www.math.utah.edu/~beebe 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090, USA ======================================================================== 29-Aug-1997 3:05:02-GMT,9845;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id VAA19115 for ; Thu, 28 Aug 1997 21:04:57 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 28 Aug 1997 21:46:45 EST From: melodyfire@aol.com (MelodyFire) Reply-To: LitProg@SHSU.edu, melodyfire@aol.com Subject: $50 THOUSAND DOLLARS IN SIXTY DAYS!!!!!!!! Date: 29 Aug 1997 02:47:03 GMT Message-ID: <19970829024700.WAA25370@ladder01.news.aol.com> To: LitProg@SHSU.edu SUBJECT: $50 THOUSAND DOLLARS IN SIXTY DAYS!!!!!!!!!! A LITTLE WHILE BACK, I WAS BROWSING THESE NEWS GROUPS, JUST LIKE YOU ARE NOW, AND CAME ACROSS AN ARTICLE SIMILAR TO THIS THAT SAID YOU COULD MAKE THOUSANDS OF DOLLARS WITHIN WEEKS WITH ONLY AN INITIAL INVESTMENT OF $5.00!!!!!!!!!! SO I THOUGHT, "YEAH,RIGHT, THIS MUST BE A SCAM!!!", LIKE MOST OF US, BUT I WAS CURIOUS, LIKE MOST OF US, SO I KEPT READING. ANYWAY, IT SAID THAT YOU SEND $1.00 TO EACH OF THE 5 NAMES AND ADDRESSES STATED IN THE ARTICLE. YOU THEN PLACE YOUR OWN NAME AND ADDRESS AT THE BOTTOM OF THE LIST AT #5, AND POST THE ARTICLE TO AT LEAST 200 NEWS GROUPS. (THERE ARE ABOUT 22,000) NO CATCH, THAT WAS IT. SO AFTER THINKING IT OVER . I SPOKE TO MY ATTORNEY, A FEW FRIENDS AND FAMILY ABOUT IT AND THEY ALL AGREED THAT IT WAS SOME KIND OF SCAM. AFTER REJECTING THE IDEA AT FIRST, IT KIND OF PLAYED ON MY MIND AND I THOUGHT, "WHAT IF IT REALLY WORKED?". I FIGURED WHAT HAVE I GOT TO LOOSE EXCEPT FIVE STAMPS AND FIVE DOLLARS , RIGHT? AND I DECIDED TO GIVE IT A TRY. THEN I INVESTED THE MEASLY $5.00..................WELL GUESS WHAT!!!!.....................WITHIN 7 DAYS, I STARTED GETTING MONEY IN THE MAIL!!!!!!!!!! I WAS SHOCKED!!! I STILL FIGURED IT WOULD END SOON, AND DIDN'T GIVE IT ANOTHER THOUGHT. BUT THE MONEY JUST CONTINUED COMING IN. IN MY FIRST WEEK I MADE ABOUT $20.00 TO $30.00. BY THE END OF THE SECOND WEEK I HAD A MADE A TOTAL OF $1,000.00!!!!!!!!! IN THE THIRD WEEK I HAD OVER $10,000.00 AND IT WAS STILL GROWING. THIS IS NOW MY FOURTH WEEK AND I HAVE MADE A TOTAL OF JUST OVER $42,000.000 AND IT'S STILL COMING IN. IT IS CERTAINLY $5.00 AND 5 STAMPS. I SPENT A LOT MORE THEN THAT ON THE LOTTERY!!!!!!!!! LET ME TELL YOU HOW THIS WORKS, AND MOST IMPORTANTLY, WHY IT WORKS. ALSO MAKE SURE YOU PRINT A COPY OF THIS ARTICLE NOW, SO YOU CAN GET THE INFORMATION OFF OF IT WHEN YOU NEED IT. THE PROCESS IS VERY SIMPLE AND CONSISTS OF 3 EASY STEPS. STEP 1: GET FIVE SEPARATE PIECES OF PAPER AND WRITE YOUR NAME AND COMPLETE ADDRESS ALONG WITH THE FOLLOWING DIRECTIVE ON EACH PIECE OF PAPER "PLEASE ADD ME TO YOUR MAILING LIST. $1 US DOLLAR PROCESSING FEE ENCLOSED" NOW GET FIVE $1.00 BILLS AND PLACE 1 INSIDE EACH OF THE FIVE PIECES OF THE PAPER SO THE BILL WILL NOT BE SEEN THROUGH THE ENVELOPE TO PREVENT THEFT/ROBBERY. THEN PLACE ONE PAPER IN EACH OF THE FIVE ENVELOPES AND SEAL THEM. YOU SHOULD NOW HAVE FIVE SEALED ENVELOPES, EACH WITH A PIECE OF PAPER STATING THE ABOVE PHRASE AND A $1.00 BILL MAIL ONE ENVELOPE TO EACH OF THE FIVE FOLLOWING ADDRESSES. 1. N. MILLS 405 26th. AVE. TWO MOUNTAINS QUEBEC J7R 5P7 2. R. ANDERSON 3406 JUANITA SAN ANGELO, TX 76901 3. D. WAGLEY 5535 TIMBER CREEK PL. DR. #709 HOUSTON, TX. 77084 4. C. Schmidt 156 Cole Ave. Akron, Oh. 44301 5. M. Gibson 1106 Misty Cove Court Woodstock, GA 30189 USA STEP #2: NOW TAKE THE FIRST NAME OFF THE ABOVE LIST, MOVE THE OTHER NAMES UP (SO #5 BECOMES #4, #4 BECOMES #3, AND SO ON.) AND ADD YOUR NAME AND ADDRESS AS #5 ON THE LIST. (IF YOU WANT TO REMAIN ANONYMOUS, PUT A NICK NAME, BUT THE ADDRESS MUST BE CORRECT. IT, OF COURSE, MUST CONTAIN YOUR COUNTRY, STATE/DISTRICT/AREA,ZIP CODE, ETC. BECAUSE THERE ARE SOME IDIOTS WHO DON'T PUT THEIR COUNTRY!!!!!! YOU WOULDN'T WANT YOUR MONEY TO FLY AWAY WOULD YOU????!!!! STEP #3: NOW POST YOUR AMENDED ARTICLE TO AT LEAST 200 NEWS GROUPS. REMEMBER, 200 POSTINGS IS JUST A GUIDE LINE. THE MORE YOU POST, THE MORE MONEY YOU WILL MAKE!!!!!!!!!!! DON'T KNOW HOW TO POST? DON'T WORRY. I'M EXPLAINING THAT IN AN EXTRA SECTION AT THE END OF THE LETTER. NOW THE WHY PART: OUT OF 200 POSTINGS, LET'S SAY I RECEIVE ONLY 5 REPLYS ( A VERY LOW EXAMPLE) SO THEN I MAKE $5.00, WITH MY NAME AT #5 ON THE LIST. NOW, EACH OF THE 5 PERSONS WHO JUST SENT ME $1.00 MAKES THE MINIMUM 200 POSTINGS, EACH WITH MY NAME AT #4 AND ONLY 5 PERSONS RESPOND TO EACH OF THE ORIGINAL 5. SO THATS ANOTHER $25.00 TO ME. NOW, EACH ONE OF THOSE 25 MAKE A MINIMUM 200 POSTINGS WITH MY NAME AT #3 AND EACH ONE GETS ONLY 5 REPLYS. NOW I MAKE AN ADDITIONAL $125.00!!!!!!!!!!!!! NOW THESE 125 PERSONS, TURN AROUND AND POST THE MINIMUM 200 POSTINGS, EACH WITH MY NAME AT #2 AND ONLY RECEIVE 5 REPLYS EACH. NOW I HAVE AN ADDITIONAL $625.00!! O.K., NOW, HERES THE FUN PART, EACH OF THESE 625 PERSONS WILL POST THE MINIMUN 200 POSTINGS WITH MY NAME AT #1 AND THEY RECEIVE ONLY 5 REPLYS EACH. SO, THAT JUST MADE ME AN ADDITIONAL $3,125.00 WITH AN INITIAL INVESTMENT OF ONLY $5.00. AMAZING!!!!!!!! AND AS I SAID 5 RESPONSES EACH IS ACTUALLY VERY LOW!!!!!!!!! THE AVERAGE IS PROBABLE 20-30!!!!! SO LETS PUT THOSE FIGURES AT JUST 15 RESPONSES PER PERSON, HERE IS WHAT YOU WILL MAKE: AT #5 $ 15.00 AT #4 $ 225.00 (15 TIMES $15.00) AT #3 $ 3,375.00 (15 TIMES $225.00) AT #2 $ 50,625.00 (15 TIMES $3,375.00) AT #1 $ 759,375.00 (15 TIMES $50,625.00) $813,605.00 LEGAL???? (COMMENTS FROM BOB NOVAK WHO STARTED THIS NEW VERSION) "PEOPLE HAVE ASKED ME IF THIS IS REALLY LEGAL. WELL IT IS!!!!!!!! YOU ARE USING THE INTERNET TO ADVERTISE YOUR BUSINESS. WHAT IS THAT BUSINESS? YOU ARE ASSEMBLING A MAILING LIST OF PEOPLE WHO ARE INTERESTED IN HOME BASED COMPUTER AND ON LINE BUSINESS METHODS OF GENERATING INCOME AT HOME. REMEMBER, PEOPLE SEND YOU A SMALL FEE TO BE ADDED TO YOUR MAILING LIST. IT IS LEGAL. WHAT WILL YOU DO WITH YOUR LIST WITH THOUSAND OF NAMES? THAT IS UP TO YOU". SO, BUILD YOUR MAILING LIST, KEEP GOOD ACCOUNTS, DECLARE THE INCOME AND PAY YOUR TAXES PERIOD. BY DOING THIS YOU PROVE YOUR BUSINESS INTENTIONS. KEEP AN EYE ON THE NEWS GROUPS AND WHEN THE CASH HAS STOPPED COMING (THAT MEANS YOUR NAME IS NO LONGER ON THE LIST). YOU JUST TAKE THE LATEST POSTING AT THE NEWS GROUPS, SEND ANOTHER $5.00 TO THE NAMES STATED ON THE LIST, MAKE YOUR CORRECTIONS (PUT YOUR NAME AT #5) AND START POSTING AGAIN. SOME PEOPLE HAVE ASKED ME "WHAT HAPPENS IF A SCHEME IS PLAYED OUT AND NO ONE SENDS MONEY ANYMORE?". BIG DEAL, SO YOU LOSE $5.00 BUT......... DO YOU KNOW THE CHANCES OF THAT HAPPENING??????? SINCE THIS IS A BRAND NEW PROGRAM AS OF JANUARY 1ST, 1997, YOU ARE ON THE GROUND FLOOR! THERE ARE MILLIONS OF INTERNET USERS. AND MILLIONS OF NEW NET SURFERS EVERY MONTH!! THE INTERNET IS GROWING AT A TREMENDOUS RATE, IT DOUBLES IN SIZE EVERY 4 MONTHS!!!! THINK ABOUT IT ALL THAT GROWTH MEANS PROFITS FOR EVERYONE WHO PARTICIPATES. LETS REVIEW WHY YOU SHOULD DO THIS. THE ONLY COST IS $5.00, 5 STAMPS AND 5 ENVELOPES. ANYONE CAN AFFORD THIS WITH SUCH SPECTACULAR RETURNS. THE BIGGEST RISK IS NOT TRYING. REMEMBER, PLAY FAIRLY AND HONESTLY AND THIS WILL WORK. MAKE SURE YOU PRINT THIS ARTICLE NOW, ALSO (IF YOU DON'T HAVE A PRINTER, COPY IT TO YOUR HARD DRIVE,) KEEP AN EYE ON THE NEWS GROUPS TO MAKE SURE THAT EVERYONE IS PLAYING FAIRLY. YOU KNOW WHERE YOUR NAME SHOULD BE. REMEMBER, HONESTY IS THE BEST POLICY. YOU DON'T NEED TO CHEAT THE BASIC IDEA TO MAKE MONEY. BY THE WAY, IF YOU DON'T SEND THE $5.00 TO THE STATED NAMES, YOU WON'T RECEIVE AS MUCH. SOMEONE I TALKED TO KNEW SOMEONE WHO DID THAT AND HE ONLY MADE ABOUT $150.00 AND THATS AFTER 7-8 WEEKS!! THEN HE SENT THE 5 $1.00 BILLS, PEOPLE ADDED HIM TO THEIR MAILING LIST AND HE HAD THE EXPECTED AMOUNT OF MONEY. THIS IS THE FAIREST AND MOST HONEST WAY I'VE EVER SEEN TO SHARE THE WEALTH OF THE WORLD WITH COSTING NOTHING BUT OUR TIME!!!!!!! THIS IS THE EASIEST WAY YOU CAN MAKE MONE, AND I MEAN GOOD MONEY!! THINK HOW EXCITED YOU WILL BE TO OPEN YOUR MAIL BOX EVERY DAY!!! SO, GOOD LUCK TO ALL OF YOU AND START MAKING YOUR PLANS BECAUSE IT CAN (AND IT WILL!!!!!!!!) HAPPEN TO YOU. THANKS ONCE AGAIN, D.WAGLEY NOTES: #1. IN SOME COUNTRIES, THE EXPORT OF THE COUNTRIES EXCHANGE IS ILLEGAL. BUT YOU CAN GET THE LICENSE TO DO THIS FROM THE POST OFFICE, EXPLAINING THE ABOVE STATEMENTS (THAT YOU HAVE AN ON LINE BUSINESS ETC.....). YOU MAY HAVE TO PAY AN EXTRA TAX BUT THAT'S O.K., THE AMOUNT OF THE INCOMING IS HUGH!! AND AS I HAVE SAID, A FEW COUNTRIES HAVE THAT RESTRICTION. #2. YOU MAY WANT TO BUY MAILING AND E-MAIL LISTS FOR FUTURE DOLLARS. (OR DATA BASE, SPREAD SHEET SOFT SHEET). #3. IF YOU'RE REALLY NOT SURE, OR STILL THINK THIS CAN'T BE FOR REAL, PLEASE PRINT A COPY OF THIS ARTICLE AND PASS IT TO SOMEONE WHO REALLY NEEDS THE MONEY AND SEE WHAT HAPPENS. #4. YOU SHOULD START GETTING RESPONSES WITHIN ONE TO TWO WEEKS. ............................................................................ .......................................................... HOW TO POST NEWS GROUPS FAST WITH YOUR WEB BROWSER THE FASTEST WAY TO POST A NEWS LETTER: HIGHLIGHT AND COPY (CTRL - C) THE TEXT OF THIS POSTED MESSAGE AND PASTE (CTRL-V) IT INTO A PLAIN TEXT EDITOR (AS WORD PAD) AND SAVE IT. AFTER YOU HAVE MADE THE NECESSARY CHANGES THAT ARE STATED ABOVE, SIMPLY COPY (CTRL-C) AND PASTE (CTRL-V) THE TEXT INTO THE MESSAGE COMPOSITION WINDOW. AFTER SELECTING A NEWS GROUP, AND POST IT!!!!!! (OR YOU CAN ATTATCH THE FILE, WITHOUT WRITING ANYTHING TO THE MESSAGE WINDOW). 29-Aug-1997 11:52:50-GMT,2457;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id FAA28334 for ; Fri, 29 Aug 1997 05:52:49 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 29 Aug 1997 06:42:34 EST From: Uwe Knietzsch Reply-To: LitProg@SHSU.edu, Uwe.Knietzsch@informatik.tu-chemnitz.de Subject: z8-crossassembly with frankasm and nuweb Content-Type: text/plain; charset=us-ascii Message-ID: Content-Transfer-Encoding: 7bit MIME-Version: 1.0 Date: Fri, 29 Aug 1997 11:19:31 GMT To: LitProg@SHSU.edu I have now tested the frankasm-crossassembler with nuweb. The most inputfiles are written in latex and the frankasm-sources included with @i macro. I have all asm-sources tested on a external standalone evalutionsystem for z8 without any shell, latex or literate programming tool. The asm-soures are separated from tex and nuweb-soures. After external testing and final crosscompiling with frankasm runs a2ps to make a final asm-listing in postscript. I'm running the frankasm to get the intel-hexfile and asm-listfile. After this step I'm exchange all single @ (at-sign) with double @@ for all files without any nuweb macros and i'm using a very little lexfile. nuweb-macros are only in the main nuweb source!!! %{ #include %} %% @ { printf("@@"); } %% flex lat2nw.l gcc -o lat2nw lex.yy.c -lfl Only 4 steps (runing frankasm for z8, then formatting the asm-listing and replace all single @ with double @@ asz8 -p z8 -l file_l.txt -o file.hex -s file_s.txt file.a8 a2ps ifsp_l.txt > ifsp_l.ps lat2nw < file.a8 > file_a8.w lat2nw < docu.tex > docu.w Now can included the file_a8.w into the main nuweb-source ( do not run lat2nw on the main nuweb-source :-) . @i docu.w % other web-definitions % and what ever you want % % now the assembly-file % @o file.a8 @{ @i file_a8.w @} Final step nuweb main.w > main.tex That's all. 55&73 to you ... ---------------------------------------------- E-Mail: ukn@informatik.tu-chemnitz.de www: http://www.tu-chemnitz.de/~ukn/ukn.html ---------------------------------------------- 29-Aug-1997 13:54:51-GMT,1453;000000000001 Received: from shelob.ce.ttu.edu (shelob.ce.ttu.edu [129.118.20.23]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id HAA00671 for ; Fri, 29 Aug 1997 07:54:49 -0600 (MDT) Received: from shelob.ce.ttu.edu (localhost [127.0.0.1]) by shelob.ce.ttu.edu (8.8.5/8.8.5) with ESMTP id IAA14505; Fri, 29 Aug 1997 08:52:56 -0500 Message-Id: <199708291352.IAA14505@shelob.ce.ttu.edu> X-Mailer: exmh version 1.6.9 05/05/96 To: "Nelson H. F. Beebe" cc: thompson@shelob.ce.ttu.edu Subject: Re: Literate Programming FAQ Version: 1.1.18: Bibliographies In-reply-to: Your message of "Wed, 27 Aug 1997 10:35:45 MDT." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Fri, 29 Aug 1997 08:52:56 -0500 From: "David B. Thompson" Thanks. I'll make a note for the next release. -=d ===================================================================== David B. Thompson Ph.D., P.E. Email: thompson@shelob.ce.ttu.edu Civil Engineering Dept. Email: thompson@balrog.ce.ttu.edu Texas Tech University P.O. Box 41023 If you wanna run cool, Lubbock, Texas 79409-1023 USA you got ta run, (806) 742-3485x251 (Voice) on heavy, heavy fuel... (806) 742-3449 (Fax) -- Mark Knopfler ===================================================================== 30-Aug-1997 8:41:04-GMT,1594;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id CAA23054 for ; Sat, 30 Aug 1997 02:41:03 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sat, 30 Aug 1997 03:33:52 EST From: baten@otem.com (TJ) Reply-To: LitProg@SHSU.edu, baten@OTEM.COM Subject: Free Software: organizing Web contacts and links Date: Sat, 30 Aug 1997 07:10:33 GMT Message-ID: <3406c884.14176252@news.inter.net.il> To: LitProg@SHSU.edu Hi all, I have just released a new version of CyberContact, a free Information Manager designed specifically for the needs of Internet users. CyberContact will help you organize all your Web related information, including: e-mail messages, URL links, documents, files, notes, tasks and activities, contact persons, HTML pages, and more. With CyberContact you can: * Manage your Internet contacts and links * Manage Web related projects and assignments * Organize information retrieved from the Net * Organize your e-mail messages * Search and locate each person, company, Web site, E-mail message, document and activity that is stored in the database. You can see and download a free copy of CyberContact at: http://www.liraz.com/cybercontact. To get an idea of the capabilities of the program look at: http://www.liraz.com/cybercontact/TipsAndTricks.htm Enjoy Meir Liraz Liraz Technologies Co. 2-Sep-1997 3:30:28-GMT,1327;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id VAA00496 for ; Mon, 1 Sep 1997 21:30:27 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 31 Aug 1997 14:54:22 EST From: neutrinoy@aol.com (Neutrino y) Reply-To: LitProg@SHSU.edu, neutrinoy@aol.com Subject: LPT Programming in C Date: 31 Aug 1997 19:51:10 GMT Message-ID: <19970831195101.PAA29553@ladder02.news.aol.com> To: LitProg@SHSU.edu I have a question about programming parallel ports in C. I need to send a signal through pins 2-9 (individually) and then check the status of pins 18-25. how do I send that type of data and read such. I have looked at all of my documentation and have tried inp, outp, outport etc... but, I do not know if those functions are for parallel ports or serial ports or what port ID LPT1 is. I am using Borland 4.5 with a .c node. any help would be much appreciated. I just need a start in the right direction. I have all my bit masking function set up, I just need to send and read the port. thank you for your help, Kao Martin kmartin@cc.weber.edu 2-Sep-1997 3:42:58-GMT,870;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id VAA01550 for ; Mon, 1 Sep 1997 21:42:57 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 31 Aug 1997 22:09:25 EST From: Nick@tzcc.com (Nick Dinielli (The Fatman)) Subject: http://www.tzcc.com/ all you need to know for custom applications and programs. Date: Mon, 01 Sep 1997 03:01:12 GMT Message-ID: <32130e11.179023312@news.carroll.com> Reply-To: LitProg@SHSU.edu, Nick@tzcc.com MIME-Version: 1.0 Content-Type: text/plain To: LitProg@SHSU.edu http://www.tzcc.com/ all you need to know for custom applications and programs. 2-Sep-1997 3:50:44-GMT,1102;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id VAA01942 for ; Mon, 1 Sep 1997 21:50:43 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 01 Sep 1997 12:16:51 EST Message-ID: <340AF945.34B6@ibm.net> Date: Mon, 01 Sep 1997 13:20:05 -0400 From: Kenneth Brittain Reply-To: LitProg@SHSU.edu, kenneth_brittain@ibm.net MIME-Version: 1.0 Subject: Noweb and Java Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu I am using noweb and java. The problem is that java does not allow #define file line like C/C++. Is there a program that can mapping the java source errors back to original noweb source. Before I begin writing it I was wondering if anyone else has already written it (and is willing to share it). Kenneth Brittain is 2-Sep-1997 3:58:20-GMT,1504;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id VAA02302 for ; Mon, 1 Sep 1997 21:58:19 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 31 Aug 1997 16:28:33 EST From: grants@ForYou.com Reply-To: LitProg@SHSU.edu, grants@FORYOU.COM Subject: $$$ FREE CASH GRANTS $$$$$$$$$ Message-ID: <81f7cd$10219.58@NEWS> Date: Fri, 29 Aug 1997 10:03:55 To: LitProg@SHSU.edu CASH GRANTS CASH GRANTS CASH GRANTS Foundations all over the United States GIVE CASH GRANTS. ANYONE can apply for a Grant from 18 years and up... This money HAS to be given away, WHY not to YOU? Grants from $500.00 to $50,000.00 possible, in some instances. Grants don't have to be paid back. Grants can be ideal for people who are or were bankrupt or just have bad credit. Get the money you need to start that business, you have always wanted. To get your list of FOUNDATIONS that give grants, AND instructions on how to apply. Send a check or money order for ONLY $7.00 to: TO RECEIVE BY US MAIL ENCLOSE A STAMPED, SELF ADDRESSED, #10 ENVELOPE. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ B.C.S. 39 GURLEY ROAD #201 EDISON, NJ 08817 Att: GRANT INFO ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Include your E-MAIL ADDRESS for faster service. 2-Sep-1997 14:46:35-GMT,1439;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id IAA15835 for ; Tue, 2 Sep 1997 08:46:32 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from mail.virginia.edu by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 02 Sep 1997 09:26:55 EST Received: from mail.cs.virginia.edu by mail.virginia.edu id aa27260; 2 Sep 97 10:28 EDT Received: from viper.cs.Virginia.EDU (viper-fo.cs.Virginia.EDU [128.143.136.16]) by ares.cs.Virginia.EDU (8.8.5/8.8.5) with ESMTP id KAA29985; Tue, 2 Sep 1997 10:28:06 -0400 (EDT) Received: (from nr@localhost) by viper.cs.Virginia.EDU (8.7.5/8.7.3) id KAA07309; Tue, 2 Sep 1997 10:28:05 -0400 (EDT) Date: Tue, 2 Sep 1997 10:28:05 -0400 (EDT) Message-ID: <199709021428.KAA07309@viper.cs.Virginia.EDU> To: LitProg@SHSU.edu, kenneth_brittain@ibm.net From: Litprog moderation robot (replies dropped) Reply-To: LitProg@SHSU.edu, null@cs.virginia.edu Subject: Re: Noweb and Java Dear Poster, You sent mail to the submission address for the moderated Usenet newsgroup comp.programming.literate. Because you are not a regular contributor, this submission has been forwarded to a moderator for consideration. The Litprog moderation robot 2-Sep-1997 14:56:49-GMT,1116;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id IAA16099 for ; Tue, 2 Sep 1997 08:56:46 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 02 Sep 1997 09:36:54 EST From: Kenneth Brittain Subject: Noweb and Java Date: 2 Sep 1997 14:32:41 GMT Message-ID: <5uh829$ljs$1@elna.ethz.ch> Reply-To: LitProg@SHSU.edu, LitProg@SHSU.edu, kenneth_brittain@ibm.net MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu I am using noweb and java. The problem is that java does not allow #define file line like C/C++. Is there a program that can mapping the java source errors back to original noweb source. Before I begin writing it I was wondering if anyone else has already written it (and is willing to share it). Kenneth Brittain is 3-Sep-1997 1:25:38-GMT,1307;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id TAA05815 for ; Tue, 2 Sep 1997 19:25:37 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 02 Sep 1997 20:14:16 EST From: FREE CABLE Reply-To: LitProg@SHSU.edu, pifer@laugh.com Subject: ****CABLE BOX DESCRAMBLER****BUILD YOUR OWN DESCRAMBLER FAST CHEAP AND EASY Date: 3 Sep 1997 00:27:21 GMT Message-ID: <5uiat9$3s7@examiner.concentric.net> To: LitProg@SHSU.edu CABLE BOX DESCRAMBLER BUILD YOUR OWN DESCRAMBLER FAST CHEAP AND EASY Just a few inexpensive parts from Radio Shack and a little time and you can descramble every cable channel. See all your favorite movie channels, pay per view etc. To recieve detail instructions and diagrams on how to construct your own Cable Box Descrambler Mail $5.00 CASH MONEY ORDER CHECK ICT Inc. 12319 S. Orange Blossom Tr.r Orlando FL. 32837 Please include your full mailing address. Please allow one week for checks to clear before our report is sent to you. Thank You Seth Garner ICT Pres 3-Sep-1997 12:57:35-GMT,1899;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id GAA18269 for ; Wed, 3 Sep 1997 06:57:34 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from hp89.rbg.informatik.th-darmstadt.de by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 03 Sep 1997 07:43:44 EST Received: from ultra11.rbg.informatik.th-darmstadt.de by hp89.rbg.informatik.th-darmstadt.de with ESMTP ($Revision: 1.37.109.26 $/15.6) id AA135660697; Wed, 3 Sep 1997 14:44:57 +0200 Received: from ultra11 by ultra11.rbg.informatik.th-darmstadt.de (SMI-8.6/SMI-SVR4) id OAA12526; Wed, 3 Sep 1997 14:44:55 +0200 Message-ID: <340D5BC7.1EC@rbg.informatik.th-darmstadt.de> Date: Wed, 03 Sep 1997 14:44:55 +0200 From: "F. Gaertner" Reply-To: LitProg@SHSU.edu, theedge@rbg.informatik.th-darmstadt.de MIME-Version: 1.0 To: LitProg@SHSU.edu, kenneth_brittain@ibm.net Subject: Re: Noweb and Java References: <5uh829$ljs$1@elna.ethz.ch> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Kenneth Brittain wrote: > > I am using noweb and java. The problem is that java does not allow > #define file line like C/C++. Is there a program that can mapping the > java source errors back to original noweb source. Before I begin writing > it I was wondering if anyone else has already written it (and is willing > to share it). > > Kenneth Brittain is Hi Kenneth, if you get a positive reply to your posting, I'd be interested to share the information. I need a similar tool pretty soon for me diploma thesis and was about to write one. If you don't get a reply, I'd be glad to support your task. Cheers, Felix 4-Sep-1997 16:43:35-GMT,1439;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id KAA23342 for ; Thu, 4 Sep 1997 10:43:32 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 04 Sep 1997 10:24:22 EST From: jackal@bmdpc5.cbt.nist.gov (Ken Snyder) Subject: [Q] Multiple Language Approach? Message-ID: Reply-To: LitProg@SHSU.edu, kenneth.snyder@nist.gov Date: Thu, 4 Sep 1997 14:58:40 GMT To: LitProg@SHSU.edu I have successfully used noweb to create a working C computer program. However, I need much greater numerical performance which I can achieve on another computer which handles vectorized FORTRAN code and so I must rewrite the program in FORTRAN. I am contemplating two solutions: 1) a new noweb file which outputs FORTRAN, and 2) add the FORTRAN to the existing file and extract is separately. The second approach appeals to me on esthetic grounds; I shouldn't have to re-describe all the little parts. Is there a nice clean way of doing this? I could rename all my existing code chunks with a ".c" suffix, and the new chunks could have the same name with a ".f" suffix. Is there a better way? Many thanks, Ken Snyder NIST 4-Sep-1997 16:45:04-GMT,2346;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id KAA23358 for ; Thu, 4 Sep 1997 10:45:01 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 04 Sep 1997 10:04:15 EST From: Loris Bennett Reply-To: LitProg@SHSU.edu, loris@ferro.physik.TU-Berlin.DE Subject: Multiple File and Chunk Philosophy Content-Type: text/plain; charset=us-ascii Message-ID: Content-Transfer-Encoding: 7bit MIME-Version: 1.0 Date: Thu, 4 Sep 1997 14:48:00 GMT To: LitProg@SHSU.edu Hello All, I was wondering whether anyone has any thoughts on multi-file programs and LP. In non-LP C programs I have tended to use separate files to hold thematically related functions. However, when I literately program, a lot of functions simply become chunks and I end up with one big file,which I'd rather not have due to the increased compile time, plus a few small files containing the remaining functions. A related problem is that of dealing with chunks within chunks (within chunks ...). Although I like the idea of having upper level chunks close together, this then implies that unrelated, let's say, under-under-chunks from different under-chunks appear consecutively and possibly a long way from their parent chunks. It seems to me that this is not very conducive to the programming process. However, the alternative of having a chunk followed immediately by all its under- and under-under-chunks would seem, to a degree, to defeat the purpose of LP. Doesn't the dimension of chunk (or function) depth mean that paper is the wrong medium for literate (or other) programs and that the documentation should be in HTML (or something similar)? I did ask something similar a while ago, but perhaps some further thinking has gone on in the meantime. Loris -- ================================================================ Loris Bennett Tel.: (+49) 30 314 23762 loris@ferro.physik.tu-berlin.de http://wwwitp.physik.TU-Berlin.DE:80/~loris/ TU Berlin, PN7-1, Hardenbergstr. 36, 10632 Berlin, FRG 4-Sep-1997 18:34:12-GMT,1234;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id MAA26133 for ; Thu, 4 Sep 1997 12:34:10 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 04 Sep 1997 12:45:15 EST From: jackal@bmdpc5.cbt.nist.gov (Ken Snyder) Subject: [Q] FORTRAN in noweb Message-ID: Reply-To: LitProg@SHSU.edu, kenneth.snyder@nist.gov Date: Thu, 4 Sep 1997 17:21:58 GMT To: LitProg@SHSU.edu Has anyone devised a clean way of handling FORTRAN 77 using a litprog tool such as noweb? If I have the following: <>= <> @ <>= C A comment in a chunk! Z = X * + Y @ I'll get the "C" in column 7, and the continuation character "+" in column 12. Neither of which is desirable. I was planning to write a very simple preprocessor to "yank" all occurances of "<<" back to the first column, and then run through noweb. Is there a better way? Ken Snyder 4-Sep-1997 20:21:08-GMT,2415;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id OAA28666 for ; Thu, 4 Sep 1997 14:21:06 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 04 Sep 1997 14:26:11 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@samson.kean.edu Subject: Re: [Q] Multiple Language Approach? Content-Type: TEXT/PLAIN; charset=US-ASCII Message-ID: MIME-Version: 1.0 Date: Thu, 4 Sep 1997 18:52:37 GMT To: LitProg@SHSU.edu On Thu, 4 Sep 1997, Ken Snyder wrote: > I have successfully used noweb to create a working C computer program. > However, I need much greater numerical performance which I can achieve on > another computer which handles vectorized FORTRAN code and so I must rewrite > the program in FORTRAN. I am contemplating two solutions: 1) a new noweb > file which outputs FORTRAN, and 2) add the FORTRAN to the existing file > and extract is separately. The second approach appeals to me on > esthetic grounds; I shouldn't have to re-describe all the little parts. > > Is there a nice clean way of doing this? I could rename all my existing > code chunks with a ".c" suffix, and the new chunks could have the same > name with a ".f" suffix. Is there a better way? You might want to use the nocond package (included in the noweb distribution under contrib/leew). You can then simply add "((Fortran))" or "((C))" to your chunk names, and use the nocond filter to choose between them when tangling. For example: notangle -filter "nocond Fortran" prog.nw > prog.f notangle -filter "nocond C" prog.nw >prog.c -- Lee ------------------------------------------------------------------------ Lee Wittenberg | There would be a scapegoat hunt: it was Computer Science Department | part of the algebraic formula after every Kean College of New Jersey | cock-up, as enshrined as Archimedes' Prin- Union, NJ 07083 | ciple and the Theory of Relativity. | -- Brian Freemantle leew@samson.kean.edu | "Bomb Grade" (1996) ------------------------------------------------------------------------ 4-Sep-1997 20:35:30-GMT,2537;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id OAA29022 for ; Thu, 4 Sep 1997 14:35:20 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 04 Sep 1997 14:26:07 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@samson.kean.edu Subject: Re: [Q] FORTRAN in noweb Content-Type: TEXT/PLAIN; charset=US-ASCII Message-ID: MIME-Version: 1.0 Date: Thu, 4 Sep 1997 19:02:02 GMT To: LitProg@SHSU.edu On Thu, 4 Sep 1997, Ken Snyder wrote: > > Has anyone devised a clean way of handling FORTRAN 77 using a litprog tool > such as noweb? If I have the following: > > <>= > <> > @ > <>= > C A comment in a chunk! > Z = X * > + Y > @ > > I'll get the "C" in column 7, and the continuation character "+" in column > 12. Neither of which is desirable. > > I was planning to write a very simple preprocessor to "yank" all occurances > of "<<" back to the first column, and then run through noweb. Is there > a better way? I once had the same problem with COBOL (another column-oriented language). I solved it by using a POST-processor on the tangled code. The post-processor simply checked each line and started it in the appropriate column. The only down side to this approach is, depending on how clever your post-processor is about recognizing lines, you need to use a little extra discipline wrt coding (for example, you might want to use '!' for all continuation lines, so that they're easy to recognize and can't be confused with anything else). I ended up with a very short and simple awk script. I expect that Fortran won't need much more work. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | There would be a scapegoat hunt: it was Computer Science Department | part of the algebraic formula after every Kean College of New Jersey | cock-up, as enshrined as Archimedes' Prin- Union, NJ 07083 | ciple and the Theory of Relativity. | -- Brian Freemantle leew@samson.kean.edu | "Bomb Grade" (1996) ------------------------------------------------------------------------ 4-Sep-1997 22:55:55-GMT,4144;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id QAA02313 for ; Thu, 4 Sep 1997 16:55:52 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from indy03.cs.monash.edu.au by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 04 Sep 1997 17:40:03 EST Received: from localhost (ajh@localhost) by indy03.cs.monash.edu.au (8.7.6/8.6.9) with SMTP id IAA06583; Fri, 5 Sep 1997 08:41:30 +1000 (EST) Message-ID: <199709042241.IAA06583@indy03.cs.monash.edu.au> To: LitProg@SHSU.edu, kenneth.snyder@nist.gov Subject: Re: [Q] Multiple Language Approach? MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Fri, 05 Sep 1997 08:41:29 +1000 From: John Hurst Reply-To: LitProg@SHSU.edu, ajh@cs.monash.edu.au Ken Snyder wrote: > I have successfully used noweb to create a working C computer program. > However, I need much greater numerical performance which I can achieve on > another computer which handles vectorized FORTRAN code and so I must rewrite > the program in FORTRAN. I am contemplating two solutions: 1) a new noweb > file which outputs FORTRAN, and 2) add the FORTRAN to the existing file > and extract is separately. The second approach appeals to me on > esthetic grounds; I shouldn't have to re-describe all the little parts. > > Is there a nice clean way of doing this? I could rename all my existing > code chunks with a ".c" suffix, and the new chunks could have the same > name with a ".f" suffix. Is there a better way? If you are asking if there is a literate programming tool to convert C to FORTRAN, no, sorry! (:-) However this problem is somewhat similar to one where I have used litprog to advantage: maintaining versions of a program for different environments. I regularly use two machines: one at work and one at home. They are different (Unix) systems, with different file hierarchies, etc.. I have a single file that stores code for both systems, and the code that is tangled is tailored by changing just one macro name. The system I'm using is nutweb, a (home-grown) version of nuweb by Preston Briggs, and incorporates parameterized macros. Here's a simple example: @o home.c @{ ... @ ... @} @o work.c @{ ... @ ... @} @d define the database directory @{ ... @ use@> ... @} @d string for home use @{"/home/ajh/football/"@} @d string for work use @{"/usr/people/ajh/football"@} The @<$1@> is a formal parameter that expands depending upon a cli parameter, and the resultant string is then matched against available macros, here the two "string for ... use" ones. I can then call nutweb with nutweb -1 home file.w to generate the version for home use, or nutweb -1 work file.w to generate the version for work use, all the while maintaining only the one file containing all the documentation and code for both systems. Admittedly, you won't have a great deal of common code that you might exploit in your situation, but this system would allow you have the FORTRAN and C code chunks adjacent, with macro names like @d solve equations FORTRAN @{ ...@@>... @} @d solve equations C @{ ...@@>... @} You can then use common definitions of things like string values, as in my example above. If you want to try nutweb, it's available through http://www.cs.monash.edu.au/~ajh/research/literate/index.html and follow the link to nutweb 1.12 --John Hurst -- Associate Dean (Teaching), Faculty of Computing & Information Technology -- Associate Professor, Department of Computer Science --rm 110/26, Computer Science, Monash, Clayton VIC 3168 ~ ~~~&#: --ajh@cs.monash.edu.au _..___ ---____@___H__ --+61 3 9905 5192 (fax +61 3 9905 5146) |_____[_|_________[__]_ --http://www.cs.monash.edu.au/~ajh oo oo oo O--O--O o=o 4-Sep-1997 23:48:47-GMT,2215;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id RAA03535 for ; Thu, 4 Sep 1997 17:48:46 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 04 Sep 1997 18:40:25 EST From: furlos@alumni.rpi.edu (Steve Furlong) Reply-To: LitProg@SHSU.edu, furlos@alumni.rpi.edu Subject: Forcing columns in noweb (Re: [Q] FORTRAN in noweb) Message-ID: Date: Thu, 4 Sep 1997 23:22:33 GMT To: LitProg@SHSU.edu In article , Ken Snyder wrote: > >Has anyone devised a clean way of handling FORTRAN 77 using a litprog tool >such as noweb? If I have the following: > ><>= > <> >@ ><>= >C A comment in a chunk! > Z = X * > + Y >@ > >I'll get the "C" in column 7, and the continuation character "+" in column >12. Neither of which is desirable. > >I was planning to write a very simple preprocessor to "yank" all occurances >of "<<" back to the first column, and then run through noweb. Is there >a better way? I mostly use (a fairly old) dosnoweb. The following technique may not apply to unix or other versions. If you have a nested chunk starting in column 1, it is not indented when it is tangled. For instance <>= blah blah 1 <> blah blah 2 blah blah 3 @ <>= foo 1 foo 2 <> foo 3 <> foo 4 foo 5 @ <>= bar 1 bar 2 bar 3 @ <>= fubar 1 fubar 2 fubar 3 @ yeilds blah blah 1 foo 1 foo 2 bar 1 bar 2 bar 3 foo 3 fubar 1 fubar 2 fubar 3 foo 4 foo 5 blah blah 2 blah blah 3 You should be able to juggle your blocks to get the "outdentation" you need for comments and whatever. This may be more of a pain to write and to read than a postprocessor, though. Regards, Steve Furlong 5-Sep-1997 10:59:02-GMT,2940;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id EAA15480 for ; Fri, 5 Sep 1997 04:59:01 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from ordago.gsyc.inf.uc3m.es by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 05 Sep 1997 05:40:08 EST Received: from gsyc.inf.uc3m.es (nautilus.gsyc.inf.uc3m.es [163.117.137.171]) by ordago.gsyc.inf.uc3m.es (8.6.12/8.6.12) with ESMTP id MAA08432; Fri, 5 Sep 1997 12:32:48 +0200 Received: (from nemo@localhost) by gsyc.inf.uc3m.es (8.8.5/8.8.4) id MAA11351; Fri, 5 Sep 1997 12:40:40 +0200 Date: Fri, 5 Sep 1997 12:40:40 +0200 Message-ID: <199709051040.MAA11351@gsyc.inf.uc3m.es> From: "Fco. J. Ballesteros" Reply-To: LitProg@SHSU.edu, nemo@gsyc.inf.uc3m.es MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu, loris@ferro.physik.TU-Berlin.DE Subject: Re: Multiple File and Chunk Philosophy References: Hi Loris Bennett writes: > I was wondering whether anyone has any thoughts on multi-file I tend to use multiple `modules' with a literate source file for each one. The documentation is built using a root .tex document which includes the noweave'd output for all the sources. > when I literately program, a lot of functions simply become > chunks and I end up with one big file,which I'd rather not have I still try to keep related code together and to keep it isolated from the rest of the program. Also, in many cases I still keep using functions even if the are used just in one place. In this way the generated source files are more readable. If performance is a problem such functions can be made inline, so that's not an issue. > A related problem is that of dealing with chunks within chunks > (within chunks ...). Although I like the idea of having upper Whenever this happens to me, I consider the function to be too big. I try to use many small functions instead of few big ones. > Doesn't the dimension of chunk (or function) depth mean that > paper is the wrong medium for literate (or other) programs and > that the documentation should be in HTML (or something similar)? I don't think so. They're equivalent. BTW, are other noweb users able to generate easily multiple HTML files from multiple .nw files? This is a must when the program is big enough. The l2h filter is soooo s l o w that I use latex2html instead. The problem is that I have to generate a *single* *big* HTML file so that the noweb generated HTML links could work (They don't seem to work across inside the same html file). What am I doing wrong? Is there a better way to do it? How are you doing such thing? -Nemo. 5-Sep-1997 18:44:47-GMT,1821;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id MAA25250 for ; Fri, 5 Sep 1997 12:44:44 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 05 Sep 1997 12:46:47 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: Multiple File and Chunk Philosophy Message-ID: Date: Fri, 5 Sep 1997 17:12:25 GMT To: LitProg@SHSU.edu In article , Fco. J. Ballesteros wrote: >BTW, are other noweb users able to generate easily multiple HTML files >from multiple .nw files? This is a must when the program is big >enough. Yes, although the cross-reference is hopelessly inadequate. >The l2h filter is soooo s l o w that I use latex2html instead. Remarkable. I originally wrote l2h because latex2html was totally incapable of handling a 300-page document, and I still find that latex2html is soooo s l o w that I use l2h instead! latex2html must have been improved. Compiling l2h instead of using the interpreted version helps a lot. >The >problem is that I have to generate a *single* *big* HTML file so that >the noweb generated HTML links could work (They don't seem to work >across inside the same html file). Indeed. This is a tough problem. If anybody wants to tackle it, maybe we can set up a phone call---there's too much to type :-( Norman -- Norman Ramsey -- moderator, comp.programming.literate http://www.cs.virginia.edu/~nr 5-Sep-1997 19:01:17-GMT,1518;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id NAA25593 for ; Fri, 5 Sep 1997 13:01:15 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 05 Sep 1997 12:46:10 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: [Q] FORTRAN in noweb Message-ID: Date: Fri, 5 Sep 1997 17:01:00 GMT To: LitProg@SHSU.edu I've added the following to the noweb FAQ. The WWW version won't be updated until I return from my travels. Norman INDENTATION OF CODE Q. Has anyone devised a clean way of handling FORTRAN 77 using a litprog tool such as noweb? If I have the following: <>= <> @ <>= C A comment in a chunk! Z = X * + Y @ I'll get the "C" in column 7, and the continuation character "+" in column 12, neither of which is desirable. A. As noted on the man page, notangle's -L option suppresses the usual behavior with respect to indentation. Thus, a command like notangle -L'%N' pgm.nw > pgm.f should do the job. -- Norman Ramsey -- moderator, comp.programming.literate http://www.cs.virginia.edu/~nr 5-Sep-1997 19:02:11-GMT,2283;000000000001 Received: from plot79.math.utah.edu (beebe@plot79.math.utah.edu [128.110.198.3]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id NAA25607; Fri, 5 Sep 1997 13:02:10 -0600 (MDT) From: "Nelson H. F. Beebe" Received: (from beebe@localhost) by plot79.math.utah.edu (8.8.5/8.8.5) id NAA29972; Fri, 5 Sep 1997 13:02:09 -0600 (MDT) Date: Fri, 5 Sep 1997 13:02:09 -0600 (MDT) To: LitProg@SHSU.edu Cc: beebe@math.utah.edu X-US-Mail: "Center for Scientific Computing, University of Utah, 155 S 1400 E RM 233, Salt Lake City, UT 84112-0090, USA" X-Telephone: +1 801 581 5254 X-FAX: +1 801 581 4148 X-URL: http://www.math.utah.edu/~beebe Subject: New LitProg literature Message-ID: While I continue to update the bibliography archive at ftp://ftp.math.utah.edu/pub/tex/bib, so that as of last night, my bibsearch update reports Last database update: Fri Sep 5 03:00:15 MDT 1997 Bibliography entries: 155381 Bibliography lines: 3153228 Bibliography bytes: 119646699 there is not much activity in publications about Literate Programming. I added one new entry this week in ftp://ftp.math.utah.edu/pub/tex/bib/index.html#litprog: @String{j-LINUX-JOURNAL = "Linux Journal"} @Article{Johnson:1997:LPU, author = "Andrew L. Johnson and Brad C. Johnson", title = "Literate Programming Using {Noweb}", journal = j-LINUX-JOURNAL, volume = "42", pages = "64--69", month = oct, year = "1997", ISSN = "1075-3583", acknowledgement = ack-nhfb, bibdate = "Wed Sep 3 21:24:57 1997", } This is just the 7th entry for 1997. If anyone has seen other publications in this area which are not mentioned in the bibliography, please do let me know about them. ======================================================================== Nelson H. F. Beebe Tel: +1 801 581 5254 Center for Scientific Computing FAX: +1 801 581 4148 University of Utah Internet e-mail: beebe@math.utah.edu Department of Mathematics, 105 JWB URL: http://www.math.utah.edu/~beebe 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090, USA ======================================================================== 5-Sep-1997 19:02:19-GMT,2544;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id NAA25615 for ; Fri, 5 Sep 1997 13:02:17 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 05 Sep 1997 12:46:36 EST From: "Fco. J. Ballesteros" Subject: Re: Multiple File and Chunk Philosophy Content-Type: text/plain; charset=us-ascii Message-ID: Reply-To: LitProg@SHSU.edu, LitProg@SHSU.edu, nemo@gsyc.inf.uc3m.es Content-Transfer-Encoding: 7bit MIME-Version: 1.0 Date: Fri, 5 Sep 1997 17:03:42 GMT To: LitProg@SHSU.edu Hi Loris Bennett writes: > I was wondering whether anyone has any thoughts on multi-file I tend to use multiple `modules' with a literate source file for each one. The documentation is built using a root .tex document which includes the noweave'd output for all the sources. > when I literately program, a lot of functions simply become > chunks and I end up with one big file,which I'd rather not have I still try to keep related code together and to keep it isolated from the rest of the program. Also, in many cases I still keep using functions even if the are used just in one place. In this way the generated source files are more readable. If performance is a problem such functions can be made inline, so that's not an issue. > A related problem is that of dealing with chunks within chunks > (within chunks ...). Although I like the idea of having upper Whenever this happens to me, I consider the function to be too big. I try to use many small functions instead of few big ones. > Doesn't the dimension of chunk (or function) depth mean that > paper is the wrong medium for literate (or other) programs and > that the documentation should be in HTML (or something similar)? I don't think so. They're equivalent. BTW, are other noweb users able to generate easily multiple HTML files from multiple .nw files? This is a must when the program is big enough. The l2h filter is soooo s l o w that I use latex2html instead. The problem is that I have to generate a *single* *big* HTML file so that the noweb generated HTML links could work (They don't seem to work across inside the same html file). What am I doing wrong? Is there a better way to do it? How are you doing such thing? -Nemo. 5-Sep-1997 19:15:58-GMT,2594;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id NAA25946 for ; Fri, 5 Sep 1997 13:15:53 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from csc-sun.math.utah.edu by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 05 Sep 1997 14:00:35 EST Received: from plot79.math.utah.edu (beebe@plot79.math.utah.edu [128.110.198.3]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id NAA25607; Fri, 5 Sep 1997 13:02:10 -0600 (MDT) From: "Nelson H. F. Beebe" Reply-To: LitProg@SHSU.edu, beebe@math.utah.edu Received: (from beebe@localhost) by plot79.math.utah.edu (8.8.5/8.8.5) id NAA29972; Fri, 5 Sep 1997 13:02:09 -0600 (MDT) Date: Fri, 5 Sep 1997 13:02:09 -0600 (MDT) To: LitProg@SHSU.edu CC: beebe@math.utah.edu Subject: New LitProg literature Message-ID: While I continue to update the bibliography archive at ftp://ftp.math.utah.edu/pub/tex/bib, so that as of last night, my bibsearch update reports Last database update: Fri Sep 5 03:00:15 MDT 1997 Bibliography entries: 155381 Bibliography lines: 3153228 Bibliography bytes: 119646699 there is not much activity in publications about Literate Programming. I added one new entry this week in ftp://ftp.math.utah.edu/pub/tex/bib/index.html#litprog: @String{j-LINUX-JOURNAL = "Linux Journal"} @Article{Johnson:1997:LPU, author = "Andrew L. Johnson and Brad C. Johnson", title = "Literate Programming Using {Noweb}", journal = j-LINUX-JOURNAL, volume = "42", pages = "64--69", month = oct, year = "1997", ISSN = "1075-3583", acknowledgement = ack-nhfb, bibdate = "Wed Sep 3 21:24:57 1997", } This is just the 7th entry for 1997. If anyone has seen other publications in this area which are not mentioned in the bibliography, please do let me know about them. ======================================================================== Nelson H. F. Beebe Tel: +1 801 581 5254 Center for Scientific Computing FAX: +1 801 581 4148 University of Utah Internet e-mail: beebe@math.utah.edu Department of Mathematics, 105 JWB URL: http://www.math.utah.edu/~beebe 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090, USA ======================================================================== 5-Sep-1997 19:33:44-GMT,1503;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id NAA26363 for ; Fri, 5 Sep 1997 13:33:42 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 05 Sep 1997 14:10:40 EST From: Ken Brittain Reply-To: LitProg@SHSU.edu, kbrittai@vividusa.com Subject: Noweb and Java Date: 5 Sep 1997 18:56:25 GMT Message-ID: <5upkkp$ahf$1@elna.ethz.ch> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Has anyone made Java and Noweb work together (nicely). I currently use both but when I tangle I leave out the file and line statements. The JDK likes this but I don't...I would like my errors to reference my web. When using C++ the preprocessor handled all of this for me. Q1) Will a preprocesser work with Java? I know it will work for #include and #defines but doesn't the compiler actually have to respect #file and #line statements? Q2) Is there a script that will parse the errors from javac and then backpoint to the original web code? I have thought about writing this because I am not too sure about Q1. However, I thought I would check with the news group before doing so. Hey you never know! Kenneth Brittain is 7-Sep-1997 15:31:33-GMT,1427;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id JAA11137 for ; Sun, 7 Sep 1997 09:31:32 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from ordago.gsyc.inf.uc3m.es by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 07 Sep 1997 10:13:10 EST Received: from gsyc.inf.uc3m.es (alpha.gsyc.inf.uc3m.es [163.117.137.230]) by ordago.gsyc.inf.uc3m.es (8.6.12/8.6.12) with ESMTP id RAA14844 for ; Sun, 7 Sep 1997 17:06:07 +0200 Received: (from nemo@localhost) by gsyc.inf.uc3m.es (8.8.5/8.8.4) id PAA00783; Sun, 7 Sep 1997 15:13:17 +0200 Date: Sun, 7 Sep 1997 15:13:17 +0200 Message-ID: <199709071313.PAA00783@gsyc.inf.uc3m.es> From: "Fco. J. Ballesteros" Reply-To: LitProg@SHSU.edu, nemo@gsyc.inf.uc3m.es MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Subject: Re: Multiple File and Chunk Philosophy References: Norman Ramsey writes: > Compiling l2h instead of using the interpreted version helps a lot. Any noweb user has l2h already compiled for Linux 2.0.x? It'd be great if I could ftp it and avoid compiling it myself. -Nemo. 7-Sep-1997 19:56:37-GMT,3574;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id NAA15663 for ; Sun, 7 Sep 1997 13:56:36 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 07 Sep 1997 14:43:06 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@samson.kean.edu Subject: Re: Noweb and Java Content-Type: TEXT/PLAIN; charset=US-ASCII Message-ID: MIME-Version: 1.0 Date: Sun, 7 Sep 1997 19:25:41 GMT To: LitProg@SHSU.edu On 5 Sep 1997, Ken Brittain wrote: > Has anyone made Java and Noweb work together (nicely). I currently use > both but when I tangle I leave out the file and line statements. The JDK > likes this but I don't...I would like my errors to reference my web. > When using C++ the preprocessor handled all of this for me. I've been using noweb with Java for a few months now with comments instead of #line's, and I've been quite happy (I've also been using the Pretzel prettyprinting filter for Java). However, I don't use the debugger, so I don't need it to automatically get back to the original source file. On the other hand, I have had occasions when it took longer than it should have to track down a compile-time error. > Q1) Will a preprocesser work with Java? I know it will work for #include > and #defines but doesn't the compiler actually have to respect #file and > #line statements? > Q2) Is there a script that will parse the errors from javac and then > backpoint to the original web code? I have thought about writing this > because I am not too sure about Q1. However, I thought I would check > with the news group before doing so. Hey you never know! As far as I know, the only languages that support #line (and therefore unfettered preprocessing) are C, C++, and Icon. I think there are a couple of Pascal compilers for Unix that do, too. As a dedicated noweb user, I truly wish that every compiler for every language provided this mechanism, but I don't see it happening in the near (or far) future. However, since Java has its roots firmly in the C family tree (derived from C++ and Objective-C), I consider it unforgivable that they didn't recognize the benefits of #line (and #if, for that matter). One of the things I've discovered about the official JDK is that it is quite tolerant of extra semicolons, which makes LP much easier, since I can put semicolons at the end of everything, indiscriminantly: <<*>>= class xxx { <<[[xxx]]'s members and methods>>; } <<[[xxx]]'s members...>>= int x; <<[[xxx]]'s members...>>= iny y; // etc... and not have to think about piddling syntax issues. LP users of Visual J++ be warned: it gets *very* confused by these extra semicolons (and the error messages bear no relation whatever to the problem). -- Lee ------------------------------------------------------------------------ Lee Wittenberg | There would be a scapegoat hunt: it was Computer Science Department | part of the algebraic formula after every Kean College of New Jersey | cock-up, as enshrined as Archimedes' Prin- Union, NJ 07083 | ciple and the Theory of Relativity. | -- Brian Freemantle leew@samson.kean.edu | "Bomb Grade" (1996) ------------------------------------------------------------------------ 7-Sep-1997 21:06:06-GMT,2154;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id PAA16876 for ; Sun, 7 Sep 1997 15:06:05 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 07 Sep 1997 15:50:20 EST From: furlos@alumni.rpi.edu (Steve Furlong) Reply-To: LitProg@SHSU.edu, furlos@alumni.rpi.edu Subject: Re: Multiple File and Chunk Philosophy Message-ID: Date: Sun, 7 Sep 1997 20:28:17 GMT To: LitProg@SHSU.edu In article , Fco. J. Ballesteros wrote: > >Loris Bennett writes: > > A related problem is that of dealing with chunks within chunks > > (within chunks ...). Although I like the idea of having upper > >Whenever this happens to me, I consider the function to be too big. I >try to use many small functions instead of few big ones. I disagree. Breaking a large program into subroutines (functions, whatever) has several purposes, one of the most important of which is managing complexity _from_the_human's_perspective_. Most people can't hold an entire 100 000 line program in their minds at once, but they can hold a handful of short routines pertinent to a particular issue without trouble. Literate programming fills the same need, and better. Who cares if a dozen well written 25-line chunks tangle into a 300-line function? So long as you understand the purpose of each chunk and the relationships between chunks, the resultant input to the compiler really doesn't matter. (So long as the C or whatever code is syntactically and semantically correct, of course.) An important exception arises when you deal with the illiterati. If your code will be reviewed or (shudder) maintained by someone who's never heard of Knuth, let alone LitProg, then you need to start worrying about function size, formatting of the tangled code, and other minutia. Regards, Steve Furlong 8-Sep-1997 9:47:06-GMT,2426;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id DAA00424 for ; Mon, 8 Sep 1997 03:47:05 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 08 Sep 1997 04:34:37 EST From: Przemek Klosowski Reply-To: LitProg@SHSU.edu, przemek@rrdjazz.nist.gov Subject: Re: Multiple File and Chunk Philosophy Date: 8 Sep 1997 09:27:31 GMT Message-ID: <5v0ge3$69s$1@elna.ethz.ch> To: LitProg@SHSU.edu furlos@alumni.rpi.edu (Steve Furlong) writes: > I disagree. Breaking a large program into subroutines (functions, > whatever) has several purposes, one of the most important of which is > managing complexity _from_the_human's_perspective_. Most people can't > hold an entire 100 000 line program in their minds at once, but they > can hold a handful of short routines pertinent to a particular issue > without trouble. > > Literate programming fills the same need, and better. Who cares if a > dozen well written 25-line chunks tangle into a 300-line function? So > long as you understand the purpose of each chunk and the relationships > between chunks, the resultant input to the compiler really doesn't > matter. (So long as the C or whatever code is syntactically and > semantically correct, of course.) Yes, but in most languages functions naturally limit the complexity of interactions between the pieces of a program: any interaction has to be via the parameters or global data, whereas if your chunk is just a piece of a long function, all variables can in principle have long-range effects. In a proper literate program this doesn't matter---all long-range interactions are properly described, of course :^)---but there is more possiblity for accidents (like, an 'i' variable in a high level chunk being disrupted by a for(i=10;i;i--) in an included chunk). -- przemek klosowski (301) 975-6249 NIST Center for Neutron Research (bldg. 235), E111 National Institute of Standards and Technology Gaithersburg, MD 20899, USA .. and to make spammers think twice, FCC Commisioners' email is: rhundt@fcc.gov, jquello@fcc.gov, sness@fcc.gov, rchong@fcc.gov 8-Sep-1997 10:23:47-GMT,2002;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id EAA01063 for ; Mon, 8 Sep 1997 04:23:46 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from ordago.gsyc.inf.uc3m.es by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 08 Sep 1997 05:09:22 EST Received: from gsyc.inf.uc3m.es (atlantis.gsyc.inf.uc3m.es [163.117.137.221]) by ordago.gsyc.inf.uc3m.es (8.6.12/8.6.12) with ESMTP id MAA17274 for ; Mon, 8 Sep 1997 12:02:03 +0200 Received: (from nemo@localhost) by gsyc.inf.uc3m.es (8.8.5/8.8.4) id AAA00601; Mon, 8 Sep 1997 00:48:52 +0200 Date: Mon, 8 Sep 1997 00:48:52 +0200 Message-ID: <199709072248.AAA00601@gsyc.inf.uc3m.es> From: "Fco. J. Ballesteros" Reply-To: LitProg@SHSU.edu, nemo@gsyc.inf.uc3m.es MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Subject: Re: Noweb and Java References: Lee Wittenberg writes: > As far as I know, the only languages that support #line (and therefore > unfettered preprocessing) are C, C++, and Icon. I think there are a Ada 95 has a pragma to specify the file name and line number. It does the job of #line in Ada programs and works fine w/ debuggers. > far) future. However, since Java has its roots firmly in the C family > tree (derived from C++ and Objective-C), I consider it unforgivable > that they didn't recognize the benefits of #line (and #if, for that > matter). What about fixing this? Is any author of litprog utilities willing to send an email to Sun suggesting the inclusion of #line `pragmas' in any future revision of the language? I'd do it myself but IMHO it'd be more effective if done by authors of those great litprog tools. -Nemo. 8-Sep-1997 10:36:23-GMT,2413;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id EAA01273 for ; Mon, 8 Sep 1997 04:36:22 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from ordago.gsyc.inf.uc3m.es by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 08 Sep 1997 05:18:27 EST Received: from gsyc.inf.uc3m.es (atlantis.gsyc.inf.uc3m.es [163.117.137.221]) by ordago.gsyc.inf.uc3m.es (8.6.12/8.6.12) with ESMTP id MAA17282; Mon, 8 Sep 1997 12:02:59 +0200 Received: (from nemo@localhost) by gsyc.inf.uc3m.es (8.8.5/8.8.4) id AAA00557; Mon, 8 Sep 1997 00:39:14 +0200 Date: Mon, 8 Sep 1997 00:39:14 +0200 Message-ID: <199709072239.AAA00557@gsyc.inf.uc3m.es> From: "Fco. J. Ballesteros" Reply-To: LitProg@SHSU.edu, nemo@gsyc.inf.uc3m.es MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: furlos@alumni.rpi.edu CC: LitProg@SHSU.edu Subject: Re: Multiple File and Chunk Philosophy References: [about big functions in literate programs. I said I try to make small functions instead] Steve Furlong writes: > I disagree. [...] > Literate programming fills the same need, and better. Who cares if a > dozen well written 25-line chunks tangle into a 300-line function? So [...] Well, people that prefer the compiler source care. I've seen that it's not uncommon to get a literate source plus compiler source distribution and then delete the literate source. Non-literate people usually prefer not to install literate programming tools, so I tend to include the compiler src along with the lit src in any distribution and also try to keep the source readable. > An important exception arises when you deal with the illiterati. If > your code will be reviewed or (shudder) maintained by someone who's > never heard of Knuth, let alone LitProg, then you need to start > worrying about function size, formatting of the tangled code, and > other minutia. That's exactly why I said that I consider a function made of many chunks to be too big. Most of the times (if not always) you will give your literate source to people that prefer to use the C++ (or whatever) source instead. -Nemo. 8-Sep-1997 13:22:23-GMT,1898;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id HAA04170 for ; Mon, 8 Sep 1997 07:22:22 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 08 Sep 1997 08:09:06 EST From: Loris Bennett Reply-To: LitProg@SHSU.edu, loris@ferro.physik.TU-Berlin.DE Subject: What DOES noweb (as opposed to notangle) DO? Content-Type: text/plain; charset=us-ascii Message-ID: Content-Transfer-Encoding: 7bit MIME-Version: 1.0 Date: Mon, 8 Sep 1997 12:45:26 GMT To: LitProg@SHSU.edu Hello, If I have a file main.nw containing <>= . . (Stuff) . <> . . (More stuff) . and a file functions.nw containing <> = int fn1(int); <> = int fn2(int); I realize that I can get main.c by doing notangle -R"main.c*" main.nw functions.nw > main.c However, with noweb main.nw functions.nw I get the error undefined chunk name: <> Obviously I don't know what noweb does (and looking at the shell script only made this worse), so maybe some one can enlighten me and tell mes how to generate the c-files without having to give the root and the corresponding file explicitly? More generally, can anyone point me to a nice example of a makefile for multiple noweb files? AHMA, Loris -- ================================================================ Loris Bennett Tel.: (+49) 30 314 23762 loris@ferro.physik.tu-berlin.de http://wwwitp.physik.TU-Berlin.DE:80/~loris/ TU Berlin, PN7-1, Hardenbergstr. 36, 10632 Berlin, FRG 8-Sep-1997 14:35:03-GMT,1975;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id IAA05595 for ; Mon, 8 Sep 1997 08:35:02 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from ordago.gsyc.inf.uc3m.es by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 08 Sep 1997 09:04:49 EST Received: from gsyc.inf.uc3m.es (nautilus.gsyc.inf.uc3m.es [163.117.137.171]) by ordago.gsyc.inf.uc3m.es (8.6.12/8.6.12) with ESMTP id PAA18374; Mon, 8 Sep 1997 15:57:37 +0200 Received: (from nemo@localhost) by gsyc.inf.uc3m.es (8.8.5/8.8.4) id QAA27957; Mon, 8 Sep 1997 16:06:17 +0200 Date: Mon, 8 Sep 1997 16:06:17 +0200 Message-ID: <199709081406.QAA27957@gsyc.inf.uc3m.es> From: "Fco. J. Ballesteros" Reply-To: LitProg@SHSU.edu, nemo@gsyc.inf.uc3m.es MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu, loris@ferro.physik.TU-Berlin.DE Subject: Re: What DOES noweb (as opposed to notangle) DO? References: Loris Bennett writes: > More generally, can anyone point me to a nice example of a > makefile for multiple noweb files? I use these implicit rules %.tex : %.nw $(DEFSFILE); noweave -n -latex -delay $(WEAVEFLAGS) $< |cpif $@ %.cc : %.nw ; notangle -L -R"$**" $< | cpif $*.cc %.h : %.nw ; notangle -L -R"$**" $< | cpif $*.h They generate foo.cc, foo.h, and foo.tex from foo.nw. Note that this won't work when extra .nw files must be given to notangle. To use an external index, I add this rule %.defs : %.nw ; nodefs $< | cpif $*.defs and define these variables like this. export WEAVEFLAGS= -indexfrom global-defs-file.defs DEFSFILE=global-defs-file.defs -Nemo. PS: If you want a complete Makefile drop me a line. 8-Sep-1997 15:52:50-GMT,2314;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id JAA07627 for ; Mon, 8 Sep 1997 09:52:47 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 08 Sep 1997 10:21:33 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@samson.kean.edu Subject: Re: What DOES noweb (as opposed to notangle) DO? Content-Type: TEXT/PLAIN; charset=US-ASCII Message-ID: MIME-Version: 1.0 Date: Mon, 8 Sep 1997 15:16:42 GMT To: LitProg@SHSU.edu On Mon, 8 Sep 1997, Loris Bennett wrote: > Hello, > > If I have a file main.nw containing > > <>= > . > . (Stuff) > . > <> > . > . (More stuff) > . > > and a file functions.nw containing > > <> = > int fn1(int); > <> = > int fn2(int); > > I realize that I can get main.c by doing > > notangle -R"main.c*" main.nw functions.nw > main.c > > However, with > > noweb main.nw functions.nw > > I get the error > > undefined chunk name: <> > > Obviously I don't know what noweb does (and looking at the shell > script only made this worse), so maybe some one can enlighten me > and tell mes how to generate the c-files without having to give > the root and the corresponding file explicitly? The problem may have something to do with the space in your ">> =" (Do you have the same problem when you use the -R?), or it may be that the noweb command doesn't allow multiple input files on the command line. The man page should be of help in the latter case. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Computer Science Department | It is far better to be explicit and wrong Kean College of New Jersey | than to be vague. Union, NJ 07083 | | -- Frederick P. Brooks, Jr. leew@samson.kean.edu | "The Mythical Man-Month" (1995) ------------------------------------------------------------------------ 8-Sep-1997 17:04:19-GMT,1174;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id LAA09319 for ; Mon, 8 Sep 1997 11:04:17 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 08 Sep 1997 11:41:13 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: What languages support #line? (was Re: Noweb and Java) Message-ID: Date: Mon, 8 Sep 1997 16:32:52 GMT To: LitProg@SHSU.edu In article , Lee Wittenberg wrote: >As far as I know, the only languages that support #line (and therefore >unfettered preprocessing) are C, C++, and Icon. Modula-3 supports <* LINE ... *> Standard ML of New Jersey supports (*#line ...*) I'd like to hear of others... Norman -- Norman Ramsey -- moderator, comp.programming.literate http://www.cs.virginia.edu/~nr 8-Sep-1997 17:46:54-GMT,2203;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id LAA10404 for ; Mon, 8 Sep 1997 11:46:51 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 08 Sep 1997 12:03:01 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: What DOES noweb (as opposed to notangle) DO? Message-ID: Date: Mon, 8 Sep 1997 16:41:20 GMT To: LitProg@SHSU.edu In article , Loris Bennett wrote: >I realize that I can get main.c by doing > > notangle -R"main.c*" main.nw functions.nw > main.c > >However, with > > noweb main.nw functions.nw > >I get the error > > undefined chunk name: <> > >Obviously I don't know what noweb does (and looking at the shell >script only made this worse), so maybe some one can enlighten me Unlike notangle and noweave, noweb doesn't combine files on the command line. This behavior makes noweb compatible with nuweb. As noted on the man page: The noweb(1) command is for people who don't like reading man pages or who are switching from nuweb. To get the most out of noweb, use notangle(1) and noweave(1) instead. >and tell mes how to generate the c-files without having to give >the root and the corresponding file explicitly? Either cat the files together yourself (ugh), or better yet, put the notangle commands in a makefile. If you want to leave out the file name, you could use the default chunk <<*>>, as in the noweb examples directory. >More generally, can anyone point me to a nice example of a >makefile for multiple noweb files? All my makefiles are evil, but here is my favorite metarule for mk: %.c: %.nw notangle -L -R$target $prereq | cpif $target -- Norman Ramsey -- moderator, comp.programming.literate http://www.cs.virginia.edu/~nr 8-Sep-1997 23:36:50-GMT,2445;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id RAA18918 for ; Mon, 8 Sep 1997 17:36:49 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from indy03.cs.monash.edu.au by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 08 Sep 1997 18:19:22 EST Received: from localhost (ajh@localhost) by indy03.cs.monash.edu.au (8.7.6/8.6.9) with SMTP id JAA01159; Tue, 9 Sep 1997 09:20:48 +1000 (EST) Message-ID: <199709082320.JAA01159@indy03.cs.monash.edu.au> To: LitProg@SHSU.edu, przemek@rrdjazz.nist.gov Subject: Re: Multiple File and Chunk Philosophy MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 09 Sep 1997 09:20:47 +1000 From: John Hurst Reply-To: LitProg@SHSU.edu, ajh@cs.monash.edu.au przemek klosowski writes: > Yes, but in most languages functions naturally limit the complexity > of interactions between the pieces of a program: any interaction has > to be via the parameters or global data, whereas if your chunk is just > a piece of a long function, all variables can in principle have long-range > effects. In a proper literate program this doesn't matter---all long-range > interactions are properly described, of course :^)---but there is more > possiblity for accidents (like, an 'i' variable in a high level chunk > being disrupted by a for(i=10;i;i--) in an included chunk). A related problem is the ease of (re)use of code chunks. I have had bugs introduced because I reused a code chunk that had been written for one context in another context, and of course, the variables were not quite the same! Doubtless you'll all criticise this as due to my sloppiness, not LP, and I agree (:-); but it is an easy trap to fall into, since the macro expansion of LP makes such reuse all too easy! --John Hurst -- Associate Dean (Teaching), Faculty of Computing & Information Technology -- Associate Professor, Department of Computer Science --rm 110/26, Computer Science, Monash, Clayton VIC 3168 ~ ~~~&#: --ajh@cs.monash.edu.au _..___ ---____@___H__ --+61 3 9905 5192 (fax +61 3 9905 5146) |_____[_|_________[__]_ --http://www.cs.monash.edu.au/~ajh oo oo oo O--O--O o=o 9-Sep-1997 6:14:24-GMT,1321;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id AAA26745 for ; Tue, 9 Sep 1997 00:14:23 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 09 Sep 1997 01:05:24 EST From: Tom Legrady Reply-To: LitProg@SHSU.edu, ttlegrad@uwaterloo.ca Subject: 1 web -> N source files Message-ID: Date: Mon, 8 Sep 1997 23:28:45 GMT Content-Type: TEXT/PLAIN; charset=US-ASCII MIME-Version: 1.0 To: LitProg@SHSU.edu I've been playing with LP, using noweb. I put related header, source and test files into a single .nw file. But that means that if I make a change in the source component, the header file is re-extracted, with the result that many files which haven't actually changed are recompiled. I'm using Gnu make and gcc/g++ on Unix (Solaris 2.5) Any suggestions on simplifying the process? Tom ttlegrady@plg.uwaterloo.ca (519) 888-4567 ext 4822 DC 3548 - the PLG Lab ...... The one-question geek test: License plate on a VW Beetle: FEATURE ...... 9-Sep-1997 8:06:57-GMT,1103;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id CAA28908 for ; Tue, 9 Sep 1997 02:06:56 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from ferro.physik.tu-berlin.de by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 09 Sep 1997 02:58:20 EST Received: (from loris@localhost) by ferro.physik.tu-berlin.de (950413.SGI.8.6.12/950213.SGI.AUTOCF) id JAA12340; Tue, 9 Sep 1997 09:59:52 +0200 Date: Tue, 9 Sep 1997 09:59:52 +0200 Message-ID: <199709090759.JAA12340@ferro.physik.tu-berlin.de> From: Loris Bennett Reply-To: LitProg@SHSU.edu, loris@ferro.physik.tu-berlin.de To: nemo@gsyc.inf.uc3m.es CC: LitProg@SHSU.edu Subject: Re: What DOES noweb (as opposed to notangle) DO? Hello nemo, Thanks for the mail. > > PS: If you want a complete Makefile drop me a line. > Yes, I would like to see a complete makefile. Thanks, Loris 9-Sep-1997 19:23:07-GMT,1947;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id NAA13659 for ; Tue, 9 Sep 1997 13:23:06 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 09 Sep 1997 13:58:25 EST From: "John D. Yeager" Subject: Re: 1 web -> N source files Date: Tue, 09 Sep 1997 14:36:39 -0400 Message-ID: <34159737.7B3F@lucent.com> Reply-To: LitProg@SHSU.edu, johnyeager@lucent.com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Tom Legrady wrote: > > I've been playing with LP, using noweb. I put related header, source and > test files into a single .nw file. But that means that if I make a change > in the source component, the header file is re-extracted, with the result > that many files which haven't actually changed are recompiled. > The solution I've seen before is to have a post-processing step which compares the files for changes and only replaces files that changed (this was used with a model-based code generator rather than literate programming, but the problem is the same -- any change in the database may generate too many unchanged files). This requires that the old versions of the generated files are saved so a comparison can be made -- typically one wants to generate into a temporary directory to avoid overlaying the old files. I don't know how easy this would be to do with noweb specifically. -- John Yeager Cross-Product Architecture Lucent Technologies, Inc., Bell Labs johnyeager@lucent.com Business Communications Systems voice: (732) 957-3085 200 Laurel Ave, 4C-514 fax: (732) 957-4142 Middletown, NJ 07748 9-Sep-1997 22:15:18-GMT,3860;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id QAA18099 for ; Tue, 9 Sep 1997 16:15:16 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 09 Sep 1997 17:00:22 EST From: JOHN EDMONDS Reply-To: LitProg@SHSU.edu, ANYWHERE@USA.COM Subject: $$$ PUT CASH IN YOUR POCKET $$$ Date: 9 Sep 1997 21:51:32 GMT Message-ID: <5v4gd4$3ij@bgtnsc03.worldnet.att.net> To: LitProg@SHSU.edu YOU PROBABLY WON'T MAKE $50,000 OR $40,000 - BUT YOU CAN MAKE $30,000. I'VE DONE IT AND SO CAN YOU! IT'S EASY, AND ONLY YOU CAN SHAPE YOUR DESTINY DO IT TODAY! HERE'S HOW : Simply take a $5.00 bill and send it to each of the 5 people listed below. Do this first. Then, remove the name of the fifth person and replace the number one position with your name Then, simply mail this same letter to atleast 500 people. (of course, the more people you mail it to the more money you will make). Do you follow me so far? Imagine if only 10% of the people send you $5.00. You will be making well into the thousands. Just imagine if more than 10% send you $5.00???????? You need to mail a minimum of 500 copies of this letter either regular postal service or through a fast email service. We listed an email mailing service below that we found will only charge you 1 penny for each email they send for you. They do require a one time $20.00 set up fee to begin though. Remember, copy this letter EXACTLY as it is written, remove the name of the fifth person, and put your name in the numbe one slot. What this will do is make the number one person now become number 2 and the number 2 person now become number 3 and so on. LETS RECAP: 1) First thing you should do is send $5.00 to each of the people listed below . Do this now. 2) Now, copy this letter EXACTLY as it is written. The only change will be to permanently remove the name of the fifth person and replace the number one position with your name and mailing address. By doing this, you will move the number 1 person to the number 2 slot and move the number 2 person to the number 3 slot and move the number 3 person to the number 4 slot and move the number 4 person to the number 5 slot. 3) Now that you have done this, send no less than 500 copies of this letter to as many people as you can. The more copies you mail, the better the response and the more money you make. You can either send this letter to a mailing list via post office or you can send this letter through an email service. Do this right away 4) Now, sit back and wait for the money to come in. Suggested Email Service (They only charge .01/per email + one time $20 set up fee) MBE Email Services P.O. Box 552 Tate, GA 30177 They will send 1000 emails for only $10.00, or 2000 for $20.00 or 5000 for $50.00 and so on. You will need to include the fee + a one time $20 set up fee. Mail a copy of this ad and your money to the above address as soon as possible if you decide to send your letter by email. It is suggested that you send your letter email and regular mail to get the best results. THE FIVE PERSON LIST 1) MIKE ANDREWS 475 SKIDDER WAY JASPER, GA 30143 2) UNICOMM 104 NORTH MAIN STREET SUITE 1 JASPER, GA 30143 3) ANDREW BYRD P.O. BOX 552 TATE, GA 30177 4) JOHN EDMONDS P.O. BOX 132 BIRMINGHAM, AL 30456 5) BILL MYERS 154 LAKE DRIVE SALT LAKE CITY, UT 45634 * SEND EACH PERSON ABOVE A FIVE DOLLAR BILL TODAY - THEN, TOTALLY REMOVE THE NUMBER FIVE PERSON ANDMOVE EACH NAME DOWN PLACING YOUR NAME IN THE NUMBER ONE POSITION. GOOD LUCK - 10-Sep-1997 2:36:40-GMT,1175;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id UAA23513 for ; Tue, 9 Sep 1997 20:36:39 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 09 Sep 1997 21:23:28 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: 1 web -> N source files Date: 10 Sep 1997 02:19:13 GMT Message-ID: <5v5031$erd$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu > I've been playing with LP, using noweb. I put related header, source and > test files into a single .nw file. But that means that if I make a change > in the source component, the header file is re-extracted, with the result > that many files which haven't actually changed are recompiled. > > I'm using Gnu make and gcc/g++ on Unix (Solaris 2.5) > > Any suggestions on simplifying the process? notangle -Rheader foo.nw | cpif foo.h See the cpif man page. Added to the FAQ. N 10-Sep-1997 2:45:03-GMT,1314;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id UAA23661 for ; Tue, 9 Sep 1997 20:45:02 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 09 Sep 1997 21:23:31 EST From: Tom Legrady Subject: 1 web -> N source files Date: 10 Sep 1997 02:13:56 GMT Message-ID: <5v4vp4$eku$1@murdoch.acc.Virginia.EDU> Reply-To: LitProg@SHSU.edu, LitProg@SHSU.edu, ttlegrad@uwaterloo.ca MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: LitProg@SHSU.edu I've been playing with LP, using noweb. I put related header, source and test files into a single .nw file. But that means that if I make a change in the source component, the header file is re-extracted, with the result that many files which haven't actually changed are recompiled. I'm using Gnu make and gcc/g++ on Unix (Solaris 2.5) Any suggestions on simplifying the process? Tom ttlegrady@plg.uwaterloo.ca (519) 888-4567 ext 4822 DC 3548 - the PLG Lab ...... The one-question geek test: License plate on a VW Beetle: FEATURE ...... 10-Sep-1997 8:30:23-GMT,1438;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id CAA00321 for ; Wed, 10 Sep 1997 02:30:22 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 10 Sep 1997 03:21:04 EST From: Loris Bennett Reply-To: LitProg@SHSU.edu, loris@ferro.physik.TU-Berlin.DE Subject: (noweb-mode.el + AUCTeX) Problem Date: 10 Sep 1997 08:11:53 GMT Message-ID: <5v5ko9$nqh$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Hello All, Has anyone come across Thorsten Ohl(with a little help from Norman Ramsey)'s noweb mode for emacs doing strange things in connection with AUCTeX? Everytime I move from a code chunk to a document chunk, AUXTeX feels obliged to ask me about the master file and even asks again when I enter the same doc chunk again. Does anyone know of a solution? Loris -- ================================================================ Loris Bennett Tel.: (+49) 30 314 23762 loris@ferro.physik.tu-berlin.de http://wwwitp.physik.TU-Berlin.DE:80/~loris/ TU Berlin, PN7-1, Hardenbergstr. 36, 10632 Berlin, FRG 10-Sep-1997 14:16:56-GMT,2041;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id IAA06650 for ; Wed, 10 Sep 1997 08:16:54 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 10 Sep 1997 09:06:16 EST From: ltest@rte9-sun_5.5.1 (news_check.py) Reply-To: LitProg@SHSU.edu, ltest@RTE9-SUN_5.5.1 Subject: Re: 1 web -> N source files Date: Wed, 10 Sep 1997 14:01:35 GMT Message-ID: <5v69gk$6hq@lztnsc06.att.com> To: LitProg@SHSU.edu In article <34159737.7B3F@lucent.com> "John D. Yeager" wrote: > Tom Legrady wrote: > > > > I've been playing with LP, using noweb. I put related header, source and Tom Legrady wrote: > > I've been playing with LP, using noweb. I put related header, source and > test files into a single .nw file. But that means that if I make a change > in the source component, the header file is re-extracted, with the result > that many files which haven't actually changed are recompiled. > The solution I've seen before is to have a post-processing step which compares the files for changes and only replaces files that changed (this was used with a model-based code generator rather than literate programming, but the problem is the same -- any change in the database may generate too many unchanged files). This requires that the old versions of the generated files are saved so a comparison can be made -- typically one wants to generate into a temporary directory to avoid overlaying the old files. I don't know how easy this would be to do with noweb specifically. -- John Yeager Cross-Product Architecture Lucent Technologies, Inc., Bell Labs johnyeager@lucent.com Business Communications Systems voice: (732) 957-3085 200 Laurel Ave, 4C-514 fax: (732) 957-4142 Middletown, NJ 07748 10-Sep-1997 14:23:07-GMT,1310;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id IAA06799 for ; Wed, 10 Sep 1997 08:23:04 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 10 Sep 1997 09:12:23 EST From: ltest@rte9-sun_5.5.1 (news_check.py) Reply-To: LitProg@SHSU.edu, ltest@RTE9-SUN_5.5.1 Subject: Re: Noweb and Java Date: Wed, 10 Sep 1997 14:03:11 GMT Message-ID: <5v69jk$8l1@lztnsc06.att.com> To: LitProg@SHSU.edu In article <340AF945.34B6@ibm.net> Kenneth Brittain wrote: > I am using noweb and java. The problem is that java does not allow > #define file line like C/C++. Is there a program that can mapping the > java source errors back to original noweb source. Before I begin writing I am using noweb and java. The problem is that java does not allow #define file line like C/C++. Is there a program that can mapping the java source errors back to original noweb source. Before I begin writing it I was wondering if anyone else has already written it (and is willing to share it). Kenneth Brittain is 10-Sep-1997 14:25:13-GMT,1311;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id IAA06832 for ; Wed, 10 Sep 1997 08:25:11 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 10 Sep 1997 09:12:30 EST From: ltest@rte9-sun_5.5.1 (news_check.py) Reply-To: LitProg@SHSU.edu, ltest@RTE9-SUN_5.5.1 Subject: Re: Noweb and Java Date: Wed, 10 Sep 1997 14:03:26 GMT Message-ID: <5v69k3$8rk@lztnsc06.att.com> To: LitProg@SHSU.edu In article <340AF945.34B6@ibm.net> Kenneth Brittain wrote: > I am using noweb and java. The problem is that java does not allow > #define file line like C/C++. Is there a program that can mapping the > java source errors back to original noweb source. Before I begin writing I am using noweb and java. The problem is that java does not allow #define file line like C/C++. Is there a program that can mapping the java source errors back to original noweb source. Before I begin writing it I was wondering if anyone else has already written it (and is willing to share it). Kenneth Brittain is 10-Sep-1997 14:26:59-GMT,1310;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id IAA06855 for ; Wed, 10 Sep 1997 08:26:56 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 10 Sep 1997 09:12:35 EST From: ltest@rte9-sun_5.5.1 (news_check.py) Reply-To: LitProg@SHSU.edu, ltest@RTE9-SUN_5.5.1 Subject: Re: Noweb and Java Date: Wed, 10 Sep 1997 14:03:38 GMT Message-ID: <5v69kg$929@lztnsc06.att.com> To: LitProg@SHSU.edu In article <340AF945.34B6@ibm.net> Kenneth Brittain wrote: > I am using noweb and java. The problem is that java does not allow > #define file line like C/C++. Is there a program that can mapping the > java source errors back to original noweb source. Before I begin writing I am using noweb and java. The problem is that java does not allow #define file line like C/C++. Is there a program that can mapping the java source errors back to original noweb source. Before I begin writing it I was wondering if anyone else has already written it (and is willing to share it). Kenneth Brittain is 10-Sep-1997 16:12:17-GMT,1785;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id KAA09311 for ; Wed, 10 Sep 1997 10:12:15 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 10 Sep 1997 10:59:40 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@samson.kean.edu Subject: Re: 1 web -> N source files Date: 10 Sep 1997 15:37:22 GMT Message-ID: <5v6eri$75v$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: LitProg@SHSU.edu On Mon, 8 Sep 1997, Tom Legrady wrote: > > I've been playing with LP, using noweb. I put related header, source and > test files into a single .nw file. But that means that if I make a change > in the source component, the header file is re-extracted, with the result > that many files which haven't actually changed are recompiled. > > I'm using Gnu make and gcc/g++ on Unix (Solaris 2.5) > > Any suggestions on simplifying the process? Use cpif (included in the noweb distribution) in your makefile when tangling. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | O God, send me a plan, just one little Computer Science Department | idea, I don't want You to do a miracle, Kean College of New Jersey | I'll do all the work if only You'll give Union, NJ 07083 | me an idea. | -- Manning Coles leew@samson.kean.edu | "Drink to Yesterday" (1940) ------------------------------------------------------------------------ 10-Sep-1997 16:14:37-GMT,2009;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id KAA09339 for ; Wed, 10 Sep 1997 10:14:36 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 10 Sep 1997 10:59:36 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@samson.kean.edu Subject: Re: Multiple File and Chunk Philosophy Date: 10 Sep 1997 15:35:22 GMT Message-ID: <5v6enq$74a$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: LitProg@SHSU.edu On Tue, 9 Sep 1997, John Hurst wrote: > A related problem is the ease of (re)use of code chunks. I have had bugs > introduced because I reused a code chunk that had been written for one > context in another context, and of course, the variables were not quite the > same! > > Doubtless you'll all criticise this as due to my sloppiness, not LP, and I > agree (:-); but it is an easy trap to fall into, since the macro expansion > of LP makes such reuse all too easy! One way to help fight this is to mention non-local variables explictly in the chunk name. This will also help on that Great Day when the fool (me) who proposed a technique for parameterized chunks in noweb actually sits down and implements the damn thing. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | O God, send me a plan, just one little Computer Science Department | idea, I don't want You to do a miracle, Kean College of New Jersey | I'll do all the work if only You'll give Union, NJ 07083 | me an idea. | -- Manning Coles leew@samson.kean.edu | "Drink to Yesterday" (1940) ------------------------------------------------------------------------ 11-Sep-1997 4:02:00-GMT,1751;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id WAA25052 for ; Wed, 10 Sep 1997 22:01:59 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 10 Sep 1997 22:52:09 EST From: furlos@alumni.rpi.edu (Steve Furlong) Reply-To: LitProg@SHSU.edu, furlos@alumni.rpi.edu Subject: Code ordering Date: 11 Sep 1997 03:38:12 GMT Message-ID: <5v7p34$me$1@news.interlog.com> To: LitProg@SHSU.edu In article <3416BE96.A38F2295@calfp.co.uk>, Nick Leaton wrote: ... >Ordering code bottom up a la Ada vs ordering code in any order. Does >having the ability to freely order increase the readability of the code? >Well I do like grouping features with a class in clusters, and >(hopefully) being consistent between clusters. You can always order >bottom up if you want to, but you don't have to. In other words having >free ordering is a superset of bottom up ordering. Look into "literate programming". Donald Knuth invented it for Pascal, another language which imposes strict limits on the ordering of source code. LP allows and encourages you to arrange source code in whatever order best facilitates comprehension by a human reader, and provides tools to massage the code into whatever arrangement the compiler needs. The FAQ for comp.programming.literate gives the names and download locations for quite a few LP packages, some of which can be used with Ada. It also gives names and brief reviews of several books and articles on LP. Regards, Steve Furlong 11-Sep-1997 11:00:15-GMT,64888;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id FAA03133 for ; Thu, 11 Sep 1997 05:00:13 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 11 Sep 1997 05:14:45 EST From: thompson@sun1.coe.ttu.edu Subject: comp.programming.literate FAQ Date: 11 Sep 1997 09:53:03 GMT Message-ID: Reply-To: LitProg@SHSU.edu, thompson@sun1.coe.ttu.edu To: LitProg@SHSU.edu Archive-name: literate-programming-faq Last-modified: 1997/08/15 Version: 1.1.18 The Literate Programming FAQ David B. Thompson 15 August 1997 This document is for new and experienced users of literate programming tools. The purpose is to explain the concept of literate programming and to provide a resource for locating files of interest to literate programmers and those interested in literate programming. ______________________________________________________________________ Table of Contents: 1. Welcome 1.1. Disclaimer 1.2. Copyright 1.3. What's New? 2. Introduction or 3. How do I get the FAQ? 3.1. Literate Programming FAQ 3.2. FWEB FAQ 4. Is there a newsgroup? 5. What internet nodes are of interest to literate programmers? 6. What is Literate Programming? 7. How do I begin literate programming? 8. What literate programming tools are available? 8.1. APLWEB 8.2. AWEB 8.3. CLiP 8.4. CWEB 8.5. CWEBx3.0 8.6. mCWEB 8.7. FunnelWeb 8.8. FunnelWeb 3.0AC 8.9. FWEB 8.10. IMPACT 8.11. lit2x 8.12. Literate Programmer's Workshop (LPW) 8.13. MapleWEB 8.14. MWEB (Schrod/Detig) 8.15. MWEB (Sewell) 8.16. noweb 8.17. nuweb 8.18. ProTeX 8.19. RWEB 8.20. SchemeWEB 8.21. SpideryWEB 8.22. WEB 8.23. WinWordWEB 9. Are there other tools I should know about? 9.1. C2LaTeX 9.2. c2cweb 9.3. c2man 9.4. cnoweb 9.5. Fold2Web 9.6. Funnelweb Mode 9.7. noweb.el 9.8. nuweb.el 9.9. TIE 9.10. Web mode 10. What other resources are available? 10.1. World Wide Web 10.2. TeX Resources 11. Are there any code examples? 12. Bibliographies 13. How to anonymously ftp 14. Acknowledgements 15. End notes ______________________________________________________________________ 1. Welcome Information contained in this document is the best available at preparation. The original file was dated October 15, 1993 (just for historical purposes). 1.1. Disclaimer Disclaimer: ``This FAQ is presented with no warranties or guarantees of ANY KIND including correctness or fitness for any particular purpose. The author of this document has attempted to verify correctness of the data contained herein; however, slip-ups can and do happen. If you use this data, you do so at your own risk.'' 1.2. Copyright Copyright 1993-1997 by David B. Thompson. All rights reserved worldwide. Permission is granted to copy this document for free distribution so long as it remains intact and unmodified. For other arrangements, contact the author/maintainer via email: 1.3. What's New? o My email address has changed (once again). o Newsgroup is moderated. o Updated fweb entry. o Updated noweb entry. o Added mCWEB entry. o Updated c2cweb entry. o Updated nuweb.el entry. o Updated cLiP entry. o Updated Lee W's examples (from bart). o Last, but not least, new formatting of the FAQ. Many thanks go to Andrew Johnson for helping make this happen. 2. Introduction or ``What's this all about?'' This document is for new and experienced users of literate programming tools. The purpose is to explain the concept of literate programming and to provide a resource for locating files of interest to literate programmers and those interested in literate programming. The Literate Programming (LitProg) Frequently Asked Questions (FAQ) list is maintained by Dave Thompson Comments and constructive criticisms are welcome. Direct flames to /dev/null (or nul if you're a msdos user! ;-) If you find an error, please report it. I'm particularly interested in establishing the locations of generally available literate programming tools. If you are the author of such a tool and wish to have it included in this list, please send email. Please note this is a work-in-progress. It is not complete, and probably will never be complete. Nevertheless, the information contained herein may be useful to some. Use it as it is intended. 3. How do I get the FAQ? 3.1. Literate Programming FAQ You have many ways to get a current copy of this FAQ. One is to use anonymous ftp (if you don't know how, see a later section in this FAQ) to connect to one of the Comprehensive TeX Arvchive Network (CTAN) sites or the Literate Programming Archive and retrieve a copy of the file. Open an ftp connection to one of the CTAN sites and retrieve the file: help/LitProg-FAQ (For more information on CTAN and the literate programming archive, see the section below entitled ``Internet Nodes of Interest to Literate Programmers''.) 3.2. FWEB FAQ David Coker maintains the FWEB FAQ. The current version number is 1.30a. It can be retrieved in the same way as this FAQ. The FWEB FAQ exists in various formats, including HyperText (see other resources below). In Europe, the complete distribution can also be obtained from ftp.desy.de 131.169.10.115 in directory /pub/faq/web/fweb/. It is also available from the literate programming archive in the directory LPA/Documentation/faq/fweb (see the references to LPA below for more information). 4. Is there a newsgroup? One of the most important resources is the literate programming newsgroup, comp.programming.literate. Because of the amount of spamming and unrelated the posts, the newsgroup is now moderated. Posts to the newsgroup are now routed through litprog- mod@cs.virginia.edu. If your news reader does not post through this address, then you will be unable to post messages to the newgroup. You can read this newsgroup using your standard reader. 5. What internet nodes are of interest to literate programmers? The principal nodes of interest to literate programmers are the Literate Programming Archive (LPA hereafter) and the CTAN (Comprehensive TeX Archive Network). The Literate Programming Archive (LPA) is: Node: ftp.th-darmstadt.de [130.83.55.75] Directory: programming/literate-programming Notes: Fastest response during off-U.S. [yep] business hours. Participating hosts in the Comprehensive TeX Archive Network are: ftp.dante.de (Deutschland) -- anonymous ftp /tex-archive (/pub/tex /pub/archive) -- gopher on node sun.dante.de -- e-mail via ftpmail@dante.de -- Administrator: ftp.tex.ac.uk (England) -- anonymous ftp /tex-archive (/pub/tex /pub/archive) -- gopher on node gopher.tex.ac.uk -- NFS mountable from nfs.tex.ac.uk:/public/ctan/tex-archive -- World Wide Web access on www.tex.ac.uk -- Administrator: The site ftp.shsu.edu used to be the American CTAN site. Apparently, that site has fallen into disrepair and should not be considered a primary source for either TeX related or literate programming related material. For the record, the address is: ftp.shsu.edu (Texas, USA) -- anonymous ftp and gopher /tex-archive (/pub/tex /pub/archive) -- NFS mountable from ftp.SHSU.edu:/pub/ftp/tex-archive -- e-mail via ftpmail@ftp.SHSU.edu -- World Wide Web access on www.SHSU.edu -- Administrator: A list of CTAN archive sites and their mirrors can be found on: ftp.dante.de:/tex-archive/CTAN.sites I presume that the other CTAN sites mirror this file, but have not checked. As of my last check (September 1994), it contains: "In order to reduce network load, it is recommended that you use the Comprehensive TeX Archive Network (CTAN) host which is located in the closest network proximity to your site." Known partial mirrors of the CTAN reside on (alphabetically): dongpo.math.ncu.edu.tw (Taiwan) /tex-archive ftp.adfa.oz.au (Australia) /pub/tex/ctan ftp.muni.cz (The Czech Republic) /pub/tex/CTAN ftp.cs.ruu.nl (The Netherlands) /pub/tex-archive ftp.uu.net (Virginia, USA) /pub/text-processing/TeX nic.switch.ch (Switzerland) /mirror/tex Known mirrors of the CTAN reside on (alphabetically): ftp.center.osaka-u.ac.jp (Japan) /CTAN ftp.ccu.edu.tw (Taiwan) /pub/tex ftp.cs.rmit.edu.au (Australia) /tex-archive ftp.duke.edu (North Carolina, USA) /tex-archive ftp.germany.eu.net (Deutschland) /pub/packages/TeX ftp.gwdg.de (Deutschland) /pub/dante ftp.jussieu.fr (France) /pub4/TeX/CTAN ftp.loria.fr (France) /pub/unix/tex/ctan ftp.mpi-sb.mpg.de (Deutschland) /pub4/tex/mirror/ftp.dante.de ftp.uni-bielefeld.de (Deutschland) /pub/tex ftp.uni-stuttgart.de (Deutschland) /tex-archive (/pub/tex) ftpserver.nus.sg (Singapore) /pub/zi/TeX src.doc.ic.ac.uk (England) /packages/tex/uk-tex sunsite.unc.edu (North Carolina, USA) /pub/packages/TeX wuarchive.wustl.edu (Missouri, USA) /packages/TeX Other nodes and directories of interest include: Node: ftp.desy.de [131.169.10.115] Directory: pub/web. Various documents, samples, and the FWEB FAQ. Notes: Has a www server, http://info.desy.de:80/ 6. What is Literate Programming? Literate programming is the combination of documentation and source together in a fashion suited for reading by human beings. In fact, literate programs should be enjoyable reading, even inviting! (Sorry Bob, I couldn't resist!) In general, literate programs combine source and documentation in a single file. Literate programming tools then parse the file to produce either readable documentation or compilable source. The WEB style of literate programming was created by D.E. Knuth during the development of his TeX typsetting software. All the original work revolves around a particular literate programming tool called WEB. Knuth says: The philosophy behind WEB is that an experienced system pro- grammer, who wants to provide the best possible documenta- tion of his or her software products, needs two things simultaneously: a language like TeX for formatting, and a language like C for programming. Neither type of language can provide the best documentation by itself; but when both are appropriately combined, we obtain a system that is much more useful than either language separately. The structure of a software program may be thought of as a web that is made up of many interconnected pieces. To docu- ment such a program we want to explain each individual part of the web and how it relates to its neighbours. The typo- graphic tools provided by TeX give us an opportunity to explain the local structure of each part by making that structure visible, and the programming tools provided by languages such as C or Fortran make it possible for us to specify the algorithms formally and unambigously. By combin- ing the two, we can develop a style of programming that max- imizes our ability to perceive the structure of a complex piece of software, and at the same time the documented pro- grams can be mechanically translated into a working software system that matches the documentation. Another author (Eric W. van Ammers) wrote me a short article treating his opinions on literate programming. The text follows: First observation on LP About 90% of the disussion on this list is about problems with applying some WEB-family member to a particular programming language or a special documentation situation. This is ridiculous, I think. Let me explain shortly why. Lemma 1: I have proposed for many years that programming has nothing to do with programming langauges, i.e. a good programmer makes good programs in any language (given some time to learn the syntax) and a bad programmer will never make a good program, no matter the language he uses (today many people share this view, fortunately). Lemma 2: Literate Programming has (in a certain way not yet completely understood) to do with essential aspects of programming. Conclusion 1: A LP-tool should be independent of programming language. Lemma 3: It seems likely that the so called BOOK FORMAT PARADIGM ref. 1 plays an important role in making literate programs work. Lemma 4: There are very many documentation systems currently being used to produce documents in the BOOK FORMAT. Conclusion 2: A LP-tool should be independent of the documentation system that the program author whishes to use. My remark some time ago that we should discuss the generic properties of an LP-tool was based on the above observation. References 1 Paul W. Oman and Curtus Cook. ``Typographical style is more than cosmetic.'' CACM 33, 5, 506-520 (May 1990) Second observation on LP The idea of a literate program as a text book should be extendend even further. I would like to see a literate program as an (in)formal argument of the correctness of the program. Thus a literate program should be like a textbook on mathematicics. A mathematical textbook explains a theory in terms of lemma and theorems. But the proofs are never formal in the sense that they are obtaind by symbol manipulation of a proof checker. Rather the proofs are by so called ``informal rigour'', i.e. by very precise and unambiguous sentences in a natural language. Eric W. van Ammers Department of Computer Science Wageningen Agricultural University Dreijenplein 2 E-mail: ammers@rcl.wau.nl 6703 HB Wageningen voice: +31 (0)8370 83356/84154 The Netherlands fax: +31 (0)8370 84731 Another author (Norman Ramsey) wrote me and asked that his opinions be included in the FAQ. What follows are Norman's comments verbatim. I see it's time for the ``how is literate programming dif- ferent from verbose commenting'' question. Perhaps David Thompson will get this into the FAQ. Alert! What follows are my opinions. In no way do I claim to speak for the (fractious) literate-programming community. How is literate programming different from verbose commenting? There are three distinguishing characteristics. In order of importance, they are: o flexible order of elaboration o automatic support for browsing o typeset documentation, especially diagrams and mathematics Flexible order of elaboration means being able to divide your source program into chunks and write the chunks in any order, independent of the order required by the compiler. In principle, you can choose the order best suited to explaining what you are doing. More subtly, this discipline encourages the author of a literate program to take the time to consider each fragment of the program in its proper sphere, e.g., not to rush past the error checking to get to the ``good parts.'' In its time and season, each part of the program is a good part. (This is the party line; your mileage may vary.) I find the reordering most useful for encapsulating tasks like input validation, error checking, and printing output fit for humans --- all tasks that tend to obscure ``real work'' when left inline. Reordering is less important when using languages like Modula-3, which has exceptions and permits declarations in any order, than when using languages like C, which has no exceptions and requires declaration before use. Automatic support for browsing means getting a table of contents, index, and cross-reference of your program. Cross-reference might be printed, so that you could consult an index to look up the definition of an identifier `foo'. With good tools, you might get a printed mini-index on every page if you wanted. Or if you can use a hypertext technology, cross-reference might be as simple as clicking on an identifier to reach its definition. Indexing is typically done automatically or `semi- automatically', the latter meaning that identifier definitions are marked by hand. Diligently done semi- automatic indexes seem to be best, because the author can mark only the identifiers he or she considers important, but automatic indexing can be almost as good and requires no work. Some tools allow a mix of the two strategies. Some people have applied literate-programming tools to large batches of legacy code just to get the table of contents, index, and cross-reference. I don't use diagrams and mathematics very often, but I wouldn't want to have to live without them. I have worked on one or two projects where the ability to use mathematical formulae to document the program was indispensible. I also wouldn't like to explain some of my concurrent programs without diagrams. Actually I write almost all of my literate programs using only sections headers, lists, and the occasional table. >Wouldn't it be easier to do one's literate programming using >a wysiwyg word processor (e.g. Word for Windows) and >indicate what is source code by putting it in a different >font? The data formats used in wysiwyg products are proprietary, and they tend to be documented badly if at all. They are subject to change at the whim of the manufacturer. (I'll go out on a limb and say there are no significant wysiwyg tools in the public domain. I hope the Andrew people will forgive me.) These conditions make it nearly impossible to write tools, especially tools that provide automatic indexing and cross-reference support. The CLiP people have a partial solution that works for tools that can export text --- they plant tags and delimiters throughout the document that enable the reordering transformation (``tangling''). People use TeX, roff, and HTML because free implementations of these tools are widely available on a variety of platforms. TeX and HTML are well documented, and TeX and roff are stable. TeX is the most portable. I think I have just answered the FAQ ``how come all these tools use TeX, anyway?'' :-) Norman Ramsey 7. How do I begin literate programming? A recommended book is D.E. Knuth's collection of articles (1992) Literate Programming. Center for the Study of Language and Information, Stanford University, ISBN 0-937073-80-6 (pbk). This book gives insight into Knuth's thoughts as he developed the web system of literate programming (and TeX for typesetting). It does not document methods for literate programming. A recommended book is Wayne Sewell's (1989) Weaving a Program: Literate Programming in WEB. Van Nostrand Reinhold, ISBN 0-442-31946-0 (pbk). This book focuses on using Knuth's web system. Some talk exists in the newsgroup/mailing list for a Usenet University course in literate programming. I'm sure discussion of this topic will be welcomed. If you are interested, please participate. 8. What literate programming tools are available? A significant number of tools for literate programming are available. Most have been ported from their original systems, so support multiple computer platforms. If you are the developer of such a tool, and would like to make the software freely available, please send me email and I'll reply with a form (like those below) for you to fill in. (Or short-circuit the process and kludge a form from below. :-) 8.1. APLWEB Developer: Christoph von Basum Version: Unknown Hardware: MSDOS Languages: IBM APL2 and STSC APL Formatter: Plain TeX Availability: Anonymous ftp from: LPA:/apl watserv1.uwaterloo.ca:/languages/apl/aplweb Readme: Unknown Description: None available. Support: Unknown Note: The status of this particular package is unknown. 8.2. AWEB Developer: Unknown Version: Unknown Hardware: Unknown Languages: Ada Formatter: Unknown Availability: Anonymous ftp from: LPA:/ada/web Readme: Unknown Description: None available Support: Not supported. 8.3. CLiP Developer: E.W. van Ammers and M.R. Kramer Versions: 2.0 and 2.4b (DOS only) Platform: Vax/VMS, Unix, DOS Languages: Any programming language Formatter: Any formatter (TeX, LaTeX, Troff, Runoff, HTML, etc) or any wordprocessor including WYSIWYG systems (Word Perfect, WinWord, Ami Pro, Word Pro, etc.) Availability: Anonymous ftp from: sun01.info.wau.nl:/CLIP/ms_dos DOS sun01.info.wau.nl:/CLIP/ms_dos_24b DOS (v. 2.4b) sun01.info.wau.nl:/CLIP/vax_vms VAX/VMS sun01.info.wau.nl:/CLIP/unix Unix CTAN:/web/clip LPA:/machines/ms-dos LPA:/machines/vax Readme: With bundle above Description: CLiP does not use explicit commands to perform the extraction process. Rather it recognizes pseudostatements written as comments in the programming language in question. CLiP distinguishes pseudostatements from ordinary comments because the former comply with a particular style. This style can be adjusted to suit virtually any programming language. The CLiP approach to LP makes the system extremely versatile. It is independent of programming language and text processing environment. We designed CLiP to be compatible with hypertext systems as well. Some hypertext examples are at ftp://sun01.info.wau.nl/clip/html/queens.htm ftp://sun01.info.wau.nl/clip/html/pal1.htm Features: + CLiP imposes virtually no limitations on the text-processing system used to produce the documentation. If the text-processor supports these items you can + structure the documentation according to your own taste. + include drawings, pictures, tables etc. + disclose your documentation my means of X-ref tables, Indexes, Table of contents, Table of tables, Table of figures, etc. + typeset the documented code. + Extracts any number of modules from a maximum of 64 source files. + No pretty-printing. Code from the source files is copied "as is" to the module. + Appearance of code segments in the documentation matches those of the modules to ease the identification of code segments. + Supports partially specified data types. + Comprehensive user manual (preliminary version) and technical description. - No automatic generation of a X-ref table for program identifiers. Support: Bugs, problems and assistance by e-mail to Eric.vanAmmers@user.info.wau.nl 8.4. CWEB Developer: Silvio Levy and D.E. Knuth Version: 3.0 Hardware: Unix systems (dos and amiga ports available) Languages: C and C++ Formatter: Plain TeX and LaTeX. Availability: Anonymous ftp from: labrea.stanford.edu:/pub/cweb LPA:/c.c++ CTAN:/web/c_cpp/cweb DOS version in CTAN:/web/c_cpp/cwb30p8c DOS version in LPA:/machines/ms-dos Amiga version CTAN:/web/c_cpp/AmigaCWEB Mac port of CTANGLE in LPA:/machines/mac LaTeX support in LPA:/c.c++ Readme: Bundled with above Description: No description provided. Support: Bugs to levy@math.berkeley.edu 8.5. CWEBx3.0 Developer: Marc van Leeuwen Version: Unknown Hardware: Any system using ASCII code Languages: ANSI C Formatter: Plain TeX Availability: Anonymous ftp from: ftp.cwi.nl/pub/cweb Readme: Bundled with above Brief description: A modified implementation of CWEB, with some extensions. Provides a mode for full compatibility with Levy/Knuth CWEB. The most significant extras are: - Typedef declarations affect formatting througout source file - Include files are scanned for typedef definitions - Flexible selection of layout style - Possibility to refer to sections using symbolic labels - CTANGLE detects unbalanced braces and parentheses - CWEAVE can be made to report syntax errors more easily - Some additional mechanisms to avoid formatting problems - New and modular set of grammar rules, based on ANSI C syntax - Possibility to suppress #line directives - A new manual Support: bugs and remarks to M.van.Leeuwen@cwi.nl 8.6. mCWEB Developer: Markus Oellinger Version: 1.0 Hardware: Unix Languages: C/C++ Formatter: plainTeX Availability: anonymous ftp from ist.tu-graz.ac.at:/pub/utils/litprog/mcweb/mcweb.tgz Readme: at same location Description: This is mCWEB 1.0, a descendant of the CWEB system of structured documentation by Donald E. Knuth and Silvio Levy. It adds some features that are indispensable when working in a team. mCWEB regards a project of a book consisting of several chapter files. By means of import and export commands, it automatically manages all relationships between the chapters of a book and to other books. Interface documentation is now also part of mCWEB. It is extracted into a second TeX file. This makes it possible to define well known interfaces between the individual parts of a project that will be implemented by different persons. In addition, mCWEB parses C header files to find out about all the datatypes defined there. mCWEB comes with a full completely rewritten user manual and is compatible with CWEB. Support: Institute of Software Technology moell@ist.tu-graz.ac.at 8.7. FunnelWeb Developer: Ross N. Williams: ross@guest.adelaide.edu.au Version: Unknown Hardware: MSDOS, Mac, VMS, Sun. Other ports reported. Languages: No restrictions. Formatter: Plain TeX for printing. Otherwise, no restrictions. Availability: Anonymous ftp from: CTAN:/web/funnelweb LPA:/independent ftp.adelaide.edu.au:/pub/funnelweb Readme: With bundle above. Description: FunnelWeb is a production-quality literate-programming tool that emphasises simplicity and reliability. Everything about FunnelWeb, from the simplicity of its language to the comprehensive tutorial in the user's manual, has been designed to make this as simple, as practical, and as usable a tool as possible. Features: + Provides a simple macro preprocessor facility. + Can produce typeset documentation. + Runs on Sun, VMS VAX, Macintosh, PC, and others. + Portable C source code distributed under GNU licence. + Comprehensive user's manual including tutorial. + Programming-language independent. + Can generate multiple output files. + Allows complete control over the output text. + Regression test suite with over 200 tests. + Fully worked example (in /pub/funnelweb/examples). - Requires TeX to produce typeset documentation. - Typesets program code using TT font only. Support: No formal support available. Mailing list maintained with about 50 subscribers. Informal assistance available from mailing list. 8.8. FunnelWeb 3.0AC Developer: Enhanced by A.B.Coates (coates@physics.uq.edu.au) from FunnelWeb v3.0 by Ross N. Williams (ross@guest.adelaide.edu.au) Version: 3.0AC Hardware: MSDOS, Mac, VMS, Sun, OSF/1, Linux, Sys.V, OS/2. Languages: No restrictions. Formatter: Tex, LaTeX, or HTML. Availability: Anonymous ftp from ftp.physics.uq.oz.au:/pub/funnelwebAC30.tar.gz Readme: With bundle above; for FunnelWeb manual see WWW page http://www.physics.uq.oz.au:8001/people/coates/funnelweb.html Description: FunnelWeb 3.0AC is an enhanced version of FunnelWeb (see the entry for FunnelWeb). FunnelWeb is designed to be typesetter independent, though FunnelWeb v3.0 only supports (La)TeX as the typesetter. FunnelWeb 3.0AC also supports HTML, and creates appropriate hypertext links within the document among the code sections. FunnelWeb 3.0AC also supports automatic and manual insertion of line directives, so that compiler errors can be flagged back to the original FunnelWeb source file. FunnelWeb 3.0AC is completely compatible with FunnelWeb v3.0 sources (with one minor exception; see the file README.ABC which comes with the FunnelWeb 3.0AC distribution). Support: Supported by A.B.Coates (coates@physics.uq.edu.au), subject to the time constraints imposed by his thesis. 8.9. FWEB Developer: John A. Krommes Version: 1.53 (1.60-beta for the experienced, patient, and brave) Hardware: Unix, VMS, and DOS platforms (anything with ANSI C) Languages: C, C++, Fortran-77, Fortran-90, Ratfor, TeX; also, a language-independent mode. Formatter: LaTeX. Plain TeX may work, but is no longer supported. Availability: Anonymous ftp from: ftp.pppl.gov:/pub/fweb CTAN:/web/fweb LPA:/fweb DOS version in LPA:/machines/ms-dos Readme: In bundle with above. Description: It also has a well-developed user's manual and its own FAQ (see above). Beginning with 1.40, documentation is maintained in gnu texinfo format. It runs on most platforms: VMS, PC, UNIX, and pretty much anything that the GNU C compiler (GCC) is supported for. Features: + Processes multiple languages during a single run (so one can mix C and Fortran, for example). + Language-independent mode (v1.40). + Ability to turn off pretty-printing (v1.40). + Built-in Ratfor translator. + Built-in macro preprocessor (closely follows ANSI C, with extensions). + A style file that allows the user to adjust many parameters and behavior patterns of FWEB. + Various operator-overloading features that provide additional pretty-printing capabilities to languages such as C++ and Fortran-90. + Numerous miscellaneous features and command-line options. Support: Bug reports and suggestions to krommes@princeton.edu 8.10. IMPACT Developer: Timothy Larkin, from Levy/Knuth CWEB 3.1 Version: 1.0 Hardware: Macintosh; requires AppleEvents. Languages: C, C++ Formatter: TeX Availability: CTAN archives Readme: A short readme file is included in the SEA archive. Description: IMPACT implements CTangle from the Levy/Knuth CWEB 3.1. It operates as a foreground program, tangling files selected from the Mac File Picker. Or it can operate in the background, tangling files in response to odoc events sent by other applications, such as editors. Support: I welcome any reports of bugs. The product will be updated as new versions of the CWEB appear. Other features may be added as users suggest them. 8.11. lit2x Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/independent Readme: Unknown Description: None available Support: Unknown 8.12. Literate Programmer's Workshop (LPW) Developer: Norbert Lindenberg Version: 1.1 Hardware: Apple Macintosh Languages: C++, Object Pascal & others Formatter: self-contained WYSIWYG system Availability: Anonymous ftp from: LPA:/machines/mac CTAN:/web/lpw ftp.apple.com:/pub/literate.prog Readme: With bundle above. Also comes with 38-page manual. Description: The Literate Programming Workshop is an environment for the integrated development of program source text and documentation in combined documents. It consists of a WYSIWYG word processor based on a style sheet approach, a mechanism to extract parts of the text in a document, and a project management system that handles multi-document projects. The system is designed to be used in conjunction with the Macintosh Programmer's Workshop: it prepares raw source text for the MPW compilers, accepts MPW error messages, and shows them in the context of the original documents. Automatic indexing and hypertext features allow for easy access to both source text and documentation. LPW is shareware. Support: Bugs, problems, and questions to lpw@aol.com. 8.13. MapleWEB Developer: Unknown Version: Unknown Hardware: Unknown Languages: Maple Formatter: Unknown Availability: Anonymous ftp from: LPA:/maple Readme: Unknown Description: None Support: Unknown 8.14. MWEB (Schrod/Detig) Developer: Joachim Schrod Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. 8.15. MWEB (Sewell) Developer: Sewell Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. 8.16. noweb Developer: Norman Ramsey Version: 2.8 Hardware: Unix and DOS platforms (DOS binaries available for v2.7). Languages: All programming languages, singly or in combination. Automatic indexing for C, Icon, Pascal, Standard ML, TeX, Yacc Formatter: Plain TeX, LaTeX, and HTML formatters. Will convert LaTeX to HTML automatically. Availability: Anonymous ftp from: CTAN:/web/noweb LPA:/independent Last recourse, use ftp.cs.virginia.edu:pub/nr Readme: With bundle above, or see the noweb home page: http://www.cs.virginia.edu/~nr/noweb Those without ftp access can consult ``Literate Programming Simplified,'' IEEE Software, September 1994, pp97-105. Description: noweb is designed to meet the needs of literate programmers while retaining the simplest possible input format. 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. The primary sacrifice relative to WEB is that code is not prettyprinted. noweb supports indexing and identifier cross-reference, including hypertext ``hot links.'' noweb includes a simple, efficient LaTeX-to-HTML converter, so you can use hypertext browsers on your legacy documents. noweb can also process nuweb programs, so you can use noweb to convert a standard nuweb program to HTML with one command. Support: email to the author 8.17. nuweb Developer: Preston Briggs: preston@cs.rice.edu Version: 0.87 Hardware: Unix systems: Sparcs, RS/6000s, HPs; (!) MSDOS and Amiga. Languages: Any programming language or combination of programming languages. Formatter: Latex Availability: Anonymous ftp from: Unix: CTAN:/web/nuweb DOS: CTAN:/web/nuweb-pc LPA:/independent Amiga: CTAN:/web/nuweb/nuweb_ami Amiga: wuarchive.wustl.edu/pub/aminet Readme: Send mail to preston@cs.rice.edu Description: A single program that takes a web file written in a combination of latex and any programming language(s) and produces a latex file that can be pretty printed and a set of files containing code for compilation/interpretation by the appropriate language processors. Strengths include speed, simplicity, multiple languages, nice indices and cross-references, latex. Doesn't require any special macros or macro files. Drawbacks: latex-dependent, no code pretty printing, harder to make indices than cweb. More good stuff: nice support for make, doesn't reformat source files, so they're easy to debug. Lots of control without too much effort. That is, it doesn't do too much! Future directions... Very little change planned, except perhaps refinements in the indexing software. Support: Hack it yourself or send e-mail to preston@cs.rice.edu 8.18. ProTeX Developer: Eitan Gurari Version: ProTeX 1.1, AlProTeX 1.4 Hardware: Any platform with (La)TeX Languages: Any language Formatter: TeX or LaTeX Availability: Anonymous ftp from: ftp.cis.ohio-state.edu : pub/tex/osu/gurari/ LPA:/independent Readme: With bundle above Description: + Easy to use + Extensible + Language independent + Multiple output files + Fast (single compilation provides output and dvi files) + No installation is needed besides copying the files (written in TeX) Introduction of main features and examples in pub/tex/osu/gurari/LitProg Complete manual in Eitan M. Gurari, "TeX and LaTeX: Drawing and Literate Programming", McGraw-Hill, 1994 Support: gurari@cis.ohio-state.edu 8.19. RWEB Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/reduce Readme: Unknown Description: Web generator in AWK. Support: Unknown 8.20. SchemeWEB Developer: John D. Ramsdell Version: 2.1 Hardware: Unix and DOS platforms Languages: Any dialect of Lisp. Formatter: LaTeX. Availability: The Unix version is in the Scheme Repository and it is available via anonymous ftp from: cs.indiana.edu:/pub/scheme-repository/utl/schemeweb.sh LPA:/lisp CTAN:/tex-archive/web/schemeweb The DOS version is part of the PCS/Geneva Scheme system which is available via anonymous ftp from: cui.unige.ch:/pub/pcs LPA:/machines/ms-dos Readme: In bundle with above. Description: SchemeWEB is a Unix filter that allows you to generate both Lisp and LaTeX code from one source file. The generated LaTeX code formats Lisp programs in typewriter font obeying the spacing in the source file. Comments can include arbitrary LaTeX commands. SchemeWEB was originally developed for the Scheme dialect of Lisp, but it can easily be used with most other dialects. Support: Bug reports to ramsdell@mitre.org. 8.21. SpideryWEB Developer: Norman Ramsey Version: Unknown Hardware: Unix and DOS platforms Languages: Most Algol-like languages, including C, Ada, Pascal, Awk, and many others. Formatter: Plain TeX and latex for text formatters. Availability: Anonymous ftp from: CTAN LPA:/spiderweb Readme: In distribution. Description: A system for building language-dependent WEBs. Spider is frozen; no further development is planned. Support: Bug reports to spider-bugs@oracorp.com. 8.22. WEB Developer: Donald Knuth Version: Unknown Hardware: Unknown Languages: Pascal Formatter: TeX (of course! ;-) Availability: Anonymous ftp from: LPA:/pascal Readme: Unknown Description: This is the original software that started it all. The original TeX processor was written in WEB. Support: None known. 8.23. WinWordWEB Developer: Lee Wittenberg Version: Unknown Hardware: Needs Microsoft Word for Windows, v.2.x, and, of course, MS-Windows 3.x. Languages: Any programming language. Formatter: Word for Windows 2.x for text formatting and file maintenance. Availability: Anonymous ftp from: bart.kean.edu:pub/leew LPA:/machines/ms-dos World-Wide Web (WWW) Readme: WORDWEB.DOC in the downloadable package describes the system. Description: WinWordWEB is a set of a Word for Windows macros (plus a paragraph style) that provide a crude literate programming environment. The ``look and feel'' of the system is based on Norman Ramsey's noweb, but can easily be modified to suit individual tastes. Support: None. WinWordWEB was written as a prototype to see if a WYSIWYG literate programming system was possible. It is intended as a jumping off point for future work by others. However, the system is surprisingly usable as it stands, and the author is interested in hearing from users (satisfied and dissatisfied). Anyone interested in actively supporting (and improving) the product should contact the author via email. 9. Are there other tools I should know about? First of all, I'll list some not-quite-literate-programming tools. Some may consider these to be pretty-printers. Others may call them literate programming tools. In any event, they don't seem to be quite in the same category as the tools listed above, so I'll include them here. 9.1. C2LaTeX Developer: John D. Ramsdell Version: Unknown Hardware: Unix Languages: C Formatter: LaTeX but it's easy to change the formatter. Availability: Anonymous ftp from omnigate.clarkson.edu:/pub/tex/tex-programs/c2latex. Readme: Absent. Documentation is in the C source for c2latex. Description: C2latex provides simple support for literate programming in C. Given a C source file in which the comments have been written in LaTeX, c2latex converts the C source file into a LaTeX source file. It can be used to produce typeset listings of C programs and/or documentation associated with the program. C2latex produces LaTeX source by implementing a small number of rules. A C comment that starts at the beginning of a line is copied unmodified into the LaTeX source file. Otherwise, non-blank lines are surrounded by a pair of formatting commands (\begin{flushleft} and \end{flushleft}), and the lines are separated by \\*. Each non-blank line is formatted using LaTeX's \verb command, except comments within the line are formatted in an \mbox. Support: Send bug reports to ramsdell@mitre.org. 9.2. c2cweb Developer: Werner Lemberg Version: 1.5 Hardware: DOS, OS/2, Unix (gcc) - CWEB source included Languages: C, C++ Formatter: TeX Availability: Anonymous ftp from CTAN:/web/c_cpp/c2cweb Readme: In distribution. Description: c2cweb will transform plain C or C++ code into a CWEB file to get a pretty formatted output. A modified CWEAVE (which transforms the CWEB file into a TeX file, see below) is included also. Support: Werner Lemberg 9.3. c2man language: C, nroff, texinfo, latex, html package: c2man version: 2.0 patchlevel 33 parts: documentation generator (C -> nroff -man, -> texinfo, ->latex, -> html) author: Graham Stoney location: ftp from any comp.sources.misc archive, in volume42 (the version in the comp.sources.reviewed archive is obsolete) ftp /pub/Unix/Util/c2man-2.0.*.tar.gz from dnpap.et.tudelft.nl Australia: ftp /usenet/comp.sources.misc/volume42/c2man-2.0/* from archie.au N.America: ftp /usenet/comp.sources.misc/volume42/c2man-2.0/* from ftp.wustl.edu Europe: ftp /News/comp.sources.misc/volume42/c2man-2.0/* from ftp.irisa.fr Japan: ftp /pub/NetNews/comp.sources.misc/volume42/c2man-2.0/* from ftp.iij.ad.jp Patches: ftp pub/netnews/sources.bugs/volume93/sep/c2man* from lth.se description: c2man is an automatic documentation tool that extracts comments from C source code to generate functional interface documentation in the same format as sections 2 & 3 of the Unix Programmer's Manual. It requires minimal effort from the programmer by looking for comments in the usual places near the objects they document, rather than imposing a rigid function-comment syntax or requiring that the programmer learn and use a typesetting language. Acceptable documentation can often be generated from existing code with no modifications. conformance: supports both K&R and ISO/ANSI C coding styles features: + generates output in nroff -man, TeXinfo, LaTeX or HTML format + handles comments as part of the language grammar + automagically documents enum parameter & return values + handles C (/* */) and C++ (//) style comments - doesn't handle C++ grammar (yet) requires: yacc/byacc/bison, lex/flex, and nroff/groff/texinfo/LaTeX. ports: Unix, OS/2, MSDOS, VMS. portability: very high for unix, via Configure status: actively developed; contributions by users are encouraged. discussion: via a mailing list: send "subscribe c2man " (in the message body) to listserv@research.canon.oz.au help: from the author and other users on the mailing list: c2man@research.canon.oz.au announcements: patches appear first in comp.sources.bugs, and then in comp.sources.misc. updated: 1994/10/07 9.4. cnoweb Developer: Jim Fox Version: 1.4 (January 4, 1991) Hardware: Anything with C and TeX. Languages: C Formatter: Plain TeX. Availability: Anonymous ftp from: CTAN LPA:/c.c++ Readme: Unknown, cnoweb.tex contains documentation. Description: cnoweb is as it's name describes: write C, not web. No tangling or weaving is implemented. Documentation (between standard /* */ delimiteres) is written in TeX. cnoweb provides typesetting of documentation, an table of contents of routines, and pretty-printing of C source. Support: None known. 9.5. Fold2Web Developer: Bernhard Lang Version: V0.8 Hardware: MSDOS Languages: All (must allow comment lines) Formatter: LaTeX Availability: Anonymous ftp from: kirk.ti1.tu-harburg.de (134.28.41.50) /pub/fold2web/readme /pub/fold2web/fold2web.zip Readme: In distribution Description: The idea behind the Fold2Web tool is the following: A programmer can write his program source with a folding editor and later map the folded source files automatically to WEB-files. The generated WEB-files can then be modified by inserting required documentations. The advantage by starting program developement with original sources is to get short design cycles during the compile/debug steps. By using a folding editor the global structuring information can be already captured in folds during this developement phase. Fold information is typically stored in comment lines and thus will not affect the efficiency of the compile/debug design cycle. Some folding editors and a folding mode for the emacs are available (e.g. see our FUE folding editor for MSDOS machines which is a modified micro emacs. Pick it at kirk in directory /pub/fold2web). After reaching a stable version of a program source its time to convert the source file to a WEB-file and do the program documentation. Fold2Web is written to convert folded source text of any programming language to nuweb files. The folded structure is kept by mapping folds to scraps. Fold markers which differ between languages due to different ways of specifying comments can be configured for each language. Good results can also achived when given but poor documented program sources have to be modified. Such sources can be folded using a folding editor to extract the global structures. This offers a global view to the program structures and help to understand its functionality. Furthermore the program code is not affected, only comment lines are inserted. Once folded the program source can be automatically translated to a WEB document using the above tool. Support: email to lang@tu-harburg.d400.de 9.6. Funnelweb Mode Developer: Daniel Simmons Version: Unknown Availability: http://www.miscrit.be/~ddw Description: The other day I did a quick hack to nuweb.el as included with the nuweb distribution so as to make a funnelweb-mode.el. I've only used it briefly, and I'm sure that it can be improved quite a bit. I've been thinking about adding support for folding on sections, a pull-down menu to select macro definitions (like the recent functions posted to gnu.emacs.sources for a C function definition pull-down menu) and some kind of tags support for funnelweb. Support: Unknown 9.7. noweb.el Developer: Bruce Stephens Version: Unknown. Availability: LitProg archives (in an email message). Description: This is a very simple mode I just hacked up. There's a lot wrong with it, but I thought others may be interested, even as it stands. It *requires* text properties, and assumes those used in GNU Emacs 19.22; it'll quite likely work with Lucid Emacs, but I haven't tried it. I use it with auctex8.1 and cc-mode 3.229, both of which are loaded separately (I think my emacs is dumped with them, in fact). The idea is to have one mode (which calls itself c-mode, but actually has LaTeX-mode keybindings) generally (this means that the code is hilighted nicely), and have the code chunks use a different keymap. Support: Email to bruce@liverpool.ac.uk 9.8. nuweb.el Developer: Dominique de Waleffe Version: 1.99 Availability: Anonymous ftp from: LPA CTAN Description: Provides a major mode extending Auctex for editing nuweb files. Main features (in 2.0): - Edit scrap bodies in a separate buffer in a different mode (selected using emacs defaults for files, specific indication -*-mode-*-, or a buffer-local variable) - Extends Auctex commands so that nuweb is called before LaTeX, - Easy navigation on scrap definition and use points. - Now creates an imenu (C-M-mouse1) with user index entries, macro definition positions and file definition positions. Support: Email to ddw@acm.org 9.9. TIE Developer: Unknown Version: Unknown Hardware: Unknown Availability: Anonymous ftp from: LPA:/Tools Readme: Unknown Description: This software merges change files. Support: Unknown 9.10. Web mode Developer: Bart Childs Version: Unknown Tools supported: web, fweb, cweb, funnelweb Availability: Anonymous ftp from ftp.cs.tamu.edu:pub/tex-web/web/EMACS.web-mode thrain.anu.edu.au:pub/web/EMACS.web-mode Description: This version works with versions 18 and 19 of Emacs to be best of my knowledge. I have cleaned up a number of documentation items ... In the same directory is wm_refcard.tex which is an edited version of the famous one to include some web-mode commands. The files limbo* are related to its use and notice that half them have an uppercase L in them for LaTeX. The setup is based upon the fact that we (I am not alone here) primarily use FWEB for C and Fortran programming. We are using version 1.40 of FWEB although John Krommes warns that it is not mature and the manual is not yet updated. The info files are! We are using LaTeX almost exclusively. That will likely change and we will revert to version 1.30 if the final form of 1.40 cannot return to the simple section numbers and avoid the HORRIBLE LATEX 0.1.7.2.4.6 type section numbers. Support: Unknown 10. What other resources are available? 10.1. World Wide Web An untapped resource (by me anyway ;-) is the World Wide Web. Marcus Speh has expended considerable effort in this regard. If you're connected to WWW, then access: http://info.desy.de:80/user/projects/LitProg.html If you aren't connected to WWW, telnet to info.cern.ch and explore. You can reach Marcus' literate programming pages by typing: go http://info.desy.de:80/user/projects/LitProg.html or use a WWW browser and access the URL ftp://rtfm.mit.edu/pub/usenet/news-answers/www/resources/literate-programming Help for people who have only Email and neither WWW nor telnet, can be obtained by Email from TEST-LIST@INFO.CERN.CH by sending a message, SEND , for example, SEND http://info.desy.de:80/user/projects/LitProg.html to retrieve the LitProg library page. A help file can be retrieved by sending a message to the list server above with the text HELP in the body of the message. Instructions will be returned by email. For literate programming documents, you can try anonymous ftp to rtfm.mit.edu and retrieve the official Usenet resource file /pub/usenet/news.answers/www/resources/literate-programming 10.2. TeX Resources Another resource of interest to literate programmers is the comp.text.tex newsgroup. If you're using (La)TeX as your typsetting system and have access to internet, then you should investigate this resource. Another reason the TeX resources should be important is that so many of the literate programming tools rely on either plain TeX or LaTeX as their text formatter. (La)TeX software systems exist for most computing platforms. These systems can be found on CTAN and other major archive sites. Use archie to find them or simply ftp to one of the CTAN sites and browse. 11. Are there any code examples? Examples of web programs are included with the FWEB, CWEB, and noweb distributions. nuweb is written in itself. Cameron Smith converted the K&R calculator program into a literate program. It can be retrieved by anonymous ftp from: niord.shsu.edu [192.92.115.8] directory kr-cweb-sample as krcwsamp.zip or from LPA/Documentation Ross Williams has released a funnelweb example. You can retrieve this file from node ftp.adelaide.edu.au 129.127.40.3 as /pub/funnelweb/examples/except.* This file should be on CTAN as well. Lee Wittenberg has posted a few litprog examples. They are available via anonymous ftp from: ftp://samson.kean.edu/pub/leew/samples.LP The Stanford GraphBase is a large collection of programs by Don Knuth for doing all kinds of computations and games with graphs; it is writ- ten in (Levy/Knuth) CWEB. More details in the distribution. It is available via anonymous ftp from: labrea.stanford.edu:/pub/sgb 12. Bibliographies Nelson Beebe has collected an extensive bibliography treating literate programming. His work is available for anonymous ftp from ftp.math.utah.edu 128.110.198.2 in directory /pub/tex/bib as files: litprog.bib litprog.ltx litprog.twx. Although I have not verified this, LPA is an alternate source for these files. Note that they are updated frequently (Nelson says sev- eral times each week), so be sure to get a fresh copy before extensive use. Joachim Schrod indicates that these files may be updated daily and can be retrieved via anonymous ftp at LPA/documentation. 13. How to anonymously ftp Pretty much everything mentioned here is available by anonymous FTP. FAQ lists cross-posted to news.answers and rec.answers can be gotten from rtfm.mit.edu 18.181.0.24, under /pub/usenet/news.answers or under /pub/usenet/more.specific.group.name "anonymous FTP" is just a way for files to be stored where anyone can retrieve them over the Net. For example, to retrieve the latest version of the literate programming FAQ, do the following: > ftp rtfm.mit.edu /* connect to the site; message follows */ > anonymous /* type this when it asks for your name */ > /* type your address as the password */ > cd /pub/usenet /* go to the directory you want to be */ > cd comp.programming.literate /* one level down (no slash). */ > dir /* look at what's there */ > get literate-progamming-faq /* get the file; case-sensitive */ > quit /* stop this mysterious thing */ If your FTP program complains that it doesn't know where the site you want to use is, type the numerical address instead of the sitename: > ftp 18.181.0.24 /* connect with numerical address */ If you don't have ftp access, send e-mail to mail-server@rtfm.mit.edu with the single word "help" in the body of the message. Getting binary files (executables, or any compressed files) is only slightly more difficult. You need to set binary mode inside FTP before you transfer the file. > binary /* set binary transfer mode */ > ascii /* set back to text transfer mode */ FAQs and spoiler lists are generally ascii files; everything else is generally binary files. Some common extensions on binary files in archive sites are: .Z Compressed; extract with uncompress .tar.Z Compressed 'tape archive'; uncompress then untar or tar -xvf .gz or .z Gnu gzip; use gunzip (available from prep.gnu.ai.mit.edu) .sit (Mac) StufIt archive .zip Extract with Zip or Unzip .zoo Yet another archive/compress program .lhe (Amiga) ? .lzh Lha archive program. .arj (PC) Arj archive program. .exe (PC) Sometimes self-extracting archives-just execute them. .uue or .UUE Transfer as text file; use uudecode to convert to binary .hqx (Mac) BinHex format; transfer in text mode Generic help can be found in the FAQs of comp.binaries. for how to transfer, extract, and virus-check binary files. (At rtfm.mit.edu) If you can't FTP from your site, use one of the following ftp-by-mail servers: ftpmail@decwrl.dec.com ftpmail@src.doc.ic.ac.uk ftpmail@cs.uow.edu.au ftpmail@grasp.insa-lyon.fr For complete instructions, send a message reading "help" to the server. If you don't know exactly what you're looking for, or exactly where it is, there are programs and servers that can help you. For more info, send e-mail to mail-server@rtfm.mit.with with the body of the message reading send usenet/news.answers/finding-sources Thanks to Aliza R. Panitz (the "buglady") for this text. I copied it verbatim from her post on faq-maintainers with only minor modifications. 14. Acknowledgements This document would not have happened without the help of many people. Among them are Marcus Speh, George Greenwade, Rob Beezer, Joachim Schrod, Piet van Oostrum, and Ross N. Williams. A special thanks to Aliza R. Panitz for the text describing how to execute an anonymous ftp for files of interest. Any omissions from these acknowledgements should be considered an act of stupidity on my part. Of course, the authors of literate programming tools mentioned above all play a vital role in the vitality of literate programming. Furthermore, participants in the comp.programming.literate newsgroup (and associated mailing list) all contributed in various fashions. Thank all of you. 15. End notes This document will continue to evolve. I'm planning on adding entries for additional literate programming tools and will expand the sections on examples as more examples become available. Tools I will include are WEB (the original pascal version) for starters. Others will be added as I find and document them. Omission of a particular tool should not be considered a snub in any sense--simply an error or oversight on my part. 11-Sep-1997 14:47:42-GMT,1319;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id IAA07752 for ; Thu, 11 Sep 1997 08:47:41 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 11 Sep 1997 09:35:25 EST From: jshu524@aol.com (Jshu524) Reply-To: LitProg@SHSU.edu, jshu524@aol.com Subject: Jasmine needs your help! :-( Date: 11 Sep 1997 14:35:18 GMT Message-ID: <19970911143500.KAA27427@ladder01.news.aol.com> To: LitProg@SHSU.edu Hi, Everybody, I made a terrible mistake last week, as I tried to send our clients our my project code, due to the size and speed, I zipped the code and emailed it, then today, when I try to work on it, I forgot my password, I was so stupid that I didn't write it down. I used pkzipw (window application) with a password, could anybody tell me how I can write a test program to unzip it, the password was a 4 character word, so it won't take a long time, but I just don't want to key into the window every time. I tried Dos pkunzip.exe, I got encryped files warning and it would not unzip it. I need your help please! Truly Jasmine 11-Sep-1997 14:49:48-GMT,1318;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id IAA07781 for ; Thu, 11 Sep 1997 08:49:47 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 11 Sep 1997 09:35:32 EST From: jshu524@aol.com (Jshu524) Reply-To: LitProg@SHSU.edu, jshu524@aol.com Subject: Jasmine needs your help! :-( Date: 11 Sep 1997 14:35:40 GMT Message-ID: <19970911143500.KAA03703@ladder02.news.aol.com> To: LitProg@SHSU.edu Hi, Everybody, I made a terrible mistake last week, as I tried to send our clients our my project code, due to the size and speed, I zipped the code and emailed it, then today, when I try to work on it, I forgot my password, I was so stupid that I didn't write it down. I used pkzipw (window application) with a password, could anybody tell me how I can write a test program to unzip it, the password was a 4 character word, so it won't take a long time, but I just don't want to key into the window every time. I tried Dos pkunzip.exe, I got encryped files warning and it would not unzip it. I need your help please! Truly Jasmine 11-Sep-1997 17:24:54-GMT,1265;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id LAA11437 for ; Thu, 11 Sep 1997 11:24:53 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 11 Sep 1997 12:05:58 EST From: jshu524@aol.com (Jshu524) Reply-To: LitProg@SHSU.edu, jshu524@aol.com Subject: Could you please help a girl in Pkunzip? Date: 11 Sep 1997 17:00:38 GMT Message-ID: <19970911170000.NAA11192@ladder02.news.aol.com> To: LitProg@SHSU.edu Hi, guys, I zipped my files when I sent them to our clients through Email, then I forgot the password, it was a 4-character word, now in DOS, if I use the command "pkunzip -v", I can still see their names, sizes, extensions... if I use "pkunzip -s", then it asks for password, if I key in something, it says, "incorrect password, skipping encrypted files,error(11) and warning". Could you please give me some advice to by-pass the password or how can I write a program to test the correct password, it is only 4 characters. Thank you very much for your help. Jasmine 11-Sep-1997 17:34:31-GMT,1264;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id LAA11599 for ; Thu, 11 Sep 1997 11:34:26 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 11 Sep 1997 12:06:03 EST From: jshu524@aol.com (Jshu524) Reply-To: LitProg@SHSU.edu, jshu524@aol.com Subject: Could you please help a girl in Pkunzip? Date: 11 Sep 1997 17:00:18 GMT Message-ID: <19970911170000.NAA05083@ladder01.news.aol.com> To: LitProg@SHSU.edu Hi, guys, I zipped my files when I sent them to our clients through Email, then I forgot the password, it was a 4-character word, now in DOS, if I use the command "pkunzip -v", I can still see their names, sizes, extensions... if I use "pkunzip -s", then it asks for password, if I key in something, it says, "incorrect password, skipping encrypted files,error(11) and warning". Could you please give me some advice to by-pass the password or how can I write a program to test the correct password, it is only 4 characters. Thank you very much for your help. Jasmine 11-Sep-1997 17:34:31-GMT,1264;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id LAA11599 for ; Thu, 11 Sep 1997 11:34:26 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 11 Sep 1997 12:06:03 EST From: jshu524@aol.com (Jshu524) Reply-To: LitProg@SHSU.edu, jshu524@aol.com Subject: Could you please help a girl in Pkunzip? Date: 11 Sep 1997 17:00:18 GMT Message-ID: <19970911170000.NAA05083@ladder01.news.aol.com> To: LitProg@SHSU.edu Hi, guys, I zipped my files when I sent them to our clients through Email, then I forgot the password, it was a 4-character word, now in DOS, if I use the command "pkunzip -v", I can still see their names, sizes, extensions... if I use "pkunzip -s", then it asks for password, if I key in something, it says, "incorrect password, skipping encrypted files,error(11) and warning". Could you please give me some advice to by-pass the password or how can I write a program to test the correct password, it is only 4 characters. Thank you very much for your help. Jasmine 12-Sep-1997 0:30:32-GMT,1264;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id SAA20790 for ; Thu, 11 Sep 1997 18:30:29 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 11 Sep 1997 12:06:08 EST From: jshu524@aol.com (Jshu524) Reply-To: LitProg@SHSU.edu, jshu524@aol.com Subject: Could you please help a girl in Pkunzip? Date: 11 Sep 1997 17:00:58 GMT Message-ID: <19970911170000.NAA05115@ladder01.news.aol.com> To: LitProg@SHSU.edu Hi, guys, I zipped my files when I sent them to our clients through Email, then I forgot the password, it was a 4-character word, now in DOS, if I use the command "pkunzip -v", I can still see their names, sizes, extensions... if I use "pkunzip -s", then it asks for password, if I key in something, it says, "incorrect password, skipping encrypted files,error(11) and warning". Could you please give me some advice to by-pass the password or how can I write a program to test the correct password, it is only 4 characters. Thank you very much for your help. Jasmine 12-Sep-1997 22:21:30-GMT,1529;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id QAA16728 for ; Fri, 12 Sep 1997 16:21:28 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 12 Sep 1997 16:54:00 EST From: "Information" Reply-To: LitProg@SHSU.edu, information@ldesign.com Subject: Advanced ONLINE TRAINING for Professional Developers Date: 12 Sep 1997 21:47:08 GMT Message-ID: <01bcbfc3$f8755be0$0f00a8c0@tan.ldesign.com> To: LitProg@SHSU.edu Check out the newest ONLINE TRAINING in C++, MFC, COM, ATL, DCOM, ActiveX, 32 bit Windows, ODBC and Java for serious development. Visit our site http://www.ldesign.com for an amazing offering. This site trains you in over 150 red-hot development subjects. There are over 5,000 pages of well organized, concise material with 100s of hands-on, downloadable labs and 1,000s of detailed, up-to-date code examples. All this comes at an unbeatable price - far less than books and CDs or regular classes - with terrific convenience. Available nowhere else, this is one unique opportunity to expand your horizons with the help of the most experienced, advanced developer training company in existence. It's also totally cool... see for yourself at http://www.ldesign.com! Maureen & Vicky Online Education Reps 13-Sep-1997 15:38:09-GMT,1594;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id JAA05023 for ; Sat, 13 Sep 1997 09:38:08 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sat, 13 Sep 1997 10:27:36 EST From: jorn@MCS.COM (Jorn Barger) Reply-To: LitProg@SHSU.edu, jorn@MCS.COM Subject: Programming branches as hypertext? Date: 13 Sep 1997 15:22:53 GMT Message-ID: <5veb4d$alr$1@elna.ethz.ch> To: LitProg@SHSU.edu [moderator, does c.p.l allow xposts? if not, i'll have to recopy the a.h side.] [[ Crossposting is certainly not disallowed by the charter, and AFAIK, our software supports it, too -- M. Neeracher, moderator ]] Has anyone in the literate-programming community explored representing program branches as hypertext links? (Note to alt.hypertext readers: 'literate programming' is a movement to replace programmers' source code with something more like a well- written document explaining how that code works, with the actual code confined to small blocks embedded in each page ...I think. ;^/ In HTML, two-way branches could be simple links, and multiple-case branches could be the pop-up menu type... I've seen hypertext theorists complaining (pre-cookies) that the WWWeb doesn't remember its 'state'... but I don't have a clear picture of how these two realms overlap, in theory. Has anyone got a simple explanation? j 13-Sep-1997 19:33:19-GMT,1057;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id NAA08780 for ; Sat, 13 Sep 1997 13:33:18 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sat, 13 Sep 1997 14:27:24 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: Programming branches as hypertext? Date: 13 Sep 1997 19:10:52 GMT Message-ID: <5veofs$ofm$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu In article <5veb4d$alr$1@elna.ethz.ch>, Jorn Barger wrote: >Has anyone in the literate-programming community explored representing >program branches as hypertext links? I believe Kasper Osterbye has done this (with Smalltalk) and maybe a few other people as well. Look in IEEE TSE and I'd also try a search on 'hypertext' and 'smalltalk'. Norman 14-Sep-1997 1:52:32-GMT,1895;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id TAA15055 for ; Sat, 13 Sep 1997 19:52:30 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sat, 13 Sep 1997 20:41:59 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Noweb in Linux Journal, October 1997 Date: 14 Sep 1997 01:24:31 GMT Message-ID: <5vfecf$5jb$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu The latest Linux Journal (October 1997), which I have just received, has a short article on noweb by Andrew and Brad Johnson. In honor of that article, I've released a new version of noweb, including a Linux binary distribution, which is available from the noweb home page at http://www.cs.virginia.edu/~nr/noweb. This release fixes a number of bugs people have complained of (see below). Be warned that the LJ article contains a grievously consistent printing error, and that the noweb syntax remains <> and not < as shown in the article. Version 2.8a should hit CTAN in a day or two. Norman CHANGES FOR NOWEB VERSION 2.8a noweave complains if you use -x with -index or -indexfrom installation now includes noweb-mode.el noroots no longer treats uses in quoted code as real uses (David Bruce) file INSTALL now notes that 'awkname' is always needed (Robert Solovay) file INSTALL now notes that texhash(1) may be needed (Robert Solovay) mnt (noweb script) now complains about chunks named <<*>> (Robert Solovay) lots of rcs identifiers and names everywhere all man pages should carry version numbers Use Stephen Parker's htmltoc, with many bug fixes and improvements. 14-Sep-1997 21:54:39-GMT,1726;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id PAA04715 for ; Sun, 14 Sep 1997 15:54:37 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 14 Sep 1997 16:42:18 EST From: info@pgrs.com Reply-To: LitProg@SHSU.edu, info@PGRS.COM Subject: WANT A FREE PAGER? LOOK HERE! Date: 13 Sep 97 22:51:41 GMT Message-ID: <341b18fd.0@news.west-tech.com> To: LitProg@SHSU.edu ******************************************************** FREE MOTOROLA PAGERS OR SEIKO MESSAGE WATCH!!! CALL 1-800-784-6452 CERTIFICATE #4248000 NO CREDIT CHECKS NO CONTRACTS NO HASSLE MANY TO CHOOSE FROM! $80-$150 VALUE! Sign activation required after month is up you cancel and KEEP THE PAGER!! ****************CALL 1-800-784-6452 CERTIFICATE #4248000************** *****Motorola Pronto Flex***** Motorola Express Extra Flex -16 number mem, clock, vibration, time stamps, and many colors avail!! *****Seiko Message Watch***** -buitl in pager, weather,sports,stocks,lotto,ski, and other info!! time zone correction and many other features!! *****Motorola Email Pager***** -instant email from ANY ISP!! Has own email address and telepone number,Tons more features! *****NEW Motoroal Voice Mail Pager***** -instant voice mail messages! Up to 4 minutes recording time! Has full features of a answering machine! 10 volume setting and tons other features! MANY OTHERS TO CHOSE FROM JUST ASK!!! ******************CALL 1-800-784-6452 CERTIFICATE #4248000************* 15-Sep-1997 10:18:02-GMT,1639;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id EAA17693 for ; Mon, 15 Sep 1997 04:18:01 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 15 Sep 1997 05:07:24 EST From: M.J.Rooney@wbmt.tudelft.nl (Marco Rooney) Reply-To: LitProg@SHSU.edu, M.J.Rooney@wbmt.tudelft.nl Subject: Re: Programming branches as hypertext? Date: Mon, 15 Sep 1997 19:01:25 GMT Message-ID: <341d84d4.4113168@news.tudelft.nl> To: LitProg@SHSU.edu Norman Ramsey wrote: >In article <5veb4d$alr$1@elna.ethz.ch>, Jorn Barger wrote: >>Has anyone in the literate-programming community explored representing >>program branches as hypertext links? > >I believe Kasper Osterbye has done this (with Smalltalk) and maybe a >few other people as well. Look in IEEE TSE and I'd also try a search >on 'hypertext' and 'smalltalk'. There is a very interesting project going on at the University of Linz. It's called reverse literate programming and in my opinion it has everything literate programming would need. It uses the Oberon(-2) operating system and programming language. Check out this link: http://oberon.ssw.uni-linz.ac.at/Projects/RevLitProg.html If you want to know more about Oberon(-2): http://www.math.tau.ac.il/~laden/Ob-pkgs.html Marco. --------------------------- Marco Rooney M.J.Rooney@wbmt.tudelft.nl --------------------------- 15-Sep-1997 15:30:20-GMT,1433;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id JAA23352 for ; Mon, 15 Sep 1997 09:30:19 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 15 Sep 1997 10:07:43 EST From: jackal@bmdpc5.cbt.nist.gov (Ken Snyder) Subject: [Q] Version Control. Date: 15 Sep 1997 14:59:29 GMT Message-ID: <5vjigh$3b6$1@murdoch.acc.Virginia.EDU> Reply-To: LitProg@SHSU.edu, kenneth.snyder@nist.gov To: LitProg@SHSU.edu This question may be beyond the bounds of the literate programming news group and may be more appropriate elsewhere: I am currently editing a single noweb file from which I will extract source files to be compiled on a number of different computer platforms. The program is not yet finished, and I must work on the noweb file both at work and at home. Also, my other duties at work prevent me from working on the program every day. My problem is ensuring that the version I have with me at the time, either at home or at work, is the most recent one . By constraint, I am forced to "sneaker net" the file on floppy between home and work, and I cannot edit the file on the work computer from home. Any suggestions? Ken Snyder NIST 15-Sep-1997 17:31:44-GMT,2342;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id LAA26083 for ; Mon, 15 Sep 1997 11:31:40 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from csc-sun.math.utah.edu by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 15 Sep 1997 11:19:35 EST Received: from plot79.math.utah.edu (beebe@plot79.math.utah.edu [128.110.198.3]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id KAA24461; Mon, 15 Sep 1997 10:21:05 -0600 (MDT) From: "Nelson H. F. Beebe" Reply-To: LitProg@SHSU.edu, beebe@math.utah.edu Received: (from beebe@localhost) by plot79.math.utah.edu (8.8.5/8.8.5) id KAA13017; Mon, 15 Sep 1997 10:21:04 -0600 (MDT) Date: Mon, 15 Sep 1997 10:21:04 -0600 (MDT) To: LitProg@SHSU.edu, kenneth.snyder@nist.gov CC: beebe@math.utah.edu, LitProg@SHSU.edu Subject: Re: [Q] Version Control. Message-ID: >> My problem is ensuring that the version I have with me >> at the time, either at home or at work, is the most recent one. Some of our users have found a reasonable solution to this: buy two IOmega ZIP drives (about $100 each), and keep your files on a master ZIP disk (cost $10) which you move back and forth between home and office, in a kind of sneakernet travelling file system. These disks hold 100MB, which is quite enough for many software development projects. For smaller projects, a floppy disk is a cheaper alternative. In either case, I'd set up a script on each end to make copies of the software onto hard disk, because I don't trust removable media very much. However, the master copy resides on the media you carry in your shirt pocket. ======================================================================== Nelson H. F. Beebe Tel: +1 801 581 5254 Center for Scientific Computing FAX: +1 801 581 4148 University of Utah Internet e-mail: beebe@math.utah.edu Department of Mathematics, 105 JWB URL: http://www.math.utah.edu/~beebe 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090, USA ======================================================================== 15-Sep-1997 18:38:06-GMT,2517;000000000001 Received: from turbo.kean.edu (TURBO.Kean.EDU [131.125.1.1]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id MAA27579 for ; Mon, 15 Sep 1997 12:37:58 -0600 (MDT) Received: from SAMSON.KEAN.EDU by turbo.kean.edu; (5.65v3.0/1.1.8.2/08Feb95-0139PM) id AA31386; Mon, 15 Sep 1997 14:38:52 -0400 Received: from moses.kean.edu by samson.kean.edu (5.x/SMI-SVR4) id AA06181; Mon, 15 Sep 1997 14:33:41 -0400 Received: from localhost (leew@localhost) by moses.kean.edu (8.8.5/8.8.5) with SMTP id OAA20372; Mon, 15 Sep 1997 14:41:22 -0400 Date: Mon, 15 Sep 1997 14:41:22 -0400 (EDT) From: Lee Wittenberg To: "comp.programming.literate" , beebe@math.utah.edu Subject: Re: [Q] Version Control. In-Reply-To: Message-Id: Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Mon, 15 Sep 1997, Nelson H. F. Beebe wrote: > >> My problem is ensuring that the version I have with me > >> at the time, either at home or at work, is the most recent one. > > Some of our users have found a reasonable solution to this: buy > two IOmega ZIP drives (about $100 each), and keep your files on > a master ZIP disk (cost $10) which you move back and forth between > home and office, in a kind of sneakernet travelling file system. > These disks hold 100MB, which is quite enough for many software > development projects. For smaller projects, a floppy disk is > a cheaper alternative. In either case, I'd set up a script on > each end to make copies of the software onto hard disk, because > I don't trust removable media very much. However, the master > copy resides on the media you carry in your shirt pocket. If the ZIP drive is external, you can even carry it around. IOmega sells carrying cases, but I find that a canvas tote bag works fine for my Jaz drive (about the same size and weight as the ZIP). -- Lee ------------------------------------------------------------------------ Lee Wittenberg | O God, send me a plan, just one little Computer Science Department | idea, I don't want You to do a miracle, Kean College of New Jersey | I'll do all the work if only You'll give Union, NJ 07083 | me an idea. | -- Manning Coles leew@samson.kean.edu | "Drink to Yesterday" (1940) ------------------------------------------------------------------------ 15-Sep-1997 19:38:26-GMT,1657;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id NAA29049 for ; Mon, 15 Sep 1997 13:38:25 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 15 Sep 1997 13:23:09 EST From: M.J.Rooney@wbmt.tudelft.nl (Marco Rooney) Subject: Re: Programming branches as hypertext? Date: 15 Sep 1997 17:57:06 GMT Message-ID: <5vjsti$92u$1@murdoch.acc.Virginia.EDU> Reply-To: LitProg@SHSU.edu, LitProg@SHSU.edu, M.J.Rooney@wbmt.tudelft.nl To: LitProg@SHSU.edu Norman Ramsey wrote: >In article <5veb4d$alr$1@elna.ethz.ch>, Jorn Barger wrote: >>Has anyone in the literate-programming community explored representing >>program branches as hypertext links? > >I believe Kasper Osterbye has done this (with Smalltalk) and maybe a >few other people as well. Look in IEEE TSE and I'd also try a search >on 'hypertext' and 'smalltalk'. There is a very interesting project going on at the University of Linz. It's called reverse literate programming and in my opinion it has everything literate programming would need. It uses the Oberon(-2) operating system and programming language. Check out this link: http://oberon.ssw.uni-linz.ac.at/Projects/RevLitProg.html If you want to know more about Oberon(-2): http://www.math.tau.ac.il/~laden/Ob-pkgs.html Marco. --------------------------- Marco Rooney M.J.Rooney@wbmt.tudelft.nl --------------------------- 15-Sep-1997 20:51:00-GMT,2294;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id OAA00644 for ; Mon, 15 Sep 1997 14:50:50 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 15 Sep 1997 14:05:36 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@samson.kean.edu Subject: Re: [Q] Version Control. Date: 15 Sep 1997 18:37:10 GMT Message-ID: <5vjv8m$af5$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: LitProg@SHSU.edu On Mon, 15 Sep 1997, Nelson H. F. Beebe wrote: > >> My problem is ensuring that the version I have with me > >> at the time, either at home or at work, is the most recent one. > > Some of our users have found a reasonable solution to this: buy > two IOmega ZIP drives (about $100 each), and keep your files on > a master ZIP disk (cost $10) which you move back and forth between > home and office, in a kind of sneakernet travelling file system. > These disks hold 100MB, which is quite enough for many software > development projects. For smaller projects, a floppy disk is > a cheaper alternative. In either case, I'd set up a script on > each end to make copies of the software onto hard disk, because > I don't trust removable media very much. However, the master > copy resides on the media you carry in your shirt pocket. If the ZIP drive is external, you can even carry it around. IOmega sells carrying cases, but I find that a canvas tote bag works fine for my Jaz drive (about the same size and weight as the ZIP). -- Lee ------------------------------------------------------------------------ Lee Wittenberg | O God, send me a plan, just one little Computer Science Department | idea, I don't want You to do a miracle, Kean College of New Jersey | I'll do all the work if only You'll give Union, NJ 07083 | me an idea. | -- Manning Coles leew@samson.kean.edu | "Drink to Yesterday" (1940) ------------------------------------------------------------------------ 16-Sep-1997 5:00:06-GMT,3274;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id XAA10102 for ; Mon, 15 Sep 1997 23:00:04 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from indy03.cs.monash.edu.au by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 15 Sep 1997 23:47:24 EST Received: from localhost (ajh@localhost) by indy03.cs.monash.edu.au (8.7.6/8.6.9) with SMTP id OAA16315; Tue, 16 Sep 1997 14:48:43 +1000 (EST) Message-ID: <199709160448.OAA16315@indy03.cs.monash.edu.au> To: LitProg@SHSU.edu, kenneth.snyder@nist.gov Subject: Re: [Q] Version Control. MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 16 Sep 1997 14:48:42 +1000 From: John Hurst Reply-To: LitProg@SHSU.edu, ajh@cs.monash.edu.au > This question may be beyond the bounds of the literate programming news > group and may be more appropriate elsewhere: > > I am currently editing a single noweb file from which I will extract > source files to be compiled on a number of different computer platforms. The > program is not yet finished, and I must work on the noweb file both at work > and at home. Also, my other duties at work prevent me from working on the > program every day. My problem is ensuring that the version I have with me > at the time, either at home or at work, is the most recent one . By > constraint, I am forced to "sneaker net" the file on floppy between home > and work, and I cannot edit the file on the work computer from home. I have exactly this problem, and the solution I use relies upon having a ppp connection between home and work. If you can remotely mount your work file system at home, I have a small shell script that does a "synch" between the work file system and the home file system, copying the most recently modified file over the older file. Very much modelled on the "synchronize" program I also use on my macintosh, for making portable and desk based file systems up-to-date. All you do is type "synch file" at the start and end of any editing. If you can't remote mount the file system, I have another program, a perl script, which does the same thing, but uses ftp to copy the files about. This was derived from the "mirror.pl" program by Lee McLoughlin. It's not as convenient to use, and there are one or two bugs still ... I handle the different files scenario by using one nutweb file, with command line macro parameters (a bit like the conditional feature of noweb). See my recent post, or grab a copy from http://www.cs.monash.edu.au /~ajh/research/literate/ (version 1.12 is the latest) Drop me a line if you want further details. --John Hurst -- Associate Dean (Teaching), Faculty of Computing & Information Technology -- Associate Professor, Department of Computer Science --rm 110/26, Computer Science, Monash, Clayton VIC 3168 ~ ~~~&#: --ajh@cs.monash.edu.au _..___ ---____@___H__ --+61 3 9905 5192 (fax +61 3 9905 5146) |_____[_|_________[__]_ --http://www.cs.monash.edu.au/~ajh oo oo oo O--O--O o=o 15-Sep-1997 16:21:05-GMT,2084;000000000001 Received: from plot79.math.utah.edu (beebe@plot79.math.utah.edu [128.110.198.3]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id KAA24461; Mon, 15 Sep 1997 10:21:05 -0600 (MDT) From: "Nelson H. F. Beebe" Received: (from beebe@localhost) by plot79.math.utah.edu (8.8.5/8.8.5) id KAA13017; Mon, 15 Sep 1997 10:21:04 -0600 (MDT) Date: Mon, 15 Sep 1997 10:21:04 -0600 (MDT) To: LitProg@SHSU.edu, kenneth.snyder@nist.gov Cc: beebe@math.utah.edu, LitProg@SHSU.edu X-US-Mail: "Center for Scientific Computing, University of Utah, 155 S 1400 E RM 233, Salt Lake City, UT 84112-0090, USA" X-Telephone: +1 801 581 5254 X-FAX: +1 801 581 4148 X-URL: http://www.math.utah.edu/~beebe Subject: Re: [Q] Version Control. In-Reply-To: Your message of 15 Sep 1997 14:59:29 GMT Message-ID: >> My problem is ensuring that the version I have with me >> at the time, either at home or at work, is the most recent one. Some of our users have found a reasonable solution to this: buy two IOmega ZIP drives (about $100 each), and keep your files on a master ZIP disk (cost $10) which you move back and forth between home and office, in a kind of sneakernet travelling file system. These disks hold 100MB, which is quite enough for many software development projects. For smaller projects, a floppy disk is a cheaper alternative. In either case, I'd set up a script on each end to make copies of the software onto hard disk, because I don't trust removable media very much. However, the master copy resides on the media you carry in your shirt pocket. ======================================================================== Nelson H. F. Beebe Tel: +1 801 581 5254 Center for Scientific Computing FAX: +1 801 581 4148 University of Utah Internet e-mail: beebe@math.utah.edu Department of Mathematics, 105 JWB URL: http://www.math.utah.edu/~beebe 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090, USA ======================================================================== 16-Sep-1997 18:13:16-GMT,1226;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id MAA25554 for ; Tue, 16 Sep 1997 12:13:15 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 16 Sep 1997 12:46:15 EST From: Leo Noordergraaf <100120.2564@compuserve.com> Subject: Any Literate Programming tools for Windows environment? Date: 16 Sep 1997 17:25:54 GMT Message-ID: <5vmff2$nh5$1@murdoch.acc.Virginia.EDU> Reply-To: LitProg@SHSU.edu, 100120.2564@compuserve.com MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit To: LitProg@SHSU.edu Hello all, Does anyone know if there are tools that support literate programming in the windows environment? That is a toolset that doesn't use Tex and is geared towards a graphical environment. It could be quite simple. A machanism that allows an OLE link to be made from a source file to a word processor would be good enough for me. TIA, Leo -- Using Virtual Access http://www.vamail.com 17-Sep-1997 4:52:17-GMT,1236;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id WAA08300 for ; Tue, 16 Sep 1997 22:52:16 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 16 Sep 1997 23:39:33 EST From: Andrew Johnson Reply-To: LitProg@SHSU.edu, ajohnson@gpu.srv.ualberta.ca Subject: Re: What languages support #line? (was Re: Noweb and Java) Date: 9 Sep 1997 03:00:41 GMT Message-ID: <5v2e4p$nrk$1@news.interlog.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Norman Ramsey wrote: > > In article , > Lee Wittenberg wrote: > >As far as I know, the only languages that support #line (and therefore > >unfettered preprocessing) are C, C++, and Icon. > > Modula-3 supports <* LINE ... *> > Standard ML of New Jersey supports (*#line ...*) > > I'd like to hear of others... Perl supports #line directives -- andrew 17-Sep-1997 11:51:37-GMT,1678;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id FAA15669 for ; Wed, 17 Sep 1997 05:51:36 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 17 Sep 1997 06:43:24 EST From: Ken Brittain Reply-To: LitProg@SHSU.edu, kbrittai@vividusa.com Subject: Re: Any Literate Programming tools for Windows environment? Date: 17 Sep 1997 11:27:47 GMT Message-ID: <5voerj$q55$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Leo Noordergraaf wrote: > > Hello all, > > Does anyone know if there are tools that support literate programming > in the windows environment? That is a toolset that doesn't use Tex and > is geared towards a graphical environment. > It could be quite simple. A machanism that allows an OLE link to be > made from a source file to a word processor would be good enough for > me. I have used Microsoft Visual C++ 4.2 with Noweb with great success. Just add a Tool to the IDE that launches Noweave with the current file and some standard options, such as -html. The same can be done for Notangle. I hooked that up to a hot key and wrote webs! Whenever I wanted to see what I was working on I just hit the button. VC++ launched Noweave and I kept on working. If you then add the generated C++ file to the project everything will compile just fine. Kenneth Brittain 17-Sep-1997 18:49:22-GMT,2174;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id MAA25045 for ; Wed, 17 Sep 1997 12:49:21 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 17 Sep 1997 12:25:08 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@samson.kean.edu Subject: Re: Any Literate Programming tools for Windows environment? Date: 17 Sep 1997 16:02:41 GMT Message-ID: <5vouv1$6oq$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: LitProg@SHSU.edu On 16 Sep 1997, Leo Noordergraaf wrote: > Does anyone know if there are tools that support literate programming > in the windows environment? That is a toolset that doesn't use Tex and > is geared towards a graphical environment. > It could be quite simple. A machanism that allows an OLE link to be > made from a source file to a word processor would be good enough for > me. There is a (very old) pilot project called WinWordWEB that provides LP macros for MS Word (2.0). These macros are available at ftp://samson.kean.edu/~leew/wordweb.zip (there is also a slightly modified later version in wordweb2.zip, but either one will do for initial evaluation). If you like the basic idea, it shouldn't be difficult to rewrite the macros for whichever version of Word you're using (and I'll be glad to help as much as I can). The algorithms are extremely straightforward. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | O God, send me a plan, just one little Computer Science Department | idea, I don't want You to do a miracle, Kean College of New Jersey | I'll do all the work if only You'll give Union, NJ 07083 | me an idea. | -- Manning Coles leew@samson.kean.edu | "Drink to Yesterday" (1940) ------------------------------------------------------------------------ 17-Sep-1997 18:50:32-GMT,2033;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id MAA25072 for ; Wed, 17 Sep 1997 12:50:31 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 17 Sep 1997 12:25:11 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@samson.kean.edu Subject: Re: Any Literate Programming tools for Windows environment? Date: 17 Sep 1997 16:11:13 GMT Message-ID: <5vovf1$788$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: LitProg@SHSU.edu On 17 Sep 1997, Ken Brittain wrote: > I have used Microsoft Visual C++ 4.2 with Noweb with great success. Just > add a Tool to the IDE that launches Noweave with the current file and > some > standard options, such as -html. The same can be done for Notangle. I > hooked > that up to a hot key and wrote webs! Whenever I wanted to see what I was > working on I just hit the button. VC++ launched Noweave and I kept on > working. > If you then add the generated C++ file to the project everything will > compile > just fine. Borland's C++ 5.0 (and 4.x, I think) also make it possible to add the .nw file directly to the project (instead of the generated .cpp) and it will invoke noweb automatically during the build (or make) phase. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | O God, send me a plan, just one little Computer Science Department | idea, I don't want You to do a miracle, Kean College of New Jersey | I'll do all the work if only You'll give Union, NJ 07083 | me an idea. | -- Manning Coles leew@samson.kean.edu | "Drink to Yesterday" (1940) ------------------------------------------------------------------------ 17-Sep-1997 20:38:58-GMT,2042;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id OAA27570 for ; Wed, 17 Sep 1997 14:38:55 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 17 Sep 1997 14:55:59 EST From: Sven Utcke Reply-To: LitProg@SHSU.edu, utcke@docnoe.ti1.tu-harburg.de Subject: Re: Any Literate Programming tools for Windows environment? Date: 17 Sep 1997 19:51:48 GMT Message-ID: <5vpcck$p6p$1@elna.ethz.ch> To: LitProg@SHSU.edu Lee Wittenberg writes: > On 16 Sep 1997, Leo Noordergraaf wrote: > > > Does anyone know if there are tools that support literate programming > > in the windows environment? That is a toolset that doesn't use Tex and > > is geared towards a graphical environment. > > There is a (very old) pilot project called WinWordWEB that provides LP > macros for MS Word (2.0). These macros are available at > ftp://samson.kean.edu/~leew/wordweb.zip (there is also a slightly > modified later version in wordweb2.zip, but either one will do for > initial evaluation). And of course there is CLiP (although I've never used it. Why using WinWord and such, when LaTeX is available). See ftp://sun01.info.wau.nl/clip/ and ftp://sun01.info.wau.nl/clip/html/pal1.htm ftp://sun01.info.wau.nl/clip/html/queens.htm for examples Sven -- _________ ____ /----------------------------------------------------------/ /___ __o/ /_ _/ / Sven Utcke phone +49 40-7718-2181 / / / _ // / TU Hamburg-Harburg fax +49 40-7718-2911 / / / // // / Technische Informatik I http://www.ti1.tu-harburg.de/ / / / // _//_ / Harburger Schloss-Str.20 ~utcke/utcke.html / /_/ // /___/ / D-21079 Hamburg, Germany mailto:utcke@tu-harburg.de / 17-Sep-1997 20:36:03-GMT,2202;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id OAA27517 for ; Wed, 17 Sep 1997 14:36:02 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 17 Sep 1997 15:01:38 EST From: Andrew Johnson Reply-To: LitProg@SHSU.edu, ajohnson@gpu.srv.ualberta.ca Subject: Re: What languages support #line? (was Re: Noweb and Java) Date: 17 Sep 1997 19:48:54 GMT Message-ID: <5vpc76$fhe$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Bill Dueber wrote: > > In article <5v2e4p$nrk$1@news.interlog.com> you write: > >Perl supports #line directives > > How?! I've gone through the blue camel book with what I thought was a > fine-toothed comb? Where can I find this documented? I don't know where or if it is documented in the camel...but you can find it documented at the end of the perlsyn manpage. Perl itself recognizes and processes #line directives (in typical C-preprocessor like format) and will use them in error and warning output. (of course, Perl's -P switch can run the C-preprocesser first, which also allows for #define and the like in Perl code... but that's not necessary for simple #line directives) basically, if you use notangle with the the default format using -L things should work fine---except for one little problem: the #line directives are inserted by notangle in the tangled code immediately before a chunk...so your tangled Perl code will wind up with a #line directive as the first line instead of the necessary #!/usr/bin/perl. You could easily use a filter to correct this problem. I've also got a perl version of notangle (notangle.pl) in the alpha/beta (read, "quick hack") stage that corrects for this problem (but functions like noweb's mnt by default). > Wow. Now I can really give LP the old college try! Yup, no excuses for non-literate Perl :-) regards andrew 18-Sep-1997 2:15:42-GMT,1777;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id UAA05020 for ; Wed, 17 Sep 1997 20:15:41 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 17 Sep 1997 21:05:47 EST From: rkaufmann@acm.org Subject: noweb and word processor Date: 18 Sep 1997 02:00:52 GMT Message-ID: <5vq20k$7jf$1@news.interlog.com> Reply-To: LitProg@SHSU.edu, rkaufmann@acm.org To: LitProg@SHSU.edu Hello Literati, I have to prepare a document using a word processor (Word for Windows), but I would like to use LP. After looking at CLiP, I found that it is formatter-independent simply because it does not have a weaving phase---the web is written (or at least typeset) using a word processor, but exported as ASCII for tangling. Now you could do the same thing with noweb (maybe a little editing to hide the "@" documentation chunk marks), couldn't you? Has anyone tried to do something along these lines? Actually, my plan is a little different: 1. write the web with my favourite editor. 2. [no]tangle it to produce the code. 3. import the web into Word, add some formatting and print. Comments, suggestions are welcome. -- best regards Roland Kaufmann Roland Kaufmann roland.kaufmann@space.at Senior Systems Engineer/Systems Design Phone: +43 1 80199 5563 SCHRACK Aerospace Fax: +43 1 80199 5577 Breitenfurterstr. 106-108 A-1120 Vienna, AUSTRIA 18-Sep-1997 9:18:15-GMT,1549;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id DAA12909 for ; Thu, 18 Sep 1997 03:18:14 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 18 Sep 1997 04:00:16 EST From: Leo Noordergraaf <100120.2564@compuserve.com> Subject: Re: Any Literate Programming tools for Windows environment? Date: 18 Sep 1997 08:31:22 GMT Message-ID: <5vqosq$aqn$1@murdoch.acc.Virginia.EDU> Reply-To: LitProg@SHSU.edu, 100120.2564@compuserve.com MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit To: LitProg@SHSU.edu > There is a (very old) pilot project called WinWordWEB that provides LP > macros for MS Word (2.0). These macros are available at > ftp://samson.kean.edu/~leew/wordweb.zip Thanks Lee. I'll have a look at those. Actually i've already done something along those lines myself once but it was too primitive to be useful. What I've been thinking about was a tool that can scan source code and create OLE links for sections of code. Those links can then be used with any OLE capable tool. It's been on my mind for some time but I still haven't found the time to build it. Do you happen to know if something like that exists? Regards, Leo Noordergraaf Cloud Seven B.V. -- Using Virtual Access http://www.vamail.com 18-Sep-1997 16:50:28-GMT,1270;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id KAA21918 for ; Thu, 18 Sep 1997 10:50:25 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 18 Sep 1997 11:24:52 EST From: "Dr E. Buxbaum" Reply-To: LitProg@SHSU.edu, EB15@leicester.ac.uk Subject: Re: noweb and word processor Date: 18 Sep 1997 15:55:00 GMT Message-ID: <5vrisk$n54$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu rkaufmann@acm.org wrote: > Actually, my plan is a > little different: > > 1. write the web with my favourite editor. > 2. [no]tangle it to produce the code. > 3. import the web into Word, add some formatting and print. There are LaTeX to word converter available, so this route should not present unsurmountable difficulties. Check your friendly neighbourhud CTAN site (ftp.dante.de in your case). Biting remarks on What-You-See-Is-What-You'l-Never-Get text editors censored... 18-Sep-1997 21:47:56-GMT,3051;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id PAA28540 for ; Thu, 18 Sep 1997 15:47:53 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 18 Sep 1997 15:43:58 EST From: Devon Prichard Reply-To: LitProg@SHSU.edu, prichard@rotari.larc.nasa.gov Subject: aside to the Q on Windows litprog Date: 18 Sep 1997 20:23:50 GMT Message-ID: <5vs2km$478$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu related to Leo Noordergraaf's Q, it would seem to me that there would be a Windows IDE out there that would be set up for literate programming. what I have in mind is a two-pane window; the left one shows code, the right one shows documentation. while Web, Cweb etc. are pretty cool for folks who "think" in TeX (or LaTeX), I'm amazed that a WYSIWYG equivalent is not commonplace. I'm vaguely aware of the prototype Word macros, but I guess I am thinking of something "industrial grade", i.e. with textbook quality equation typesetting like FrameMaker. I would think that there are enough thousands of programmers in corporate/government-space coding for the Win environment to create sufficient demand to justify the development of such an IDE. either the majority of programmers are too busy frantically spewing code to write documentation, or the problem is more difficult than I think... another semi-related issue is, what sort of software documentation should be written? for the engineering codes I mess around with, there have been 3 types of documentation; a theoretical manual or paper, a programmer's manual, and comment lines within the source. often the programmer's manual, which around here connects the symbol \alpha_F to the variable ALPHAF, as well as describing program structure and data flow, is rarely produced. thus, code users and developers have to mentally interface a few selected equations published in a conference paper or report with Fortran coding. I am wondering how litprog enters into this scenario. I can see a theoretical document describing the problem and deriving a final equation (including numerical treatments such as finite differences), and the inline docs starting with the equation and pointing to the code, with a symbol->variable translation table. what have y'all done with Web or whatever for substantive technical programs? ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| | Dr. Devon Prichard, Lockheed Martin d.s.prichard@larc.nasa.gov | | The first 90% of the work takes 90% of the time. | | The last 10% of the work takes the other 90% of the time. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 19-Sep-1997 1:19:19-GMT,2650;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id TAA02716 for ; Thu, 18 Sep 1997 19:19:18 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 18 Sep 1997 19:56:45 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: aside to the Q on Windows litprog Date: 18 Sep 1997 23:33:22 GMT Message-ID: <5vsdo2$aov$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu In article <5vs2km$478$1@murdoch.acc.Virginia.EDU>, Devon Prichard wrote: >it would seem to me that there would be a Windows IDE >out there that would be set up for literate programming. >what I have in mind is a two-pane window; the left one >shows code, the right one shows documentation. while >Web, Cweb etc. are pretty cool for folks who "think" in >TeX (or LaTeX), I'm amazed that a WYSIWYG equivalent >is not commonplace. The problem is that the commercial wysiwyg formats are very complex, often proprietary, and they keep changing. It takes a lot of expertise to make *any* add-on for Frame---much less than to write a filter that emits TeX or troff. Perhaps things are better with LyX --- has anyone here played with it? A second problem is that tool builders tend not to prefer wysiwyg. (I been rich and I been poor and I tell you batch is better.) >I would think that there are enough thousands of >programmers in corporate/government-space coding >for the Win environment to create sufficient >demand to justify the development of such >an IDE. Have those people even heard of literate programming? In my years in the corporate world, I observed little interest in producing quality code, and much interest in getting more features out the door faster than the competition, and never mind if the code actually works, let alone is readable. >what have y'all done with Web or whatever for >substantive technical programs? Sometimes the paper can be the same as the web. To blow my own horn for a moment, check out Norman Ramsey. A simple solver for linear equations containing nonlinear operators. Software---Practice & Experience, 26(4):467--487, April 1996. (An earlier version appeared as Technical Report 95-068, Purdue University, Dept of Computer Sciences, November 1995.) I can rarely justify the effort needed to produce a quality web unless I plan to publish the results. Norman 19-Sep-1997 3:38:46-GMT,5127;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id VAA05059 for ; Thu, 18 Sep 1997 21:38:45 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 18 Sep 1997 22:23:39 EST From: fred@leopard.cs.latrobe.edu.au (Fred Brkich) Reply-To: LitProg@SHSU.edu, fred@leopard.cs.latrobe.edu.au Subject: Linux, Noweb, No Nothing. Date: 19 Sep 1997 03:09:32 GMT Message-ID: <5vsqdc$646$1@news.interlog.com> To: LitProg@SHSU.edu Hi All, Just a few thoughts about a few things. I have for some years been toying with the seemingly good idea of literate programming. In each of hte three separate instances where I have tried to get a literate programming environment going I have failed, and have not had the time to get back to it. It seems that the culprit is in LaTeX itself, LaTeX is really a beast to baby-sit, to install, to do anything with. Like C++ it seems that only afficionados can do anything useful with it. Why bother with tools that require full-time system administrators to look after? I don't know about the general programming public, but there is only ONE button I want to know about when loading a new program/tool, and that button is called "Install" or something similar. The is only ONE thing I want to do to run a program, and that is type "Go". I couldn't give a rat's arse about ... oh ... gotta set this Environment variable, gotta put this in that subdirectory, gotta check version of this is compatible with version of that, and so on and on and on and on! Why do I mention this? Well, I was recently inspired by the Linux Journal article about the joys of noweb. Great I thought. I've got Linux, let's give it a go! Why not? I found the code, downloaded it, installed it into the various subdirectories. I got the test files from the LJ site and thought ... let's try it! Did it work? Can pigs fly? No way! It didn't get past the latex stage. That's right my RedHat version (the latest I presume) of LaTeX cried and died. Couldn't find the 'noweb.sty' files. What to do? Am I a LaTeX guru? No. I had no idea. I consulted books ... but nowhere is something as seemingly basic as loading style files ever actually discussed in these so-called greatly inforamtive texts, (I mean the Kopka book, and so on. ... I am amazed that they don't talk about these things ... surely novel style files are dime a dozen so surely there's some standard way of getting LaTeX to know they exist. Surely?) Anyway. I finally got a LOT of GOOD advice from a lot of very kind, and helpful people on the 'tex' newsgroup. There seem to be three ways to solve this problem (1) put the style file in the currenct directory (2) set an environment variable, (3) put the style file under the generic or latex style file directories and run texhash. (NOTE: None of this was actually mentioned in the LJ article, i.e. in an article directed at the users of one specific operating system, where RedHat is beleive it or not quite a common distribution! And where if at least one of these things isn't done, you have no fucking hope at all of getting it to run properly!) Well, that finally fixed that problem. Then like a simpleton I held out hopes that I might finally get the output I wanted. But nope! My hopes were shattered once more. I ran 'dvips' in the usual manner, the same way I have been doing for years. AND IT SPEWED PAGES OF CRAP OVER MY SCREEN AND DIED WITH THE NOTE THAT I HAD A BROKEN PIPE. Wow! Really the whole thing is almost completley unbelievable! To the point where I now think that the Linux Journal articel about 'noweb' was in fact dishonest, or at least misleading, so far as it pretended that 'noweb' was a nice, easy, useful tool to have. I have a very very plain vanilla Linux setup, RedHat Linux, the latest version, I downloaded 'noweb' and nothing! Heartache! OBVIOUSLY there is a GREAT deal to both KNOW and to DO *before* this so-called simple tool even begins to work right. I note further that there was NO, I repeat NO worthwhile information with the 'noweb' code. (At least none that I could find.) I have an equally harrowing story to tell about the so-called wonder product called 'funnelweb' ... I shudder! Really I do! I MUST say that I have from time to time come across Unix software, for complex tools, that 'ran out of the box', I mean for products far more involved and intricate than 'noweb' or any of the other 'literate programming' tools. They do everything fer ya in the background. I suspect that if 'literate programming' dies a natural death it'll partly be because of the appalling complexity and difficulty associated with the tools implementing it. Finally I must say that I have been very appreciate of all the help I have received from the LaTeX people. Wonderful people! It's just the tools themselves ... noweb no nothin'. Regards Freddo fred@leopard.cs.latrobe.edu.au 19-Sep-1997 8:59:18-GMT,1478;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id CAA11168 for ; Fri, 19 Sep 1997 02:59:17 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 19 Sep 1997 03:44:42 EST From: "Dr E. Buxbaum" Reply-To: LitProg@SHSU.edu, EB15@leicester.ac.uk Subject: Re: Linux, Noweb, No Nothing. Date: 19 Sep 1997 08:18:24 GMT Message-ID: <5vtcgg$nl2$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Fred Brkich wrote: It seems that the culprit is in LaTeX itself, LaTeX is really > a beast to baby-sit, to install, to do anything with. Like C++ > it seems that only afficionados can do anything useful with it. > > Why bother with tools that require full-time system administrators > to look after? Setting up software under Linux can be a nightmare unless you have experience as Unix sysop, which is why I am still using my DOS software for productivity and only fool around with Linux. At least I know my Dos tools well enough to get things done. In your particular case you may try to output HTML instead of LaTeX code from noWeb. You could then use your browser to read and print it. 19-Sep-1997 14:48:33-GMT,2016;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id IAA17865 for ; Fri, 19 Sep 1997 08:48:32 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 19 Sep 1997 09:09:13 EST From: jshu524@aol.com (Jshu524) Reply-To: LitProg@SHSU.edu, jshu524@aol.com Subject: Jasmine wants to thank you! :-) Date: 19 Sep 1997 14:04:30 GMT Message-ID: <19970919140400.KAA00835@ladder01.news.aol.com> To: LitProg@SHSU.edu Hi, Guys, I didn't realize you guys are so kind and helpful, I didn't surf the net for a week because my P. BEll monitor. I cracked the password using fzc.exe, I'm so grateful to you guys! Thanks a lot! I would like to thank all the guys who sent me mail and programs, here are some names I still remember: David Hinkel: Thank you for the fzc.exe Glenn Devit: Thank you for the info. Gandalf Gray: Thanks for your unzipping file Roland Kaufmann: Thanks for your batch file idea, by the way, are you from Australia or Oesterreich? ich bedanke mich! Helen: Thanks for the advice. WideSide: Thanks, but I didn't have to, David Hinkel sent me the solution. Jonathan Watridge: Thanks, but I dared to do it, my boss may fire me. Drifus: I glanced the page, a lot of cool things there, thanks! Pankaj: Thank you for your kindness. Ronnie Rossman: I guess your zipcrack is cool, but at the last step, it can't find the file, even I tell the path clearly. But I like it, thanks! Boudewijn Visser: Thanks for the advice. Jeff Musser: Thanks for the zipcrack, but I had same problem as Ronnie's Sarah Green: Thanks a lot, you work in Boeing? Chris Anderson: Thanks for the clue, I found some. There are still a lot of wonderful names that I would like to list, Thank you all, you guys are great! Have a wonderful weekend! Truly Jasmine 19-Sep-1997 16:56:55-GMT,2147;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id KAA20960 for ; Fri, 19 Sep 1997 10:56:54 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 19 Sep 1997 11:23:38 EST From: Leo Noordergraaf <100120.2564@compuserve.com> Subject: Re: aside to the Q on Windows litprog Date: 19 Sep 1997 16:04:14 GMT Message-ID: <5vu7pu$7aq$1@murdoch.acc.Virginia.EDU> Reply-To: LitProg@SHSU.edu, 100120.2564@compuserve.com MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit To: LitProg@SHSU.edu In article <5vsdo2$aov$1@murdoch.acc.Virginia.EDU>, Norman Ramsey wrote: > I can rarely justify the effort needed to produce a quality web unless > I plan to publish the results. Well Norman, that's exactly my point. See also Fred Brkich's posting. > Have those people even heard of literate programming? In my years in the > corporate world, I observed little interest in producing quality code, > and much interest in getting more features out the door faster than > the competition, and never mind if the code actually works, let alone > is readable. How sadly true. Still, there are those who try. I'm from a dos/windows background and though I'm using a few tools that originated in the Unix world I, and many with me, are by far more comfortable with the 'windows way'. I agree that there is currently probably not enough interest in LP to get one of the major vendors to offer an LP capable IDE. That doesn't mean that we can't make use of the tools that are available. > The problem is that the commercial wysiwyg formats are very complex, > often proprietary, and they keep changing. And it's here that OLE comes in which allows you to link or embed different documents to each other so that you don't need to have > a lot of expertise to make *any* add-on for Frame Leo -- Using Virtual Access http://www.vamail.com 19-Sep-1997 17:43:08-GMT,1736;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id LAA22111 for ; Fri, 19 Sep 1997 11:43:07 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 19 Sep 1997 12:00:13 EST From: Balasubramanian Narasimhan Reply-To: LitProg@SHSU.edu, naras@stat.stanford.edu Subject: Re: Linux, Noweb, No Nothing. Date: 19 Sep 1997 16:30:09 GMT Message-ID: <5vu9ah$8iq$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu fred@leopard.cs.latrobe.edu.au (Fred Brkich) writes: > > I am sympathetic to Freddo's situation and it is clear that Noweb could get a bum-rap from this when it is clearly the complexity of TeX and friends that is at issue. It is a well-known fact that installing TeX and friends *correctly* requires understanding how they work. TeTeX (which is what RedHat uses, at least as of 4.2) is a good package but it doesn't include Noweb. Perhaps it is time for Norman to ask Thomas Esser (te@informatik.uni-hannover.de) the maintainer of teTeX to include the styles in the library and a basic setup in the source. This will at least get people started, albeit using awk, etc. and not Icon. Then, it might be prudent to have a list of volunteers with various platforms offer the binaries for various things. ________________________________________________________________ B. Narasimhan naras@stat.stanford.edu http://www-stat.stanford.edu/~naras 19-Sep-1997 18:40:37-GMT,3206;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id MAA23348 for ; Fri, 19 Sep 1997 12:40:36 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 19 Sep 1997 12:48:22 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: Linux, Noweb, No Nothing. Date: 19 Sep 1997 17:14:41 GMT Message-ID: <5vubu1$a2t$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu In article <5vsqdc$646$1@news.interlog.com>, Fred Brkich wrote: >It seems that the culprit is in LaTeX itself, LaTeX is really >a beast to baby-sit, to install, to do anything with. Like C++ >it seems that only afficionados can do anything useful with it. There is some truth in this remark. >I found [noweb], downloaded it, installed it... >Did it work? Can pigs fly? No way! Did you read the instructions? Particularly where it says: Now choose locations for the noweb files, and set the appropriate variables in the Makefile: BIN on $PATH, will hold notangle, noweave, noroots, ... LIB a directory to store markup, nt, noxref, ... MAN man pages will go in $MAN/man1 TEXINPUTS a directory TeX will look for nwmac.tex and noweb.sty ELISP a directory for noweb-mode.el, for emacs 19 All of these files are *output* files, where noweb will place binaries and man pages that are customized for your installation. Therefore you should: - make sure you have write permission to these directories. - refrain from making them point into the noweb source distribution. and also 5) On some installations, (e.g., Unix teTeX), you may have to run texhash(1) before TeX or latex will see files added to TEXINPUTS. >[Long whine about LaTeX deleted] >I now think that the Linux Journal articel about 'noweb' was >in fact dishonest, or at least misleading, so far as it pretended >that 'noweb' was a nice, easy, useful tool to have. I have a very >very plain vanilla Linux setup, RedHat Linux, the latest version, >I downloaded 'noweb' and nothing! You don't say whether you tried to install a noweb source or a Slackware binary. If you expect to install a Slackware binary on a Red Hat system, you may be disappointed. >I note further that there was NO, I >repeat NO worthwhile information with the 'noweb' code. (At least >none that I could find.) Did you not try 'man noweb' or did you not find that information worthwhile? >[more whining deleted] I draw the following conclusions from your story: a) An author who puts together a binary distribution risks being vilified if a user tries to use the binary distribution on the wrong platform. b) I should add some documentation to /usr/doc/noweb for the binary distribution. c) I should not expect anyone to read the documentation :-) If LaTeX was so painful, why not just use noweb with HTML? Norman 19-Sep-1997 21:35:08-GMT,3657;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id PAA27156 for ; Fri, 19 Sep 1997 15:35:07 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 19 Sep 1997 15:44:48 EST From: Devon Prichard Reply-To: LitProg@SHSU.edu, prichard@rotari.larc.nasa.gov Subject: Re: Linux, Noweb, No Nothing. Date: 19 Sep 1997 20:19:51 GMT Message-ID: <5vump7$j4o$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Fred Brkich wrote: > (various justifiable rants deleted) this sort of dovetails with my post about getting a professional WYSIWYG litprog toolkit. most of the really intelligent software is sort of "enthusiast grade", i.e. requires weekends of fiddling to install and configure. most of the really usable software is "secretary grade", i.e. easy to install and configure but can't do professional quality work. there is an obvious Catch-22 here. Norman's comment on my post that most programmers don't know about litprog is well taken. I guess I will risk pulling a "Lord Kelvin" here and state a hypothesis; Literate Programming Will Not Become A Mainstream Software Development Feature Until; 1- an IDE with built-in litprog tool is available that is easy to install, easy to configure, and easy to use; 2- this IDE becomes available for many platforms and languages; 3- litprog is introduced to CS undergrads, as well as structured programming, project management, etc. (that'll be the day!); 4- software development becomes a profession rather than a trade. these four conditions are necessary but may not be sufficient. now, if items 1 & 2 become true, at least SOME developers will integrate litprog into their standard workstyle. item 1 is a Herculean task, and probably requires the resources of Microsoft or IBM. public domain stuff can be made to work, but as Fred has described, we all have different but finite thresholds of how much time we can devote to our tools before being able to use them. very little software coming from academia (I am thinking about X11, motif, TeX, etc) is "industrial strength", and as Fred mentioned requires professional administration. in an ideal world, someone with money to burn would finance a startup company to take the present state of IDEs, litprog, and text processing, and develop the next generation tool. I guess the first step would have to be a text processor/ page description language combo with a truly general capability (printed vs. web output, wide font array like TeX, careful character positioning like TeX, visual interface like MS-Word, ...). then the IDE would have to be added, with all the hooks to compilers etc. then, once this is developed, turn it into an industrial-grade application. I guess this would cost $N million, where N is some large number. not a good business move probably, but certainly would improve the efficiency of some subset of programmers, and thus the macroeconomy in general... ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| | Dr. Devon Prichard, Lockheed Martin d.s.prichard@larc.nasa.gov | | The first 90% of the work takes 90% of the time. | | The last 10% of the work takes the other 90% of the time. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 19-Sep-1997 23:07:49-GMT,2700;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id RAA29086 for ; Fri, 19 Sep 1997 17:07:48 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 19 Sep 1997 17:26:25 EST From: thompson@shelob.ce.ttu.edu (David B. Thompson) Reply-To: LitProg@SHSU.edu, thompson@shelob.ce.ttu.edu Subject: Re: Linux, Noweb, No Nothing. Date: 19 Sep 1997 22:00:58 GMT Message-ID: <5vusmq$mnq$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu > I have for some years been toying with the seemingly good idea > of literate programming. You're not the first one to start down the path and find things complex and intimidating. I've been there myself. > It seems that the culprit is in LaTeX itself, LaTeX is really > a beast to baby-sit, to install, to do anything with. Like C++ > it seems that only afficionados can do anything useful with it. Well, it does take a significant effort to get LaTeX installed and operational. I started using emTeX under dos, and even there it was a beast to get installed and running. But, once that was done, I was able to learn to use LaTeX quite well and produce almost all of my texts in that environment. There are lots of reasons to do this, but the process is not for the faint-of-heart. :( > Why bother with tools that require full-time system administrators > to look after? Without intending to make a personal attack, this statement is typical of relatively new users of unix and unix-like systems. It is a complicated operating environment, and that we (end users) can get it working at all is a testimony to the efforts of the linux-provider community. I've been using the TeX-related tools for almost ten years now, and have been using linux (converted from Winders/Dos) for about three years. I've learned how to setup and maintain my own systems (which I did under dos and winders too), just like most of the folks who use these systems. It just takes time, patience, lots of study, and the help of key individuals (such as you cited). [encouragement mode on] Now, take a deep breath, sit down with a coffee or expresso, get out the documents, and spend some time reading and thinking about the installation and operation of your new interests. Be patient, it takes time and *lots* of mistakes. I know, I've been there and continue to learn about both the environment (unix) and the tools (literate programming). [encouragement mode off] Good luck and happy hunting, -=d 20-Sep-1997 0:03:36-GMT,1467;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id SAA00161 for ; Fri, 19 Sep 1997 18:03:35 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 19 Sep 1997 18:41:02 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: Linux, Noweb, No Nothing. Date: 19 Sep 1997 23:12:56 GMT Message-ID: <5vv0to$obj$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu > Literate Programming Will Not Become A Mainstream Software > Development Feature Until LP will not hit the mainstream until - the mass market rewards quality instead of long feature lists - management gives programmers time to think about what they are doing - programmers learn to think about what they are doing - programmers learn to write concise, clear English - management gives programmers time for peer review of code none of which will happen until - hell freezes over Meanwhile, those of us who do use literate-programming techniques will enjoy our competetive advantage. Norman P.S. Problems with LP tools are not on the list. The most important of these problems were solved 5 years ago (at least). 20-Sep-1997 1:57:25-GMT,1389;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id TAA02193 for ; Fri, 19 Sep 1997 19:57:23 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 19 Sep 1997 20:49:38 EST From: "Piotr Kuszewski" Reply-To: LitProg@SHSU.edu, pkusze@sgh.waw.pl Subject: Re: Linux, Noweb, No Nothing. Date: 20 Sep 1997 01:45:33 GMT Message-ID: <5vv9rt$l5e$1@news.interlog.com> To: LitProg@SHSU.edu Hello, I understand your frustration Fred, I've tried to install noweb for about a week (under DOS!!!!!). Finally I've discovered that noweb dos extender doesn't work with my dpmi host -> cwsdpmi (r3) (I've also discovered that noweb runs great in DOS box under Windows :))). Nevermind, finally I've decided that I rather prefer to use emacs and FunnelWeb than have to use my programs (which need real fast dpmi host) under windows. In conclusion: I think that noweb can be a great tool for literate programing but it needs to be recompiled under djgpp (such programs need only dpmi to run and nothing more). Such version will probably cause less problems than dos version currently avalaible. Piotrek 20-Sep-1997 1:57:40-GMT,1690;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id TAA02202 for ; Fri, 19 Sep 1997 19:57:39 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 19 Sep 1997 20:49:40 EST From: nene@sbox.tu-graz.ac.at (Ernesto Rico Schmidt) Reply-To: LitProg@SHSU.edu, nene@sbox.tu-graz.ac.at Subject: Re: (noweb-mode.el + AUCTeX) Problem Date: 20 Sep 1997 01:44:22 GMT Message-ID: <5vv9pm$krb$1@news.interlog.com> To: LitProg@SHSU.edu Loris Bennett (loris@ferro.physik.TU-Berlin.DE) wrote: : : Hello All, : : Has anyone come across Thorsten Ohl(with a little help from : Norman Ramsey)'s noweb mode for emacs doing strange things in : connection with AUCTeX? Everytime I move from a code chunk to a : document chunk, AUXTeX feels obliged to ask me about the master : file and even asks again when I enter the same doc chunk again. : : Does anyone know of a solution? : Hi! I had the same problems, if my my memory doesn't fail me, you only need to define the master file (i.e. it shouldn't be nil) in the local variables for your file/buffer. I'm not sure what the variable name really is but I think you can find this with some C-h a master-file. Hope this helps you, Ernesto. -- Ernesto Rico-Schmidt Words are only painted fire mailto:nene@sbox.tu-graz.ac.at A look is the fire itself. http://www.sbox.tu-graz.ac.at/home/nene --- Mark Twain 20-Sep-1997 2:01:47-GMT,1254;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id UAA02277 for ; Fri, 19 Sep 1997 20:01:45 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 19 Sep 1997 20:49:36 EST From: Paolo Amoroso Reply-To: LitProg@SHSU.edu, amoroso@mclink.it Subject: Re: Any Literate Programming tools for Windows environment? Date: 20 Sep 1997 01:44:55 GMT Message-ID: <5vv9qn$ks3$1@news.interlog.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu On 17 Sep 1997 11:27:47 GMT, Ken Brittain wrote: > I have used Microsoft Visual C++ 4.2 with Noweb with great success. Just How do you deal with code automatically generated by AppWizard, the dialog and the menu editors, etc.? Do you restructure it into chunks? Or maybe you just work on the sections - e.g. those marked with "// TODO" comments - that the programmer is supposed to edit? -- Paolo Amoroso 21-Sep-1997 16:52:05-GMT,2684;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id KAA09933 for ; Sun, 21 Sep 1997 10:52:04 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 21 Sep 1997 11:41:41 EST From: Ewald Arnold Reply-To: LitProg@SHSU.edu, earnold@w-4.de Subject: My way of documentation Date: 21 Sep 1997 16:16:33 GMT Message-ID: <603h91$k88$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="------------D8F0E211FA5684291EE2D546" To: LitProg@SHSU.edu --------------D8F0E211FA5684291EE2D546 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi everyone, maybe someone is interrested in my way of source code documentation: Some time ago i found Robodoc, which extracts and transforms comment blocks from source files into HTML or PostScript files. It also generates a (hypertext) table of contents. Beause I missed some capabilities (e.g. ignoring case for Turbo Pascal, a C++ mode) I improved it for my needs with html. I also wrote an additional program which supports Robodoc but can also be used as a stand alone tool to transform simple encoded ascii files into html. And at last I wrote a tool to generate a html index file to search for user defined topics. If you want to know more and perhaps download the C and C++ sources, visit my homepage at http://www.w-4.de/~earnold/ greetings --------------D8F0E211FA5684291EE2D546 Content-Type: text/html; charset=us-ascii Content-Transfer-Encoding: 7bit Hi everyone,

maybe someone is interrested in my way of source code documentation:

Some time ago i found Robodoc, which extracts and transforms comment blocks
from source files into HTML or PostScript files. It also generates a (hypertext) table of
contents.
Beause I missed some capabilities (e.g. ignoring case for Turbo Pascal, a C++ mode)
I improved it for my needs with html.

I also wrote an additional program which supports Robodoc but can also be used as
a stand alone tool to transform simple encoded ascii files into html.
And at last I wrote a tool to generate a html index file to search for user defined topics.

If you want to know more and perhaps download the C and C++ sources, visit
my homepage at http://www.w-4.de/~earnold/

greetings
  --------------D8F0E211FA5684291EE2D546-- 21-Sep-1997 17:16:07-GMT,2511;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id LAA10324 for ; Sun, 21 Sep 1997 11:16:06 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 21 Sep 1997 12:05:05 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@samson.kean.edu Subject: Re: noweb and word processor Date: 21 Sep 1997 16:39:44 GMT Message-ID: <603ikg$kns$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: LitProg@SHSU.edu On 18 Sep 1997 rkaufmann@acm.org wrote: > > > Hello Literati, > I have to prepare a document using a word processor (Word for > Windows), but I would like to use LP. After looking at CLiP, I found > that it is formatter-independent simply because it does not have a > weaving phase---the web is written (or at least typeset) using a word > processor, but exported as ASCII for tangling. > > Now you could do the same thing with noweb (maybe a little editing to > hide the "@" documentation chunk marks), couldn't you? Has anyone > tried to do something along these lines? Actually, my plan is a > little different: > > 1. write the web with my favourite editor. > > 2. [no]tangle it to produce the code. > > 3. import the web into Word, add some formatting and print. > > Comments, suggestions are welcome. If you can find the file format for Word, you could write a new backend for noweave, producing a Word-format doc (actually, an RTF backend should be quite straightforward). Another alternative is to write Word macros that will format your text chunks appropriately. Yet another possible alternative, which I think may work: Use the HTML backend (I believe that the new versions of Word can read and write HTML). -- Lee ------------------------------------------------------------------------ Lee Wittenberg | O God, send me a plan, just one little Computer Science Department | idea, I don't want You to do a miracle, Kean College of New Jersey | I'll do all the work if only You'll give Union, NJ 07083 | me an idea. | -- Manning Coles leew@samson.kean.edu | "Drink to Yesterday" (1940) ------------------------------------------------------------------------ 21-Sep-1997 17:19:32-GMT,2622;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id LAA10396 for ; Sun, 21 Sep 1997 11:19:31 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 21 Sep 1997 12:05:06 EST From: David Kastrup Reply-To: LitProg@SHSU.edu, dak@fsnif.neuroinformatik.ruhr-uni-bochum.de Subject: Re: Linux, Noweb, No Nothing. Date: 21 Sep 1997 16:39:26 GMT Message-ID: <603iju$knk$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 (generated by tm-edit 7.93) Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit To: LitProg@SHSU.edu fred@leopard.cs.latrobe.edu.au (Fred Brkich) writes: > It seems that the culprit is in LaTeX itself, LaTeX is really > a beast to baby-sit, to install, to do anything with. Like C++ > it seems that only afficionados can do anything useful with it. > > Why bother with tools that require full-time system administrators > to look after? The problem you have described later down with your installation is, of course, described in the FAQ of teTeX. The FAQ is available from the texconfig menu used for setting up the teTeX system. It is, as far as I know, mentioned in all the installation instructions, and sits in the obvious place in the teTeX documentation tree. If only "full-time system administrators" are supposed to be reading FAQs, your criticism is valid. As to your criticism of LaTeX: Yes, it is one of the systems where one actually has to read some guides and preferably some books as well before starting. It is a document structuring language. You wouldn't expect to be able to write in a language like C without reading docs, you can't do so with LaTeX. If that's a problem for you, let noweb generate HTML instead (not that you'll have less problems generating tables and things, but you might feel the situation is less of a personal attack on you). You could also read the comp.programming.literate FAQ and try selecting one of the systems which work with common Wordprocessors, like CLiP. In my opinion, learning LaTeX is well worth the trouble, but it *is* trouble and you have to be prepared for it. -- David Kastrup Phone: +49-234-700-5570 Email: dak@neuroinformatik.ruhr-uni-bochum.de Fax: +49-234-709-4209 Institut für Neuroinformatik, Universitätsstr. 150, 44780 Bochum, Germany 21-Sep-1997 17:33:17-GMT,1672;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id LAA10610 for ; Sun, 21 Sep 1997 11:33:16 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from rembrandt.intur.net by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 21 Sep 1997 12:23:42 EST Received: from grim (206-97-149-201.ipv4.intur.net [206.97.149.201]) by rembrandt.intur.net (8.8.7/8.8.7) with ESMTP id MAA06997; Sun, 21 Sep 1997 12:24:03 -0500 Message-ID: <199709211724.MAA06997@rembrandt.intur.net> From: "Nick Shaffner" Reply-To: LitProg@SHSU.edu, nshaf@intur.net To: , Subject: Re: noweb and word processor Date: Sun, 21 Sep 1997 12:22:03 -0500 MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit > If you can find the file format for Word, you could write a new > backend for noweave, producing a Word-format doc (actually, an RTF > backend should be quite straightforward). Another alternative is to > write Word macros that will format your text chunks appropriately. > Yet another possible alternative, which I think may work: Use the > HTML backend (I believe that the new versions of Word can read and > write HTML). Actually, I've written a tiny portable literate programming tool called 'tangle' that takes an RTF or .TXT file and produces code from it, if anyone is interested, I'd be glad to post it. Nick Shaffner http://users.intur.net/~nshaf/ 21-Sep-1997 18:11:17-GMT,3178;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id MAA11219 for ; Sun, 21 Sep 1997 12:11:16 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 21 Sep 1997 13:00:55 EST From: Devon Prichard Reply-To: LitProg@SHSU.edu, prichard@rotari.larc.nasa.gov Subject: Re: Linux, Noweb, No Nothing. Date: 21 Sep 1997 17:37:37 GMT Message-ID: <603m11$mei$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Norman Ramsey wrote: > > > Literate Programming Will Not Become A Mainstream Software > > Development Feature Until > > > > LP will not hit the mainstream until > - the mass market rewards quality instead of long feature lists > - management gives programmers time to think about what they are doing > - programmers learn to think about what they are doing > - programmers learn to write concise, clear English > - management gives programmers time for peer review of code > none of which will happen until > - hell freezes over all too true. I believe that your conditions 2 and 5 can happen, if several demonstrations of the effect of professional methods on total lifecycle cost are made. then there exists a "best practices" standard to which at least some management will be held accountable. after all, when managers don't understand something, they stick to SOP very closely. > > Meanwhile, those of us who do use literate-programming techniques will > enjoy our competetive advantage. this statement unfortunately reminds me of the line said by the Sheik Raisuli character in the movie "The Wind and the Lion". a few professional, disciplined workers roaring in the unstoppable onslaught of the hordes of quick-n-dirty artists. > P.S. Problems with LP tools are not on the list. The most important > of these problems were solved 5 years ago (at least). I guess I would claim that the main problem with LP is that it is waiting for an easy, WYSIWYG, portable, textbook-quality word processor. not LP's problem per se, but a necessary condition for widespread use. I still think the academic CS community should think about raising the bar on word processing standards and concepts. I've been reading a little about SGML, trying to figure out if it has enough muscle to handle equations in a quality way; it doesn't look like it to me. so, we are still stuck with proprietary page description languages (I include TeX and LaTeX along with Word, Frame, etc). ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| | Dr. Devon Prichard, Lockheed Martin d.s.prichard@larc.nasa.gov | | The first 90% of the work takes 90% of the time. | | The last 10% of the work takes the other 90% of the time. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 22-Sep-1997 2:25:12-GMT,2268;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id UAA19445 for ; Sun, 21 Sep 1997 20:25:12 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from indy03.cs.monash.edu.au by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 21 Sep 1997 20:58:59 EST Received: from localhost (ajh@localhost) by indy03.cs.monash.edu.au (8.7.6/8.6.9) with SMTP id LAA28573; Mon, 22 Sep 1997 11:56:57 +1000 (EST) Message-ID: <199709220156.LAA28573@indy03.cs.monash.edu.au> To: LitProg@SHSU.edu, prichard@rotari.larc.nasa.gov Subject: Re: Linux, Noweb, No Nothing. MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Mon, 22 Sep 1997 11:56:56 +1000 From: John Hurst Reply-To: LitProg@SHSU.edu, ajh@cs.monash.edu.au > Literate Programming Will Not Become A Mainstream Software > Development Feature Until; > 1- an IDE with built-in litprog tool is available that is > easy to install, easy to configure, and easy to use; > 2- this IDE becomes available for many platforms and languages; > 3- litprog is introduced to CS undergrads, as well as > structured programming, project management, etc. (that'll be > the day!); > 4- software development becomes a profession rather than a trade. LP *is* introduced to CS undergrads here at Monash, at least in the two courses that I taught last year (I'm not teaching undergrads this year). I know of others in Australia, NZ, and the US, who also use it in CS undergrad courses. See for example the First and Second Australasian Conferences on Computer Science Education, ACM order numbers 457963 and 457973 (http://www.acm.org) --John Hurst -- Associate Dean (Teaching), Faculty of Computing & Information Technology -- Associate Professor, Department of Computer Science --rm 110/26, Computer Science, Monash, Clayton VIC 3168 ~ ~~~&#: --ajh@cs.monash.edu.au _..___ ---____@___H__ --+61 3 9905 5192 (fax +61 3 9905 5146) |_____[_|_________[__]_ --http://www.cs.monash.edu.au/~ajh oo oo oo O--O--O o=o 22-Sep-1997 14:21:29-GMT,1518;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id IAA01894 for ; Mon, 22 Sep 1997 08:21:28 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 22 Sep 1997 08:46:04 EST From: Ken Brittain Reply-To: LitProg@SHSU.edu, kbrittai@vividusa.com Subject: Re: Any Literate Programming tools for Windows environment? Date: 22 Sep 1997 11:29:24 GMT Message-ID: <605kqk$p86$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Paolo Amoroso wrote: > > On 17 Sep 1997 11:27:47 GMT, Ken Brittain wrote: > > > I have used Microsoft Visual C++ 4.2 with Noweb with great success. Just > > How do you deal with code automatically generated by AppWizard, the dialog > and the menu editors, etc.? Do you restructure it into chunks? Or maybe you > just work on the sections - e.g. those marked with "// TODO" comments - > that the programmer is supposed to edit? > > -- > Paolo Amoroso Most of the work was a COM server that had no UI. I wrote the COM code by hand and shunned MFC for the project. Sorry *but* I forgot about MFC and the wizards when I made my original post. Kenneth Brittain 22-Sep-1997 16:36:16-GMT,2693;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id KAA05061 for ; Mon, 22 Sep 1997 10:36:14 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 22 Sep 1997 11:06:32 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@samson.kean.edu Subject: Re: Linux, Noweb, No Nothing. Date: 22 Sep 1997 15:45:12 GMT Message-ID: <6063q8$6g3$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: LitProg@SHSU.edu On 19 Sep 1997, Dr E. Buxbaum wrote: > Fred Brkich wrote: > It seems that the culprit is in LaTeX itself, LaTeX is really > > a beast to baby-sit, to install, to do anything with. Like C++ > > it seems that only afficionados can do anything useful with it. > > > > Why bother with tools that require full-time system administrators > > to look after? > > Setting up software under Linux can be a nightmare unless you have > experience as Unix sysop, which is why I am still using my DOS software > for productivity and only fool around with Linux. At least I know my Dos > tools well enough to get things done. Having experience administering (La)TeX under DOS (over a network), I can support Fred's initial contention that TeX is a bear to administer (until you get the hang of it) under *any* OS. I'd contend that it's actually easier under Unix (and its variants, such as Linux) than under DOS. Under Red Hat Linux (which I also use), the crucial step is running "texhash", which isn't made very clear (if at all) in the docs. I'm always forgetting to run it myself when I download a new LaTeX package. But I still think that the advantages of using (La)TeX more than outweigh the disadvantage of administering it. -- Lee P.S. If you've ever tried to customize MS Word (or any commercial WP package) to work the way you want it, you'll appreciate the simplicity (sic) of the TeX directory structure and installation. ------------------------------------------------------------------------ Lee Wittenberg | O God, send me a plan, just one little Computer Science Department | idea, I don't want You to do a miracle, Kean College of New Jersey | I'll do all the work if only You'll give Union, NJ 07083 | me an idea. | -- Manning Coles leew@samson.kean.edu | "Drink to Yesterday" (1940) ------------------------------------------------------------------------ 22-Sep-1997 18:10:59-GMT,1803;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id MAA07409 for ; Mon, 22 Sep 1997 12:10:58 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 22 Sep 1997 12:27:00 EST From: Balasubramanian Narasimhan Reply-To: LitProg@SHSU.edu, naras@stat.stanford.edu Subject: Re: Linux, Noweb, No Nothing. Date: 22 Sep 1997 17:00:24 GMT Message-ID: <606878$beb$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu Devon Prichard writes: > I guess I would claim that the main problem with LP is that it is > waiting for an easy, WYSIWYG, portable, textbook-quality word processor. > not LP's problem per se, but a necessary condition for widespread use. > I still think the academic CS community should think about raising > the bar on word processing standards and concepts. I've been reading > a little about SGML, trying to figure out if it has enough muscle to > handle equations in a quality way; it doesn't look like it to me. > so, we are still stuck with proprietary page description languages > (I include TeX and LaTeX along with Word, Frame, etc). > In this context, Tom Gordon's qwertz project (1994), motivated entirely by SGML is worth mentioning although it is completely LaTeX-centric. It forms the basis of SGML-TOOLS (http://www.xs4all.nl/~cg/sgmltools/). ________________________________________________________________ B. Narasimhan naras@stat.stanford.edu http://www-stat.stanford.edu/~naras 23-Sep-1997 15:54:11-GMT,1500;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id JAA03683 for ; Tue, 23 Sep 1997 09:54:08 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 23 Sep 1997 10:23:22 EST From: David Kastrup Reply-To: LitProg@SHSU.edu, dak@fsnif.neuroinformatik.ruhr-uni-bochum.de Subject: Re: Linux, Noweb, No Nothing. Date: 23 Sep 1997 15:14:20 GMT Message-ID: <608mcc$o33$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 (generated by tm-edit 7.93) Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit To: LitProg@SHSU.edu Devon Prichard writes: > so, we are still stuck with proprietary page description languages > (I include TeX and LaTeX along with Word, Frame, etc). TeX/LaTeX proprietary? I suggest either looking up the word "proprietary" in the dictionary, or looking up the licences of TeX and LaTeX accompanying the source distributions, wherever the source of your confusion happens to lie. -- David Kastrup Phone: +49-234-700-5570 Email: dak@neuroinformatik.ruhr-uni-bochum.de Fax: +49-234-709-4209 Institut für Neuroinformatik, Universitätsstr. 150, 44780 Bochum, Germany 24-Sep-1997 4:01:46-GMT,1900;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id WAA18976 for ; Tue, 23 Sep 1997 22:01:45 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 23 Sep 1997 22:51:24 EST From: Eric Crampton Subject: Re: Linux, Noweb, No Nothing. Date: 24 Sep 1997 03:37:14 GMT Message-ID: <60a1ta$cl5$1@news.interlog.com> Reply-To: LitProg@SHSU.edu, ecrampto@vt.edu To: LitProg@SHSU.edu Lee Wittenberg writes: > On 19 Sep 1997, Dr E. Buxbaum wrote: > Having experience administering (La)TeX under DOS (over a network), I > can support Fred's initial contention that TeX is a bear to administer > (until you get the hang of it) under *any* OS. I'd contend that it's > actually easier under Unix (and its variants, such as Linux) than > under DOS. I've found TeX (specifically, teTeX) incredibly easy to administer under Linux, easier than DOS even. After installing the teTeX RPMs, running 'tex' and 'latex' was a piece of cake. Installing packages is equally easy, just place the 'sty' files in the appropriate directory and you're ready to go. Compiling and using 'noweb' was equally easy---*IF* you read the directions. 'tex', 'latex' and 'noweb' are superior tools and are worth the extra time to setup and get running. In almost every case I've ever seen, it's quicker to use a "low-level" system like TeX, LaTeX or metapost over something higher level like FrameMaker or xfig. But, it's only quicker when you take the time to learn it. To the poster who had the original problems---take a deep breath, take your time and read the noweb instructions! Best of luck, Eric 24-Sep-1997 14:41:12-GMT,1542;000000000011 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id IAA02007 for ; Wed, 24 Sep 1997 08:41:10 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 24 Sep 1997 07:44:11 EST From: Loris Bennett Reply-To: LitProg@SHSU.edu, loris@ferro.physik.TU-Berlin.DE Subject: Not a noweb but a gmake question Date: 24 Sep 1997 12:29:31 GMT Message-ID: <60b13b$5d2$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Hello All, As I don't read comp.make.gmake or whatever the right newsgroup is called, I thought I'd ask here and hope that the moderators aren't too strict. Suprisingly (to me), when I use gmake to generate an executable from noweb .nw files, the .c files are automatically deleted. As I couldn't find any reference to an implicit rule for .nw, I assume intermediate files are always deleted. Although this behaviour is generally quite useful, I want to run lint on the .c files. The deletion of the .c files would also seem to make cpif a bit redundant. How can I stop it happening? AHGA, Loris loris@ferro.physik.tu-berlin.de http://wwwitp.physik.TU-Berlin.DE:80/~loris/ TU Berlin, PN7-1, Hardenbergstr. 36, 10632 Berlin, FRG 24-Sep-1997 15:27:20-GMT,3465;000000000001 Received: from plot79.math.utah.edu (beebe@plot79.math.utah.edu [128.110.198.3]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id JAA03279; Wed, 24 Sep 1997 09:27:19 -0600 (MDT) From: "Nelson H. F. Beebe" Received: (from beebe@localhost) by plot79.math.utah.edu (8.8.5/8.8.5) id JAA00890; Wed, 24 Sep 1997 09:27:18 -0600 (MDT) Date: Wed, 24 Sep 1997 09:27:18 -0600 (MDT) To: LitProg@SHSU.edu, loris@ferro.physik.TU-Berlin.DE Cc: beebe@math.utah.edu, LitProg@SHSU.edu X-US-Mail: "Center for Scientific Computing, University of Utah, 155 S 1400 E RM 233, Salt Lake City, UT 84112-0090, USA" X-Telephone: +1 801 581 5254 X-FAX: +1 801 581 4148 X-URL: http://www.math.utah.edu/~beebe Subject: Re: Not a noweb but a gmake question In-Reply-To: Your message of 24 Sep 1997 12:29:31 GMT Message-ID: >> ... I use gmake to generate an executable from noweb .nw files, >> the .c files are automatically deleted. If you want to suppress this deletion, this Makefile command may do the trick: `.PRECIOUS' The targets which `.PRECIOUS' depends on are given the following special treatment: if `make' is killed or interrupted during the execution of their commands, the target is not deleted. *Note Interrupting or Killing `make': Interrupts. Also, if the target is an intermediate file, it will not be deleted after it is no longer needed, as is normally done. *Note Chains of Implicit Rules: Chained Rules. [taken from Emacs info node (make.info)Special Targets] The .PRECIOUS command should be in most modern UNIX make implementations; it was not documented in Stu Feldman's original article ``Make -- A Program for Maintaining Computer Programs'' republished in URL=ftp://ftp.math.utah.edu/pub/tex/bib/master.bib Line=1468 @String{pub-HRW = "Holt, Reinhart, and Winston"} @String{pub-HRW:adr = "New York, NY, USA"} @Book{ATT:UPM83-2, author = "AT{\&T}", key = "ATT", title = "{UNIX} Programmer's Manual", volume = "2", publisher = pub-HRW, address = pub-HRW:adr, pages = "vii + 616", year = "1983", ISBN = "0-03-061743-X", LCCN = "QA76.8.U65 B44 1983", bibdate = "Wed Dec 15 15:22:54 1993", } Neither is it documented in a 1986 System V make description. However, I DO find it in: URL=ftp://ftp.math.utah.edu/pub/tex/bib/master.bib Line=12030 @String{pub-PH = "Pren{\-}tice-Hall"} @String{pub-PH:adr = "Englewood Cliffs, NJ 07632, USA"} @Book{xopen:XPG89-1, author = "{X/Open Company, Ltd.}", title = "{X}\slash Open Portability Guide, {XSI} Commands and Utilities", volume = "1", publisher = pub-PH, address = pub-PH:adr, pages = "xii + 340", year = "1989", ISBN = "0-13-685835-X", bibdate = "Wed Dec 15 19:50:06 1993", } ======================================================================== Nelson H. F. Beebe Tel: +1 801 581 5254 Center for Scientific Computing FAX: +1 801 581 4148 University of Utah Internet e-mail: beebe@math.utah.edu Department of Mathematics, 105 JWB URL: http://www.math.utah.edu/~beebe 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090, USA ======================================================================== 24-Sep-1997 17:10:51-GMT,3723;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id LAA05929 for ; Wed, 24 Sep 1997 11:10:34 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from csc-sun.math.utah.edu by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 24 Sep 1997 10:26:01 EST Received: from plot79.math.utah.edu (beebe@plot79.math.utah.edu [128.110.198.3]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id JAA03279; Wed, 24 Sep 1997 09:27:19 -0600 (MDT) From: "Nelson H. F. Beebe" Reply-To: LitProg@SHSU.edu, beebe@math.utah.edu Received: (from beebe@localhost) by plot79.math.utah.edu (8.8.5/8.8.5) id JAA00890; Wed, 24 Sep 1997 09:27:18 -0600 (MDT) Date: Wed, 24 Sep 1997 09:27:18 -0600 (MDT) To: LitProg@SHSU.edu, loris@ferro.physik.TU-Berlin.DE CC: beebe@math.utah.edu, LitProg@SHSU.edu Subject: Re: Not a noweb but a gmake question Message-ID: >> ... I use gmake to generate an executable from noweb .nw files, >> the .c files are automatically deleted. If you want to suppress this deletion, this Makefile command may do the trick: `.PRECIOUS' The targets which `.PRECIOUS' depends on are given the following special treatment: if `make' is killed or interrupted during the execution of their commands, the target is not deleted. *Note Interrupting or Killing `make': Interrupts. Also, if the target is an intermediate file, it will not be deleted after it is no longer needed, as is normally done. *Note Chains of Implicit Rules: Chained Rules. [taken from Emacs info node (make.info)Special Targets] The .PRECIOUS command should be in most modern UNIX make implementations; it was not documented in Stu Feldman's original article ``Make -- A Program for Maintaining Computer Programs'' republished in URL=ftp://ftp.math.utah.edu/pub/tex/bib/master.bib Line=1468 @String{pub-HRW = "Holt, Reinhart, and Winston"} @String{pub-HRW:adr = "New York, NY, USA"} @Book{ATT:UPM83-2, author = "AT{\&T}", key = "ATT", title = "{UNIX} Programmer's Manual", volume = "2", publisher = pub-HRW, address = pub-HRW:adr, pages = "vii + 616", year = "1983", ISBN = "0-03-061743-X", LCCN = "QA76.8.U65 B44 1983", bibdate = "Wed Dec 15 15:22:54 1993", } Neither is it documented in a 1986 System V make description. However, I DO find it in: URL=ftp://ftp.math.utah.edu/pub/tex/bib/master.bib Line=12030 @String{pub-PH = "Pren{\-}tice-Hall"} @String{pub-PH:adr = "Englewood Cliffs, NJ 07632, USA"} @Book{xopen:XPG89-1, author = "{X/Open Company, Ltd.}", title = "{X}\slash Open Portability Guide, {XSI} Commands and Utilities", volume = "1", publisher = pub-PH, address = pub-PH:adr, pages = "xii + 340", year = "1989", ISBN = "0-13-685835-X", bibdate = "Wed Dec 15 19:50:06 1993", } ======================================================================== Nelson H. F. Beebe Tel: +1 801 581 5254 Center for Scientific Computing FAX: +1 801 581 4148 University of Utah Internet e-mail: beebe@math.utah.edu Department of Mathematics, 105 JWB URL: http://www.math.utah.edu/~beebe 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090, USA ======================================================================== 25-Sep-1997 19:45:01-GMT,2080;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id NAA08622 for ; Thu, 25 Sep 1997 13:44:57 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 25 Sep 1997 11:43:28 EST From: "Dr E. Buxbaum" Reply-To: LitProg@SHSU.edu, EB15@leicester.ac.uk Subject: Re: Linux, Noweb, No Nothing. Date: 25 Sep 1997 16:24:30 GMT Message-ID: <60e37u$2u1$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Lee Wittenberg wrote: > Having experience administering (La)TeX under DOS (over a network), I > can support Fred's initial contention that TeX is a bear to administer > (until you get the hang of it) under *any* OS. I'd contend that it's > actually easier under Unix (and its variants, such as Linux) than > under DOS. This probably depends on the TeX system you use. I found setting up emTeX under DOS extremly simple and straight forward, just a question of following a few pages of (well written) documentation. Maintainance is simple too, I just add any new package into its own subdirectory in the \emtex\texinput tree. But once you have the hang of Unix, that is probably not to complicated either... > > Under Red Hat Linux (which I also use), the crucial step is running > "texhash", which isn't made very clear (if at all) in the docs. I'm > always forgetting to run it myself when I download a new LaTeX package. > But I still think that the advantages of using (La)TeX more than > outweigh the disadvantage of administering it. > > -- Lee > > P.S. If you've ever tried to customize MS Word (or any commercial > WP package) to work the way you want it, you'll appreciate the > simplicity (sic) of the TeX directory structure and installation. I second that!!! 25-Sep-1997 21:08:39-GMT,852;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id PAA10542 for ; Thu, 25 Sep 1997 15:08:38 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 25 Sep 1997 15:41:36 EST From: Tim Preager Subject: New Date: Thu, 25 Sep 1997 15:50:24 -0400 Message-ID: <342AC080.134D@rogerswave.ca> Reply-To: LitProg@SHSU.edu, ernie@rogerswave.ca MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu There's a new software company out called CaveMan Software. Check it out at http://preager.rogerswave.ca 25-Sep-1997 22:26:07-GMT,3005;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id QAA12358 for ; Thu, 25 Sep 1997 16:26:06 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 25 Sep 1997 15:47:31 EST From: seafood1@pacbell.net (rob eichen) Reply-To: LitProg@SHSU.edu, seafood1@pacbell.net Subject: job fir hire, programmers needed Date: Thu, 25 Sep 1997 13:18:32 +0700 Message-ID: To: LitProg@SHSU.edu Information on proprietary application We need a proprietary program written for Windows. The application must be able to acquire an image from a camera that we are constructing, scan the image and save in multiple formats. The main purpose of the application is to scan a gray scale image and map the color depth , then convert the different shades of gray to color based on the level of the original image. for example: scan a picture of a bottle in gray scale, convert the image to color depending on the different levels of gray so imperfections will stand out. The control bar will be used to scan through the color spectrum so different levels of gray will change colors. Another way to look at it is, assign each 5 shades of gray (256) a different color so you can scan through the color spectrum until you can see flaws in the image. It's that simple. Requirements: Application must have a control bar to slide the color scale back and forth. Application must be able to acquire images from a frame grabber and a twain source. Application must have an installer, and run on win95. Application must be "stand alone" no plug ins for Photoshop....... Application must have the ability to zoom in and out and select desired areas. Application must have the ability to index the images, for example type information on the image for identification. Application must be able to "move" the image in the window, like the hand on Photoshop. Application must be user friendly and look professional Compensation: We are willing to pay between $500.00 and $1000.00 for a good working application, plus between $50.00 and $100.00 in royalties for each one sold with our hardware. compensation will be dependent on the quality of the finished product. We are looking into a untouched market so the potential for profit is high. Due to the number of responses we have decided to have a contest, send me your idea, credentials, and a plan. Five programmers will be chosen based on our screening. Each one will receive $250.00 to write a test program, and the winner will get the contract. If you are interested contact me at: seafood1@pacbell.net To be assured that we do not overlook you please use "contest app" for you subject header. Thank you for your interest. Rob Eichen -- seafood1@pacbell.net 25-Sep-1997 22:53:44-GMT,1795;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id QAA13063 for ; Thu, 25 Sep 1997 16:53:43 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 25 Sep 1997 17:31:01 EST From: stuart@cosc.canterbury.ac.nz (Stuart A Yeates) Subject: Re: Not a noweb but a gmake question Date: 25 Sep 1997 21:43:32 GMT Message-ID: <60elu4$f8o$1@murdoch.acc.Virginia.EDU> Reply-To: LitProg@SHSU.edu, stuart@cosc.canterbury.ac.nz To: LitProg@SHSU.edu Loris Bennett (loris@ferro.physik.TU-Berlin.DE) wrote: Suprisingly (to me), when I use gmake to generate an executable from noweb .nw files, the .c files are automatically deleted. As I couldn't find any reference to an implicit rule for .nw, I assume intermediate files are always deleted. Although this behaviour is generally quite useful, I want to run lint on the .c files. The deletion of the .c files would also seem to make cpif a bit redundant. How can I stop it happening? you need to communicate to make that these temporary files are "precious", which is done using the .PRECIOUS directive. for example, to instruct make to keep .c and .dvi files, use: .PRECIOUS: %.c %.dvi note that for these to be effective, you need to break your make rules at the level of the .c (or .dvi) file. for example use: %.c: %.nw %.o: %.c rather than: %.o: %.nw stuart -- stuart yeates aka `loam' --- be backward-compatible / strive to be up and running always --- 25-Sep-1997 22:56:37-GMT,1796;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id QAA13138 for ; Thu, 25 Sep 1997 16:56:36 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 25 Sep 1997 17:31:06 EST From: Drew Csillag Reply-To: LitProg@SHSU.edu, drew@staff.prodigy.com Subject: Re: Not a noweb but a gmake question Date: 25 Sep 1997 21:43:16 GMT Message-ID: <60eltk$f8l$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Loris Bennett wrote: > Suprisingly (to me), when I use gmake to generate an executable from > noweb .nw files, > the .c files are automatically deleted. As I couldn't find any reference > to an > implicit rule for .nw, I assume intermediate files are always deleted. If you add this to your makefile it should do what you want: .PRECIOUS: source1.c source2.c $(YADDA_YADDA_YADDA) Gmake, when doing it's transitive closure thing (which allows it to be smart enough to guess that if you have a .w->.c rule and a .c->.o rule, that if you depend on .o and have the .w, it will do the right thing), will delete intermediates unless they are specified as dependancies of the .PRECIOUS target. -- ---------------------------------------------------------------------- Drew Csillag Replies to "drew" at "staff.prodigy.net" Prodigy Services Company http://pages.prodigy.net/drew Staff Programmer/Analyst ---------------------------------------------------------------------- 25-Sep-1997 23:09:56-GMT,2526;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id RAA13417 for ; Thu, 25 Sep 1997 17:09:55 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 25 Sep 1997 17:31:11 EST From: Fred Oberhauser Reply-To: LitProg@SHSU.edu, frob@mpi-sb.mpg.de Subject: Re: Not a noweb but a gmake question Date: 25 Sep 1997 21:43:46 GMT Message-ID: <60elui$f93$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu Loris Bennett writes: > Hello All, > > As I don't read comp.make.gmake or whatever the right newsgroup is > called, I thought > I'd ask here and hope that the moderators aren't too strict. > > Suprisingly (to me), when I use gmake to generate an executable from > noweb .nw files, > the .c files are automatically deleted. As I couldn't find any reference > to an > implicit rule for .nw, I assume intermediate files are always deleted. > Although > this behaviour is generally quite useful, I want to run lint on the .c > files. The deletion > of the .c files would also seem to make cpif a bit redundant. How can I > stop it happening? > from the info file which comes with gnu-make: File: make.info, Node: Special Targets, Next: Multiple Targets, Prev: Empty Targets, Up: Rules Special Built-in Target Names ============================= Certain names have special meanings if they appear as targets. [some targets ommited] `.PRECIOUS' The targets which `.PRECIOUS' depends on are given the following special treatment: if `make' is killed or interrupted during the execution of their commands, the target is not deleted. *Note Interrupting or Killing `make': Interrupts. Also, if the target is an intermediate file, it will not be deleted after it is no longer needed, as is normally done. *Note Chains of Implicit Rules: Chained Rules. You can also list the target pattern of an implicit rule (such as `%.o') as a dependency file of the special target `.PRECIOUS' to preserve intermediate files created by rules whose target patterns match that file's name. > AHGA, > > Loris > > loris@ferro.physik.tu-berlin.de > http://wwwitp.physik.TU-Berlin.DE:80/~loris/ > TU Berlin, PN7-1, Hardenbergstr. 36, 10632 Berlin, FRG 26-Sep-1997 3:01:12-GMT,3456;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id VAA17594 for ; Thu, 25 Sep 1997 21:01:10 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 25 Sep 1997 21:44:13 EST From: furlos@alumni.rpi.edu (Steve Furlong) Reply-To: LitProg@SHSU.edu, furlos@alumni.rpi.edu Subject: Re: noweb and ms word Date: 26 Sep 1997 02:23:06 GMT Message-ID: <60f6aa$n2j$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu In article <603ikg$kns$1@murdoch.acc.Virginia.EDU>, Lee Wittenberg wrote: [[oops, deleted the name of the guy who wrote the following]] >> ... Actually, my plan is a >> little different: >> >> 1. write the web with my favourite editor. >> >> 2. [no]tangle it to produce the code. >> >> 3. import the web into Word, add some formatting and print. >> >> Comments, suggestions are welcome. > >If you can find the file format for Word, you could write a new >backend for noweave, producing a Word-format doc (actually, an RTF >backend should be quite straightforward). Another alternative is to >write Word macros that will format your text chunks appropriately. >Yet another possible alternative, which I think may work: Use the >HTML backend (I believe that the new versions of Word can read and >write HTML). Fat chance of getting the format for the native WinWord files. Converting TeX to RTF should be pretty easy. RTF seems to be a crippled TeX wanna-be. At least the syntax is very similar; I can't speak to the semantics. However, rather than monkeying around with converting file formats and such, a quicker, easier solution is to put in your own special formatting instructions and have a Visual Basic program read the source file and create the Word document via OLE Automation, setting paragraphs, boldface, and so on as the programmer wished. The good ol' runoff/nroff/whatever markings are probably as good a place as any to start. The literate source file would resemble noweb source, except that the documentation chunks would use runoff or whatever instead of LaTeX. The big problem that occurs to me with this method is that the output from the VB tool is not likely to look just like you want, so you (Joe Literate Programmer) are likely to fiddle with the Word document to adjust the appearance. This breaks the "audit trail" from the literate document to the final output. This problem could be alleviated but probably not eliminated by producing RTF from your literate source. Despite my misgivings about this method of producing Word documents from literate source, I'll write a proof-of-concept program. It will take (a subset of) groff markings unless someone emails me very quickly to request something else. I'll need someone to provide an FTP home for others to download it, because I can't do that from here, so far as I know. (I use this account only for email and news, but it may well have abilities about which I know nothing.) At this precise moment I don't have a whole lot of work, so you may see something within a week. However, one of my clients may call tomorrow with a hot project and this program would take a back seat to keeping a roof over my head. (Selfish of me...) Regards, Steve Furlong 26-Sep-1997 9:09:51-GMT,1355;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id DAA24511 for ; Fri, 26 Sep 1997 03:09:50 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 26 Sep 1997 03:57:49 EST From: "Dr E. Buxbaum" Reply-To: LitProg@SHSU.edu, EB15@leicester.ac.uk Subject: Re: noweb and ms word Date: 26 Sep 1997 08:24:51 GMT Message-ID: <60frgj$2nc$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Steve Furlong wrote: > Despite my misgivings about this method of producing Word documents > from literate source, I'll write a proof-of-concept program. It will > take (a subset of) groff markings unless someone emails me very > quickly to request something else. I'll need someone to provide an FTP > home for others to download it, because I can't do that from here, so > far as I know. May be you could submitt it to the CTAN network for inclusion in the noweb tree. This would seem the easiest solution to me. Sending a copy to Norman Ramsey would be a good idea too, IMHO 26-Sep-1997 14:03:49-GMT,4932;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id IAA29318 for ; Fri, 26 Sep 1997 08:03:48 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from relay3.Austria.EU.net by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 26 Sep 1997 08:46:08 EST Received: from shraero.UUCP (uucp@localhost) by relay3.Austria.EU.net (8.8.6/8.8.6) with UUCP id PAA10105; Fri, 26 Sep 1997 15:38:12 +0200 (MET DST) Received: from uranus.co.at. by shraero.co.at (SMI-8.6/SMI-SVR4) id OAA23607; Fri, 26 Sep 1997 14:59:55 +0200 Received: by uranus.co.at. (SMI-8.6/SMI-SVR4) id OAA07421; Fri, 26 Sep 1997 14:59:55 +0200 Date: Fri, 26 Sep 1997 14:59:55 +0200 Message-ID: <199709261259.OAA07421@uranus.co.at.> To: LitProg@SHSU.edu, furlos@alumni.rpi.edu From: roland.kaufmann@shraero.shraero.co.at Reply-To: LitProg@SHSU.edu, roland.kaufmann@shraero.shraero.co.at Subject: Re: noweb and ms word >>>>> "Steve" == Steve Furlong writes: Steve> In article <603ikg$kns$1@murdoch.acc.Virginia.EDU>, Lee Steve> Wittenberg wrote: Steve> [[oops, deleted the name of the guy who wrote the following]] It's me Roland Kaufmann aka >>> ... Actually, my plan is a little different: >>> >>> 1. write the web with my favourite editor. >>> >>> 2. [no]tangle it to produce the code. >>> >>> 3. import the web into Word, add some formatting and print. >>> >>> Comments, suggestions are welcome. [[some of Lee's suggestions omitted]] Steve> Fat chance of getting the format for the native WinWord Steve> files. Agreed. Steve> Converting TeX to RTF should be pretty easy. RTF seems to Steve> be a crippled TeX wanna-be. At least the syntax is very Steve> similar; I can't speak to the semantics. I haven't found any description of RTF and I'm somewhat sceptical about the claims of some people (not here) of it being a standard. Steve> However, rather than monkeying around with converting file Steve> formats and such, a quicker, easier solution is to put in Steve> your own special formatting instructions and have a Visual Steve> Basic program read the source file and create the Word Steve> document via OLE Automation, setting paragraphs, boldface, Steve> and so on as the programmer wished. The good ol' Steve> runoff/nroff/whatever markings are probably as good a place Steve> as any to start. The literate source file would resemble Steve> noweb source, except that the documentation chunks would Steve> use runoff or whatever instead of LaTeX. Why not use (a subset of LaTeX markup) instead? Then you could use ``standard'', if somewhat restricted noweb source. Steve> The big problem that occurs to me with this method is that Steve> the output from the VB tool is not likely to look just like Steve> you want, so you (Joe Literate Programmer) are likely to Steve> fiddle with the Word document to adjust the Steve> appearance. This breaks the "audit trail" from the literate Steve> document to the final output. This problem could be Steve> alleviated but probably not eliminated by producing RTF Steve> from your literate source. I don't know about others, but I try to spend as little time in WinWord as possible. I don't trust it to edit my source there and I want to use noweb to avoid fiddling with the appearance. It would be a big win if the chunk-crossreferences could be handled, but I guess this is the hardest part. Steve> Despite my misgivings about this method of producing Word Steve> documents from literate source, I'll write a Steve> proof-of-concept program. It will take (a subset of) groff Steve> markings unless someone emails me very quickly to request Steve> something else. I'll need someone to provide an FTP home Steve> for others to download it, because I can't do that from Steve> here, so far as I know. (I use this account only for email Steve> and news, but it may well have abilities about which I know Steve> nothing.) At this precise moment I don't have a whole lot Steve> of work, so you may see something within a week. However, Steve> one of my clients may call tomorrow with a hot project and Steve> this program would take a back seat to keeping a roof over Steve> my head. (Selfish of me...) Talking about being selfish, I would prefer support for a subset of LaTeX markup commands (on top of what is produced by noweb (cross-references, quoted code)) like \tt \rm \\ \section \subsection \subsubsection Steve> Regards, Steve Furlong regards, Roland Kaufmann 26-Sep-1997 19:02:55-GMT,3044;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id NAA06209 for ; Fri, 26 Sep 1997 13:02:53 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 26 Sep 1997 10:30:50 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@samson.kean.edu Subject: Re: Linux, Noweb, No Nothing. Date: 26 Sep 1997 14:33:11 GMT Message-ID: <60gh37$bnt$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: LitProg@SHSU.edu On 25 Sep 1997, Dr E. Buxbaum wrote: > Lee Wittenberg wrote: > > > Having experience administering (La)TeX under DOS (over a network), I > > can support Fred's initial contention that TeX is a bear to administer > > (until you get the hang of it) under *any* OS. I'd contend that it's > > actually easier under Unix (and its variants, such as Linux) than > > under DOS. > > This probably depends on the TeX system you use. I found setting up > emTeX under DOS extremly simple and straight forward, just a question > of following a few pages of (well written) documentation. Maintainance > is simple too, I just add any new package into its own subdirectory in > the \emtex\texinput tree. But once you have the hang of Unix, that is > probably not to complicated either... Actually, I used emTeX too, and was very happy with it. My only hassles were when setting it up on a subdirectory of network drive: I had to set up batch files to set the appropriate environment variables correctly, as the defaults would no longer work. These are the same kinds of problems one deals with under a Unix system (and many non-Unix TeX systems are not as easy to set up as emTeX -- they don't come with fonts, for example). In any event, reading the docs first was essential in setting up emTeX, as it is in any TeX system (because there are so many ways to configure it). There is a wonderful "Setting up emTeX" document by Daniel Lucking, and a terrific book, "Making TeX Work" by Norman Walsh. Both of these are incredibly useful in setting up and administering a TeX system (the former doesn't help quite as much for a non-emTeX configuration, but there are some nice points of convergence). Unfortunately, neither one was available when I was first trying my hand at TeX :-( -- Lee ------------------------------------------------------------------------ Lee Wittenberg | O God, send me a plan, just one little Computer Science Department | idea, I don't want You to do a miracle, Kean College of New Jersey | I'll do all the work if only You'll give Union, NJ 07083 | me an idea. | -- Manning Coles leew@samson.kean.edu | "Drink to Yesterday" (1940) ------------------------------------------------------------------------ 27-Sep-1997 0:22:36-GMT,1560;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id SAA12837 for ; Fri, 26 Sep 1997 18:22:35 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 26 Sep 1997 18:44:57 EST From: "Information" Reply-To: LitProg@SHSU.edu, information@ldesign.com Subject: Advanced ONLINE TRAINING for Professional Developers Date: 26 Sep 1997 23:37:24 GMT Message-ID: <01bccac7$3ee307e0$0f00a8c0@tan.ldesign.com> To: LitProg@SHSU.edu Check out the newest ONLINE TRAINING in C++, MFC, COM, ATL, DCOM, ActiveX, 32 bit Windows, ODBC and Java for serious development. Visit our site http://www.ldesign.com for an amazing offering. This site trains you in over 150 red-hot development subjects. There are over 5,000 pages of well organized, concise material with 100s of hands-on, downloadable labs and 1,000s of detailed, up-to-date code examples. All this comes at an unbeatable price - far less than books and CDs or regular classes - with terrific convenience. Available nowhere else, this is one unique opportunity to expand your horizons with the help of the most experienced, advanced developer training company in existence. It's also totally cool... see for yourself at http://www.ldesign.com! Maureen & Vicky Online Education Reps mailto:information@ldesign.com 28-Sep-1997 3:07:07-GMT,64888;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id VAA09049 for ; Sat, 27 Sep 1997 21:07:05 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sat, 27 Sep 1997 21:41:13 EST From: thompson@sun1.coe.ttu.edu Subject: comp.programming.literate FAQ Date: 27 Sep 1997 09:08:47 GMT Message-ID: Reply-To: LitProg@SHSU.edu, thompson@sun1.coe.ttu.edu To: LitProg@SHSU.edu Archive-name: literate-programming-faq Last-modified: 1997/08/15 Version: 1.1.18 The Literate Programming FAQ David B. Thompson 15 August 1997 This document is for new and experienced users of literate programming tools. The purpose is to explain the concept of literate programming and to provide a resource for locating files of interest to literate programmers and those interested in literate programming. ______________________________________________________________________ Table of Contents: 1. Welcome 1.1. Disclaimer 1.2. Copyright 1.3. What's New? 2. Introduction or 3. How do I get the FAQ? 3.1. Literate Programming FAQ 3.2. FWEB FAQ 4. Is there a newsgroup? 5. What internet nodes are of interest to literate programmers? 6. What is Literate Programming? 7. How do I begin literate programming? 8. What literate programming tools are available? 8.1. APLWEB 8.2. AWEB 8.3. CLiP 8.4. CWEB 8.5. CWEBx3.0 8.6. mCWEB 8.7. FunnelWeb 8.8. FunnelWeb 3.0AC 8.9. FWEB 8.10. IMPACT 8.11. lit2x 8.12. Literate Programmer's Workshop (LPW) 8.13. MapleWEB 8.14. MWEB (Schrod/Detig) 8.15. MWEB (Sewell) 8.16. noweb 8.17. nuweb 8.18. ProTeX 8.19. RWEB 8.20. SchemeWEB 8.21. SpideryWEB 8.22. WEB 8.23. WinWordWEB 9. Are there other tools I should know about? 9.1. C2LaTeX 9.2. c2cweb 9.3. c2man 9.4. cnoweb 9.5. Fold2Web 9.6. Funnelweb Mode 9.7. noweb.el 9.8. nuweb.el 9.9. TIE 9.10. Web mode 10. What other resources are available? 10.1. World Wide Web 10.2. TeX Resources 11. Are there any code examples? 12. Bibliographies 13. How to anonymously ftp 14. Acknowledgements 15. End notes ______________________________________________________________________ 1. Welcome Information contained in this document is the best available at preparation. The original file was dated October 15, 1993 (just for historical purposes). 1.1. Disclaimer Disclaimer: ``This FAQ is presented with no warranties or guarantees of ANY KIND including correctness or fitness for any particular purpose. The author of this document has attempted to verify correctness of the data contained herein; however, slip-ups can and do happen. If you use this data, you do so at your own risk.'' 1.2. Copyright Copyright 1993-1997 by David B. Thompson. All rights reserved worldwide. Permission is granted to copy this document for free distribution so long as it remains intact and unmodified. For other arrangements, contact the author/maintainer via email: 1.3. What's New? o My email address has changed (once again). o Newsgroup is moderated. o Updated fweb entry. o Updated noweb entry. o Added mCWEB entry. o Updated c2cweb entry. o Updated nuweb.el entry. o Updated cLiP entry. o Updated Lee W's examples (from bart). o Last, but not least, new formatting of the FAQ. Many thanks go to Andrew Johnson for helping make this happen. 2. Introduction or ``What's this all about?'' This document is for new and experienced users of literate programming tools. The purpose is to explain the concept of literate programming and to provide a resource for locating files of interest to literate programmers and those interested in literate programming. The Literate Programming (LitProg) Frequently Asked Questions (FAQ) list is maintained by Dave Thompson Comments and constructive criticisms are welcome. Direct flames to /dev/null (or nul if you're a msdos user! ;-) If you find an error, please report it. I'm particularly interested in establishing the locations of generally available literate programming tools. If you are the author of such a tool and wish to have it included in this list, please send email. Please note this is a work-in-progress. It is not complete, and probably will never be complete. Nevertheless, the information contained herein may be useful to some. Use it as it is intended. 3. How do I get the FAQ? 3.1. Literate Programming FAQ You have many ways to get a current copy of this FAQ. One is to use anonymous ftp (if you don't know how, see a later section in this FAQ) to connect to one of the Comprehensive TeX Arvchive Network (CTAN) sites or the Literate Programming Archive and retrieve a copy of the file. Open an ftp connection to one of the CTAN sites and retrieve the file: help/LitProg-FAQ (For more information on CTAN and the literate programming archive, see the section below entitled ``Internet Nodes of Interest to Literate Programmers''.) 3.2. FWEB FAQ David Coker maintains the FWEB FAQ. The current version number is 1.30a. It can be retrieved in the same way as this FAQ. The FWEB FAQ exists in various formats, including HyperText (see other resources below). In Europe, the complete distribution can also be obtained from ftp.desy.de 131.169.10.115 in directory /pub/faq/web/fweb/. It is also available from the literate programming archive in the directory LPA/Documentation/faq/fweb (see the references to LPA below for more information). 4. Is there a newsgroup? One of the most important resources is the literate programming newsgroup, comp.programming.literate. Because of the amount of spamming and unrelated the posts, the newsgroup is now moderated. Posts to the newsgroup are now routed through litprog- mod@cs.virginia.edu. If your news reader does not post through this address, then you will be unable to post messages to the newgroup. You can read this newsgroup using your standard reader. 5. What internet nodes are of interest to literate programmers? The principal nodes of interest to literate programmers are the Literate Programming Archive (LPA hereafter) and the CTAN (Comprehensive TeX Archive Network). The Literate Programming Archive (LPA) is: Node: ftp.th-darmstadt.de [130.83.55.75] Directory: programming/literate-programming Notes: Fastest response during off-U.S. [yep] business hours. Participating hosts in the Comprehensive TeX Archive Network are: ftp.dante.de (Deutschland) -- anonymous ftp /tex-archive (/pub/tex /pub/archive) -- gopher on node sun.dante.de -- e-mail via ftpmail@dante.de -- Administrator: ftp.tex.ac.uk (England) -- anonymous ftp /tex-archive (/pub/tex /pub/archive) -- gopher on node gopher.tex.ac.uk -- NFS mountable from nfs.tex.ac.uk:/public/ctan/tex-archive -- World Wide Web access on www.tex.ac.uk -- Administrator: The site ftp.shsu.edu used to be the American CTAN site. Apparently, that site has fallen into disrepair and should not be considered a primary source for either TeX related or literate programming related material. For the record, the address is: ftp.shsu.edu (Texas, USA) -- anonymous ftp and gopher /tex-archive (/pub/tex /pub/archive) -- NFS mountable from ftp.SHSU.edu:/pub/ftp/tex-archive -- e-mail via ftpmail@ftp.SHSU.edu -- World Wide Web access on www.SHSU.edu -- Administrator: A list of CTAN archive sites and their mirrors can be found on: ftp.dante.de:/tex-archive/CTAN.sites I presume that the other CTAN sites mirror this file, but have not checked. As of my last check (September 1994), it contains: "In order to reduce network load, it is recommended that you use the Comprehensive TeX Archive Network (CTAN) host which is located in the closest network proximity to your site." Known partial mirrors of the CTAN reside on (alphabetically): dongpo.math.ncu.edu.tw (Taiwan) /tex-archive ftp.adfa.oz.au (Australia) /pub/tex/ctan ftp.muni.cz (The Czech Republic) /pub/tex/CTAN ftp.cs.ruu.nl (The Netherlands) /pub/tex-archive ftp.uu.net (Virginia, USA) /pub/text-processing/TeX nic.switch.ch (Switzerland) /mirror/tex Known mirrors of the CTAN reside on (alphabetically): ftp.center.osaka-u.ac.jp (Japan) /CTAN ftp.ccu.edu.tw (Taiwan) /pub/tex ftp.cs.rmit.edu.au (Australia) /tex-archive ftp.duke.edu (North Carolina, USA) /tex-archive ftp.germany.eu.net (Deutschland) /pub/packages/TeX ftp.gwdg.de (Deutschland) /pub/dante ftp.jussieu.fr (France) /pub4/TeX/CTAN ftp.loria.fr (France) /pub/unix/tex/ctan ftp.mpi-sb.mpg.de (Deutschland) /pub4/tex/mirror/ftp.dante.de ftp.uni-bielefeld.de (Deutschland) /pub/tex ftp.uni-stuttgart.de (Deutschland) /tex-archive (/pub/tex) ftpserver.nus.sg (Singapore) /pub/zi/TeX src.doc.ic.ac.uk (England) /packages/tex/uk-tex sunsite.unc.edu (North Carolina, USA) /pub/packages/TeX wuarchive.wustl.edu (Missouri, USA) /packages/TeX Other nodes and directories of interest include: Node: ftp.desy.de [131.169.10.115] Directory: pub/web. Various documents, samples, and the FWEB FAQ. Notes: Has a www server, http://info.desy.de:80/ 6. What is Literate Programming? Literate programming is the combination of documentation and source together in a fashion suited for reading by human beings. In fact, literate programs should be enjoyable reading, even inviting! (Sorry Bob, I couldn't resist!) In general, literate programs combine source and documentation in a single file. Literate programming tools then parse the file to produce either readable documentation or compilable source. The WEB style of literate programming was created by D.E. Knuth during the development of his TeX typsetting software. All the original work revolves around a particular literate programming tool called WEB. Knuth says: The philosophy behind WEB is that an experienced system pro- grammer, who wants to provide the best possible documenta- tion of his or her software products, needs two things simultaneously: a language like TeX for formatting, and a language like C for programming. Neither type of language can provide the best documentation by itself; but when both are appropriately combined, we obtain a system that is much more useful than either language separately. The structure of a software program may be thought of as a web that is made up of many interconnected pieces. To docu- ment such a program we want to explain each individual part of the web and how it relates to its neighbours. The typo- graphic tools provided by TeX give us an opportunity to explain the local structure of each part by making that structure visible, and the programming tools provided by languages such as C or Fortran make it possible for us to specify the algorithms formally and unambigously. By combin- ing the two, we can develop a style of programming that max- imizes our ability to perceive the structure of a complex piece of software, and at the same time the documented pro- grams can be mechanically translated into a working software system that matches the documentation. Another author (Eric W. van Ammers) wrote me a short article treating his opinions on literate programming. The text follows: First observation on LP About 90% of the disussion on this list is about problems with applying some WEB-family member to a particular programming language or a special documentation situation. This is ridiculous, I think. Let me explain shortly why. Lemma 1: I have proposed for many years that programming has nothing to do with programming langauges, i.e. a good programmer makes good programs in any language (given some time to learn the syntax) and a bad programmer will never make a good program, no matter the language he uses (today many people share this view, fortunately). Lemma 2: Literate Programming has (in a certain way not yet completely understood) to do with essential aspects of programming. Conclusion 1: A LP-tool should be independent of programming language. Lemma 3: It seems likely that the so called BOOK FORMAT PARADIGM ref. 1 plays an important role in making literate programs work. Lemma 4: There are very many documentation systems currently being used to produce documents in the BOOK FORMAT. Conclusion 2: A LP-tool should be independent of the documentation system that the program author whishes to use. My remark some time ago that we should discuss the generic properties of an LP-tool was based on the above observation. References 1 Paul W. Oman and Curtus Cook. ``Typographical style is more than cosmetic.'' CACM 33, 5, 506-520 (May 1990) Second observation on LP The idea of a literate program as a text book should be extendend even further. I would like to see a literate program as an (in)formal argument of the correctness of the program. Thus a literate program should be like a textbook on mathematicics. A mathematical textbook explains a theory in terms of lemma and theorems. But the proofs are never formal in the sense that they are obtaind by symbol manipulation of a proof checker. Rather the proofs are by so called ``informal rigour'', i.e. by very precise and unambiguous sentences in a natural language. Eric W. van Ammers Department of Computer Science Wageningen Agricultural University Dreijenplein 2 E-mail: ammers@rcl.wau.nl 6703 HB Wageningen voice: +31 (0)8370 83356/84154 The Netherlands fax: +31 (0)8370 84731 Another author (Norman Ramsey) wrote me and asked that his opinions be included in the FAQ. What follows are Norman's comments verbatim. I see it's time for the ``how is literate programming dif- ferent from verbose commenting'' question. Perhaps David Thompson will get this into the FAQ. Alert! What follows are my opinions. In no way do I claim to speak for the (fractious) literate-programming community. How is literate programming different from verbose commenting? There are three distinguishing characteristics. In order of importance, they are: o flexible order of elaboration o automatic support for browsing o typeset documentation, especially diagrams and mathematics Flexible order of elaboration means being able to divide your source program into chunks and write the chunks in any order, independent of the order required by the compiler. In principle, you can choose the order best suited to explaining what you are doing. More subtly, this discipline encourages the author of a literate program to take the time to consider each fragment of the program in its proper sphere, e.g., not to rush past the error checking to get to the ``good parts.'' In its time and season, each part of the program is a good part. (This is the party line; your mileage may vary.) I find the reordering most useful for encapsulating tasks like input validation, error checking, and printing output fit for humans --- all tasks that tend to obscure ``real work'' when left inline. Reordering is less important when using languages like Modula-3, which has exceptions and permits declarations in any order, than when using languages like C, which has no exceptions and requires declaration before use. Automatic support for browsing means getting a table of contents, index, and cross-reference of your program. Cross-reference might be printed, so that you could consult an index to look up the definition of an identifier `foo'. With good tools, you might get a printed mini-index on every page if you wanted. Or if you can use a hypertext technology, cross-reference might be as simple as clicking on an identifier to reach its definition. Indexing is typically done automatically or `semi- automatically', the latter meaning that identifier definitions are marked by hand. Diligently done semi- automatic indexes seem to be best, because the author can mark only the identifiers he or she considers important, but automatic indexing can be almost as good and requires no work. Some tools allow a mix of the two strategies. Some people have applied literate-programming tools to large batches of legacy code just to get the table of contents, index, and cross-reference. I don't use diagrams and mathematics very often, but I wouldn't want to have to live without them. I have worked on one or two projects where the ability to use mathematical formulae to document the program was indispensible. I also wouldn't like to explain some of my concurrent programs without diagrams. Actually I write almost all of my literate programs using only sections headers, lists, and the occasional table. >Wouldn't it be easier to do one's literate programming using >a wysiwyg word processor (e.g. Word for Windows) and >indicate what is source code by putting it in a different >font? The data formats used in wysiwyg products are proprietary, and they tend to be documented badly if at all. They are subject to change at the whim of the manufacturer. (I'll go out on a limb and say there are no significant wysiwyg tools in the public domain. I hope the Andrew people will forgive me.) These conditions make it nearly impossible to write tools, especially tools that provide automatic indexing and cross-reference support. The CLiP people have a partial solution that works for tools that can export text --- they plant tags and delimiters throughout the document that enable the reordering transformation (``tangling''). People use TeX, roff, and HTML because free implementations of these tools are widely available on a variety of platforms. TeX and HTML are well documented, and TeX and roff are stable. TeX is the most portable. I think I have just answered the FAQ ``how come all these tools use TeX, anyway?'' :-) Norman Ramsey 7. How do I begin literate programming? A recommended book is D.E. Knuth's collection of articles (1992) Literate Programming. Center for the Study of Language and Information, Stanford University, ISBN 0-937073-80-6 (pbk). This book gives insight into Knuth's thoughts as he developed the web system of literate programming (and TeX for typesetting). It does not document methods for literate programming. A recommended book is Wayne Sewell's (1989) Weaving a Program: Literate Programming in WEB. Van Nostrand Reinhold, ISBN 0-442-31946-0 (pbk). This book focuses on using Knuth's web system. Some talk exists in the newsgroup/mailing list for a Usenet University course in literate programming. I'm sure discussion of this topic will be welcomed. If you are interested, please participate. 8. What literate programming tools are available? A significant number of tools for literate programming are available. Most have been ported from their original systems, so support multiple computer platforms. If you are the developer of such a tool, and would like to make the software freely available, please send me email and I'll reply with a form (like those below) for you to fill in. (Or short-circuit the process and kludge a form from below. :-) 8.1. APLWEB Developer: Christoph von Basum Version: Unknown Hardware: MSDOS Languages: IBM APL2 and STSC APL Formatter: Plain TeX Availability: Anonymous ftp from: LPA:/apl watserv1.uwaterloo.ca:/languages/apl/aplweb Readme: Unknown Description: None available. Support: Unknown Note: The status of this particular package is unknown. 8.2. AWEB Developer: Unknown Version: Unknown Hardware: Unknown Languages: Ada Formatter: Unknown Availability: Anonymous ftp from: LPA:/ada/web Readme: Unknown Description: None available Support: Not supported. 8.3. CLiP Developer: E.W. van Ammers and M.R. Kramer Versions: 2.0 and 2.4b (DOS only) Platform: Vax/VMS, Unix, DOS Languages: Any programming language Formatter: Any formatter (TeX, LaTeX, Troff, Runoff, HTML, etc) or any wordprocessor including WYSIWYG systems (Word Perfect, WinWord, Ami Pro, Word Pro, etc.) Availability: Anonymous ftp from: sun01.info.wau.nl:/CLIP/ms_dos DOS sun01.info.wau.nl:/CLIP/ms_dos_24b DOS (v. 2.4b) sun01.info.wau.nl:/CLIP/vax_vms VAX/VMS sun01.info.wau.nl:/CLIP/unix Unix CTAN:/web/clip LPA:/machines/ms-dos LPA:/machines/vax Readme: With bundle above Description: CLiP does not use explicit commands to perform the extraction process. Rather it recognizes pseudostatements written as comments in the programming language in question. CLiP distinguishes pseudostatements from ordinary comments because the former comply with a particular style. This style can be adjusted to suit virtually any programming language. The CLiP approach to LP makes the system extremely versatile. It is independent of programming language and text processing environment. We designed CLiP to be compatible with hypertext systems as well. Some hypertext examples are at ftp://sun01.info.wau.nl/clip/html/queens.htm ftp://sun01.info.wau.nl/clip/html/pal1.htm Features: + CLiP imposes virtually no limitations on the text-processing system used to produce the documentation. If the text-processor supports these items you can + structure the documentation according to your own taste. + include drawings, pictures, tables etc. + disclose your documentation my means of X-ref tables, Indexes, Table of contents, Table of tables, Table of figures, etc. + typeset the documented code. + Extracts any number of modules from a maximum of 64 source files. + No pretty-printing. Code from the source files is copied "as is" to the module. + Appearance of code segments in the documentation matches those of the modules to ease the identification of code segments. + Supports partially specified data types. + Comprehensive user manual (preliminary version) and technical description. - No automatic generation of a X-ref table for program identifiers. Support: Bugs, problems and assistance by e-mail to Eric.vanAmmers@user.info.wau.nl 8.4. CWEB Developer: Silvio Levy and D.E. Knuth Version: 3.0 Hardware: Unix systems (dos and amiga ports available) Languages: C and C++ Formatter: Plain TeX and LaTeX. Availability: Anonymous ftp from: labrea.stanford.edu:/pub/cweb LPA:/c.c++ CTAN:/web/c_cpp/cweb DOS version in CTAN:/web/c_cpp/cwb30p8c DOS version in LPA:/machines/ms-dos Amiga version CTAN:/web/c_cpp/AmigaCWEB Mac port of CTANGLE in LPA:/machines/mac LaTeX support in LPA:/c.c++ Readme: Bundled with above Description: No description provided. Support: Bugs to levy@math.berkeley.edu 8.5. CWEBx3.0 Developer: Marc van Leeuwen Version: Unknown Hardware: Any system using ASCII code Languages: ANSI C Formatter: Plain TeX Availability: Anonymous ftp from: ftp.cwi.nl/pub/cweb Readme: Bundled with above Brief description: A modified implementation of CWEB, with some extensions. Provides a mode for full compatibility with Levy/Knuth CWEB. The most significant extras are: - Typedef declarations affect formatting througout source file - Include files are scanned for typedef definitions - Flexible selection of layout style - Possibility to refer to sections using symbolic labels - CTANGLE detects unbalanced braces and parentheses - CWEAVE can be made to report syntax errors more easily - Some additional mechanisms to avoid formatting problems - New and modular set of grammar rules, based on ANSI C syntax - Possibility to suppress #line directives - A new manual Support: bugs and remarks to M.van.Leeuwen@cwi.nl 8.6. mCWEB Developer: Markus Oellinger Version: 1.0 Hardware: Unix Languages: C/C++ Formatter: plainTeX Availability: anonymous ftp from ist.tu-graz.ac.at:/pub/utils/litprog/mcweb/mcweb.tgz Readme: at same location Description: This is mCWEB 1.0, a descendant of the CWEB system of structured documentation by Donald E. Knuth and Silvio Levy. It adds some features that are indispensable when working in a team. mCWEB regards a project of a book consisting of several chapter files. By means of import and export commands, it automatically manages all relationships between the chapters of a book and to other books. Interface documentation is now also part of mCWEB. It is extracted into a second TeX file. This makes it possible to define well known interfaces between the individual parts of a project that will be implemented by different persons. In addition, mCWEB parses C header files to find out about all the datatypes defined there. mCWEB comes with a full completely rewritten user manual and is compatible with CWEB. Support: Institute of Software Technology moell@ist.tu-graz.ac.at 8.7. FunnelWeb Developer: Ross N. Williams: ross@guest.adelaide.edu.au Version: Unknown Hardware: MSDOS, Mac, VMS, Sun. Other ports reported. Languages: No restrictions. Formatter: Plain TeX for printing. Otherwise, no restrictions. Availability: Anonymous ftp from: CTAN:/web/funnelweb LPA:/independent ftp.adelaide.edu.au:/pub/funnelweb Readme: With bundle above. Description: FunnelWeb is a production-quality literate-programming tool that emphasises simplicity and reliability. Everything about FunnelWeb, from the simplicity of its language to the comprehensive tutorial in the user's manual, has been designed to make this as simple, as practical, and as usable a tool as possible. Features: + Provides a simple macro preprocessor facility. + Can produce typeset documentation. + Runs on Sun, VMS VAX, Macintosh, PC, and others. + Portable C source code distributed under GNU licence. + Comprehensive user's manual including tutorial. + Programming-language independent. + Can generate multiple output files. + Allows complete control over the output text. + Regression test suite with over 200 tests. + Fully worked example (in /pub/funnelweb/examples). - Requires TeX to produce typeset documentation. - Typesets program code using TT font only. Support: No formal support available. Mailing list maintained with about 50 subscribers. Informal assistance available from mailing list. 8.8. FunnelWeb 3.0AC Developer: Enhanced by A.B.Coates (coates@physics.uq.edu.au) from FunnelWeb v3.0 by Ross N. Williams (ross@guest.adelaide.edu.au) Version: 3.0AC Hardware: MSDOS, Mac, VMS, Sun, OSF/1, Linux, Sys.V, OS/2. Languages: No restrictions. Formatter: Tex, LaTeX, or HTML. Availability: Anonymous ftp from ftp.physics.uq.oz.au:/pub/funnelwebAC30.tar.gz Readme: With bundle above; for FunnelWeb manual see WWW page http://www.physics.uq.oz.au:8001/people/coates/funnelweb.html Description: FunnelWeb 3.0AC is an enhanced version of FunnelWeb (see the entry for FunnelWeb). FunnelWeb is designed to be typesetter independent, though FunnelWeb v3.0 only supports (La)TeX as the typesetter. FunnelWeb 3.0AC also supports HTML, and creates appropriate hypertext links within the document among the code sections. FunnelWeb 3.0AC also supports automatic and manual insertion of line directives, so that compiler errors can be flagged back to the original FunnelWeb source file. FunnelWeb 3.0AC is completely compatible with FunnelWeb v3.0 sources (with one minor exception; see the file README.ABC which comes with the FunnelWeb 3.0AC distribution). Support: Supported by A.B.Coates (coates@physics.uq.edu.au), subject to the time constraints imposed by his thesis. 8.9. FWEB Developer: John A. Krommes Version: 1.53 (1.60-beta for the experienced, patient, and brave) Hardware: Unix, VMS, and DOS platforms (anything with ANSI C) Languages: C, C++, Fortran-77, Fortran-90, Ratfor, TeX; also, a language-independent mode. Formatter: LaTeX. Plain TeX may work, but is no longer supported. Availability: Anonymous ftp from: ftp.pppl.gov:/pub/fweb CTAN:/web/fweb LPA:/fweb DOS version in LPA:/machines/ms-dos Readme: In bundle with above. Description: It also has a well-developed user's manual and its own FAQ (see above). Beginning with 1.40, documentation is maintained in gnu texinfo format. It runs on most platforms: VMS, PC, UNIX, and pretty much anything that the GNU C compiler (GCC) is supported for. Features: + Processes multiple languages during a single run (so one can mix C and Fortran, for example). + Language-independent mode (v1.40). + Ability to turn off pretty-printing (v1.40). + Built-in Ratfor translator. + Built-in macro preprocessor (closely follows ANSI C, with extensions). + A style file that allows the user to adjust many parameters and behavior patterns of FWEB. + Various operator-overloading features that provide additional pretty-printing capabilities to languages such as C++ and Fortran-90. + Numerous miscellaneous features and command-line options. Support: Bug reports and suggestions to krommes@princeton.edu 8.10. IMPACT Developer: Timothy Larkin, from Levy/Knuth CWEB 3.1 Version: 1.0 Hardware: Macintosh; requires AppleEvents. Languages: C, C++ Formatter: TeX Availability: CTAN archives Readme: A short readme file is included in the SEA archive. Description: IMPACT implements CTangle from the Levy/Knuth CWEB 3.1. It operates as a foreground program, tangling files selected from the Mac File Picker. Or it can operate in the background, tangling files in response to odoc events sent by other applications, such as editors. Support: I welcome any reports of bugs. The product will be updated as new versions of the CWEB appear. Other features may be added as users suggest them. 8.11. lit2x Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/independent Readme: Unknown Description: None available Support: Unknown 8.12. Literate Programmer's Workshop (LPW) Developer: Norbert Lindenberg Version: 1.1 Hardware: Apple Macintosh Languages: C++, Object Pascal & others Formatter: self-contained WYSIWYG system Availability: Anonymous ftp from: LPA:/machines/mac CTAN:/web/lpw ftp.apple.com:/pub/literate.prog Readme: With bundle above. Also comes with 38-page manual. Description: The Literate Programming Workshop is an environment for the integrated development of program source text and documentation in combined documents. It consists of a WYSIWYG word processor based on a style sheet approach, a mechanism to extract parts of the text in a document, and a project management system that handles multi-document projects. The system is designed to be used in conjunction with the Macintosh Programmer's Workshop: it prepares raw source text for the MPW compilers, accepts MPW error messages, and shows them in the context of the original documents. Automatic indexing and hypertext features allow for easy access to both source text and documentation. LPW is shareware. Support: Bugs, problems, and questions to lpw@aol.com. 8.13. MapleWEB Developer: Unknown Version: Unknown Hardware: Unknown Languages: Maple Formatter: Unknown Availability: Anonymous ftp from: LPA:/maple Readme: Unknown Description: None Support: Unknown 8.14. MWEB (Schrod/Detig) Developer: Joachim Schrod Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. 8.15. MWEB (Sewell) Developer: Sewell Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. 8.16. noweb Developer: Norman Ramsey Version: 2.8 Hardware: Unix and DOS platforms (DOS binaries available for v2.7). Languages: All programming languages, singly or in combination. Automatic indexing for C, Icon, Pascal, Standard ML, TeX, Yacc Formatter: Plain TeX, LaTeX, and HTML formatters. Will convert LaTeX to HTML automatically. Availability: Anonymous ftp from: CTAN:/web/noweb LPA:/independent Last recourse, use ftp.cs.virginia.edu:pub/nr Readme: With bundle above, or see the noweb home page: http://www.cs.virginia.edu/~nr/noweb Those without ftp access can consult ``Literate Programming Simplified,'' IEEE Software, September 1994, pp97-105. Description: noweb is designed to meet the needs of literate programmers while retaining the simplest possible input format. 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. The primary sacrifice relative to WEB is that code is not prettyprinted. noweb supports indexing and identifier cross-reference, including hypertext ``hot links.'' noweb includes a simple, efficient LaTeX-to-HTML converter, so you can use hypertext browsers on your legacy documents. noweb can also process nuweb programs, so you can use noweb to convert a standard nuweb program to HTML with one command. Support: email to the author 8.17. nuweb Developer: Preston Briggs: preston@cs.rice.edu Version: 0.87 Hardware: Unix systems: Sparcs, RS/6000s, HPs; (!) MSDOS and Amiga. Languages: Any programming language or combination of programming languages. Formatter: Latex Availability: Anonymous ftp from: Unix: CTAN:/web/nuweb DOS: CTAN:/web/nuweb-pc LPA:/independent Amiga: CTAN:/web/nuweb/nuweb_ami Amiga: wuarchive.wustl.edu/pub/aminet Readme: Send mail to preston@cs.rice.edu Description: A single program that takes a web file written in a combination of latex and any programming language(s) and produces a latex file that can be pretty printed and a set of files containing code for compilation/interpretation by the appropriate language processors. Strengths include speed, simplicity, multiple languages, nice indices and cross-references, latex. Doesn't require any special macros or macro files. Drawbacks: latex-dependent, no code pretty printing, harder to make indices than cweb. More good stuff: nice support for make, doesn't reformat source files, so they're easy to debug. Lots of control without too much effort. That is, it doesn't do too much! Future directions... Very little change planned, except perhaps refinements in the indexing software. Support: Hack it yourself or send e-mail to preston@cs.rice.edu 8.18. ProTeX Developer: Eitan Gurari Version: ProTeX 1.1, AlProTeX 1.4 Hardware: Any platform with (La)TeX Languages: Any language Formatter: TeX or LaTeX Availability: Anonymous ftp from: ftp.cis.ohio-state.edu : pub/tex/osu/gurari/ LPA:/independent Readme: With bundle above Description: + Easy to use + Extensible + Language independent + Multiple output files + Fast (single compilation provides output and dvi files) + No installation is needed besides copying the files (written in TeX) Introduction of main features and examples in pub/tex/osu/gurari/LitProg Complete manual in Eitan M. Gurari, "TeX and LaTeX: Drawing and Literate Programming", McGraw-Hill, 1994 Support: gurari@cis.ohio-state.edu 8.19. RWEB Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/reduce Readme: Unknown Description: Web generator in AWK. Support: Unknown 8.20. SchemeWEB Developer: John D. Ramsdell Version: 2.1 Hardware: Unix and DOS platforms Languages: Any dialect of Lisp. Formatter: LaTeX. Availability: The Unix version is in the Scheme Repository and it is available via anonymous ftp from: cs.indiana.edu:/pub/scheme-repository/utl/schemeweb.sh LPA:/lisp CTAN:/tex-archive/web/schemeweb The DOS version is part of the PCS/Geneva Scheme system which is available via anonymous ftp from: cui.unige.ch:/pub/pcs LPA:/machines/ms-dos Readme: In bundle with above. Description: SchemeWEB is a Unix filter that allows you to generate both Lisp and LaTeX code from one source file. The generated LaTeX code formats Lisp programs in typewriter font obeying the spacing in the source file. Comments can include arbitrary LaTeX commands. SchemeWEB was originally developed for the Scheme dialect of Lisp, but it can easily be used with most other dialects. Support: Bug reports to ramsdell@mitre.org. 8.21. SpideryWEB Developer: Norman Ramsey Version: Unknown Hardware: Unix and DOS platforms Languages: Most Algol-like languages, including C, Ada, Pascal, Awk, and many others. Formatter: Plain TeX and latex for text formatters. Availability: Anonymous ftp from: CTAN LPA:/spiderweb Readme: In distribution. Description: A system for building language-dependent WEBs. Spider is frozen; no further development is planned. Support: Bug reports to spider-bugs@oracorp.com. 8.22. WEB Developer: Donald Knuth Version: Unknown Hardware: Unknown Languages: Pascal Formatter: TeX (of course! ;-) Availability: Anonymous ftp from: LPA:/pascal Readme: Unknown Description: This is the original software that started it all. The original TeX processor was written in WEB. Support: None known. 8.23. WinWordWEB Developer: Lee Wittenberg Version: Unknown Hardware: Needs Microsoft Word for Windows, v.2.x, and, of course, MS-Windows 3.x. Languages: Any programming language. Formatter: Word for Windows 2.x for text formatting and file maintenance. Availability: Anonymous ftp from: bart.kean.edu:pub/leew LPA:/machines/ms-dos World-Wide Web (WWW) Readme: WORDWEB.DOC in the downloadable package describes the system. Description: WinWordWEB is a set of a Word for Windows macros (plus a paragraph style) that provide a crude literate programming environment. The ``look and feel'' of the system is based on Norman Ramsey's noweb, but can easily be modified to suit individual tastes. Support: None. WinWordWEB was written as a prototype to see if a WYSIWYG literate programming system was possible. It is intended as a jumping off point for future work by others. However, the system is surprisingly usable as it stands, and the author is interested in hearing from users (satisfied and dissatisfied). Anyone interested in actively supporting (and improving) the product should contact the author via email. 9. Are there other tools I should know about? First of all, I'll list some not-quite-literate-programming tools. Some may consider these to be pretty-printers. Others may call them literate programming tools. In any event, they don't seem to be quite in the same category as the tools listed above, so I'll include them here. 9.1. C2LaTeX Developer: John D. Ramsdell Version: Unknown Hardware: Unix Languages: C Formatter: LaTeX but it's easy to change the formatter. Availability: Anonymous ftp from omnigate.clarkson.edu:/pub/tex/tex-programs/c2latex. Readme: Absent. Documentation is in the C source for c2latex. Description: C2latex provides simple support for literate programming in C. Given a C source file in which the comments have been written in LaTeX, c2latex converts the C source file into a LaTeX source file. It can be used to produce typeset listings of C programs and/or documentation associated with the program. C2latex produces LaTeX source by implementing a small number of rules. A C comment that starts at the beginning of a line is copied unmodified into the LaTeX source file. Otherwise, non-blank lines are surrounded by a pair of formatting commands (\begin{flushleft} and \end{flushleft}), and the lines are separated by \\*. Each non-blank line is formatted using LaTeX's \verb command, except comments within the line are formatted in an \mbox. Support: Send bug reports to ramsdell@mitre.org. 9.2. c2cweb Developer: Werner Lemberg Version: 1.5 Hardware: DOS, OS/2, Unix (gcc) - CWEB source included Languages: C, C++ Formatter: TeX Availability: Anonymous ftp from CTAN:/web/c_cpp/c2cweb Readme: In distribution. Description: c2cweb will transform plain C or C++ code into a CWEB file to get a pretty formatted output. A modified CWEAVE (which transforms the CWEB file into a TeX file, see below) is included also. Support: Werner Lemberg 9.3. c2man language: C, nroff, texinfo, latex, html package: c2man version: 2.0 patchlevel 33 parts: documentation generator (C -> nroff -man, -> texinfo, ->latex, -> html) author: Graham Stoney location: ftp from any comp.sources.misc archive, in volume42 (the version in the comp.sources.reviewed archive is obsolete) ftp /pub/Unix/Util/c2man-2.0.*.tar.gz from dnpap.et.tudelft.nl Australia: ftp /usenet/comp.sources.misc/volume42/c2man-2.0/* from archie.au N.America: ftp /usenet/comp.sources.misc/volume42/c2man-2.0/* from ftp.wustl.edu Europe: ftp /News/comp.sources.misc/volume42/c2man-2.0/* from ftp.irisa.fr Japan: ftp /pub/NetNews/comp.sources.misc/volume42/c2man-2.0/* from ftp.iij.ad.jp Patches: ftp pub/netnews/sources.bugs/volume93/sep/c2man* from lth.se description: c2man is an automatic documentation tool that extracts comments from C source code to generate functional interface documentation in the same format as sections 2 & 3 of the Unix Programmer's Manual. It requires minimal effort from the programmer by looking for comments in the usual places near the objects they document, rather than imposing a rigid function-comment syntax or requiring that the programmer learn and use a typesetting language. Acceptable documentation can often be generated from existing code with no modifications. conformance: supports both K&R and ISO/ANSI C coding styles features: + generates output in nroff -man, TeXinfo, LaTeX or HTML format + handles comments as part of the language grammar + automagically documents enum parameter & return values + handles C (/* */) and C++ (//) style comments - doesn't handle C++ grammar (yet) requires: yacc/byacc/bison, lex/flex, and nroff/groff/texinfo/LaTeX. ports: Unix, OS/2, MSDOS, VMS. portability: very high for unix, via Configure status: actively developed; contributions by users are encouraged. discussion: via a mailing list: send "subscribe c2man " (in the message body) to listserv@research.canon.oz.au help: from the author and other users on the mailing list: c2man@research.canon.oz.au announcements: patches appear first in comp.sources.bugs, and then in comp.sources.misc. updated: 1994/10/07 9.4. cnoweb Developer: Jim Fox Version: 1.4 (January 4, 1991) Hardware: Anything with C and TeX. Languages: C Formatter: Plain TeX. Availability: Anonymous ftp from: CTAN LPA:/c.c++ Readme: Unknown, cnoweb.tex contains documentation. Description: cnoweb is as it's name describes: write C, not web. No tangling or weaving is implemented. Documentation (between standard /* */ delimiteres) is written in TeX. cnoweb provides typesetting of documentation, an table of contents of routines, and pretty-printing of C source. Support: None known. 9.5. Fold2Web Developer: Bernhard Lang Version: V0.8 Hardware: MSDOS Languages: All (must allow comment lines) Formatter: LaTeX Availability: Anonymous ftp from: kirk.ti1.tu-harburg.de (134.28.41.50) /pub/fold2web/readme /pub/fold2web/fold2web.zip Readme: In distribution Description: The idea behind the Fold2Web tool is the following: A programmer can write his program source with a folding editor and later map the folded source files automatically to WEB-files. The generated WEB-files can then be modified by inserting required documentations. The advantage by starting program developement with original sources is to get short design cycles during the compile/debug steps. By using a folding editor the global structuring information can be already captured in folds during this developement phase. Fold information is typically stored in comment lines and thus will not affect the efficiency of the compile/debug design cycle. Some folding editors and a folding mode for the emacs are available (e.g. see our FUE folding editor for MSDOS machines which is a modified micro emacs. Pick it at kirk in directory /pub/fold2web). After reaching a stable version of a program source its time to convert the source file to a WEB-file and do the program documentation. Fold2Web is written to convert folded source text of any programming language to nuweb files. The folded structure is kept by mapping folds to scraps. Fold markers which differ between languages due to different ways of specifying comments can be configured for each language. Good results can also achived when given but poor documented program sources have to be modified. Such sources can be folded using a folding editor to extract the global structures. This offers a global view to the program structures and help to understand its functionality. Furthermore the program code is not affected, only comment lines are inserted. Once folded the program source can be automatically translated to a WEB document using the above tool. Support: email to lang@tu-harburg.d400.de 9.6. Funnelweb Mode Developer: Daniel Simmons Version: Unknown Availability: http://www.miscrit.be/~ddw Description: The other day I did a quick hack to nuweb.el as included with the nuweb distribution so as to make a funnelweb-mode.el. I've only used it briefly, and I'm sure that it can be improved quite a bit. I've been thinking about adding support for folding on sections, a pull-down menu to select macro definitions (like the recent functions posted to gnu.emacs.sources for a C function definition pull-down menu) and some kind of tags support for funnelweb. Support: Unknown 9.7. noweb.el Developer: Bruce Stephens Version: Unknown. Availability: LitProg archives (in an email message). Description: This is a very simple mode I just hacked up. There's a lot wrong with it, but I thought others may be interested, even as it stands. It *requires* text properties, and assumes those used in GNU Emacs 19.22; it'll quite likely work with Lucid Emacs, but I haven't tried it. I use it with auctex8.1 and cc-mode 3.229, both of which are loaded separately (I think my emacs is dumped with them, in fact). The idea is to have one mode (which calls itself c-mode, but actually has LaTeX-mode keybindings) generally (this means that the code is hilighted nicely), and have the code chunks use a different keymap. Support: Email to bruce@liverpool.ac.uk 9.8. nuweb.el Developer: Dominique de Waleffe Version: 1.99 Availability: Anonymous ftp from: LPA CTAN Description: Provides a major mode extending Auctex for editing nuweb files. Main features (in 2.0): - Edit scrap bodies in a separate buffer in a different mode (selected using emacs defaults for files, specific indication -*-mode-*-, or a buffer-local variable) - Extends Auctex commands so that nuweb is called before LaTeX, - Easy navigation on scrap definition and use points. - Now creates an imenu (C-M-mouse1) with user index entries, macro definition positions and file definition positions. Support: Email to ddw@acm.org 9.9. TIE Developer: Unknown Version: Unknown Hardware: Unknown Availability: Anonymous ftp from: LPA:/Tools Readme: Unknown Description: This software merges change files. Support: Unknown 9.10. Web mode Developer: Bart Childs Version: Unknown Tools supported: web, fweb, cweb, funnelweb Availability: Anonymous ftp from ftp.cs.tamu.edu:pub/tex-web/web/EMACS.web-mode thrain.anu.edu.au:pub/web/EMACS.web-mode Description: This version works with versions 18 and 19 of Emacs to be best of my knowledge. I have cleaned up a number of documentation items ... In the same directory is wm_refcard.tex which is an edited version of the famous one to include some web-mode commands. The files limbo* are related to its use and notice that half them have an uppercase L in them for LaTeX. The setup is based upon the fact that we (I am not alone here) primarily use FWEB for C and Fortran programming. We are using version 1.40 of FWEB although John Krommes warns that it is not mature and the manual is not yet updated. The info files are! We are using LaTeX almost exclusively. That will likely change and we will revert to version 1.30 if the final form of 1.40 cannot return to the simple section numbers and avoid the HORRIBLE LATEX 0.1.7.2.4.6 type section numbers. Support: Unknown 10. What other resources are available? 10.1. World Wide Web An untapped resource (by me anyway ;-) is the World Wide Web. Marcus Speh has expended considerable effort in this regard. If you're connected to WWW, then access: http://info.desy.de:80/user/projects/LitProg.html If you aren't connected to WWW, telnet to info.cern.ch and explore. You can reach Marcus' literate programming pages by typing: go http://info.desy.de:80/user/projects/LitProg.html or use a WWW browser and access the URL ftp://rtfm.mit.edu/pub/usenet/news-answers/www/resources/literate-programming Help for people who have only Email and neither WWW nor telnet, can be obtained by Email from TEST-LIST@INFO.CERN.CH by sending a message, SEND , for example, SEND http://info.desy.de:80/user/projects/LitProg.html to retrieve the LitProg library page. A help file can be retrieved by sending a message to the list server above with the text HELP in the body of the message. Instructions will be returned by email. For literate programming documents, you can try anonymous ftp to rtfm.mit.edu and retrieve the official Usenet resource file /pub/usenet/news.answers/www/resources/literate-programming 10.2. TeX Resources Another resource of interest to literate programmers is the comp.text.tex newsgroup. If you're using (La)TeX as your typsetting system and have access to internet, then you should investigate this resource. Another reason the TeX resources should be important is that so many of the literate programming tools rely on either plain TeX or LaTeX as their text formatter. (La)TeX software systems exist for most computing platforms. These systems can be found on CTAN and other major archive sites. Use archie to find them or simply ftp to one of the CTAN sites and browse. 11. Are there any code examples? Examples of web programs are included with the FWEB, CWEB, and noweb distributions. nuweb is written in itself. Cameron Smith converted the K&R calculator program into a literate program. It can be retrieved by anonymous ftp from: niord.shsu.edu [192.92.115.8] directory kr-cweb-sample as krcwsamp.zip or from LPA/Documentation Ross Williams has released a funnelweb example. You can retrieve this file from node ftp.adelaide.edu.au 129.127.40.3 as /pub/funnelweb/examples/except.* This file should be on CTAN as well. Lee Wittenberg has posted a few litprog examples. They are available via anonymous ftp from: ftp://samson.kean.edu/pub/leew/samples.LP The Stanford GraphBase is a large collection of programs by Don Knuth for doing all kinds of computations and games with graphs; it is writ- ten in (Levy/Knuth) CWEB. More details in the distribution. It is available via anonymous ftp from: labrea.stanford.edu:/pub/sgb 12. Bibliographies Nelson Beebe has collected an extensive bibliography treating literate programming. His work is available for anonymous ftp from ftp.math.utah.edu 128.110.198.2 in directory /pub/tex/bib as files: litprog.bib litprog.ltx litprog.twx. Although I have not verified this, LPA is an alternate source for these files. Note that they are updated frequently (Nelson says sev- eral times each week), so be sure to get a fresh copy before extensive use. Joachim Schrod indicates that these files may be updated daily and can be retrieved via anonymous ftp at LPA/documentation. 13. How to anonymously ftp Pretty much everything mentioned here is available by anonymous FTP. FAQ lists cross-posted to news.answers and rec.answers can be gotten from rtfm.mit.edu 18.181.0.24, under /pub/usenet/news.answers or under /pub/usenet/more.specific.group.name "anonymous FTP" is just a way for files to be stored where anyone can retrieve them over the Net. For example, to retrieve the latest version of the literate programming FAQ, do the following: > ftp rtfm.mit.edu /* connect to the site; message follows */ > anonymous /* type this when it asks for your name */ > /* type your address as the password */ > cd /pub/usenet /* go to the directory you want to be */ > cd comp.programming.literate /* one level down (no slash). */ > dir /* look at what's there */ > get literate-progamming-faq /* get the file; case-sensitive */ > quit /* stop this mysterious thing */ If your FTP program complains that it doesn't know where the site you want to use is, type the numerical address instead of the sitename: > ftp 18.181.0.24 /* connect with numerical address */ If you don't have ftp access, send e-mail to mail-server@rtfm.mit.edu with the single word "help" in the body of the message. Getting binary files (executables, or any compressed files) is only slightly more difficult. You need to set binary mode inside FTP before you transfer the file. > binary /* set binary transfer mode */ > ascii /* set back to text transfer mode */ FAQs and spoiler lists are generally ascii files; everything else is generally binary files. Some common extensions on binary files in archive sites are: .Z Compressed; extract with uncompress .tar.Z Compressed 'tape archive'; uncompress then untar or tar -xvf .gz or .z Gnu gzip; use gunzip (available from prep.gnu.ai.mit.edu) .sit (Mac) StufIt archive .zip Extract with Zip or Unzip .zoo Yet another archive/compress program .lhe (Amiga) ? .lzh Lha archive program. .arj (PC) Arj archive program. .exe (PC) Sometimes self-extracting archives-just execute them. .uue or .UUE Transfer as text file; use uudecode to convert to binary .hqx (Mac) BinHex format; transfer in text mode Generic help can be found in the FAQs of comp.binaries. for how to transfer, extract, and virus-check binary files. (At rtfm.mit.edu) If you can't FTP from your site, use one of the following ftp-by-mail servers: ftpmail@decwrl.dec.com ftpmail@src.doc.ic.ac.uk ftpmail@cs.uow.edu.au ftpmail@grasp.insa-lyon.fr For complete instructions, send a message reading "help" to the server. If you don't know exactly what you're looking for, or exactly where it is, there are programs and servers that can help you. For more info, send e-mail to mail-server@rtfm.mit.with with the body of the message reading send usenet/news.answers/finding-sources Thanks to Aliza R. Panitz (the "buglady") for this text. I copied it verbatim from her post on faq-maintainers with only minor modifications. 14. Acknowledgements This document would not have happened without the help of many people. Among them are Marcus Speh, George Greenwade, Rob Beezer, Joachim Schrod, Piet van Oostrum, and Ross N. Williams. A special thanks to Aliza R. Panitz for the text describing how to execute an anonymous ftp for files of interest. Any omissions from these acknowledgements should be considered an act of stupidity on my part. Of course, the authors of literate programming tools mentioned above all play a vital role in the vitality of literate programming. Furthermore, participants in the comp.programming.literate newsgroup (and associated mailing list) all contributed in various fashions. Thank all of you. 15. End notes This document will continue to evolve. I'm planning on adding entries for additional literate programming tools and will expand the sections on examples as more examples become available. Tools I will include are WEB (the original pascal version) for starters. Others will be added as I find and document them. Omission of a particular tool should not be considered a snub in any sense--simply an error or oversight on my part. 28-Sep-1997 18:13:30-GMT,3813;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id MAA23637 for ; Sun, 28 Sep 1997 12:13:28 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 28 Sep 1997 13:03:48 EST From: DHEA SEX LIKE 18 Reply-To: LitProg@SHSU.edu, hart@SUNBELL.COM Subject: DHEA...SEX LIKE YOUR 18, BETTER ERECTIONS, FIGHTS AGING, CANCER, IMPOTENCY....and much more !!! Date: 28 Sep 1997 17:57:18 GMT Message-ID: <60m5pu$4th@mtinsc03.worldnet.att.net> To: LitProg@SHSU.edu DHEA.. SEX LIKE YOUR 18, NEW ENERGY LEVEL, FIGHTS AGING, CANCER, IMPOTENCY....and much more Providing 99% pure DHEA, DHEA Lowest price in the world lower than GNC lower than anyone on the Internet, please compare DHEA Has been featured on every major News TV show, Hardcopy, Dateline, 20/20, CBS, ABC, NBC, CNBC, and more. Power Packed DHEA is being hailed as one of the breakthroughs of the decade Many top medical experts enthusiastically report that this safe, power packed substance called DHEA may become the most important medical advance of the decade. Current research in the Dept. of Neurobiochemis at Beckman Research Institute, City of Hope Medical Center, Duarte, Calif., suggests DHEA raised levels of energy, endurance, limb power, strength, and agility in patients suffering from multiple sclerosis. C O N F I D E N T I A L I T Y Note: We do not sell our database of purchasers to any other company, all of our order processing is done by our company alone, and orders are sent in plain, nondescript packaging. The confidentiality of our customers is maintained above all. To our products please fill out the following form and mail it to the address below.(Feel free to write out the order form by hand, All funds must equal US dollars. OVERSEAS ORDERS WELCOME BUT MUST PAY WITH US CASH INTERNATIONAL MONEY ORDER OR TRAVELLERS CHECK WE SHIP ANYWHERE IN THE WORLD Pricing is below PLEASE INDICATE ITEMS YOU ARE ORDERING DHEA 99% Pharmaceutical Grade A) DHEA - 99% pure 25 mg capsules / 90 per bottle: _________ QTY 1 to 6 bottles . .$10.95 each _________ QTY 7 to 12 bottles ..$9.95 each _________ QTY 13 to 24 bottles .$8.45 each _________ QTY 25 or more . . . .$7.75 each List Price is $19.95 Our discount price is 40% off!! B) DHEA - 99% pure 50 mg capsules / 60 per bottle: _________ QTY 1 to 6 bottles . . $11.95 each _________ QTY 7 to 12 bottles . $10.95 each _________ QTY 13 to 24 bottles . $9.95 each _________ QTY 25 or more . . . . $9.00 each List Price is $38.00 Our discount Price is 65% off!! SHIPPING AND HANDLING Please choose the shipping charge that applies to the quanity of items you have ordered 1 to 6 bottles or boxes...........$4.95 per order 7 to 12 bottles or boxes..........$6.95 per order 13 to 24 bottles or boxes.........$7.95 per order 25 or more bottles or boxes.......$9.95 per order I am enclosing (Please indicate) CASH CHECK MONEY ORDER Name__________________________________________ Address________________________________________ City_____________________________State__________Zip Code_____________ Country____________________________________________________________ Email Address_________________________Phone#________________________ WE SHIP ANYWHERE IN THE WORLD Allow 7 to 10 days for delivery PLEASE MAIL TO ICT INC 12319 S. Orange Blossom Trail Suite 209 Orlando Fl. 32837 28-Sep-1997 18:51:25-GMT,1708;000000000000 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id MAA24347 for ; Sun, 28 Sep 1997 12:51:23 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 28 Sep 1997 13:43:15 EST From: Virtual Storefronts Reply-To: LitProg@SHSU.edu, webmaster@virtualstorefronts.com Subject: Web Hosting Date: 28 Sep 1997 18:40:00 GMT Message-ID: <60m8a0$4te@bgtnsc02.worldnet.att.net> To: LitProg@SHSU.edu Check it out at http://virtualstorefronts.com Reseller accounts cost $12.50/month!!! WWW.YOURNAME.COM $18.95 150MEG Disk Space Domain Name Registration Unlimited Hits - NO TRAFFIC FEES * Unlimited Email Aliases & Forwarding Unlimited Email Autoresponders Secure Server Access included 3 POP Email Accounts CGI-bin - with tons of FREE scripts! shopping carts, guestbooks, order forms Anonymous FTP/Telnet Account Redundant High Speed Connection to Internet Backbone. Five T1 lines! Free Traffic Analysis Software Installed Java, PERL, C++, Python, supported mSQL database supported! Frontpage supported - no extra charge! Internic Registration Included* *Internic will bill you $100 Activated within 24 hours! (Mon-Fri) NO SETUP CHARGES! 30-Sep-1997 20:23:47-GMT,1109;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id OAA12528 for ; Tue, 30 Sep 1997 14:23:46 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 30 Sep 1997 14:35:04 EST From: free@pagir.com Reply-To: LitProg@SHSU.edu, free@PAGIR.COM Subject: GET PAID TO GIVE AWAY FREE PAGERS! Date: 30 Sep 97 19:18:17 GMT Message-ID: <34315079.0@news.logicallink.com> To: LitProg@SHSU.edu GET PAID TO GIVE AWAY FREE PAGERS! Give away FREE Motorola pagers and Seiko Message watches! It's easy and it's fun! NO selling or inventory, what more can you ask?! for! You can start for nothing if you wish or just a little! You get paid on activation and monthly airtime! If you are interested send a Self Address Stamped Envelope to: Send SASE: UDS Co. 1147 E. Elm Suite #10 Springfield, MO 65806 You will receive your info within 2 days.