1-May-1998 10:32:59-GMT,3716;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 EAA22964 for ; Fri, 1 May 1998 04:32: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; Fri, 01 May 1998 05:27:16 EST From: "Anthony B. Coates" Reply-To: LitProg@SHSU.edu, tony@ems.uq.edu.au Subject: Re: XML and Literate Programming Date: 1 May 1998 09:01:55 GMT Message-ID: <6ic323$h8b$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu greyno@mcs.com wrote: (bits deleted for brevity) > When you say you're planning to write something for XML, do you mean a tool to > literate DTDs, or a tool to use XML for literate programming in languages like C? I mean the latter, using XML as the way of marking up literate documents, so that pre-built parsing and formatting components can be used instead of each literate programming tool author writing her/his own. > I took a look at the website; a good intro, and I definitely support what you're > to do. However, I would recommend sticking with litprog for programming code > and dropping the stuff about html and the spreadsheet. I think it confuses the > issue, and in truth the examples you cite are easily (well, sort of easy) > accomplished with SGML tools (or at least one, Jade) without specialized litprog > tools. I mentioned that spreadsheet example because it is an example of a document type that is very widely used, even among self-confessed neophytes. I don't want to restrict thinking to just literate documents for textual source code, even though I expect this to be the starting point. I don't think it hurts to try and think a bit more widely about what the possibilities might be. Also, you don't need a literate programming tool to create boilerplate HTML code, agreed. However, it's not a bad way to document what that boilerplate HTML code, or any other HTML code, was intended to do. Even more so if you are doing "dynamic" HTML, or any other browser scripting. > XML will have the same problem xxxweb systems have always had: unnatural > syntax. The Man himself calls (or called) (c)web a prototype system; it works > great for him and some others, but I can assure you I will never have the time > and energy to tackle the idiosyncratic syntax. I'm hoping that XML editors will allow us to avoid many of the syntax problems, just as WYSIWYG HTML editors are avoiding some (if not all) of knowing the ins-and-outs of raw HTML. Emacs is a great editor for plain ASCII, but we should be able to do better for XML. > I've been working for the past few months on an SGML/DSSSL based litprog system, ... I hope you'll give us some advice then, as I don't want to rediscover too many wheels. Cheers, Tony. -- Educational Multimedia Services = reduced workloads for lecturers, teachers, and tutors = better results for students. -- Another 100% Pure Java e-mail. Is yours? -- Anthony B. Coates. Multimedia Developer (Software Design) Educational Multimedia Services TEDI, The University of Queensland. AJUG-QLD Steering Committee Member (Australian Java Users' Group ). QMUG Committee Member (Queensland Macromedia Users' Group ). E-mail: tony@ems.uq.edu.au WWW: http://www.ems.uq.edu.au/People/Tony/ UIN: 5191015 -- All opinions are mine, and may not represent those of The University of Queensland. -- 1-May-1998 10:33:17-GMT,2801;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 EAA22975 for ; Fri, 1 May 1998 04: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 MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 01 May 1998 05:27:09 EST From: tony@ems.uq.edu.au (Anthony B. Coates) Subject: Announce: xml-litprog-l Date: 1 May 98 09:18:14 GMT Message-ID: <35499355.5D10F3B0@ems.uq.edu.au> Reply-To: LitProg@SHSU.edu, "Anthony B. Coates" MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu I have created a mailing list, "xml-litprog-l", for discussions about how best to use XML/XSL/XLink/XPtr for constructing literate programming frameworks and tools. I'm interested in being able to share ideas with (i) people who know more about XML and/or SGML than I do; (ii) people who know more about literate programming than I do; (iii) anyone else who is interested. If you think that you fit into one of these groups, then please consider joining (I'm not expecting it to be a high traffic list, but I hope it will be a profitable list, in non-monetary terms). The Web page with all the details is at Some people have already expressed to me an interest in being on this list. However, for reasons of "netiquette", I won't subscribe anyone automatically. If you are interested, please visit the Web page (or send the message "subscribe xml-litprog-l" to "majordomo@ems.uq.edu.au". Cheers, Tony. -- Educational Multimedia Services = reduced workloads for lecturers, teachers, and tutors = better results for students. -- Another 100% Pure Java e-mail. Is yours? -- Anthony B. Coates. Multimedia Developer (Software Design) Educational Multimedia Services TEDI, The University of Queensland. AJUG-QLD Steering Committee Member (Australian Java Users' Group ). QMUG Committee Member (Queensland Macromedia Users' Group ). E-mail: tony@ems.uq.edu.au WWW: http://www.ems.uq.edu.au/People/Tony/ UIN: 5191015 -- All opinions are mine, and may not represent those of The University of Queensland. -- xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@ic.ac.uk Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ To (un)subscribe, mailto:majordomo@ic.ac.uk the following message; (un)subscribe xml-dev To subscribe to the digests, mailto:majordomo@ic.ac.uk the following message; subscribe xml-dev-digest List coordinator, Henry Rzepa (mailto:rzepa@ic.ac.uk) 1-May-1998 18:36:49-GMT,2409;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 MAA03568 for ; Fri, 1 May 1998 12:36: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, 01 May 1998 13:23:35 EST From: "Anthony B. Coates" Reply-To: LitProg@SHSU.edu, tony@ems.uq.edu.au Subject: Announce: xml-litprog-l Date: 1 May 1998 09:13:11 GMT Message-ID: <6ic3n7$hhg$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu I have created a mailing list, "xml-litprog-l", for discussions about how best to use XML/XSL/XLink/XPtr for constructing literate programming frameworks and tools. I'm interested in being able to share ideas with (i) people who know more about XML and/or SGML than I do; (ii) people who know more about literate programming than I do; (iii) anyone else who is interested. If you think that you fit into one of these groups, then please consider joining (I'm not expecting it to be a high traffic list, but I hope it will be a profitable list, in non-monetary terms). The Web page with all the details is at Some people have already expressed to me an interest in being on this list. However, for reasons of "netiquette", I won't subscribe anyone automatically. If you are interested, please visit the Web page (or send the message "subscribe xml-litprog-l" to "majordomo@ems.uq.edu.au". Cheers, Tony. -- Educational Multimedia Services = reduced workloads for lecturers, teachers, and tutors = better results for students. -- Another 100% Pure Java e-mail. Is yours? -- Anthony B. Coates. Multimedia Developer (Software Design) Educational Multimedia Services TEDI, The University of Queensland. AJUG-QLD Steering Committee Member (Australian Java Users' Group ). QMUG Committee Member (Queensland Macromedia Users' Group ). E-mail: tony@ems.uq.edu.au WWW: http://www.ems.uq.edu.au/People/Tony/ UIN: 5191015 -- All opinions are mine, and may not represent those of The University of Queensland. -- 5-May-1998 19:27:23-GMT,64886;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 NAA11463 for ; Tue, 5 May 1998 13:27: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; Tue, 05 May 1998 13:38:16 EST From: thompson@sun1.coe.ttu.edu Subject: comp.programming.literate FAQ Date: 5 May 1998 12:09:39 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. 6-May-1998 8:31:26-GMT,1667;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 CAA18674 for ; Wed, 6 May 1998 02:31: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; Wed, 06 May 1998 02:45:37 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: XML and Literate Programming Date: 5 May 1998 14:37:40 GMT Message-ID: <6in87k$4vl$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu In article <6iipp5$p1m$1@murdoch.acc.Virginia.EDU>, Devon Prichard wrote: >right on. you need to abstract one level further than the current LP >concepts. a single "document" should contain theoretical development, >programmers guide, source, users guide, online help, etc. all of which >require formatted text, equations, tables, drawings, who knows what. This has been said over and over for at least 10 years that I know of. The problem is that you can't possibly have one `document' that is all these things---you need a database of closely related documents, and they need to be kept consistent. I know of no word-processing or desktop-publishing tools that are up to the task, not even close. This is a problem even without putting programs in the mix; think of the hype in hypertext. The most promising work I've heard of was some work Kasper Osterbye was doing on using hypertext for literate programming. Does anybody know its status} 6-May-1998 22:31:24-GMT,2125;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 QAA16665 for ; Wed, 6 May 1998 16:31: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; Wed, 06 May 1998 17:27:14 EST From: Gregg Reynolds Subject: Re: XML and Literate Programming Date: 6 May 1998 04:53:49 GMT Message-ID: <6ioqct$4f0$1@murdoch.acc.Virginia.EDU> Reply-To: LitProg@SHSU.edu, greyno@mcs.com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Norman Ramsey wrote: > > The problem is that you can't possibly have one `document' that is all > these things---you need a database of closely related documents, and > they need to be kept consistent. I know of no word-processing or > desktop-publishing tools that are up to the task, not even close. > This is a problem even without putting programs in the mix; think of > the hype in hypertext. > But it's getting closer. The design foundation has been laid by Hytime; now if we could just get somebody to implement the thing in free software. Even without Hytime, SGML and DSSSL provide sufficient tools to do pretty much what you've specified. If you haven't looked into DSSSL, note that it supports parsing of multiple SGML docs, which means it supports SDQL queries of multiple docs, which means the document *is* the database. HTML is clearly inadequate to support proper editing and browsing of such stuff, but there are commercial products out there that probably would support it. There is much left to do (versioning, for example), but I think we're moving steadily in that direction. > The most promising work I've heard of was some work Kasper Osterbye > was doing on using hypertext for literate programming. Does anybody > know its status} I would be very interested in this; please post if you get any info. Sincerely, Gregg 7-May-1998 10:03:01-GMT,6716;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 EAA02849 for ; Thu, 7 May 1998 04:03: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 by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 07 May 1998 04:57:09 EST From: Marc van Leeuwen Reply-To: LitProg@SHSU.edu, maavl@zenon.univ-poitiers.fr Subject: Re: "Incomplete" grammars Date: 7 May 1998 09:35:06 GMT Message-ID: <6irv8a$p8t$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: > > In article <6i46os$a19$1@murdoch.acc.Virginia.EDU>, > Marc van Leeuwen wrote: > >Since literate programming was explicitly conceived as an extension of > >structured programming, I believe that it is not unreasonable to require > >from the programmer (even if his name is Don Knuth) that the division of > >the program into modules be compatible with its syntactic structure; at > >the very least this means that symbols belonging to the same syntactic > >construct (begin-end, if-then-else) appear in the same section. > > Can you make this restriction a little more precise? Two of my > favorite tricks are a sequence of chunks each of the form > > if condition then stmt else > > for a deeply nested if-then-else, and > > | expression => stmt > > for a fragment of a case statement (the syntax is modula-3). > > My naive reading of your restriction suggests that both of these would > be forbidden under your scheme. I agree that my formulation is a bit too vague. Note however that in a narrow reading of the restriction, neither example violates it. In the first example the corresponding if-then-else _do_ appear in the same chunk. In the second example the problem is supposedly that the vertical bar and => symbol belong to the enclosing case statement. However, since their number is unbounded, they cannot be produced by the same syntactic rule that produced the case statement (I'm assuming strict BNF formalism here, which seems appropriate for the kind of parsers being considered), which must somehow use an additional non-terminal like . Compare this to BEGIN ... ; ... ; ... END blocks in Pascal; one certainly would not require that all semicolons appear in the same chunk as the BEGIN and END. That being said, your examples might present some problems, depending on the grammar used by the parser. This is more likely for the first than the second example, and even more so if you recast the first example in the form of a an initial chunk if condition then statement followed by a sequence of chunks of the form else if condition then statement (which some would probably prefer). It so happens that both CWEB and CWEBx can handle the C equivalent of your examples (i.e., they reduce the chunks to a single 'scrap', although you might not like the fact that in the first example they place the final 'else' on a separate line), but fail at the recast first example. The reason for this difference is not so much that in the recast example corresponding 'if' and 'else' tokens occur in different sections, as that WEB style grammars traditionally have a tendency to reduce initial parts of constructs before even looking at the remainder (so the 'if ... else' is reduced without looking for a following statement; the only check made is whether another 'if' follows 'else'). A grammar that follows the usual syntax specification more closely would have problems with the first example in either form. >From the point of view of LP style, I would have some difficulty with the first example, although I admit alternatives might not be very attractive either. The main problem is that one either has to remember that the final contribution to the compound chunk should be different, or that the statement following the chunk reference is "controlled" by it (being executed only if all the conditions fail); I would consequently have difficulty in choosing a good descriptive name for the chunk. In the recast form the situation is a bit different, but there are similar difficulties. A weaker objection is that in general I feel that multiply defined chunks violate the 'pure hypertext' paradigma of literate programming: the program is no longer just a collection of interconnected parts, but an (at least partially) ordered sequence of parts. By the way, multiply defined chunks give parsing difficulties in other situations as well: for instance if you specify a huge initialiser list (in C) by a multiply defined chunk, then you cannot avoid having trailing commas in partial chunk bodies (or leading ones), which the parsers of CWEB and CWEBx cannot handle properly (in CWEBx there is a trick to solve this though). One can of couse always avoid multiply defined chunks at the price of introducing a number of rather boring chunks and chunk names. > >There is one other related difficulty, in that one does not know which > >category to attach to module _references_ either. This is however as > >much a problem for WEB parsers as it is for Bison parsers, and it has > >given rise to the curious invisible semicolon '@;' in (C)WEB. The > >"proper" solution would be to look up the module body and parse it to > >determine the category (partially tangling the program while weaving), > >but this does not seem partical. > > I'm not so sure. Can we convince anybody to try the experiment? > It would be pleasant to escape completely from such critches as @;. Two remarks. First, instead of '@;' one could use "structured comments" (I believe the Pretzel example for C does this) or even an indication within the chunk name itself (being fundamentally against abuse of comments, I would prefer that) to indicate an unusual category represented by the chunk. In either case the scanner can recognise and remove the indication, so that it will not be visible in the typeset output. Second, the "holistic prettyprinting" approach would not solve the difficulties discussed in the first part of this message, and would in fact be more sensitive to them. For instance, prettyprinting the assembled program including a chunk as in your first example would probably put each final 'else' of one partial chunk body on the same line as the 'if' of the next one, and it is not clear how to translate this global output back into typesetting of individual chunk bodies. -- Marc van Leeuwen Universite de Poitiers 7-May-1998 11:05:31-GMT,875;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 FAA04321 for ; Thu, 7 May 1998 05:05: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; Thu, 07 May 1998 06:01:55 EST From: "ssenshi" Reply-To: LitProg@SHSU.edu, alexkong@tm.net.my Subject: I NEED A HIERARCHY... Date: Mon, 4 May 1998 18:04:38 +0800 Message-ID: <6is3mm$o5e$1@news.tm.net.my> To: LitProg@SHSU.edu Hi, there! I need a hierarchy of analyst programmer, means I need the detail about the job, the hierarchy and the structure of the job. Please reply to me if you know anything about it. Thank you very much! 7-May-1998 14:25:13-GMT,2201;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 IAA09984 for ; Thu, 7 May 1998 08: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 MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 07 May 1998 09:14:16 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: "Incomplete" grammars Date: 6 May 1998 13:53:50 GMT Message-ID: <6ipq1e$ire$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu In article <6i46os$a19$1@murdoch.acc.Virginia.EDU>, Marc van Leeuwen wrote: >Since literate programming was explicitly conceived as an extension of >structured programming, I believe that it is not unreasonable to require >from the programmer (even if his name is Don Knuth) that the division of >the program into modules be compatible with its syntactic structure; at >the very least this means that symbols belonging to the same syntactic >construct (begin-end, if-then-else) appear in the same section. Can you make this restriction a little more precise? Two of my favorite tricks are a sequence of chunks each of the form if condition then stmt else for a deeply nested if-then-else, and | expression => stmt for a fragment of a case statmenet (the syntax is modula-3). My naive reading of your restriction suggests that both of these would be forbidden under your scheme. >There is one other related difficulty, in that one does not know which >category to attach to module _references_ either. This is however as >much a problem for WEB parsers as it is for Bison parsers, and it has >given rise to the curious invisible semicolon '@;' in (C)WEB. The >"proper" solution would be to look up the module body and parse it to >determine the category (partially tangling the program while weaving), >but this does not seem partical. I'm not so sure. Can we convince anybody to try the experiment? It would be pleasant to escape completely from such critches as @;. Norman 8-May-1998 0:31:54-GMT,3042;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 SAA27593 for ; Thu, 7 May 1998 18:31: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, 07 May 1998 19:26:19 EST From: Devon Prichard Reply-To: LitProg@SHSU.edu, prichard@rotari.larc.nasa.gov Subject: Re: XML and Literate Programming Date: 6 May 1998 14:11:09 GMT Message-ID: <6ipr1t$ji1$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: > > In article <6iipp5$p1m$1@murdoch.acc.Virginia.EDU>, > Devon Prichard wrote: > >right on. you need to abstract one level further than the current LP > >concepts. a single "document" should contain theoretical development, > >programmers guide, source, users guide, online help, etc. all of which > >require formatted text, equations, tables, drawings, who knows what. > > This has been said over and over for at least 10 years that I know of. > The problem is that you can't possibly have one `document' that is all > these things---you need a database of closely related documents, and > they need to be kept consistent. I know of no word-processing or > desktop-publishing tools that are up to the task, not even close. > This is a problem even without putting programs in the mix; think of > the hype in hypertext. I really should have said, "a single disk file" rather than one document. that way, the documentation has a better likelihood of traveling with the source instead of getting misplaced/deleted. given the current state of common filesystems, I'd rather force everything to be in one big disk file, rather than source here, include files there, man pages god knows where... a database is good, but then you've either got the problem of standardizing a DB file structure or porting a common-denomenator DB to all machines of interest. in a way, this latter problem is an opportunity disguised as a problem. if you have a WSYIWYG text editor w/ good math formatting, a simple version control system, an XML "browser", and a database, you are well along the way to convergence between developer tools and the "office suite" packages. a single consistent package that replaces the IDE for programmers, technical WP for scientists/engineers, and the Word/Excel/Powerpoint tolls of the business world could be the "killer app" that brings Linux, BeOS etc. into the mainstream. ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| | Dr. Devon Prichard, Lockheed Martin d.s.prichard@larc.nasa.gov | | starboard side, deck two, oar 14. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 8-May-1998 17:23:13-GMT,4200;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 LAA15273 for ; Fri, 8 May 1998 11:23:12 -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, 08 May 1998 12:08:28 EST From: Devon Prichard Reply-To: LitProg@SHSU.edu, prichard@rotari.larc.nasa.gov Subject: Re: XML and Literate Programming Date: 7 May 1998 14:43:52 GMT Message-ID: <6ishb8$4jv$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Patrick TJ McPhee wrote: > > Well, it makes for some difficulty wrt collaborative work, no? > How do I create a program which uses some bits written by me, some > bits written by people I work with, some bits written by people > I don't know and have never met, but I bought code from them, > some bits written by the documentation people, some bits written > by the company that translates the documentation into French, who > work on contract for a different company in a different city, > when everything goes in one big file? that is a general problem not just limited to a unified file. if each code chunk was completely self-documented, then it would make your job easier. and if the docs for each chunk were with the source in a unified file, there would be no risk of losing good stuff. you would at least have the choice of keeping the chunks separate or combining them into a unified file. if there was a public domain standard for the unified file format, then you could specify (at least for licensed SW) that standard format, so you wouldn't have to deal with docs in 2 different commercial word processors, TeX, LaTeX, troff, etc. your point about collaborative efforts is a good one, though. if a database approach is used, you either have to keep a local copy of everything and risk version discrepancies with the original source, or you have some horrendous global DB replication task. since everything is going WWW, I suspect somebody will develop a way to manage version control of documents on the web (at both ends). might already exist for all I know. > > Generally speaking, I think the desire to put everything all together > in one package just for the sake of doing it is the road to damnation. > With literate programming, I have a lot of trouble understanding the > benefit of including end-user documentation in a literate program. my experience with engineering codes written in Fortran has been that program developers tend to come and go, while managers tend to stay put. what is easy to run for the author is not so for some poor schlep in a corporation who is told to "go get that public domain code from Scratchbutt Research Center". if and when some manager e-mails the code, its pure source without documentation of any kind, no example inputs, etc. the "web" type of LP would be nice as there would be a built-in programmer's manual at least, but a built-in user's guide would be worth its weight in gold. and having LP handle the only programmer's manual is not sufficient for the end user. the codes I mess with are 5k-60k lines of Fortran; it would take a year to infer user's guide information from even LP-ed source. and I have found that a separate user's guide tends to fall behind as the code evolves. if it was embedded into the source, I hope there would be a tendency for coders to page down and update the user's guide stuff in the same edit session as modifying the source. these issues may not seem important, but millions of your tax dollars (US and CDN) are spent every year on re-learning stuff that was already understood by someone else. ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| | Dr. Devon Prichard, Lockheed Martin d.s.prichard@larc.nasa.gov | | starboard side, deck two, oar 14. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 9-May-1998 17:24:01-GMT,1738;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 LAA13592 for ; Sat, 9 May 1998 11:24: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 by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sat, 09 May 1998 12:20:30 EST From: Elf Sternberg Reply-To: LitProg@SHSU.edu, elf@halcyon.com Subject: Starting from scratch... Date: 9 May 1998 17:06:10 GMT Message-ID: <6j22e2$1bk$1@news.interlog.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: LitProg@SHSU.edu I've just spent two annoying days trying to bring up a Literate Programming toolkit of some kind on my SPARC station. I think it's somewhat annoying that something called "Literate Programming" should be so sadistically frustrating to bring up. I'm not a TeX user although it's something I'd like to learn; since I have Postscript capability on my Solaris box I've never installed Ghostscript. I'm perfectly competent in C, C++, Perl and Python and so I've never installed Icon. Is there a "dummies guide," so to speak, for how to bring up a Literate Programming system? From my standpoint, I *am* uninformed about these systems that the Literate Programming community uses. I guess the question is, from a tool base point of view, where do I start? Elf M. Sternberg If you bring forth what is within you, Elf M. Sternberg What you bring forth will save you. www.halcyon.com/elf If you do not bring forth what is within you, What you do not bring forth will destroy you. -- Thomas:70 10-May-1998 8:19:12-GMT,1850;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 CAA24176 for ; Sun, 10 May 1998 02:19: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; Sun, 10 May 1998 03:17:27 EST From: Elf Sternberg Reply-To: LitProg@SHSU.edu, elf@halcyon.com Subject: FunnelWeb for Solaris? Date: 9 May 1998 10:47:01 GMT Message-ID: <6j1c75$q2e$1@elna.ethz.ch> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: LitProg@SHSU.edu Okay, so, I've bought and read Knuth's essays and while not convinced I am intrigued. So I've been trying to install FunnelWeb3.05AC on my Sparc here (Solaris 2.5.1) and after building (with lots of warnings) I go to test it and it just hangs at the second test with Basic Test and Generate Some Tricky Input Files ----------------------------------------------- Tangle: Completed sc06.fw. Tangle: Completed sc08.fw. Tangle: Completed sc09.fw. Tangle: Completed sc13e.fwi. SUCCESS: No diagnostics. The two files are DIFFERENT (see the differences file for the details). Performing Test sc01 -------------------- S: Error opening input file "<>". There was 1 Severe error. And there it sits. Forever. Apparently in an infinite loop because half an hour later top reports that it's still chewing up CPU. Anyone else have this problem? Anyone else have a solution? Elf If you bring forth what is within you, Elf M. Sternberg What you bring forth will save you. www.halcyon.com/elf If you do not bring forth what is within you, What you do not bring forth will destroy you. -- Thomas:70 10-May-1998 15:39:44-GMT,1945;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 JAA03761 for ; Sun, 10 May 1998 09:39: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; Sun, 10 May 1998 10:37:28 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: Starting from scratch... Date: 9 May 1998 19:17:20 GMT Message-ID: <6j2a40$2mm$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu In article <6j22e2$1bk$1@news.interlog.com>, Elf Sternberg wrote: > Is there a "dummies guide," so to speak, for how to bring up a >Literate Programming system? Unfortunately not. > From my standpoint, I *am* uninformed about >these systems that the Literate Programming community uses. I guess the >question is, from a tool base point of view, where do I start? nuweb is extremely easy to install but requires TeX. noweb is not so easy to install but can be used with HTML instead of TeX (and if you give up the Icon stuff the installation becomes palatable). If you have a Linux system, however, installation is trivial, since there's a suitable .tgz file at sunsite, plus noweb is on the Slackware and Debian CDs. I am uninformed about installation required for CLiP. Any other system is likely to be at least as complicated as one of these, so this is where you should start. If you are TeX user, many more things are available. CWEB and CWEBx seem especially popular, and I would expect installation to be straightforward in both cases. Perhaps David Thompson can snarf this information for the FAQ (until such time as somebody writes something better), which is pretty thin in the `how to get started' department. Norman 11-May-1998 14:49:32-GMT,2425;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 IAA25122 for ; Mon, 11 May 1998 08:49:31 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from triton.glo.be by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 11 May 1998 09:05:49 EST Received: from t00-43.antw.online.be (t00-43.antw.online.be [62.112.1.43]) by triton.glo.be (8.8.8/8.8.8) with SMTP id QAA07087; Mon, 11 May 1998 16:07:01 +0200 Message-ID: <199805111407.QAA07087@triton.glo.be> From: "Jurgen Defurne" To: "elf@halcyon.com" , "LitProg@SHSU.edu" Date: Mon, 11 May 98 16:01:10 Reply-To: LitProg@SHSU.edu, "Jurgen Defurne" MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Subject: Re: Starting from scratch... On 9 May 1998 17:06:10 GMT, Elf Sternberg wrote: >Is there a "dummies guide," so to speak, for how to bring up a >Literate Programming system? From my standpoint, I *am* uninformed about >these systems that the Literate Programming community uses. I guess the >question is, from a tool base point of view, where do I start? > > Elf M. Sternberg There isn't a dummies guide, but you certainly should read the Literate Programming FAQ. I'll send it to you personally. I have tried several LP tools, some of them have more information than others. The ones I have tried are the following : nuweb : very small, should compile on all systems, needs TeX fweb : powerful, should be easily compiled, has a very good manual, but needs TeX, LaTex and TeXInfo CliP : there is a DOS version (compiled using Borland Pascal) and a Unix version. What you do with standard LP tools, is that you create an ASCII file, which is then processed into formatted text and source code. With CliP, you write your LP program with your favorite word/text processing tool, save it as ASCII and then generate code using CliP. I think you should also check out sunsite.unc.edu for FAQ's about TeX, LaTeX and so on. You should definitely not try to learn TeX. Buy "LaTeX, A Document Preparation System" from Leslie Lamport if you really want to know about it. Jurgen Defurne Flanders - Belgium 12-May-1998 7:18:01-GMT,4086;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 BAA19686 for ; Tue, 12 May 1998 01: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 alpha.netvision.net.il by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 12 May 1998 02:14:40 EST Received: from ts001p15.hrz.netvision.net.il (ts001p15.hrz.netvision.net.il [194.90.11.35]) by alpha.netvision.net.il (8.8.6/8.8.6) with SMTP id KAA26885; Tue, 12 May 1998 10:12:56 +0300 (IDT) Message-ID: <1.5.4.16.19980512072044.19a7e7d0@netvision.net.il> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Tue, 12 May 1998 10:20:44 +0300 To: litprog@SHSU.edu From: Aharon Robbins Reply-To: LitProg@SHSU.edu, arnold@gnu.org Subject: integrated user doc [was Re: XML and Literate Programming] > your point about collaborative efforts is a good one, though. > if a database approach is used, you either have to keep a local > copy of everything and risk version discrepancies with the original > source, or you have some horrendous global DB replication task. > since everything is going WWW, I suspect somebody will develop > a way to manage version control of documents on the web (at both > ends). might already exist for all I know. See the XML stuff. I'm reading the XML issue of the World Wide Web Journal (published by O'Reilly, see their catalog) and XML, along with XLL (eXtended Linking Language) is intended to solve this issue. Everyone just puts links in their docs to the other parts done by the other people and everyone's happy. (Sounds like a nice vision, anyway.) > and having LP handle the only programmer's manual is not > sufficient for the end user. the codes I mess with are 5k-60k lines > of Fortran; it would take a year to infer user's guide information > from even LP-ed source. and I have found that a separate user's > guide tends to fall behind as the code evolves. if it was > embedded into the source, I hope there would be a tendency for > coders to page down and update the user's guide stuff in the > same edit session as modifying the source. This makes a lot of sense, but it requires a tool issue that hasn't been addressed yet - the ability to weave separate chunks out of a single web file (much as noweb [at least] can extract different code chunks --- for noweb3, Norman?) (I suspect that doing this right is much more challenging than it first appears.) Some other possibly tangential points about this. Don Knuth in his paper on the errors of TeX (in the LP book) talks about how valuable it is for the designer of the system to also be the one who writes the user's manual and that s/he should also use it. >From my experience, I agree this is a valuable practice. I suspect though, that for whatever reason, most programmer's are not (or don't want to be) good writers. They'd rather just hack code. This is perhaps the biggest reason that LP hasn't caught on with the masses. On the other hand, I can point at several examples where programmers who are good writers are also really good programmers. For whatever that's worth. My experience: I maintain GNU awk (gawk) and its user's guide. It'd be interesting to integrate the code with the manual in an LP style. When printing, I could see producing a regular user's manual, and also literate source code annotated with relevant parts of the user's manual, but say just the specification parts minus the introductory and example parts. This would also be challenging from an organizational point of view, in terms of putting all the pieces together so that they could be included or excluded appropriately. Very interesting food for thought, at least for me. :-) -- Aharon (a.k.a. Arnold) Robbins arnold@gnu.org 13 Hasharon St., #403 +972 51 297545 Ra'anana 43351 Laundry increases exponentially in the ISRAEL number of children. -- Miriam Robbins 12-May-1998 16:30:39-GMT,3317;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 KAA00415 for ; Tue, 12 May 1998 10:30: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, 12 May 1998 11:17:05 EST From: Marc van Leeuwen Reply-To: LitProg@SHSU.edu, maavl@zenon.univ-poitiers.fr Subject: Re: Starting from scratch... Date: 11 May 1998 08:55:47 GMT Message-ID: <6j6eej$md8$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Elf Sternberg wrote: > > I've just spent two annoying days trying to bring up a Literate > Programming toolkit of some kind on my SPARC station. I think it's > somewhat annoying that something called "Literate Programming" should be > so sadistically frustrating to bring up. I'm not a TeX user although it's > something I'd like to learn; since I have Postscript capability on my > Solaris box I've never installed Ghostscript. I'm perfectly competent in > C, C++, Perl and Python and so I've never installed Icon. You (wisely:-) forgot to mention which brand of LP toolkit you tried to install, although one might infer that you tried noweb; although it is quite simple as regards to the document syntax, it is certainly not the simplest system to install. > Is there a "dummies guide," so to speak, for how to bring up a > Literate Programming system? From my standpoint, I *am* uninformed about > these systems that the Literate Programming community uses. I guess the > question is, from a tool base point of view, where do I start? LP systems were written by many different people, mostly independently, and with quite different methodologies, so a single "dummies guide" for all LP systems does not exist. Unfortunately, the extent to which each system provides documents telling novices the following things does not always match the supposed literacy of the advocated programming style: (1) What the system consists of, and what it actually does for the user (this might be a WWW page); (2) How to get the system running on your computer (a README file); (3) How to start using the system (a manual). As for CWEBx, the system which I maintain: I did specific effort to make it as easy as possibly to get started with, so I would be quite disappointed if you would find it sadistically frustrating to bring up. It is limited to ANSI C, but you might want use it to gain some experience before trying a more open system like noweb. CWEBx does require TeX, but only as a typesetting engine: you do not need to know any TeX to get started (for instance the sample program included in the manual does not use a single TeX control sequence). The implementation has been kept as simple as possible, using only ANSI C portably, rather than providing complicated configurations to adapt to various environments. You can find (1) above, with links to (2) and (3), at http://wallis.univ-poitiers.fr/~maavl/CWEBx/ Marc van Leeuwen Universite de Poitiers http://wallis.univ-poitiers.fr/~maavl/ 4-May-1998 20:58:57-GMT,2616;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 OAA17370 for ; Mon, 4 May 1998 14:58: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; Mon, 04 May 1998 15:47:29 EST From: Devon Prichard Reply-To: LitProg@SHSU.edu, prichard@rotari.larc.nasa.gov Subject: Re: XML and Literate Programming Date: 3 May 1998 22:06:29 GMT Message-ID: <6iipp5$p1m$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Anthony B. Coates wrote: > > > I mentioned that spreadsheet example because it is an example of a document type that is > very widely used, even among self-confessed neophytes. I don't want to restrict thinking > to just literate documents for textual source code, even though I expect this to be the > starting point. I don't think it hurts to try and think a bit more widely about what the > possibilities might be. right on. you need to abstract one level further than the current LP concepts. a single "document" should contain theoretical development, programmers guide, source, users guide, online help, etc. all of which require formatted text, equations, tables, drawings, who knows what. which brings up a question; is it convenient in XML to have several document "components" in one disk file? I rather liked the "binder" approach of Microsoft in their Office 95, where one file contains Word, Excel, Powerpoint subfiles. for one thing, it would help prevent folks from removing "unnecessary" stuff like documentation. > I'm hoping that XML editors will allow us to avoid many of the syntax problems, just as > WYSIWYG HTML editors are avoiding some (if not all) of knowing the ins-and-outs of raw > HTML. Emacs is a great editor for plain ASCII, but we should be able to do better for > XML. > excellent. make the tool suit the user, not vice versa. as for your mailing list, why not keep it on c.p.l., at least for awhile? we're not exactly getting swamped (or else my news server has lost its mind). ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| | Dr. Devon Prichard, Lockheed Martin d.s.prichard@larc.nasa.gov | | starboard side, deck two, oar 14. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 12-May-1998 18:32:09-GMT,3300;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 MAA03774 for ; Tue, 12 May 1998 12:32: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, 12 May 1998 13:18:43 EST From: plugge@biv7.sr.fh-mannheim.de (Michel) Subject: Re: XML and Literate Programming Date: 11 May 1998 10:34:35 GMT Message-ID: <6j6k7r$o89$1@murdoch.acc.Virginia.EDU> Reply-To: LitProg@SHSU.edu, plugge@biv7.sr.fh-mannheim.de MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit To: LitProg@SHSU.edu In article <6in87k$4vl$1@murdoch.acc.Virginia.EDU>, Norman Ramsey writes: |>In article <6iipp5$p1m$1@murdoch.acc.Virginia.EDU>, |>Devon Prichard wrote: |>>right on. you need to abstract one level further than the current LP |>>concepts. a single "document" should contain theoretical development, |>>programmers guide, source, users guide, online help, etc. all of which |>>require formatted text, equations, tables, drawings, who knows what. |> |>This has been said over and over for at least 10 years that I know of. |>The problem is that you can't possibly have one `document' that is all |>these things---you need a database of closely related documents, and |>they need to be kept consistent. I know of no word-processing or |>desktop-publishing tools that are up to the task, not even close. |>This is a problem even without putting programs in the mix; think of |>the hype in hypertext. |> |>The most promising work I've heard of was some work Kasper Osterbye |>was doing on using hypertext for literate programming. Does anybody |>know its status} |> I am currently working on a preprocessor to do that job. The idea is to keep several documents together in a file using "threads": an input file consists of one or several threads, an output file is always _one_ thread. Inside the file you can switch the thread using a simple control sequence (small example: this is some code for thread {@@a}a only{@@b}b!!{@@ab} rest of code gives the following output for thread a: this is some code for thread a only rest of code and for thread b: this is some code for thread b!! rest of code I used the preprocessor for example in a large project to generate documentation in LaTeX, ASCII, HTML (one version with frames, one without frames) and VMS Help, all from a single source. The preprocessor has several other goodies (for example character remapping (up to 9 different tables), macros (one-line or multiline, with or without parameters, with local conditionals and character remapping), loops ;-))) etc. It is published under the GNU GPL; an (old) version can be found under ftp://axp3.sr.fh-mannheim.de/pub/lx2l/lx2l.zip an newer version (with some untested code and minor problems in the makefiles for VMS and m$dog) under ftp://axp3.sr.fh-mannheim.de/pub/lx2l/lx2l_new.zip Documentation is generated in LaTeX, ASCII and HTML (frame and frameless) using a simple markup language (derived from LaTeX). Best regards Michel 12-May-1998 21:02:21-GMT,1465;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 PAA07806 for ; Tue, 12 May 1998 15:02:20 -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, 12 May 1998 15:53:29 EST Received: from ares.cs.virginia.edu by mail.virginia.edu id aa18918; 12 May 98 16:52 EDT Received: from labrador.cs.virginia.edu (nr@labrador.cs.Virginia.EDU [128.143.137.55]) by ares.cs.Virginia.EDU (8.8.5/8.8.5) with ESMTP id QAA09313; Tue, 12 May 1998 16:51:51 -0400 (EDT) Received: (from nr@localhost) by labrador.cs.virginia.edu (8.8.6/8.7.3) id QAA04353; Tue, 12 May 1998 16:51:51 -0400 Date: Tue, 12 May 1998 16:51:51 -0400 Message-ID: <199805122051.QAA04353@labrador.cs.virginia.edu> To: LitProg@SHSU.edu, Jurgen Defurne From: Litprog moderation robot (replies dropped) Reply-To: LitProg@SHSU.edu, null@cs.virginia.edu Subject: Re: Re: Starting from scratch... 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 12-May-1998 22:28:18-GMT,1469;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 QAA09743 for ; Tue, 12 May 1998 16:28: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; Tue, 12 May 1998 17:24:13 EST From: Uwe Knietzsch Reply-To: LitProg@SHSU.edu, Uwe.Knietzsch@informatik.tu-chemnitz.de Subject: underlines in nuweb Date: 12 May 1998 21:15:25 GMT Message-ID: <6jae5d$ptr$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu hi, I have a problem with files and modules that contains a underline in nuweb. example: @O my_modul.c @{@@} @D my_modul @{ @I my_modul.h @} The underline in the moduldefinition causes a latex-error. I can use a '\_' but in this case where are no formula environment, it's a nuweb- command or a reference, not a tex-formula. The same problem ist with @i in- and outside of the code-sequence. The _ is a filenamepart, not a formula. -- MfG 55&73 to you ... --------------------------------------------- E-Mail: ukn@informatik.tu-chemnitz.de www: http://www.tu-chemnitz.de/~ukn/index.html --------------------------------------------- 13-May-1998 1:08:45-GMT,2190;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 TAA13413 for ; Tue, 12 May 1998 19:08: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, 12 May 1998 20:05:11 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: XML and Literate Programming Date: 13 May 1998 00:06:40 GMT Message-ID: <6jao6g$155$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu In article <6j6k7r$o89$1@murdoch.acc.Virginia.EDU>, Michel wrote: > >In article <6in87k$4vl$1@murdoch.acc.Virginia.EDU>, Norman Ramsey > writes: >|>In article <6iipp5$p1m$1@murdoch.acc.Virginia.EDU>, >|>Devon Prichard wrote: >|>>right on. you need to abstract one level further than the current LP >|>>concepts. a single "document" should contain theoretical development, >|>>programmers guide, source, users guide, online help, etc. all of which >|>>require formatted text, equations, tables, drawings, who knows what. >|> >|>This has been said over and over for at least 10 years that I know of. >|>The problem is that you can't possibly have one `document' that is all >|>these things---you need a database of closely related documents, and >|>they need to be kept consistent... >I am currently working on a preprocessor to do that job. The idea is to keep >several documents together in a file using "threads": an input file consists >of one or several threads, an output file is always _one_ thread. Inside the >file you can switch the thread using a simple control sequence (small example: > > this is some code for thread {@@a}a only{@@b}b!!{@@ab} rest of code > What are you going to use to edit the source code for these documents? Without super editing support, I fear you are going to wind up with something that rivals heavily #ifdef'd C code in its difficulty of editing and modification. Norman 13-May-1998 2:53:15-GMT,2206;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 UAA15411 for ; Tue, 12 May 1998 20:53: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, 12 May 1998 21:50:53 EST From: "Jurgen Defurne" Subject: Re: Starting from scratch... Date: 13 May 1998 02:34:44 GMT Message-ID: <6jb0s4$r44$1@news.interlog.com> Reply-To: LitProg@SHSU.edu, LitProg@SHSU.edu, "Jurgen Defurne" MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu On 9 May 1998 17:06:10 GMT, Elf Sternberg wrote: >Is there a "dummies guide," so to speak, for how to bring up a >Literate Programming system? From my standpoint, I *am* uninformed about >these systems that the Literate Programming community uses. I guess the >question is, from a tool base point of view, where do I start? > > Elf M. Sternberg There isn't a dummies guide, but you certainly should read the Literate Programming FAQ. I'll send it to you personally. I have tried several LP tools, some of them have more information than others. The ones I have tried are the following : nuweb : very small, should compile on all systems, needs TeX fweb : powerful, should be easily compiled, has a very good manual, but needs TeX, LaTex and TeXInfo CliP : there is a DOS version (compiled using Borland Pascal) and a Unix version. What you do with standard LP tools, is that you create an ASCII file, which is then processed into formatted text and source code. With CliP, you write your LP program with your favorite word/text processing tool, save it as ASCII and then generate code using CliP. I think you should also check out sunsite.unc.edu for FAQ's about TeX, LaTeX and so on. You should definitely not try to learn TeX. Buy "LaTeX, A Document Preparation System" from Leslie Lamport if you really want to know about it. Jurgen Defurne Flanders - Belgium 13-May-1998 15:46:29-GMT,4969;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 JAA23273 for ; Wed, 13 May 1998 09:46:27 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from rotari.larc.nasa.gov by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 13 May 1998 10:21:37 EST Received: by rotari.larc.nasa.gov id LAA07470; Wed, 13 May 1998 11:18:57 -0400 (EDT) Message-ID: <3559B9E1.41C6@rotari.larc.nasa.gov> Date: Wed, 13 May 1998 11:18:57 -0400 From: Devon Prichard Reply-To: LitProg@SHSU.edu, prichard@rotari.larc.nasa.gov MIME-Version: 1.0 To: LitProg@SHSU.edu, arnold@gnu.org Subject: Re: integrated user doc [was Re: XML and Literate Programming] References: <6jac4t$ovg$1@murdoch.acc.Virginia.EDU> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Aharon Robbins wrote: > This makes a lot of sense, but it requires a tool issue that > hasn't been addressed yet - the ability to weave separate > chunks out of a single web file (much as noweb [at least] > can extract different code chunks --- for noweb3, Norman?) > (I suspect that doing this right is much more challenging than > it first appears.) well, you CS types need _something_ to do. ;) not being a do-it-yourself CS type, I'm waiting for you guys to develop an LP tool that is powerful, easy to use, and portable. TeX-based LP is powerful and semi-portable. MS-Word is easy-to-use. HTML is portable. XML will hopefully be powerful and portable. an XML-based WYSIWYG editor that is web-aware and math-aware would seem to offer formatting power, ease-of-use, and portability. I'm going to keep pestering you CS types until I get it! > Some other possibly tangential points about this. Don Knuth > in his paper on the errors of TeX (in the LP book) talks about > how valuable it is for the designer of the system to also be the > one who writes the user's manual and that s/he should also use it. yep. at least the first draft. though I have found that you have to get user feedback to make the users guide really functional. a lot of bone-simple questions don't get answered in v1.0 of the guide. after all, it is _obvious_ that air density is normalized by the average molecular weight of air and wingspan (I am not joking here). > From my experience, I agree this is a valuable practice. I suspect > though, that for whatever reason, most programmer's are not (or > don't want to be) good writers. They'd rather just hack code. > This is perhaps the biggest reason that LP hasn't caught on with > the masses. poor documentation beats no documentation. > > On the other hand, I can point at several examples where programmers > who are good writers are also really good programmers. For whatever > that's worth. its a matter of standards. if the folks paying programmers demanded good docs, they'd get them. behavior adjusts to conditions. imagine a system where your compensation was based on both your direct value-added, but a fraction of the value added downstream by others. sort of like the royalty checks for TV actors. they keep getting checks long after the series is dead, when the show gets re-runned. that would really motivate folks not only to write usable code, but also make it well-documented and readable. sales commissions are written in such a way as to motivate the salesmen to sell what's best for the company, why not programmers? > > My experience: I maintain GNU awk (gawk) and its user's guide. > It'd be interesting to integrate the code with the manual in an > LP style. When printing, I could see producing a regular user's > manual, and also literate source code annotated with relevant > parts of the user's manual, but say just the specification parts > minus the introductory and example parts. This would also be > challenging from an organizational point of view, in terms of > putting all the pieces together so that they could be included > or excluded appropriately. > > Very interesting food for thought, at least for me. :-) the way I have been looking at this stuff, there are really two targets; users and user/developers. the user just wants an executable or compilable with a printable (or browsable) users guide. the user/developer wants everything, and will probably be happy with just the one-big-web file, if the LP tool is easy to install and use. there is a continuous spectrum, no doubt, but I think there are two or three archetypes that can adequately cover 90% of the user base. ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| | Dr. Devon Prichard, Lockheed Martin d.s.prichard@larc.nasa.gov | | starboard side, deck two, oar 14. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 14-May-1998 3:08:34-GMT,3468;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 VAA17692 for ; Wed, 13 May 1998 21:08: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 by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 13 May 1998 22:03:21 EST From: Thorsten Ohl Reply-To: LitProg@SHSU.edu, ohl@*REMOVETHESTARS*HEP.TU-DARMSTADT.DE Subject: Re: integrated user doc [was Re: XML and Literate Programming] Date: 14 May 1998 01:03:15 GMT Message-ID: <6jdfsj$jdb$1@news.interlog.com> To: LitProg@SHSU.edu Aharon Robbins writes: > a tool issue that hasn't been addressed yet - the ability to weave > separate chunks out of a single web file (much as noweb [at least] > can extract different code chunks --- for noweb3, Norman?) Yes. This would be very useful. On a rather coarse grained level, one can do alot with breaking the noweb source in several files: noweave prelude.nw postlude.nw > manual.tex noweave prelude.nw code.nw postlude.nw > woven-code.tex notangle prelude.nw code.nw postlude.nw > tangled-code.f90 This way I can at least put important interface definitions in the manual part and use them in the code part. A more fine grained control would be useful. Quoting from my current project: @ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Advanced Usage} \begin{dubious} Caveat emptor: no magic of literate programming can guarantee that the following remains in sync with the implementation. This has to be maintained manually. \end{dubious} All [[real]] variables are declared as [[real(kind=double)]] in the source and the variable [[double]] is imported from the module [[kinds]] (see appendix~\ref{sec:kinds}). The representation of real numbers can therefore be changed by changing [[double]] in [[kinds]]. But maybe a variation of what Fred Oberhauser wrote elsewhere can go most of the way. One could, of course, just place the manual in TeX-code chunks: <>= blah blah blah blah but then the woven output will not look pretty, if the TeX code contains maths and a lot of formatting. If one could define a trivial pretty printer, that would just format the text (maybe indented by a couple of ems), we would almost be there. Hmmm, gotta find out whether this can be done with noweb filters. > Some other possibly tangential points about this. Don Knuth > in his paper on the errors of TeX (in the LP book) talks about > how valuable it is for the designer of the system to also be the > one who writes the user's manual and that s/he should also use it. > > From my experience, I agree this is a valuable practice. I don't. I find that I make too much assumptions that make it hard to use the manual. After I design and write a piece of software, a lot of things are `obvious' to me that will be far from obvious to new users. As much as I like Knuth's books, they suffer from the same syndrome and can be appreciated only on second reading and (unfortunately) very few people are sufficiently patient ... -- Thorsten Ohl, Physics Department, TU Darmstadt -- ohl@hep.tu-darmstadt.de http://crunch.ikp.physik.tu-darmstadt.de/~ohl/ [<=== PGP public key here] 14-May-1998 3:10:29-GMT,3862;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 VAA17736 for ; Wed, 13 May 1998 21:10: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; Wed, 13 May 1998 22:03:22 EST From: Aharon Robbins Subject: integrated user doc [was Re: XML and Literate Programming] Date: 12 May 1998 20:41:01 GMT Message-ID: <6jac4t$ovg$1@murdoch.acc.Virginia.EDU> Reply-To: LitProg@SHSU.edu, LitProg@SHSU.edu, arnold@gnu.org MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: LitProg@SHSU.edu > your point about collaborative efforts is a good one, though. > if a database approach is used, you either have to keep a local > copy of everything and risk version discrepancies with the original > source, or you have some horrendous global DB replication task. > since everything is going WWW, I suspect somebody will develop > a way to manage version control of documents on the web (at both > ends). might already exist for all I know. See the XML stuff. I'm reading the XML issue of the World Wide Web Journal (published by O'Reilly, see their catalog) and XML, along with XLL (eXtended Linking Language) is intended to solve this issue. Everyone just puts links in their docs to the other parts done by the other people and everyone's happy. (Sounds like a nice vision, anyway.) > and having LP handle the only programmer's manual is not > sufficient for the end user. the codes I mess with are 5k-60k lines > of Fortran; it would take a year to infer user's guide information > from even LP-ed source. and I have found that a separate user's > guide tends to fall behind as the code evolves. if it was > embedded into the source, I hope there would be a tendency for > coders to page down and update the user's guide stuff in the > same edit session as modifying the source. This makes a lot of sense, but it requires a tool issue that hasn't been addressed yet - the ability to weave separate chunks out of a single web file (much as noweb [at least] can extract different code chunks --- for noweb3, Norman?) (I suspect that doing this right is much more challenging than it first appears.) Some other possibly tangential points about this. Don Knuth in his paper on the errors of TeX (in the LP book) talks about how valuable it is for the designer of the system to also be the one who writes the user's manual and that s/he should also use it. >From my experience, I agree this is a valuable practice. I suspect though, that for whatever reason, most programmer's are not (or don't want to be) good writers. They'd rather just hack code. This is perhaps the biggest reason that LP hasn't caught on with the masses. On the other hand, I can point at several examples where programmers who are good writers are also really good programmers. For whatever that's worth. My experience: I maintain GNU awk (gawk) and its user's guide. It'd be interesting to integrate the code with the manual in an LP style. When printing, I could see producing a regular user's manual, and also literate source code annotated with relevant parts of the user's manual, but say just the specification parts minus the introductory and example parts. This would also be challenging from an organizational point of view, in terms of putting all the pieces together so that they could be included or excluded appropriately. Very interesting food for thought, at least for me. :-) -- Aharon (a.k.a. Arnold) Robbins arnold@gnu.org 13 Hasharon St., #403 +972 51 297545 Ra'anana 43351 Laundry increases exponentially in the ISRAEL number of children. -- Miriam Robbins 14-May-1998 7:56:41-GMT,1731;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 BAA13337 for ; Thu, 14 May 1998 01:56: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; Thu, 14 May 1998 02:53:43 EST From: Fred Oberhauser Reply-To: LitProg@SHSU.edu, foent@ALF.BLNT.PSI.DE Subject: Re: integrated user doc Date: 14 May 1998 07:01:35 GMT Message-ID: <6je4sf$jt4$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu Norman Ramsey writes: > > In article <6jc6d7$iqi$1@murdoch.acc.Virginia.EDU>, > Fred Oberhauser wrote: > >would it be difficult to write a noweb filter that just removes > >anything that is to go to a given root chunk? > > No. > > >then we could produce the user documentation as just another tree in > >the web-document, like this: > > We've done that. It works OK, but the source gets very difficult to > manage (and edit). New editing tools, anyone? > :-) so you have such a filter? is it available for the public :-) ? concerning editing and source management, I don't see the point. The user documentation will go to some seperate file(s), which has (have) to be mannaged like any other file extracted from the web-source: using naming conventions and some seperate glue that ties the seperate files together, if we are in a larger project. hmm... when i rearrange the web-source, i have to rearrange the manual chunks with the implementation chunks. Is this your concern? Fred 14-May-1998 17:28:11-GMT,2256;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 LAA29568 for ; Thu, 14 May 1998 11:28: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, 14 May 1998 12:16:06 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: integrated user doc Date: 14 May 1998 16:45:27 GMT Message-ID: <6jf737$5rl$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu In article <6je4sf$jt4$1@murdoch.acc.Virginia.EDU>, Fred Oberhauser wrote: >Norman Ramsey writes: >> >then we could produce the user documentation as just another tree in >> >the web-document, like this: >> >> We've done that. It works OK, but the source gets very difficult to >> manage (and edit). New editing tools, anyone? >> > >:-) so you have such a filter? is it available for the public :-) ? We cheat a bit, since nobody has implemented Dan Schmidt's ``inheritance'' proposal yet. Every chunk to do with the user manual begins with the string refman:, and when we weave the code, we use noweave -filter 'elide refman:*' ... and it just works. Elide should be included in any Noweb installation that uses Icon. >concerning editing and source management, I don't see the point. The >user documentation will go to some seperate file(s), which has (have) >to be mannaged like any other file extracted from the web-source: >using naming conventions and some seperate glue that ties the seperate >files together, if we are in a larger project. The user manual becomes a `program' whose source language is TeX. It's not pretty, and I don't advocate doing this, but we have used this technique to good effect in a few limited ways. >hmm... when i rearrange the web-source, i have to rearrange the manual >chunks with the implementation chunks. Is this your concern? No, my concern is that the literate soure code becomes hard to read and edit because there are too many disparate threads running through it. N 14-May-1998 17:29:04-GMT,1253;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 LAA29618 for ; Thu, 14 May 1998 11: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 MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 14 May 1998 12:16:15 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: XML and Literate Programming Date: 14 May 1998 16:42:16 GMT Message-ID: <6jf6t8$5p9$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu In article <6jdfrg$j9v$1@news.interlog.com>, wrote: >Here is a small piece of code from a makefile: >(used threads: a -> Atari, d -> DOS, u -> UNIX, v -> VMS) > >### source file: > >ai: ascindex{@#exe} >{@@dv} >ascindex{@#exe}: ascindex.c cvt_rm{@#exe} >{@@d} > $(CC) ascindex.c -oascindex > djp ascindex > {@#delete} ascindex >{@@aduv} My own preference as a reader of this program would be to see three different versions using Lee Wittenberg's nocond program. I'd rather not have to expand these macros in my head. Norman 14-May-1998 17:51:05-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 LAA00409 for ; Thu, 14 May 1998 11:50: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; Thu, 14 May 1998 12:37:24 EST From: Fred Oberhauser Reply-To: LitProg@SHSU.edu, foent@ALF.BLNT.PSI.DE Subject: Re: integrated user doc Date: 13 May 1998 13:15:19 GMT Message-ID: <6jc6d7$iqi$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu hmmm... would it be difficult to write a noweb filter that just removes anything that is to go to a given root chunk? then we could produce the user documentation as just another tree in the web-document, like this: <>= hasl fasl <> @ some meta-blah about <>= ... @ <>= ... @ <>= some very important hint refering to what is implemented here <>= ... before weaving, we just remove 'manual' and the chunks included in it -- maybe after checking that they won't be used anywhere else. Fred 14-May-1998 18:50:36-GMT,1111;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 MAA01930 for ; Thu, 14 May 1998 12:50: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; Thu, 14 May 1998 13:28:35 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: integrated user doc Date: 13 May 1998 18:36:44 GMT Message-ID: <6jcp7s$8$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu In article <6jc6d7$iqi$1@murdoch.acc.Virginia.EDU>, Fred Oberhauser wrote: >would it be difficult to write a noweb filter that just removes >anything that is to go to a given root chunk? No. >then we could produce the user documentation as just another tree in >the web-document, like this: We've done that. It works OK, but the source gets very difficult to manage (and edit). New editing tools, anyone? 14-May-1998 22:41:30-GMT,1375;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 QAA07899 for ; Thu, 14 May 1998 16:41:29 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from imo13.mx.aol.com by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 14 May 1998 17:37:07 EST Received: from Jmccomp5@aol.com by imo13.mx.aol.com (IMOv14.1) id NZSTa29777 for ; Thu, 14 May 1998 17:55:50 -0400 (EDT) From: Jmccomp5 Reply-To: LitProg@SHSU.edu, Jmccomp5@aol.com Message-ID: <13bcbdce.355b6868@aol.com> Date: Thu, 14 May 1998 17:55:50 EDT To: Jmccomp5@aol.com MIME-Version: 1.0 Subject: FREE Downloadable Computer Software Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit FREE Downloadable Computer Software Welcome to J.E. HILL MULTIMEDIA TryAndBuy Software subsite. Your place on the Web for DOWNLOADABLE Software. Just click on any of the products listed to have them downloaded to your computer. Look for the TryAndBuy™ logo for fully functional software that you may try before you buy. Thank you Shop Today!! http://www.tryandbuy.com/content.asp?00=J.E.HillMultimedia http://www.eckorea.net/Companies/JEHillMultimedia/ 15-May-1998 2:01:58-GMT,1571;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 UAA12020 for ; Thu, 14 May 1998 20:01:57 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from imo12.mx.aol.com by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 14 May 1998 21:00:08 EST Received: from Jmccomp724@aol.com by imo12.mx.aol.com (IMOv14.1) id NEOUa14222 for ; Thu, 14 May 1998 20:49:45 +2000 (EDT) From: Jmccomp724 Reply-To: LitProg@SHSU.edu, Jmccomp724@aol.com Message-ID: <6501975e.355b912c@aol.com> Date: Thu, 14 May 1998 20:49:45 EDT To: Jmccomp4@aol.com MIME-Version: 1.0 Subject: Educational and Instructional Videos, Movies, Books, and Computer Software! Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit SHOP OUR NEW EDUCATIONAL / ENTERTAINMENT VIDEOS CATALOG ON THE INTERNET: Over 12,000 of the world's best Instructional and Educational Videos and Computer Software titles. Hundreds of subjects including: Academic Studies, Art, Beauty, Biography, Boating, Business, Childcare & Parenting, Children's Learning, Computers, Cooking, Crafts, Documentary, Exercise, Gambling, Gardening, Health, Home Improvements, Music, Nature, Personal Growth, Pets, Photography, Sports, Transportation, Theology, Travel and many more! ***BookMark this one!*** http://www.eckorea.net/Companies/JEHillMultimedia/ 15-May-1998 21:47:37-GMT,1473;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 PAA04677 for ; Fri, 15 May 1998 15:47: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, 15 May 1998 09:41:07 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@samson.kean.edu Subject: Re: integrated user doc [was Re: XML and Literate Programming] Date: 14 May 1998 13:33:54 GMT Message-ID: <6jers2$sqs$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: LitProg@SHSU.edu On Wed, 13 May 1998, Devon Prichard wrote: > poor documentation beats no documentation. This is not always the case. Many's the hour I've wasted with poor docs, when I would have simply given up immediately with no docs available :-( -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Computer Science Department | "I said I wanted you to save the world, I Kean University | never said it was worth saving." Union, NJ 07083 | | -- William Goldman leew@samson.kean.edu | "Brothers" (1986) ------------------------------------------------------------------------ 15-May-1998 22:11:38-GMT,1744;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 QAA05502 for ; Fri, 15 May 1998 16:11: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; Fri, 15 May 1998 12:11:49 EST From: Elf Sternberg Reply-To: LitProg@SHSU.edu, elf@halcyon.com Subject: Success and failure Date: 15 May 1998 16:33:57 GMT Message-ID: <6jhqpl$dla$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: LitProg@SHSU.edu Thanks to everyone who helped; I've gotten noweb up and running and managed to write my first subprogram with it. It ain't bad at all, although admittedly it was an interesting exercise all the same. (I should probably have added in my last article that, along with everything else, I was also shifting from vi to emacs, which only made the task a little more interesting). In any event, what I've discovered in the course of writing is that noweb works well for small programs (articles), but how does one write a large system? In effect, my subprogram is a unit of a much larger program. What does it take to write a _book_, and in the case of the noweb->html process, how do I write a book with a table of contents, without jamming everything into one big file? Elf If you bring forth what is within you, Elf M. Sternberg What you bring forth will save you. www.halcyon.com/elf If you do not bring forth what is within you, What you do not bring forth will destroy you. -- Thomas:70 15-May-1998 22:51:23-GMT,2455;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 QAA07133 for ; Fri, 15 May 1998 16:51: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; Fri, 15 May 1998 10:12:23 EST From: Devon Prichard Reply-To: LitProg@SHSU.edu, prichard@rotari.larc.nasa.gov Subject: Re: integrated user doc [was Re: XML and Literate Programming] Date: 14 May 1998 14:46:44 GMT Message-ID: <6jf04k$1lg$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Thorsten Ohl wrote: > > > Some other possibly tangential points about this. Don Knuth > > in his paper on the errors of TeX (in the LP book) talks about > > how valuable it is for the designer of the system to also be the > > one who writes the user's manual and that s/he should also use it. > > > > From my experience, I agree this is a valuable practice. > > I don't. I find that I make too much assumptions that make it hard to > use the manual. After I design and write a piece of software, a lot > of things are `obvious' to me that will be far from obvious to new users. > that's true of most people, definitely me as well. the solution is to give the code and docs to your beta testers and keep a log of *all* questions they ask (especially the "dumb" ones) and integrate the answers into the docs. I keep a text file with user support logs; not only good for giving grist to the managers, but also can point out patterns in end-user problems. humans being what they are, I don't think there is any avoiding an iterative process when it comes to documentation. if the code author writes it, it takes several go-arounds to get all the "obvious" stuff put in. if a disinterested third party writes it, important details will be missing (for example, any Microsoft online help; grammatically correct, but thin on content). ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| | Dr. Devon Prichard, Lockheed Martin d.s.prichard@larc.nasa.gov | | starboard side, deck two, oar 14. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 15-May-1998 23:07:00-GMT,2404;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 RAA07612 for ; Fri, 15 May 1998 17:06: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; Fri, 15 May 1998 09:41:04 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@samson.kean.edu Subject: Request for LP Course Advice Date: 14 May 1998 13:42:23 GMT Message-ID: <6jesbv$t3d$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: LitProg@SHSU.edu This summer I'm going to be running a graduate level, special topics course on LP, and I'd welcome any advice anyone can give. I'm particularly looking for pointers to sample programs my students can look at, and advice on possible textbooks/handouts. What I'm thinking of so far is primarily a project course, using programming problems from the International Programming Contest finals (I have a complete set dating back to 1986, if I can ever find the damn things). The philosophy here being that it's only through using LP that one can truly see the advantages (and get hooked). Also, it's only a 5-week intensive session, so I've got to be very careful with information overload. I also want to look at existing programs, and get the students used to critiquing them (one of the lesser praised advantages of LP, IMO, is the ability to be able to meaningfully critique a program in a very short span of time), hence the request for available samples. As to textbook, the only book I an definitely going to use (so far) is Strunk and White's "The Elements of Style". Norman has recommended that I look at Hanson's "C Interfaces and Implementations" as well. Any other suggestions? Comments? -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Computer Science Department | "I said I wanted you to save the world, I Kean University | never said it was worth saving." Union, NJ 07083 | | -- William Goldman leew@samson.kean.edu | "Brothers" (1986) ------------------------------------------------------------------------ 15-May-1998 23:33:20-GMT,3165;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 RAA08543 for ; Fri, 15 May 1998 17:33: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; Fri, 15 May 1998 04:11:44 EST From: plugge@biv7.sr.fh-mannheim.de () Subject: Re: XML and Literate Programming Date: 14 May 1998 01:02:40 GMT Message-ID: <6jdfrg$j9v$1@news.interlog.com> Reply-To: LitProg@SHSU.edu, plugge@biv7.sr.fh-mannheim.de MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit To: LitProg@SHSU.edu In article <6jao6g$155$1@murdoch.acc.Virginia.EDU>, Norman Ramsey writes: |> >I am currently working on a preprocessor to do that job. The idea is to keep |> >several documents together in a file using "threads": an input file consists |> >of one or several threads, an output file is always _one_ thread. Inside the |> >file you can switch the thread using a simple control sequence (small example: |> > |> > this is some code for thread {@@a}a only{@@b}b!!{@@ab} rest of code |> > |> |> What are you going to use to edit the source code for these documents? I use a normal text editor; for more complicated tasks I use a little FLEX program to generate the real file, using just control sequences (for example \section{...}, \index{...} etc in the base file. For documentation a special documentation mode exists (with a number of predefined macros). |> Without super editing support, I fear you are going to wind up with |> something that rivals heavily #ifdef'd C code in its difficulty of |> editing and modification. That's sometimes true, and sometimes not ;-))) - I have written some files that would beat many #ifdef's (this usually occurs in complicated makefiles with several conditionals and target platforms - the used macros are sometimes really ugly, and nearly unreadable). But in general it is more readable than code using #ifdef's, because much can be done with macros and character remapping: macro definitions and character remapping is done on a per-thread base. Many problems can hidden, which cannot be done easily using #ifdef's. Here is a small piece of code from a makefile: (used threads: a -> Atari, d -> DOS, u -> UNIX, v -> VMS) ### source file: ai: ascindex{@#exe} {@@dv} ascindex{@#exe}: ascindex.c cvt_rm{@#exe} {@@d} $(CC) ascindex.c -oascindex djp ascindex {@#delete} ascindex {@@aduv} ### The generated part for Atari: ai: ascindex.ttp ### The generated part for DOS: ai: ascindex.exe ascindex.exe: ascindex.c cvt_rm.exe $(CC) ascindex.c -oascindex djp ascindex cvt_rm ascindex ### The generated part for UNIX: ai: ascindex ### The generated part for VMS: ai : ascindex$(EXE) ascindex$(EXE) : ascindex.c cvt_rm$(EXE) ### Note: the source file contains blanks in the action lines; these are converted to tabs in the DOS part. Also the `:' is converted to ` :' for VMS. Best regards Michel 15-May-1998 23:49:32-GMT,3402;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 RAA09019 for ; Fri, 15 May 1998 17:49:31 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from alpha.netvision.net.il by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 15 May 1998 04:53:11 EST Received: from ts018p12.hrz.netvision.net.il (ts018p12.hrz.netvision.net.il [194.90.5.86]) by alpha.netvision.net.il (8.8.6/8.8.6) with SMTP id MAA24615 for ; Fri, 15 May 1998 12:51:34 +0300 (IDT) Message-ID: <1.5.4.16.19980515095853.233f61c4@netvision.net.il> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Fri, 15 May 1998 12:58:53 +0300 To: litprog@SHSU.edu From: Aharon Robbins Reply-To: LitProg@SHSU.edu, arnold@gnu.org Subject: Re: integrated user doc > >concerning editing and source management, I don't see the point. The > >user documentation will go to some seperate file(s), which has (have) > >to be mannaged like any other file extracted from the web-source: > >using naming conventions and some seperate glue that ties the seperate > >files together, if we are in a larger project. > > The user manual becomes a `program' whose source language is TeX. > It's not pretty, and I don't advocate doing this, but we have used > this technique to good effect in a few limited ways. I think I'm advocating something a little stronger, which is that there be code chunks and documentation chunks, perhaps distinguishable syntactically in the LP input file. Or perhaps a way to simply label chunks of documentation so that they can be elided or included, as necessary... It also becomes an issue of organization. Taking the combination users guide + implementation doc + code as our model (which may still be too narrowly focused), the "top level" document would have to be the user's guide, with the subordinate doc being "ok, now that we've explained how it works, here's how it's done behind the curtain". But, to complicate it, we may want a way to say "when weaving the program, elide the user doc's examples for the novice, but do include the source code commentary and code." As I first said, I think it's much more complicated to do well than it would seem at first glance. On the other hand, at least within my narrow range of interest, this model would make a really cool technical book, and be a great way to ensure that code and documentation (oh, for say a well known awk interpreter :-) would stay in sync. (Norman's model is backwards from this, the user's guide is a subordinate program along with the source code. I'm not sure that's ultimately the right way to organize it.) > >hmm... when i rearrange the web-source, i have to rearrange the manual > >chunks with the implementation chunks. Is this your concern? > > No, my concern is that the literate soure code becomes hard to read > and edit because there are too many disparate threads running through > it. Keeping it down to 3 threads ought to be reasonable. He said. :-) Aharon -- Aharon (a.k.a. Arnold) Robbins arnold@gnu.org 13 Hasharon St., #403 +972 51 297545 Ra'anana 43351 Laundry increases exponentially in the ISRAEL number of children. -- Miriam Robbins 15-May-1998 21:15:35-GMT,1194;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 PAA03466 for ; Fri, 15 May 1998 15:15: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 by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 15 May 1998 00:32:25 EST From: !!Win@3DFX_Board.net Reply-To: LitProg@SHSU.edu, !!Win@3DFX_BOARD.NET Subject: Win Orchid 12mb 3DFX at www.3DGameArena.com, $300.00 value Date: 15 May 1998 05:30:06 GMT Message-ID: <6jgjsu$aot@bgtnsc03.worldnet.att.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="PART_BOUNDARY_YKKMONJAEJ" To: LitProg@SHSU.edu --PART_BOUNDARY_YKKMONJAEJ-- Content-Type: text/html; charset=us-ascii; name="test.html" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="test.html" Content-Base: "file:///C|/test.html" --PART_BOUNDARY_YKKMONJAEJ-- 16-May-1998 1:53:31-GMT,2163;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 TAA12368 for ; Fri, 15 May 1998 19:53: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; Fri, 15 May 1998 20:26:46 EST From: furlos@rpi.edu (Steve Furlong) Reply-To: LitProg@SHSU.edu, furlos@rpi.edu Subject: Re: Request for LP Course Advice Date: 16 May 1998 01:01:06 GMT Message-ID: <6jiogi$s0g$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu In article <6jesbv$t3d$1@murdoch.acc.Virginia.EDU>, Lee Wittenberg wrote: >This summer I'm going to be running a graduate level, special topics >course on LP, and I'd welcome any advice anyone can give. I'm >particularly looking for pointers to sample programs my students can >look at, and advice on possible textbooks/handouts. I suggest that one of the programs be a "maintenance" example. Show a really bad program, preferably 5000 lines in a single C source file, including two 1000-line functions. For the exercise, have the students break the beast into a literate program. I've done this several times in the past few years, usually with noweb. I'll see if I can get a client to release a sample for educational use. Don't hold your breath, though; most of them are well aware of the quality of their mission-critical software, and don't want their customers to find out. (No haha, unfortunately.) >As to textbook, the only book I an definitely going to use (so far) is >Strunk and White's "The Elements of Style". Norman has recommended >that I look at Hanson's "C Interfaces and Implementations" as well. >Any other suggestions? Comments? I think well of _Code Complete_. It discusses style, along with a huge number of other factors in writing code. However, about all McConnell has to say about LP is that the reader should look at Knuth's book and some of his samples and see for himself why LP hasn't caught on. Hmmph. Ta, Steve Furlong 16-May-1998 2:07:41-GMT,8847;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 UAA12737 for ; Fri, 15 May 1998 20:07: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; Thu, 14 May 1998 23:58:57 EST X-MX-Warning: Warning -- Invalid "From" header. From: "P.M.Z." Reply-To: LitProg@SHSU.edu, PMZ@EARTHONLINE.NET Subject: AMAZING PROGRAMS THREE IN ONE Date: 15 May 1998 04:58:18 GMT Message-ID: <6jgi1a$av9@bgtnsc01.worldnet.att.net> To: LitProg@SHSU.edu SINCERE READER! ********************************************** * * * PLEASE BEFORE READING THIS PAGE, * * DOUBLE CLICK ON HIGHLIGHTED SUBJECT AREA * * TO VIEW LETTER IN FULL SCREEN * * * ********************************************** If you have interest in this INFORMATION, please do not click "reply", but use the information in this message. $ THIS EMAIL could be very PRECIOUS FOR YOU $ ============================================= Don't delete this e-mail. Save it and print it for future reference. =========================================== Read it twice. =============== It could be your chance to participate in a MLM, MULTI-LEVEL MARKETING =============================== $$$ You are about to make at least $50,000 in less than 90 days ! Please read the enclosed program...THEN READ IT AGAIN !!! $$$ THIS IS A LEGITIMATE, LEGAL, MONEY MAKING OPPORTUNITY. INSTRUCTIONS : ------------------------ STEP # 1: Order all (3) REPORTS listed by NAME AND NUMBER. Do this by ordering the REPORT from each of the (3) names listed below. For each REPORT, send $5.CASH and a SELF-ADDRESSED STAMPED envelope (BUSINESS Size #10) to the person listed for the SPECIFIC REPORT. International orders shouldn't send stamps but should ad $1.more for postage. It is essential that you specify the NAME and NUMBER of the REPORT requested to the person you are ordering from. You will need ALL (3) REPORT because you will be REPRINTING and RESELLING them. DO NOT alter the names or the sequence other than what the instructions say. IMPORTANT : Always provide same-day service on all orders. STEP # 2: Replace the name and address under REPORT # 1 with yours, moving the one that was there down to REPORT # 2. Drop the name and address under REPORT #2 to REPORT # 3. The name and address that was under REPORT # 3 is dropped from the list and this party is in no doubt on the way to the bank. When doing this, make certain you type the names and addresses ACCURATELY !!! DO NOT MIX UP MOVING PRODUCT/REPORT POSITIONS !!! STEP # 3: Having made the requested changes in the NAME list, save it as text (.txt) file in it's own directory to be used with whatever e-mail program you like. Again, REPORT # 2. will tell you the best methods of bulk e-mailing and acquiring e-mail lists. STEP # 4: E-mail a copy of the entire program (all of this is very important) to everyone whose address you can get. Start with friends and relatives since you can encourage them to take advantage of this fabulous money-making opportunity. Then, e-mail to anyone and everyone ! Use you imagination ! You can get e-mail addresses from companies on the Internet who specialize in e-mail mailing lists. These are very cheap, 100,000 addresses for around $35 IMPORTANT : You won't get a good response if you use an old list, so always request a FRESH, NEW list. You will find out where to purchase these lists when you order REPORT # 2 ALWAYS PROVIDE SAME-DAY SERVICE ON ALL ORDERS !!! REQUIRED REPORTS : ***Order each REPORTS by NUMBER and NAME*** SEND a self-addressed, stamped envelope and $5. cash for each order requesting the specific reports by number and name. ____________________________________________________ REPORT # 1 GAMBLING SYSTEM STRATEGY PACKAGE STEP BY STEP INSTRUCTION ON WHAT TO PLAY AND HOW TO PLAY. WITH GUARANTEED WINNINGS! BOTH THE INTERNET AND LIVE CASINOS. ANOTHER BRILLIANT WAY TO MAKE MONEY! BY PLAYING OR $RE-SELLING THE PROGRAM.$ ORDER REPORT # 1 FROM : P.M.Z. 3726 EAST DESERT INN RD SUITE # 158 LAS VEGAS NEVADA 89121 U.S.A. _______________________________________________ REPORT # 2 "SOURCES FOR THE BEST UPDATED MAILING LISTS" 1,000,000 E-MAIL ADDRESSES ONLY $35.00 (INCLUDING FREE BULK-MAILING PROGRAM) ORDER REPORT # 2 FROM : PAUL ZENI 3642 BOULDER HWY # 455 LAS VEGAS NV. 89121 U.S.A NOTE: International postage : send no stamps, send an extra dollar for postage ___________________________________________________ REPORT # 3 "HOW YOU CAN MAKE $50,000 IN 90-DAYS/??? ORDER REPORT # 3 FROM : ATTILA DUDASZEG 4808 MEREDITH LAS VEGAS NV.89121 U.S.A. NOTE:International Orders send and extra dollar and I'll take care of the postage. ______________________________________________________ HERE'S HOW THIS AMAZING PROGRAM WILL MAKE YOU $$$ Let's say that you decide to start small, just to see how it goes, and we'll assume you and those involved send out only 2,000 programs each. Let's also assume that the mailing receives a 0.5% response. Using a good list the response could be much better. Also many peoples will send out hundreds of thousands of programs instead of 2,000 programs. With a 0.5% response, that is only 10 orders for REPORT # 1. Those 10 people respond by sending out 2,000 programs each for a total of 20,000. Out of those 0,5%, 100 people respond and order REPORT # 2. Those 100 mail out 2,000 programs each for a total of 200,000. The 0.5% response to that is 1,000 orders for REPORT # 3. Those 1,000 send out 2,000 programs each for a total of 2,000,000. The 0.5% response to that is 10,000 orders That's 10,000 $5 bills for you. CASH !!! Your total income in this example is $50 + $500 + 5,000 + $50,000 for a total of $55,550 !!! REMEMBER FRIEND, THIS IS ASSUMING 1,990 OUT OF THE 2,000 PEOPLE YOU MAIL TO WILL DO ABSOLUTELY NOTHING AND TRASH THIS PROGRAM ! DARE TO THINK FOR A MOMENT WHAT WOULD HAPPEN IF EVERYONE, OF HALF SENT OUT 100,000 PROGRAMS INSTEAD OF 2,000. Believe me, many people will do just that, and more ! By the way, your cost to participate is this is practically nothing. You obviously already have an Internet connection and e-mail is FREE !!! REPORT # 2 will show you the best methods for bulk e-mailing and obtaining e-mail lists. ****************************************** It does not require you to come into contact with people, do any hard word, and best of all, you never have to leave the house except to get mail. If you believe that someday you'll get that big break that you've been waiting for, THIS IS IT ! Simply follow the instructions, and your dreams will come true. This multi-level e-mail order marketing program works perfectly...100% EVERY TIME. E-mail is the sales tool of the future. Take advantage of this non-commercialized method of advertising NOW !!! The longer you wait, the more people will be doing business using e-mail. Get you piece of this action !!! Initially I sent out 10,000 e-mails. It cost me about $15.00 for my time on-line. The great thing about e-mail is that I don't need any money for printing to send out the program, only the cost to fulfill my orders. I am telling you like it is, I hope it doesn't turn you off, but I promised myself I would not "rip-off" anyone, no matter how much money it cost me ! I paid off ALL of my debts and bought a much needed new car. Please take time to read the attached program, IT WILL CHANGE YOUR LIFE FOREVER !!! Remember: """ IT WON'T WORK IF YOU`DON'T TRY IT """ This program does worK, but you must follow it EXACTLY ! Especially the rules of not trying to place the name in a different place. It won't work, you'll lose out on a lot of money ! Always follow the guarantee, 15-20 orders for REPORT#1, and 100+ orders for REPORT#2 and you will make $50,000 or more in 20-90 days. I AM LIVING PROOF THAT It WORKS !!! If you choose not to participate in this program, I am sorry. It really is a great opportunity with little cost or risk to you. If you choose to participate, follow the program and you will be on you way to financial security. Sincerely, P.M.Z. ________________________________________________________________ Best wishes with the program and good luck ! 16-May-1998 2:18:23-GMT,2765;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 UAA13013 for ; Fri, 15 May 1998 20:18: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; Fri, 15 May 1998 21:09:58 EST From: plugge@biv7.sr.fh-mannheim.de () Subject: Re: XML and Literate Programming Date: 15 May 1998 08:50:14 GMT Message-ID: <6jgvk6$1n7$1@murdoch.acc.Virginia.EDU> Reply-To: LitProg@SHSU.edu, plugge@biv7.sr.fh-mannheim.de MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit To: LitProg@SHSU.edu In article <6jf6t8$5p9$1@murdoch.acc.Virginia.EDU>, Norman Ramsey writes: |> In article <6jdfrg$j9v$1@news.interlog.com>, |> wrote: |> >Here is a small piece of code from a makefile: |> >(used threads: a -> Atari, d -> DOS, u -> UNIX, v -> VMS) |> > |> >### source file: |> > |> >ai: ascindex{@#exe} |> >{@@dv} |> >ascindex{@#exe}: ascindex.c cvt_rm{@#exe} |> >{@@d} |> > $(CC) ascindex.c -oascindex |> > djp ascindex |> > {@#delete} ascindex |> >{@@aduv} |> |> My own preference as a reader of this program would be to see three |> different versions using Lee Wittenberg's nocond program. I'd rather |> not have to expand these macros in my head. |> |> Norman The above example was not intended as a complete makefile example, but rather to show how threads and macros work. You are right for a small makefile of say 5 or 10 targets; in this case it is ok to work on some different files. But what about a group of makefiles with 1100 targets, 4 destination platforms and 20 global options, when each of these can make major changes in the structure of the generated makefiles, the platforms require different makefile writing style as for VMS and UNIX and different intermediate targets as for M$DOG and UNIX? In this case it is much more convenient to do initially some additional work and then edit just one file instead of editing 10 files (or even more) and to try to get everything work for the different platforms, and include at least a few global options. Btw., the initial problem (integrated user doc) is much more simple; one doesn't have to use macros, just threads. For example the code that should go into the user documentation could be marked by {@@u}, code for the advanced documentation by {@@a} and code for both sets by {@@au}. The code sections could be marked by {@@c}, that's the whole thing. It's quite easy, and usually not much to expand in the head ;-))). Best regards Michel 16-May-1998 18:53:50-GMT,1572;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 MAA25092 for ; Sat, 16 May 1998 12:53: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; Sat, 16 May 1998 13:50:27 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: Success and failure Date: 16 May 1998 18:18:03 GMT Message-ID: <6jkl8r$kkp$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu In article <6jhqpl$dla$1@murdoch.acc.Virginia.EDU>, Elf Sternberg wrote: > In any event, what I've discovered in the course of writing is >that noweb works well for small programs (articles), but how does one >write a large system? In the past, what people have done is write a small number of noweb files per chapter (typically 1), weave them separately into .tex files, then use LaTeX to combine the chapters into a book. I can vouch for the utility of this technique for programs of up to around 15,000 lines of code (plus several thousands documentation). >in the case of the >noweb->html process, how do I write a book with a table of contents, >without jamming everything into one big file? Regrettably, it can't be done with noweb today. I have asked for funding for a student to work on this problem. If I get the funding and the student, we'll see... Norman 16-May-1998 19:21:21-GMT,2456;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 NAA25784 for ; Sat, 16 May 1998 13:21:21 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from alpha.netvision.net.il by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sat, 16 May 1998 14:15:08 EST Received: from ts015p3.hrz.netvision.net.il (ts015p3.hrz.netvision.net.il [194.90.5.23]) by alpha.netvision.net.il (8.8.6/8.8.6) with SMTP id WAA21799 for ; Sat, 16 May 1998 22:13:29 +0300 (IDT) Message-ID: <1.5.4.16.19980516192035.23574ffe@netvision.net.il> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Sat, 16 May 1998 22:20:35 +0300 To: LitProg@SHSU.edu From: Aharon Robbins Reply-To: LitProg@SHSU.edu, arnold@gnu.org Subject: Re: Request for LP Course Advice At 01:01 16/05/98 GMT, you wrote: >In article <6jesbv$t3d$1@murdoch.acc.Virginia.EDU>, >Lee Wittenberg wrote: >>This summer I'm going to be running a graduate level, special topics >>course on LP, and I'd welcome any advice anyone can give. I'm >>particularly looking for pointers to sample programs my students can >>look at, and advice on possible textbooks/handouts. > >I suggest that one of the programs be a "maintenance" example. Show a >really bad program, preferably 5000 lines in a single C source file, >including two 1000-line functions. For the exercise, have the students >break the beast into a literate program. The makeinfo program in the GNU texinfo dist would be a good one for this. It is, or used to be anyway, one very large C program. For a textbook, take a look at Kernighan & Plauger's "Software Tools". A ton of source code with explanation. The tools themselves are a bit (ok, very) outdated, but the writing style is unbeatable. There's two chapters of awk examples in the same style (although I am not haughty enough to say "just as good") in my own "Effective AWK Programming", which comes with GNU Awk. It was writing those chapters that first piqued my own interest in Literate Programming. Aharon -- Aharon (a.k.a. Arnold) Robbins arnold@gnu.org 13 Hasharon St., #403 +972 51 297545 Ra'anana 43351 Laundry increases exponentially in the ISRAEL number of children. -- Miriam Robbins 18-May-1998 13:18:39-GMT,1311;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 HAA01901 for ; Mon, 18 May 1998 07:18:37 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from imo28.mx.aol.com by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 17 May 1998 13:40:54 EST Received: from Jcue786@aol.com by imo28.mx.aol.com (IMOv14.1) id KKZZa25489 for ; Sun, 17 May 1998 14:40:11 -0400 (EDT) From: Jcue786 Reply-To: LitProg@SHSU.edu, Jcue786@aol.com Message-ID: <4a8dbe39.355f2f0d@aol.com> Date: Sun, 17 May 1998 14:40:11 EDT To: LitProg@SHSU.edu MIME-Version: 1.0 Subject: I'm a student looking for an interview.. Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Dear Tobey.. I'm also lookin for an interview of a computer programmer for a class paper. If you have an interview already can you please send me a copy of your questions and answers from your interview. If you don't have an interview, can you send me a list of people who have responded to your request. Thanxs. PS- i need to get this information within a week...(5/20) thanxs. Justin 18-May-1998 13:23:32-GMT,1483;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 HAA02053 for ; Mon, 18 May 1998 07:23: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; Mon, 18 May 1998 04:05:41 EST From: Diego Zamboni Reply-To: LitProg@SHSU.edu, zamboni@cs.purdue.edu Subject: Re: Request for LP Course Advice Date: 17 May 1998 05:46:49 GMT Message-ID: <6jltk9$64g$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 (generated by tm-edit 7.106) Content-Type: text/plain; charset=US-ASCII To: LitProg@SHSU.edu Lee Wittenberg writes: > This summer I'm going to be running a graduate level, special topics > course on LP > [...] > Any other suggestions? Comments? Hi, Being a student who has tried (and keeps trying) to really get the feel for LP, with a moderate degree of success (I still find it quicker to do old regular programming), I would love to take a course like that. Failing that, would you, if available and possible, post class notes/slides, assignments, examples and projects to the public? Or if you set up a class WWW page, would you post a pointer to it in c.p.l? I am sure I would not be the only one to be eternally grateful :-) Cheers and thanks a lot! --Diego 18-May-1998 13:28:29-GMT,1519;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 HAA02257 for ; Mon, 18 May 1998 07:28:28 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from camel14.mindspring.com by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 17 May 1998 01:19:57 EST Received: from default (user-38lc058.dialup.mindspring.com [209.86.0.168]) by camel14.mindspring.com (8.8.5/8.8.5) with SMTP id BAA01431; Sun, 17 May 1998 01:54:20 -0400 (EDT) Message-ID: <3.0.1.32.19980517020555.0068e258@pop.mindspring.com> Date: Sun, 17 May 1998 02:05:55 -0400 To: jmccomp724@aol.com From: "J.E. HILL MULTIMEDIA" Reply-To: LitProg@SHSU.edu, jmccomp724@mindspring.com Subject: Downloadable Computer Software CC: jmccomp724@mindspring.com MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by csc-sun.math.utah.edu id HAA02257 Welcome to J.E. HILL MULTIMEDIA TryAndBuy Software subsite. Your place on the Web for DOWNLOADABLE Software. Just click on any of the products listed to have them downloaded to your computer. Look for the TryAndBuy™ logo for fully functional software that you may try before you buy. Thank you Shop Today!! http://www.tryandbuy.com/content.asp?00=J.E.HillMultimedia 18-May-1998 13:34:07-GMT,1857;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 HAA02445 for ; Mon, 18 May 1998 07:34: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; Mon, 18 May 1998 06:37:26 EST From: M.J.Rooney@wbmt.tudelft.nl (Marco Rooney) Reply-To: LitProg@SHSU.edu, M.J.Rooney@wbmt.tudelft.nl Subject: Re: Request for LP Course Advice Date: Mon, 18 May 1998 20:34:29 GMT Message-ID: <35609859.2410163@news.tudelft.nl> To: LitProg@SHSU.edu Lee Wittenberg wrote: >This summer I'm going to be running a graduate level, special topics >course on LP, and I'd welcome any advice anyone can give. I'm >particularly looking for pointers to sample programs my students can >look at, and advice on possible textbooks/handouts. I found the following book very valuable: Sewell, Wayne Weaving a program; literate programming in WEB Van Nostrand Reinhold, New York, 1989 ISBN 0-442-31946-0 It really explaines the concept of LP very well. It also gives examples of good AND bad LP. It discusses the conversion from regular programs to literate programs. As the sub-title says, it's biased towards WEB, but not limited to it! I'd buy it if I had the money to spare (and if it's still available, I don't know about that.) Sincerely, Marco. ---------------------------------------------------------------------- M.J. Rooney e-mail: M.J.Rooney@wbmt.tudelft.nl Vehicle Research Student phone: +31 15 28 55 314 Delft University of Technology fax: +31 15 278 1397 ---------------------------------------------------------------------- 19-May-1998 8:29:31-GMT,1422;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 CAA26785 for ; Tue, 19 May 1998 02:29: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; Tue, 19 May 1998 03:25:55 EST From: plugge@biv7.sr.fh-mannheim.de (Michel) Subject: Re: XML and Literate Programming Date: 19 May 1998 08:03:43 GMT Message-ID: <6jrecv$jhe$1@murdoch.acc.Virginia.EDU> Reply-To: LitProg@SHSU.edu, plugge@axp3.sr.fh-mannheim.de MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit To: LitProg@SHSU.edu Here I am once again (last time for this thread) - I forgot an important feature of lx2l: preprocessor loops. With lx2l one can use (very simple) loops; this is heavily used for the files. Because the converters have a similar structure, many targets are put into a loop; if one wants to add another converter, one has to add only some variable definitions and say `make mf'; all needed targets are then built automagically :-)). Some variables may contain also conditionals, if building of a specific converter is slightly different from the others. Also many wrapper files etc. are built using loops. Best regards Michel 19-May-1998 15:52:45-GMT,1258;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 JAA10070 for ; Tue, 19 May 1998 09:52: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; Tue, 19 May 1998 10:42:51 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: integrated user doc [was Re: XML and Literate Programming] Date: 18 May 1998 15:49:46 GMT Message-ID: <6jplaq$m5p$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu In article <6jdfsj$jdb$1@news.interlog.com>, Thorsten Ohl wrote: >> the ability to weave >> separate chunks out of a single web file >A more fine grained >control would be useful. I use TeX's \newif and \ifmumble mechanism to control selective inclusion of documentation, and I use noweb's elide filter to control selective omission of code chunks. I use these mechanisms *judiciously* lest my source code become unreadable. Norman P.S. I'll put something in the noweb FAQ about this sometime. 19-May-1998 17:24:24-GMT,2817;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 LAA12793 for ; Tue, 19 May 1998 11:24: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; Tue, 19 May 1998 12:16:35 EST From: Oliver Pabst Reply-To: LitProg@SHSU.edu, olpa@itm.uni-sb.de Subject: LaTeX2e <1996/12/01> cannot compile cweb ! Date: 19 May 1998 16:46:32 GMT Message-ID: <6jsd18$4lq$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: LitProg@SHSU.edu Hi folks, I used to create a .tex file from a CWEB file. When I do latex file.tex, I get these messages: [olpa@newton Diplom]$ latex ge_module This is TeX, Version 3.14159 (C version 6.1) (ge_module.tex LaTeX2e <1996/12/01> patch level 1 Babel and hyphenation patterns for american, german, loaded. (/usr/lib/texmf/texmf/tex/latex/local/cweb/cwebmac.tex) (/usr/lib/texmf/texmf/tex/latex/local/cweb/cweb.cls Document Class: cweb 1995/11/30 v3.6 LaTeX markup for CWEB sources (/usr/lib/texmf/texmf/tex/latex/local/cweb/keyvald.sty) (/usr/lib/texmf/texmf/tex/latex/base/article.cls Document Class: article 1996/10/31 v1.3u Standard LaTeX document class (/usr/lib/texmf/texmf/tex/latex/base/size10.clo)) (/usr/lib/texmf/texmf/tex/latex/local/cweb/cwebbase.tex) LaTeX Warning: Command \end has changed. Check if current package is valid. ) (doc/angela.tex (/usr/lib/texmf/texmf/tex/latex/misc/geometry.sty (/usr/lib/texmf/texmf/tex/latex/graphics/keyval.sty)) (/usr/lib/texmf/texmf/tex/generic/babel/babel.sty (/usr/lib/texmf/texmf/tex/generic/babel/germanb.ldf (/usr/lib/texmf/texmf/tex/generic/babel/babel.def)) (/usr/lib/texmf/texmf/tex/generic/babel/english.ldf)) [...] Overfull \hbox (22.78969pt too wide) in paragraph at lines 40--66 [][] [2] *2 [3] [4] [5] [6] [7] Overfull \hbox (43.3812pt too wide) in paragraph at lines 466--471 [][][][]\OML/cmm/m/it/10 :[][][][][][][]:[][][][][]$ ) * LaTeX returns in command mode without exiting correctly. When I use an old version of LaTeX (1 year older), it works ! I presume the reason is the Warning message at the beginning of the LaTeX output. Can someone help me ? Thanks. [Please answer also by email] --- --- oliver pabst |\ _,,,---,,_ computer science student ZZZzz /,`.-'`' -. ;-;;,_ mailto:olpa@itm.uni-sb.de ______|,4- ) )-,_. ,\ (____-'________ http://www.itm.uni-sb.de/~olpa '---''(_/--' `-'\_) Do a "finger olpa@sisko.itm.uni-sb.de" for my PGP public key 19-May-1998 17:37:42-GMT,1556;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 LAA13127 for ; Tue, 19 May 1998 11:37: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, 19 May 1998 12:27:53 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: XML and Literate Programming Date: 18 May 1998 21:43:25 GMT Message-ID: <6jqa1t$4vt$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu In article <6jgvk6$1n7$1@murdoch.acc.Virginia.EDU>, wrote: >But what about a group of makefiles with 1100 targets, 4 >destination platforms and 20 global options, when each of these can make >major changes in the structure of the generated makefiles, the platforms >require different makefile writing style as for VMS and UNIX and different >intermediate targets as for M$DOG and UNIX? > >In this case it is much more convenient to do initially some additional work >and then edit just one file instead of editing 10 files (or even more) and to >try to get everything work for the different platforms, and include at least >a few global options. Agreed, but I would not try to use macros. Instead, I would layer an abstraction over the various Makefiles, or I might try to use a simpler, more portable system like Modula-3's quake. N 20-May-1998 0:21:13-GMT,2600;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 SAA23018 for ; Tue, 19 May 1998 18:21:12 -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, 19 May 1998 19:18:32 EST From: plugge@biv7.sr.fh-mannheim.de (Michel) Subject: Re: XML and Literate Programming Date: 19 May 1998 06:47:58 GMT Message-ID: <6jr9uu$hq6$1@murdoch.acc.Virginia.EDU> Reply-To: LitProg@SHSU.edu, plugge@axp3.sr.fh-mannheim.de MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit To: LitProg@SHSU.edu In article <6jqa1t$4vt$1@murdoch.acc.Virginia.EDU>, Norman Ramsey writes: |>In article <6jgvk6$1n7$1@murdoch.acc.Virginia.EDU>, |> wrote: |>>But what about a group of makefiles with 1100 targets, 4 |>>destination platforms and 20 global options, when each of these can make |>>major changes in the structure of the generated makefiles, the platforms |>>require different makefile writing style as for VMS and UNIX and different |>>intermediate targets as for M$DOG and UNIX? |>> |>>In this case it is much more convenient to do initially some additional work |>>and then edit just one file instead of editing 10 files (or even more) and |>to |>>try to get everything work for the different platforms, and include at least |>>a few global options. |> |>Agreed, but I would not try to use macros. Instead, I would layer an |>abstraction over the various Makefiles, or I might try to use a |>simpler, more portable system like Modula-3's quake. Agreed also ;-)); in this case there are (naturally) different ways to do the job, and one cannot say, this is the only one. I used lx2l because it has character remapping (for example `target: dependencies' has to be written as `target : dependencies' for VMS; for VMS I use remapping of `:' to ` :'. Or another example, for the clean targets under VMS one has to append `;*' to each file to remove all versions of the file. In this case I append `!' and remap this character to `;*' for'VMS and to nothing for each other platform. Some macros are really hard to read; but I think, it would be also a hard task for each other tool. But concerning portability, lx2l is quite portable; it uses only Ansi C and flex, and I think it can be compiled on most platforms without problems. Best regards Michel 20-May-1998 13:55:22-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 HAA29854 for ; Wed, 20 May 1998 07:55: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; Wed, 20 May 1998 08:03:26 EST From: thompson@sun1.coe.ttu.edu Subject: comp.programming.literate FAQ Date: 20 May 1998 12:26: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: 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-May-1998 15:56:57-GMT,1408;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 JAA24066 for ; Thu, 28 May 1998 09:56: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, 28 May 1998 02:33:21 EST From: Marc van Leeuwen Reply-To: LitProg@SHSU.edu, maavl@zenon.univ-poitiers.fr Subject: Re: The CWEB System of Structured Documentation Date: 28 May 1998 06:45:58 GMT Message-ID: <6kj176$1jd$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu vinig@my-dejanews.com wrote: > Where can I find a electronic version of "The CWEB System of Structured > Documentation"? That's a copyrighted book, so I doubt that the exact sources are electronically available. However, if I recall correctly, it consists just of the manual and source code for CWEB, which you can get from the CTAN archives, compile, run, typeset and print out the corresponding files. Here is one URL (there are many others) http://www.tex.ac.uk/tex-archive/web/c_cpp/cweb/cweb3.4g.tar.gz Marc van Leeuwen Universite de Poitiers http://wallis.univ-poitiers.fr/~maavl/ 28-May-1998 21:47:22-GMT,30676;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 PAA04880 for ; Thu, 28 May 1998 15:47:18 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from mailgate22.a001.sprintmail.com by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 27 May 1998 12:15:55 EST Received: by mailgate22.a001.sprintmail.com (SMI-8.6/SMI-SVR4) id KAA13578; Wed, 27 May 1998 10:15:42 -0700 Received: from sdn-ts-002neomahp04.dialsprint.net(206.133.166.39) by mailfep2-hme1 via dsmap-1.22 id Q_10.1.1.6/Q_24838_1_356c4a1f; Wed, 27 May 1998 10:15:11 -0700 Message-ID: <356C66AA.1AF6E11D@sprintmail.com> Date: Wed, 27 May 1998 12:16:58 -0700 From: Tim Osten Reply-To: LitProg@SHSU.edu, timosten@sprintmail.com MIME-Version: 1.0 To: LitProg@SHSU.edu Subject: Needed programmer Content-Type: multipart/mixed; boundary="------------2CD72332DFDBFF9F74135BA9" This is a multi-part message in MIME format. --------------2CD72332DFDBFF9F74135BA9 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Dear sir, I am an interested C, C++, and Korn shell programmer with UNIX experience. Here is a copy of my resume. Tim Osten --------------2CD72332DFDBFF9F74135BA9 Content-Type: application/msword; name="resume.doc" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="resume.doc" 0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAJQAAAAAA AAAAEAAAJwAAAAEAAAD+////AAAAACQAAAD///////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// ///////////////////////////////////spcEAWQAJBAAAABK/AAAAAAAAEAAAAAAABAAA rggAAA4AYmpiavNX81cAAAAAAAAAAAAAAAAAAAAAAAAJBBYAHhYAAJE9AQCRPQEArgQAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//w8AAAAAAAAAAAD//w8AAAAAAAAAAAD//w8A AAAAAAAAAAAAAAAAAAAAAF0AAAAAAJIAAAAAAAAAkgAAAJIAAAAAAAAAkgAAAAAAAACSAAAA AAAAAJIAAAAAAAAAkgAAABQAAAAAAAAAAAAAANYAAAAAAAAA1gAAAAAAAADWAAAAAAAAANYA AAAAAAAA1gAAAAwAAADiAAAAFAAAANYAAAAAAAAAlAYAALYAAAACAQAAAAAAAAIBAAAAAAAA AgEAAAAAAAACAQAAAAAAAAIBAAAAAAAAAgEAAAAAAAACAQAAAAAAAAIBAAAAAAAA2AIAAAIA AADaAgAAAAAAANoCAAAAAAAA2gIAAE0AAAAnAwAAmgEAAMEEAACaAQAAWwYAACQAAABKBwAA 9AEAAD4JAABsAAAAfwYAABUAAAAAAAAAAAAAAAAAAAAAAAAAkgAAAAAAAAACAQAAAAAAAAAA AAAAAAAAAAAAAAAAAAACAQAAAAAAAAIBAAAAAAAAAgEAAAAAAAACAQAAAAAAAH8GAAAAAAAA LgEAAAAAAACSAAAAAAAAAJIAAAAAAAAAAgEAAAAAAAAAAAAAAAAAAAIBAAAAAAAAAgEAAAAA AAAuAQAAAAAAAC4BAAAAAAAALgEAAAAAAAACAQAAFgAAAJIAAAAAAAAAAgEAAAAAAACSAAAA AAAAAAIBAAAAAAAA2AIAAAAAAAAAAAAAAAAAAAAAAAAAAAAApgAAABgAAAC+AAAAGAAAAJIA AAAAAAAAkgAAAAAAAACSAAAAAAAAAJIAAAAAAAAAAgEAAAAAAADYAgAAAAAAAC4BAACqAQAA LgEAAAAAAAAAAAAAAAAAANgCAAAAAAAAkgAAAAAAAACSAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AIAAAAAAAACAQAA AAAAAPYAAAAMAAAAgPcTGeGIvQHWAAAAAAAAANYAAAAAAAAAGAEAABYAAADYAgAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ1USU1PVEhZIEMuIE9TVEVODTEyMjA2IFJhbWV5 IExhbmUNQmVsbGV2dWUsIE5lYnJhc2thIDY4MTIzDUhvbWUgKDQwMikgNjgyLTAyNTkNQnVz aW5lc3MgKDQwMikgMjk0LTMzMzENDQ1FTVBMT1lNRU5UIEVYUEVSSUVOQ0UNDVNDSUVOVElG SUMgU09GVFdBUkUgRU5HSU5FRVJJTkcgQU5BTFlTVJdBaXIgRm9yY2UgV2VhdGhlciBBZ2Vu Y3k6IE1haW50YWluZWQgY29kZSBmb3Igc2F0ZWxsaXRlIHdlYXRoZXIgYW5hbHlzaXMgcHJv Z3JhbXM7IHdyb3RlIGFuZCBtYWludGFpbmVkIHNvdXJjZSBjb2RlIGRvY3VtZW50YXRpb247 IHByb2R1Y2VkIHNhdGVsbGl0ZSBkYXRhYmFzZSBhY2Nlc3MgcHJvZ3JhbXM7IGNvZGVkIHVw Z3JhZGVzIHRvIGV4aXN0aW5nIHJvdXRpbmVzOyBoZWxwZWQgZm9ybXVsYXRlIEMgYW5kIEMr KyBzdGFuZGFyZHMgZm9yIHRoZSBVTklYIHdvcmtzdGF0aW9ucy4NDVNQRUNJQUwgU0tJTExT IEFORCBBQ1RJVklUSUVTDQ1VTklYIFdPUktTVEFUSU9OOiBUaG9yb3VnaCBrbm93bGVkZ2Ug b2Ygc3lzdGVtIGJhY2t1cCBhbmQgcmV0cmlldmFsIHByb2NlZHVyZXMsIGZpbGUgZWRpdGlu ZyBwcm9ncmFtcywgYW5kIHVzZXIgaW50ZXJmYWNlLg0NV1JJVElORyBBTkQgRURJVElORyBT S0lMTFM6IEV4cGVyaWVuY2UgaW4gaW5zcGVjdGlvbiwgZG9jdW1lbnRhdGlvbiwgYW5kIGVk aXRpbmcgb2YgY29tcHV0ZXIgY29kZS4NDUVEVUNBVElPTg0NCUNvbW11bml0eSBDb2xsZWdl IG9mIHRoZSBBaXIgRm9yY2UsIE9mZnV0dCBBRkIsIE5lYnJhc2thDQlBc3NvY2lhdGUgRGVn cmVlLCBDb21wdXRlciBTY2llbmNlDQ0JUkVMRVZBTlQgQ09VUlNFIFdPUksNDQkJT2JqZWN0 IE9yaWVudGVkIEFuYWx5c2lzIGFuZCBEZXNpZ24JCUZPUlRSQU4NCQlVTklYIE9wZXJhdGlu ZyBTeXN0ZW0JCQlBREENCQlWaXN1YWwgQysrCQkJCQlBc3NlbWJsZXINCQlTdHJ1Y3R1cmVk IFNvZnR3YXJlIEVuZ2luZWVyaW5nCQlDT0JPTA0JCUFzc29jaWF0aXZlIE5ldHdvcmtzCQkJ CVVOSVggS29ybiBzaGVsbCBzY3JpcHRpbmcNCQkJCQ0NRlVSVEhFUiBJTkZPUk1BVElPTg0N CVJlZmVyZW5jZXMsIGNvbGxlZ2UgdHJhbnNjcmlwdHMsIGEgcG9ydGZvbGlvIG9mIGNvbXB1 dGVyIHByb2dyYW1zLCBhbmQgd3JpdGluZyANCXNhbXBsZXMgYXJlICBhdmFpbGFibGUgdXBv biByZXF1ZXN0Lg0JDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NCQkNDQAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAACBAAA EwQAAGsEAACCBAAAwAUAAN4FAAC/BgAAywYAAAsIAAAfCAAArQgAAK4IAAD9+f35/fn9+f35 /fcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AzUIgQc1CIFDShgABENKGAAMAAQAAAEEAAACBAAAEwQAACQEAAA9BAAAUQQAAGkEAABqBAAA awQAAIEEAACCBAAAvwUAAMAFAADeBQAA3wUAAFoGAABbBgAAvgYAAL8GAADJBgAAygYAAAQH AAAoBwAAKQcAAD8HAABABwAAbwcAAI0HAAD8AAAAAAAAAAAAAAAA/AAAAAAAAAAAAAAAAPwA AAAAAAAAAAAAAAD8AAAAAAAAAAAAAAAA/AAAAAAAAAAAAAAAAPwAAAAAAAAAAAAAAAD8AAAA AAAAAAAAAAAA/AAAAAAAAAAAAAAAAPoAAAAAAAAAAAAAAAD6AAAAAAAAAAAAAAAA+gAAAAAA AAAAAAAAAPYAAAAAAAAAAAAAAAD6AAAAAAAAAAAAAAAA+gAAAAAAAAAAAAAAAPYAAAAAAAAA AAAAAAD2AAAAAAAAAAAAAAAA9gAAAAAAAAAAAAAAAPYAAAAAAAAAAAAAAAD6AAAAAAAAAAAA AAAA+gAAAAAAAAAAAAAAAPoAAAAAAAAAAAAAAAD6AAAAAAAAAAAAAAAA+gAAAAAAAAAAAAAA APoAAAAAAAAAAAAAAAD6AAAAAAAAAAAAAAAA+gAAAAAAAAAAAAAAAPoAAAAAAAAAAAAAAAD6 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAA+E0AIAAQAAAwAAAyQBABwABAAAAQQAAAIE AAATBAAAJAQAAD0EAABRBAAAaQQAAGoEAABrBAAAgQQAAIIEAAC/BQAAwAUAAN4FAADfBQAA WgYAAFsGAAC+BgAAvwYAAMkGAADKBgAABAcAACgHAAApBwAAPwcAAEAHAABvBwAAjQcAAKgH AADRBwAABQgAAAoIAAALCAAAHwgAACAIAABxCAAAlwgAAJkIAACaCAAAmwgAAJwIAACdCAAA nggAAJ8IAACgCAAAoQgAAKIIAACjCAAApAgAAKUIAACmCAAApwgAAKgIAACpCAAAqggAAK0I AACuCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAOY0HAACoBwAA0QcAAAUIAAAKCAAACwgAAB8IAAAgCAAAcQgAAJcI AACZCAAAmggAAJsIAACcCAAAnQgAAJ4IAACfCAAAoAgAAKEIAACiCAAAowgAAKQIAAClCAAA pggAAKcIAACoCAAAqQgAAKoIAACtCAAArggAAP0AAAAAAAAAAAAAAAD9AAAAAAAAAAAAAAAA /QAAAAAAAAAAAAAAAP0AAAAAAAAAAAAAAAD9AAAAAAAAAAAAAAAA/QAAAAAAAAAAAAAAAP0A AAAAAAAAAAAAAAD9AAAAAAAAAAAAAAAA/QAAAAAAAAAAAAAAAP0AAAAAAAAAAAAAAAD9AAAA AAAAAAAAAAAA/QAAAAAAAAAAAAAAAP0AAAAAAAAAAAAAAAD9AAAAAAAAAAAAAAAA/QAAAAAA AAAAAAAAAP0AAAAAAAAAAAAAAAD9AAAAAAAAAAAAAAAA/QAAAAAAAAAAAAAAAP0AAAAAAAAA AAAAAAD9AAAAAAAAAAAAAAAA/QAAAAAAAAAAAAAAAP0AAAAAAAAAAAAAAAD9AAAAAAAAAAAA AAAA/QAAAAAAAAAAAAAAAP0AAAAAAAAAAAAAAAD9AAAAAAAAAAAAAAAA/QAAAAAAAAAAAAAA AP0AAAAAAAAAAAAAAAD9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAdHAAfsNAvILDgPSGw CAcisAgHI5CgBSSQoAUlsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAASAA8ACgABAFsADwACAAAAAAAAACQAAEDx/wIAJAAAAAYATgBvAHIA bQBhAGwAAAACAAAABABtSAkEAAAAAAAAAAAAAAAAAAAAAAAAPABBQPL/oQA8AAAAFgBEAGUA ZgBhAHUAbAB0ACAAUABhAHIAYQBnAHIAYQBwAGgAIABGAG8AbgB0AAAAAAAAAAAAAAAAAAAA AACuBAAABgAAFgAAAAD/////AgAAAAQg//8BAAAAAAAAIP//AgAAAAAAAAAAAJoEAACuBAAA AAABAAAAAQAAAAAAAAQAAK4IAAAHAAAAAAQAAI0HAACuCAAACAAAAAoAAAAABAAArggAAAkA AAAAAAAA8AMAAPQDAACwBAAABwAcAAcAAAAAAHIEAAB5BAAAsAQAAAcAGgAHAP//BgAAAA8A QwBvAG0AcABhAHEAIABDAHUAcwB0AG8AbQBlAHIAPgBDADoAXABNAHkAIABEAG8AYwB1AG0A ZQBuAHQAcwBcAFMAYwBoAG8AbwBsAFwAVwByAGkAdABpAG4AZwAgAGYAbwByACAAVwBvAHIA awBcAFAAbwByAHQAZgBvAGwAaQBvACAANABcAHIAZQBzAHUAbQBlAC4AZABvAGMACQBUAEkA TQAgAE8AUwBUAEUATgAvAEMAOgBcAFcASQBOAEQATwBXAFMAXABUAEUATQBQAFwAQQB1AHQA bwBSAGUAYwBvAHYAZQByAHkAIABzAGEAdgBlACAAbwBmACAAcgBlAHMAdQBtAGUALgBhAHMA ZAAJAFQASQBNACAATwBTAFQARQBOAD4AQwA6AFwATQB5ACAARABvAGMAdQBtAGUAbgB0AHMA XABTAGMAaABvAG8AbABcAFcAcgBpAHQAaQBuAGcAIABmAG8AcgAgAFcAbwByAGsAXABQAG8A cgB0AGYAbwBsAGkAbwAgADQAXAByAGUAcwB1AG0AZQAuAGQAbwBjAP9ASFAgRGVza0pldCA2 OTBDIFNlcmllcyBQcmludGVyAExQVDE6AEhQRkRKQzA4AEhQIERlc2tKZXQgNjkwQyBTZXJp ZXMgUHJpbnRlcgBIUCBEZXNrSmV0IDY5MEMgU2VyaWVzIFByaW50ZXIAAAAENwOUAAYBA/+A BwEAAQAAAAAAZAABAAEALAECAAEALAEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAQAAAAAAAAAAAAAASFAg RGVza0pldCA2OTBDIFNlcmllcyBQcmludGVyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAExQVDEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAOQM9gkBAAQAAgABAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAEsAUhQIERlc2tKZXQg NjkwQyBTZXJpZXMgUHJpbnRlcgAAAAQ3A5QABgED/4AHAQABAAAAAABkAAEAAQAsAQIAAQAs AQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAABAAAAAwAAAAEAAAABAAAAAAAAAAAAAABIUCBEZXNrSmV0IDY5MEMgU2VyaWVzIFBy aW50ZXIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATFBUMQAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAABAAAAAAAAAAAA5Az2CQEABAACAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAsASwBAQABAAAAAACZBAAALNOEAAEAAQAAAAAAAAAAAAAAAAAA AAAAAhAAAAAAAAAArgQAAGAAAAgAQAAAAwAAAEcWkAEAAAICBgMFBAUCAwQDAAAAAAAAAAAA AAAAAAAAAQAAAAAAAABUAGkAbQBlAHMAIABOAGUAdwAgAFIAbwBtAGEAbgAAADUWkAECAAUF AQIBBwYCBQcAAAAAAAAAEAAAAAAAAAAAAAAAgAAAAABTAHkAbQBiAG8AbAAAADMmkAEAAAIL BgQCAgICAgQDAAAAAAAAAAAAAAAAAAAAAQAAAAAAAABBAHIAaQBhAGwAAAAiAAQAcQiIGAAA 0AIAAGgBAAAAAGSdG2ZB0yVGAAAAAAUAAwAAAK0AAADbAwAAAgABAAAABACDEAgAAAAAAAAA AAAAAAIAAQAAAAEAAAAAAAAAJAMAAACEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAApQbAB7QAtACAADIwAAAAAAAAAAAAAAAAAAC8BAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIA AACeAf//EgAAAAAAAAAJAFQASQBNAE8AVABIAFkAIABDAAAAAAAAAA8AQwBvAG0AcABhAHEA IABDAHUAcwB0AG8AbQBlAHIACQBUAEkATQAgAE8AUwBUAEUATgAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA/v8AAAQAAgAAAAAAAAAAAAAAAAAAAAAAAQAAAOCFn/L5T2gQq5EIACsns9kwAAAA jAEAABIAAAABAAAAmAAAAAIAAACgAAAAAwAAALQAAAAEAAAAwAAAAAUAAADYAAAABgAAAOQA AAAHAAAA8AAAAAgAAAAAAQAACQAAABQBAAASAAAAIAEAAAoAAAA8AQAACwAAAEgBAAAMAAAA VAEAAA0AAABgAQAADgAAAGwBAAAPAAAAdAEAABAAAAB8AQAAEwAAAIQBAAACAAAA5AQAAB4A AAAKAAAAVElNT1RIWSBDACAAHgAAAAEAAAAASU1PHgAAABAAAABDb21wYXEgQ3VzdG9tZXIA HgAAAAEAAAAAb21wHgAAAAEAAAAAb21wHgAAAAcAAABOb3JtYWwAQx4AAAAKAAAAVElNIE9T VEVOAHRvHgAAAAIAAAA1AE0gHgAAABMAAABNaWNyb3NvZnQgV29yZCA4LjAAAEAAAAAA0klr AAAAAEAAAAAAAAAAAAAAAEAAAAAAuA3NbfW8AUAAAAAA5uAA4Yi9AQMAAAACAAAAAwAAAK0A AAADAAAA2wMAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7/ AAAEAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAC1c3VnC4bEJOXCAArLPmuRAAAAAXVzdWcLhsQ k5cIACss+a5kAQAAIAEAAA0AAAABAAAAcAAAAA8AAAB4AAAABAAAAIgAAAAFAAAAkAAAAAYA AACYAAAAEQAAAKAAAAAXAAAAqAAAAAsAAACwAAAAEAAAALgAAAATAAAAwAAAABYAAADIAAAA DQAAANAAAAAMAAAA5gAAAAIAAADkBAAAHgAAAAcAAABDb21wYXEAAAMAAAAAOgAAAwAAAAgA AAADAAAAAQAAAAMAAAC8BAAAAwAAAGoQCAALAAAAAAAAAAsAAAAAAAAACwAAAAAAAAALAAAA AAAAAB4QAAABAAAACgAAAFRJTU9USFkgQwAMEAAABAAAAB4AAAAGAAAAVGl0bGUAAwAAAAEA AAAeAAAACgAAAFRJTU9USFkgQwADAAAAAAAAAAAAmAAAAAMAAAAAAAAAIAAAAAEAAAA2AAAA AgAAAD4AAAABAAAAAgAAAAoAAABfUElEX0dVSUQAAgAAAOQEAABBAAAATgAAAHsAMwA1ADEA RgAzADgARQAwAC0ARgA0ADkAOAAtADEAMQBEADEALQA4ADcAQQAwAC0ANAA0ADQANQA1ADMA NQA0ADAAMAAwADAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMA AAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAP7///8NAAAADgAAAA8AAAAQAAAA EQAAABIAAAATAAAA/v///xUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAD+////HQAAAB4A AAAfAAAAIAAAACEAAAAiAAAAIwAAAP7////9////JgAAAP7////+/////v////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// /////////////////////1IAbwBvAHQAIABFAG4AdAByAHkAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAUB//////////8DAAAABgkCAAAAAADAAAAA AAAARgAAAACgnx/ZbfW8AYBhLBnhiL0BKAAAAIAAAAAAAAAAMQBUAGEAYgBsAGUAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAgD///// //////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAABAAAAAA AABXAG8AcgBkAEQAbwBjAHUAbQBlAG4AdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAGgACAQUAAAD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAeFgAAAAAAAAUAUwB1AG0AbQBhAHIAeQBJAG4AZgBvAHIAbQBhAHQA aQBvAG4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAIBAgAAAAQAAAD/////AAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAQAAAAAAAABQBEAG8AYwB1AG0A ZQBuAHQAUwB1AG0AbQBhAHIAeQBJAG4AZgBvAHIAbQBhAHQAaQBvAG4AAAAAAAAAAAAAADgA AgH///////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAA ABAAAAAAAAABAEMAbwBtAHAATwBiAGoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAEgACAQEAAAAGAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAABqAAAAAAAAAE8AYgBqAGUAYwB0AFAAbwBvAGwAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAEA//////////////// AAAAAAAAAAAAAAAAAAAAAAAAAACAYSwZ4Yi9AYBhLBnhiL0BAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAD///////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAABAAAA/v////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////wEA/v8DCgAA/////wYJ AgAAAAAAwAAAAAAAAEYYAAAATWljcm9zb2Z0IFdvcmQgRG9jdW1lbnQACgAAAE1TV29yZERv YwAQAAAAV29yZC5Eb2N1bWVudC44APQ5snEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA --------------2CD72332DFDBFF9F74135BA9-- 29-May-1998 9:33:53-GMT,951;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 DAA08553 for ; Fri, 29 May 1998 03:33:52 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from humulus.daimi.aau.dk by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 29 May 1998 04:22:38 EST Received: (from kaja@localhost) by humulus.daimi.aau.dk (8.8.7/8.8.7) id LAA02652; Fri, 29 May 1998 11:22:35 +0200 (MET DST) From: "Kaja P. Christiansen" Reply-To: LitProg@SHSU.edu, kaja@daimi.aau.dk Message-ID: <13678.32347.243449.575918@humulus.daimi.aau.dk> Date: Fri, 29 May 1998 11:22:35 +0200 (MET DST) To: LitProg@SHSU.edu MIME-Version: 1.0 (generated by tm-edit 7.106) Content-Type: text/plain; charset=US-ASCII SUBSCRIBE LitProg "Kaja P. Christiansen" 29-May-1998 13:56:53-GMT,2053;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 HAA15862 for ; Fri, 29 May 1998 07:56:52 -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 May 1998 07:46:19 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@samson.kean.edu Subject: Re: The CWEB System of Structured Documentation Date: 28 May 1998 21:24:38 GMT Message-ID: <6kkkmm$r8b$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: LitProg@SHSU.edu On 28 May 1998, Marc van Leeuwen wrote: > vinig@my-dejanews.com wrote: > > > Where can I find a electronic version of "The CWEB System of Structured > > Documentation"? > > That's a copyrighted book, so I doubt that the exact sources are > electronically available. However, if I recall correctly, it consists > just of the manual and source code for CWEB, which you can get from the > CTAN archives, compile, run, typeset and print out the corresponding > files. Here is one URL (there are many others) > > http://www.tex.ac.uk/tex-archive/web/c_cpp/cweb/cweb3.4g.tar.gz Marc is correct. The printed "CWEB System ..." is simply a published version of the manual and source code you can get from the CTAN archives. I believe that you can also get CWEB from ftp://labrea.stanford.edu/. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | "Begin at the middle...then you're not so Computer Science Department | far from either the beginning or the Kean University | ending." Union, NJ 07083 | | -- Erle Stanley Gardner leew@samson.kean.edu | "The Case of the Fugitive Nurse" (1954) ------------------------------------------------------------------------ 29-May-1998 18:47:13-GMT,933;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 MAA27292 for ; Fri, 29 May 1998 12:47: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; Fri, 29 May 1998 12:44:42 EST From: vinig@my-dejanews.com Reply-To: LitProg@SHSU.edu, vinig@my-dejanews.com Subject: The CWEB System of Structured Documentation Date: 28 May 1998 01:16:59 GMT Message-ID: <6kidub$8oc$1@news.interlog.com> To: LitProg@SHSU.edu Hello Where can I find a electronic version of "The CWEB System of Structured Documentation"? Thank You -----== Posted via Deja News, The Leader in Internet Discussion ==----- http://www.dejanews.com/ Now offering spam-free web-based newsreading 29-May-1998 21:41:44-GMT,3759;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 PAA03356 for ; Fri, 29 May 1998 15:41: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, 29 May 1998 14:38:12 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@samson.kean.edu Subject: LEO LP System Date: 29 May 1998 19:05:08 GMT Message-ID: <6kn0t4$2ev$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: LitProg@SHSU.edu Mike Swaine, in his "Programming Paradigms" column of the current (#287, July '98) issue of "Dr. Dobb's Journal", writes about Ed Ream's LEO system for literate programming. From his description (and the simple example), it looks (to me) like a cross between noweb and ExcoWord. Has anyone heard anything about this? Swaine also gives a pretty accurate (as far as it goes) description of LP, describing Ream's technique as "literate outlining" (which I think is a really good description of what ExcoWord does). He uses Knuth's (and, I suppose Ream's) "section" terminology to refer to what we would call "chunks", but he's never very far off base. His most significant point, IMO, is ...as Ed points out, the programming world has not beaten a path to Knuth's door demanding WEB. Maybe it lacks something. Maybe that something is outlines. While there's not doubt that LP is not at all popular (witness the half-truths I had to resort to in order to get students to sign up for a Special Topics LP course), but I can't agree with his (tentative) conclusion. I think the reason programmers stay away from LP is the same reason they never really do top-down design or document their programs thoroughly or use any of the other "Good Programming Practices": It looks like it involves more work than just sitting at the terminal and typing in code. We all know that this "extra" up-front work saves significant amounts of time later on, but psychologically, this knowledge doesn't generally translate into action. I'm afraid that "literate outlining" faces the same psychological hurdle. I also find it interesting that, according to Swaine, Ed Ream found traditional LP too unstructured. My (limited) experience with ExcoWord brought me to the conclusion that the outlining structure was too restrictive, particularly under the demands of maintenance, where major reorganization of the code's structure is often necessary. With traditional LP, structural reorganization involves text chunks almost exclusively, with a bit of shuffling of where specific code chunks are used, but very little rewriting of code chunks (and no rewriting at all of leaf-level code chunks). Outlining, on the other hand, seems to me to require much more work to accomplish the same kind of thing (of course, it is certainly possible that I just didn't look hard enough, and didn't find the "easy" way to do this). And, since I consider LP's primary strength to be in the area of program maintenance, I think this is a serious problem. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | "Begin at the middle...then you're not so Computer Science Department | far from either the beginning or the Kean University | ending." Union, NJ 07083 | | -- Erle Stanley Gardner leew@samson.kean.edu | "The Case of the Fugitive Nurse" (1954) ------------------------------------------------------------------------ 30-May-1998 19:36:09-GMT,4319;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 NAA18506 for ; Sat, 30 May 1998 13:36:08 -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; Sat, 30 May 1998 13:47:41 EST Message-ID: <199805301844.LAA12296@holonet.net> Date: Sat, 30 May 1998 12:44:31 -0600 To: LitProg@SHSU.edu, leew@SAMSON.KEAN.EDU From: "Hugh S. Myers" Reply-To: LitProg@SHSU.edu, hsmyers@holonet.net Subject: Re: LEO LP System MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" > ...as Ed points out, the programming world has not beaten a path > to Knuth's door demanding WEB. Maybe it lacks something. Maybe > that something is outlines. > >While there's not doubt that LP is not at all popular (witness the >half-truths I had to resort to in order to get students to sign up for ... >I also find it interesting that, according to Swaine, Ed Ream found >traditional LP too unstructured. My (limited) experience with >ExcoWord brought me to the conclusion that the outlining structure was >too restrictive, particularly under the demands of maintenance, where >major reorganization of the code's structure is often necessary. With >traditional LP, structural reorganization involves text chunks almost >exclusively, with a bit of shuffling of where specific code chunks are >used, but very little rewriting of code chunks (and no rewriting at >all of leaf-level code chunks). Outlining, on the other hand, seems >to me to require much more work to accomplish the same kind of thing >(of course, it is certainly possible that I just didn't look hard >enough, and didn't find the "easy" way to do this). And, since I >consider LP's primary strength to be in the area of program >maintenance, I think this is a serious problem. It has been my experience that any approach that involves "spend now to save later" will be vetoed by management. This has been the case both working for private enterprise as well as the public sector. In my more cynical moments I believe that this is because it is more important to be seen doing something than to have actually done something(emphasis on case.) The rest of the time I'd probably observe that due dates are always in the past somehow. Something along these lines is also the culprit when it comes to CASE success...hmmm come to think of it couldn't we broaden the brush to include most if not all useful design tools? First they cost money, second, they take time to use, and third they must be used in advance of the "real work". Regards outlining, I understand your complaint concerning restructuring. I would point out that this might be a shortcoming of the environment rather than a more absolute failing. Consider a hierarchical display of the outline that allows drag and drop modification. As a casual example, how about the typical directory map of a hard disk? Surely this is an aid to restructuring, not a barrier. And like directory services, any modification of the subject would be reflected in the outline and vice versa(there are still those of us who still know how to move and rename directories directly!) I have used code editors that present code in an outline view which freely allow arbitrary code/chunk movement. Admittedly their approach is to outline what is rather than otherwise. Maybe this is the problem, the outline is not the thing so to speak. It is simply a condensed view of the thing. Confusion over this principle often leads people to feel hemmed in by outlines. The outline is a tool, not a trap. I'd also like to point out that if we think of each chunk name independently of the body of text that accompanies it, then it should be clear that we have the makings of a first rate outline! And I believe that if I had an editor that would let me view my LP work in such fashion I would be a good deal more organized than I am currently. I'd also be able to make massive changes far more quickly with just a mouse than by hand. hsm p.s. topic for thought...would LP be more widely used if it were part a typical integrated editor/compiler?