1-Feb-1998 22:30:25-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 PAA13503 for ; Sun, 1 Feb 1998 15:30:22 -0700 (MST) 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, 01 Feb 1998 15:26:14 EST From: thompson@sun1.coe.ttu.edu Subject: comp.programming.literate FAQ Date: 1 Feb 1998 10:57:56 GMT Message-ID: Reply-To: LitProg@SHSU.edu, thompson@sun1.coe.ttu.edu To: LitProg@SHSU.edu Archive-name: literate-programming-faq Last-modified: 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. 3-Feb-1998 19:40:52-GMT,1024;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 MAA21744 for ; Tue, 3 Feb 1998 12:40:45 -0700 (MST) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 03 Feb 1998 12:40:15 EST From: Guy Bailey Reply-To: LitProg@SHSU.edu, gbailey@tamu.edu Subject: Comments on book: Literate Programming by Christine Detig and Joachim Schrod Date: 3 Feb 1998 03:32:56 GMT Message-ID: <6b6358$d7b$1@news.interlog.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu First, let me ask a very naive question... is this book written in German? :-) Second, has anyone taken a look at it who would be willing to offer comments on it? Thanks! Guy Bailey gbailey@tamu.edu 5-Feb-1998 7:39:39-GMT,4533;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 AAA13637 for ; Thu, 5 Feb 1998 00:39:36 -0700 (MST) 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, 05 Feb 1998 01:24:03 EST From: Devon Prichard Reply-To: LitProg@SHSU.edu, prichard@rotari.larc.nasa.gov Subject: Re: noweb and VB and Access (fwd) Date: 4 Feb 1998 22:42:34 GMT Message-ID: <6baqsq$m2e$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Lee Wittenberg wrote: > ---------- Forwarded message ---------- > Date: Sun, 25 Jan 1998 04:40:27 -0600 > From: Carl Gregory > To: 'Dawn Marie Hayes' > Cc: 'Donna Kidwell' , > 'Lee Wittenberg' , > 'Norman Ramsey' , 'Tipton Cole' > Subject: RE: noweb and VB and Access > rived with IDE tools and WYSIWYG editors, I find the basic methods of good design not only unsupported, but actively challenged. ... sort of like the old quote about Christianity; it hasn't been tried and found wanting, its been found hard and left untried. > The most ironic element of this logic stems, I suppose, from television. Pictures worth a thousand words. Icons are easier than command lines for making a computer do what you want. This despite the fact that alphabets replaced ideographs three thousan > > d years ago because thirty letters were worth a million pictographs. So my first Principle flies in the face of current conventional wisdom: > I'll take exception to this passage. there are situations where a picture is worth a million words; two examples are blueprints and circuit diagrams. compare the difference between a textual description of "a flush Ti blind Cherry 0.25 rivet" versus a simple line drawing and part number. > Principle #1: command line programming is vastly more powerful than IDE. There is a self-fulfilling prophesy that IDE is more convenient. Convenient, unfortunately, is defined in terms of how quickly "something happens." well, to slice-n-dice the verbiage, power can be considered the work done per unit time. IS method A more powerful than method B? in what circumstances? I would like to see the CS departments run some tests of sophomore, junior, senior, and 1st yr grad students, and measure time-to-objective, that is a code that can pass N function tests. develop some stats for novice vs. advanced programmers, in terms of average manhours via method A vs B. this would give folks in industry some hard evidence to counter the "we'll fix it later" crowd. add in some small group (say 10 members) projects and look at the stats again. > VB and Access teach you the craft of screen construction and presentation, report construction and presentation, and data extraction. There is a way to dump out printed descriptions of the screens, combo boxes, modules, queries, data relations, etc., but > > that's mostly a way to drown in description (give it to management). as usual, computers are used to do the same thing better, not to do a better thing. > ules that then proceed to do a lot of things "on their own." The principal mode of working with an IDE is that the designer performs a small operation over and over again. It is literally a move from the Industrial Revolution backward to labor-intensiti > > ve hand crafts. > the way I look at it is that current programming practice is sort of like house builders. slap it together fast, follow the blueprints whenever possible, move onto the next project. not the sort of process that generates results that stay in service for centuries. though again, from the business' viewpoint, quick-n-dirty is as good as long-n-thorough, if long-n-thorough is no more reliable. I'm reading Ed Yourdon's "Death March", I'm beginning to think its a miracle every time a computer successfully boots... ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| | Dr. Devon Prichard, Lockheed Martin d.s.prichard@larc.nasa.gov | | starboard side, deck two, oar 14. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 6-Feb-1998 6:05:43-GMT,37443;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 XAA15930 for ; Thu, 5 Feb 1998 23:05:36 -0700 (MST) 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, 05 Feb 1998 23:38:19 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@samson.kean.edu Subject: RE: noweb and VB and Access (fwd) Date: 4 Feb 1998 17:53:46 GMT Message-ID: <6ba9va$9ce$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="---- =_NextPart_000_01BD294B.7B3B1EC0" To: LitProg@SHSU.edu This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. ------ =_NextPart_000_01BD294B.7B3B1EC0 Content-Type: TEXT/PLAIN; CHARSET=us-ascii Content-ID: Carl Gregory sent me a copy of his answer to a question he received on using LP with Visual Basic. I think he gets right to the heart of a number of issues wrt LP that will interest the readers of this group. So, with his permission, I am posting it here. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Computer Science Department | You cannot judge the importance of things Kean University | by the noise they make. Union, NJ 07083 | | -- James Hilton leew@samson.kean.edu | "Good-bye Mr. Chips" (1934) ------------------------------------------------------------------------ ---------- Forwarded message ---------- Date: Sun, 25 Jan 1998 04:40:27 -0600 From: Carl Gregory To: 'Dawn Marie Hayes' Cc: 'Donna Kidwell' , 'Lee Wittenberg' , 'Norman Ramsey' , 'Tipton Cole' Subject: RE: noweb and VB and Access Hello, Joe? Dawn Marie? Excuse an aging Boomer for a moment's indulgence. There is a poignancy here, the appreciation of which will probably die with the dwindling of my generation. My lifelong friend, Robert Hadley, and I once debated the relative uselessness of our college d egrees: he had a double major in History and English, I an amorphous Bachelor of Arts in something the University of Texas calls "Plan II". I won the debate when one of my classmates was turned away from the Peace Corps for "having no demonstrable skill " and went to Texas A&M to study horticulture. All those years my brothers- and sisters-in-arms regarded me somewhat suspiciously when I sauntered off to the Computation Center carrying boxes of punched cards and returned with stacks of paper connected e nd-to-end. I think they feared I would be left behind, Come the Revolution and the restoration of all our natural balances. There was once a time when you could count on at least a couple of bastions of computer illiteracy (Art History, French Literatur e, Philosophy, ...) and even ponder whether computing machines were particularly important to be aware of. Now, apparently, a family of historians develops Commercial Bank code and exchanges advice using the Department of Defense's expanded communication network. Should we regard this as a moment of triumph or travesty? Uh, er, what year is it? Sorry, I was dreaming... Not entirely for ice-breaking levity, was that. "How I do it" has less to do with programming tools than with attitude. I'll start with a curmudgeonly diatribe and then warm up to brotherly advice, advancing finally (hopefully) to something useful. I learned certain skills and disciplines for program development, most nicely summarized in Frederick P. Brooks's "The Mythical Man-Month" (highly recommended). Most crucial are design, planning, testing, and documentation. As personal computers have ar rived with IDE tools and WYSIWYG editors, I find the basic methods of good design not only unsupported, but actively challenged. I watched it stem from the strange logic that took Axiom 1: Programming Is Hard, and Axiom 2: Everyone Needs A Computer, to t he conclusion that We Need Computers That You Don't Really Program. You could make a fairly good analogy, really, between the design of the QWERTY keyboard and the Windows desktop: QWERTY was designed to force typists to slow down, because the mechanica l typewriters jammed. The most ironic element of this logic stems, I suppose, from television. Pictures worth a thousand words. Icons are easier than command lines for making a computer do what you want. This despite the fact that alphabets replaced ideographs three thousan d years ago because thirty letters were worth a million pictographs. So my first Principle flies in the face of current conventional wisdom: Principle #1: command line programming is vastly more powerful than IDE. There is a self-fulfilling prophesy that IDE is more convenient. Convenient, unfortunately, is defined in terms of how quickly "something happens." Depending on the nature, comple xity, longevity, and resiliency of that "something", IDE is more "convenient" only in the most immediate, instantly-gratifying, small-objective terms. In other words, by the standards and logic of broadcast television. The power of command lines over button clicks is the same as the power of sentences over expletives. It is inherent in the very assumption that "literate" is a desirable adjective to apply to "programming." Where "computer literacy" most often seems to address vocabulary, "literate programming" comes much more to terms with grammar and composition. Principle #2: literate programming is not exclusively, nor even primarily, a documentation technique. It is a program development tool. It is an unacceptable burden to hacking, quick-and-dirty, or other pressure cooker techniques. There are much simple r and easier aids to people for whom writing the docs is the last, most tedious, and often-abridged programming chore. What is at stake here is a lesson most people, including myself, learned and resolutely ignored. In High School English we were taught to write an outline, and from it write a paper. Whenever both were required to be submitted, I wrote the paper at home, and on the way to school the next day I composed an outline to fit it. Programmers are taught to design, to flowchart, top-down, bot tom-up, pseudocode, object libraries, data structures, algorithms. And the descriptions of most of these elements are written after the demonstration to the client, after your supervisor has said to them (but looking at you) that they will have the docs with the final delivery. I wrote the flow charts on the way to school, on the kickpage of the program I was turning in. Literate programming is only going to help you program if you really decide to design up-front, review and redesign essentially on paper, and accept the realities of maintenance and delivery for "completed" product (see Brooks for the definition of this i mportant term). If you really decide to do that, LP is going to help you, and help you a lot. But if you really decide to do that, VB and Access and your customers and virtually the entire commercial computer industry is going to, if not actively chall enge and oppose you, lie like a great bank of fog in your path. The first trick is to revise your own expectations of how fast fast is, how much much is, and how efficient efficient is. If you say the screen has to turn 15 colors on Monday, that's one e xpectation; if you say the specifications must be completed by Monday, and the module performs to blue and green specifications byThursday, that's another. If you can somehow add in the specification that, after 18 months of ignoring the product complet ely, you can get back up to speed and correct an error, modify a technique, or add a new module by the Monday following, well, you should probably be putting "software engineer" on your resume. At our company, we define software quality as "performance to specifications." That means you need the specs first. That means, essentially, you need something like documentation first. A literate program combines specification, design, pseudocode, wor king code, and documentation. Not all at once, but once it's finished. Assuming you agree with that, find it useful, even preferable, then you turn to Access or VB and you get -- an Erector set. With my Erector set, I learned to tighten bolts, stick ax les through holes, even have pulleys that lifted things. I learned construction craft. We had diagrams, sometimes with instructions, of how to build a car, or a crane, or whatever. But I never learned how to design, never had a blueprint, never learned the principles of bracing structures (my bridges always listed and finally folded). The tool did not support it. It would have benefitted from my learning it (from a parent, teacher, book) but even then it did not have any elements (like drafting tools ) in the kit that would actually support that knowledge even if I had gone out and acquired it. VB and Access teach you the craft of screen construction and presentation, report construction and presentation, and data extraction. There is a way to dump out printed descriptions of the screens, combo boxes, modules, queries, data relations, etc., but that's mostly a way to drown in description (give it to management). Your specs are not defined in the system, only implemented. Maintenance is often a function of how much you can be holding in your head about the system at one time. When I was a stu dent, it was overtly stated that programs kept details so you didn't have to, all the more so the "higher level" the language. Assembly Language freaks wandered around speaking and thinking in hexidecimal, but not computer scientists. Now the "high leve l" if the Access and VB IDE have you back to keeping all that stuff in your head again. So Attitude #1 is: the IDE is the opiate of the people. It is not a design aid, it is a quick high, a whiz-bang drawing board. Think of it as when you open up the computer and look at the motherboard: every one of those little settings in every one of those pulldown menus is a soldered wire in green plastic. You throw all those little switches everywhere and then...later...you have to change something. You noodle a bunch of boxes and graphics onto a screen: it's artistic and intuitive. But then, l ater, you want to move or reformat, not everything, but only those with a certain characteristic - fields you colored blue, perhaps, or all the numeric fields from one table. You can describe this characteristic to your friends, but not to the IDE. The IDE only understands movements, not words: multiple selection followed by some operation. Highlight, move, drag, highlight, delete. At heart, programming is engineering, and its art is the art of engineering - design and organization, elegance of idea. IDE's build collages, not bridges. And the reason this is important, even crucial, is that once Mona Lisa went on the wall, nobody r eworks, restructures, redesigns, or remodells her; they just stand and look. No such luck with a suspension bridge, or your VB code. And as soon as you have to look back inside, well, you discover Attitude #2. Attitude #2 is: easy, see-as-you-do design tools are technologically primitive, not technologically advanced. Draggable icons and drop-down menus are an advancement in the technology of magnetic travel bingo games. The drawing is technologically advanc ed; the movement is technologically advanced; but the tool is primitive: to do a sequence of operations you have to do the same sequence of physical motions. The fundamental placticity of computer programs is that you can design small, "intelligent" mod ules that then proceed to do a lot of things "on their own." The principal mode of working with an IDE is that the designer performs a small operation over and over again. It is literally a move from the Industrial Revolution backward to labor-intensiti ve hand crafts. Macros are not solutions to this problem; parameters are solutions. Object property lists are the illusion of parameters. They are hooks and knitting needles; a parameterized module is a loom. QBE is the illusion of SQL. Only at a very early stage is it easier to lay out a query graphically than it is to state it verbally. Watch Gordie on the Enterprise: "Computer! Give me all the planets within this quadrant that fit the known parameters!" Nice boxes and columns with one-to-many lines connecting them help you set up a query, but if you ever have to figure out how those three strange extra records got pulled, you're eventually going to have to read what you really asked the program to do. Leading, finally, to Attitude #3: get everything that is possible to put "on paper", and put it "on paper" (which of course nowadays means an ASCII file). If I have a table definition already, I export it and put into a table creation routine. Once is all I need, then it's there, forever, where I can read it on a printout in bed if necessary, or from the screen, but it's not the table. It's the DNA that will build the table, and I can mutate it if necessary. Same for macros, queries, forms. At some level of complexity (for me, quite low) it becomes easier to work from the program description of a screen form than the stretch-and-scratch of the IDE. All those fields need to be in column 13 rather than column 10? Do I select them all and drag, wiggl ing around the ruler mark until I hit it? Or do I globally change 10 to 13, re-import, and re-generate? There is a level of task and complexity below which dragging seems simpler, and above which "genetic mutation" becomes easier. I do not work along at one level and then try to tell when I've crossed the threshold and it's time to shift. I assume that most of the work will be code-based, and I start building it early and don't dwell on the occasional instances where some particul ar feature would have arrived more quickly this afternoon if I had just drawn it up without keeping all this design stuff up along with it. So I start in with a noweb document right off, often with just lots of notes to myself or rants to an audience (mu ch like this letter has become - sorry). I allow myself some lattitude with paragraphs of ideas prior to actually forming a more precise specification or outline. But I know myself well enough to be hard when I have to, and force an extra afternoon or e vening to get a working structure built before I proceed. I am helped in this by some "templates" I have built up over time. I am not a systems guy, and I was introduced to Literate Programming by Prof. Lee Wittenberg of Kean College in New Jersey (who, I notice, cleverly managed not to get his e-mail listed on Norman Ramsey's page, but then he has to keep office hours :-). I find TeX and LaTeX to be very useful systems, but I don't have the zeal to learn their many dimensions. I wanted manual pages, a table of contents, sectioning and appendices, cross-refe rencing, and an index. Later, he added conditional chunk definition. But that was it; otherwise, I had programs to write. Remember, I see this as a development tool, and typesetting is really presentation. So Lee built me templates that would tangle a nd weave, and I adapted them to the various languages and systems I have worked with. Unlike cweb or the like, noweb is a tool for virtually any language. Anyway, here are my templates for VB, along with a makefile that I use to make the process crank through more automatically. I just replace things like PUT PROGRAM NAME HERE or PUT FUNCTION CODE HERE, and off I go: You'll notice that when I "make a .vb file" from a .nw file, I actually make three files, Basic, Forms, and INI. You can make any piece, really, and just import it where you will. There's a lot of version control maintenance there also; we use PVCS to t rack all our development. (I have some fleshed-out examples of applications I developed, but I have to be sure which were proprietary for various clients and so forth, so I'll get back to you on that.) I use the IDE as a sketch pad. I toss something around, fiddle it, then export the whole thing and build it in code using my own external editor. I modify and even create form code in a noweb file. Before long I'm better at building a new form in code than on the screen. I suppose I should have been a mosaic artist in another life, because my systems are not so much constructed as tiled - I conceive a wall in such a way as it can be built regularly from bricks, then I build the first brick. After tha t, the wall is just so much trowelling while I think of the next thing, and if the bricks are subroutines rather than drag-and-drop icons, well then there's a conveyor belt somewhere in the form of a driver program that will just build the wall while I wa tch. That was, as I said, why they taught us we were learning to program in the first place. I do similar things with SQL. If I sketch out a query, I then view the SQL and export it to an ASCII file (it may be a cut-and-paste, I don't recall right off). I then construct query definition program statements and paste in the SQL, and from then on work it as a module. I found that there are enough idiosynchronies to Access and VB SQL that my attempts to just write them from scratch invariably go awry. Invariably I try to SELECT...WHERE something, and VB generates a whole complicated thing around an INNER JOIN, and sometimes they're equivalent and sometimes they're not. What I did get very good at was building complicated pseudo-SQL in noweb chunks that make the kind of sense that I think SQL should make. Things like "SELECT <> FROM <> WHERE <>." Either way, the important feature is that the query is now code. If I need to rebuild the query, I have a routine with a statement that does it. I can make a macro call this routine, for those irritating VB features like "on click" that might only allow you to have a macro as the action. Even there, I have moved effective control from the inner tunnels of the IDE into the architecture of my program modules. Bugs and modifications will be in the code, not in some property list setting. In the noweb file, I write myself (and the ubiquitous "next programmer to see this") a lot of notes, stream of consciousness sometimes, warnings and questions other times. I very often rearrange the weave document three or four times, redefining the sect ions, moving chapters forward or backward, all with the freedom that comes of knowing that the code will not change with these alterations. I read my rearrangements, it reads the chunk sequence. It is very important to me that development writings not t ry to be coherent, just immediate, like engineering notes. Pseudocode flows freely because, of course, it directly becomes LP code chunks. It's important because it makes it fast, unlaborious, and free-form; this sops up some of the "instant gratificati on" desire that WYSIWYG teaches us to need, and it also makes the second and third passes seem less redundant and tedious, so I'm more likely to do them. I try to be chaotic in a sense of sloppy arrangement but thoughtful concept. I check this into version control at regular intervals. Version control, like LP, is there to help development, not to fulfill the teacher's assignment. I have made amazingly small changes to a module and checked it in with a note about what the change was. Those notes are often one of the sentences or paragraphs I just wrote in the noweb document. Funny thing -- a year later I can account for almost every hour I spent on th e project; I can also spot the modification that led me wrong, or remember the rationale for something the client now wants justified, if need be. Then I come back and more carefully arrange form without rethinking the content too much. Sections, subsections, sequence, who belongs in the appendix, how's the index doing? I check every increment of those changes into version control, too. We've had a lot of employees who d after 60 seconds; when is it half covered? I get specs, internal memos, pseudocode, documentation, overview, and module architecture under way in concert - that's a lot of inertia starting up, a lot of pressure from impatient cl ients and fast-talking IDE's. It's also a lot of momentum once it attains speed. At installation, beta test, and long-term maintenance, big changes in conditions, expectations, or specifications usually have a slot to just drop into, rather than forcing a sleepless weekend rebuilding screen forms and macros. If I talk to a client or a colleague at 59 seconds, the pond is still only half full and looks bad, but we're really only 1 second from being ready to roll. And so on. Apologies if a lot of this rant was old LP stuff you got long ago, or preaching to the choir, or not up on some latest development. The bottom line is that I regard the IDE not so much with hostility as with wariness. It tempts you with easy things that turn out to be a shell game; when your system has grown the great complexity that IDE's generate so well, but has within it a small switch that you must now find and toggle for whatever reason, the IDE will stare blankly at you and say some v ersion of "You knew damn well I was a snake/ Before you brought me in." Getting everything out into code gives me a kind of leash, or better, it makes the IDE more truly a programmable tool rather than just a whiz-bang drawing board. -Carl P.S., you can probably see why I take so, to a development system that puts a premium on rambling at length. >-.-< ---------- From: Dawn Marie Hayes[SMTP:dms0603@is2.nyu.edu] Sent: Friday, January 23, 1998 8:45 PM To: carl@tipton.com Subject: noweb and VB and Access Hi ! I got your e-mail address from Norman Ramsey's noweb page. I am a VB/Access/VBScript developer at Commercial Bank of New York and I was intruiged by Mr. Ramsey's note that you use noweb with VB and Access. How do you do it? Do you use noweb for the module code and leave the form code for the IDE? I would love to start using noweb in my work, but I have been blanking on a good way to integrate in with the VB IDE. Any suggestions would be greatly appreciated! :-) Thank you in advance Joe Hayes Dawn Marie Hayes, ABD Doctoral Candidate Adjunct Lecturer Department of History Department of History New York University College of Staten Island dms0603@is2.nyu.edu ------ =_NextPart_000_01BD294B.7B3B1EC0 Content-Type: APPLICATION/OCTET-STREAM; NAME="Vb_web.nw" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: JQ0KJSAkSGVhZGVyJA0KJSAkV29ya2ZpbGUkDQolDQoNClxkb2N1bWVudHN0eWxlW25vd2ViLHB2 Y3MsdGNjbWFuLHR3b3NpZGVde2FydGljbGV9DQpcbm93ZWJvcHRpb25ze2xvbmdjaHVua3N9DQpc b2Rkc2lkZW1hcmdpbj02M3B0DQpcZXZlbnNpZGVtYXJnaW49NjNwdA0KDQpcUFZDU2RlZiAkTW9k dGltZSQNClxQVkNTZGVmICRSZXZpc2lvbiQNClxQVkNTZGVmICRXb3JrZmlsZSQNClxQVkNTZGVm ICRBdXRob3IkDQoNClx0aXRsZSB7UFVUIFlPVVIgVklTVUFMIEJBU0lDIFRJVExFIEhFUkV9DQpc YXV0aG9yIHtQVVQgWU9VUiBOQU1FIEhFUkVcXFxpdCBUaXB0b24gQ29sZSBcJiBDb21wYW55fQ0K XGlucHV0e25vY29uZG1hYy50ZXh9DQpcYmVnaW57ZG9jdW1lbnR9DQpcbWFrZXRpdGxlXHRoaXNw YWdlc3R5bGUge2VtcHR5fQ0KDQpcYmVnaW4ge3RpdGxlcGFnZX0NCg0KCVxiZWdpbiB7bGlzdH0g e30gew0KCQlcc2V0bGVuZ3RoIHtcbGFiZWx3aWR0aH0gezhlbX0NCgkJXHNldGxlbmd0aCB7XGxl ZnRtYXJnaW59IHtcbGFiZWx3aWR0aH0NCgkJXHJlbmV3Y29tbWFuZCB7XG1ha2VsYWJlbH0gWzFd IHtcYmYgIzE6XGhmaWxsfQ0KCQl9DQoNCgkJXGl0ZW0gW0ZpbGVdIHtcdHRcUFZDU1dvcmtmaWxl fQ0KCQlcaXRlbSBbQXV0aG9yXSBcUFZDU0F1dGhvcg0KCQlcaXRlbSBbUmV2aXNpb25dIFxQVkNT UmV2aXNpb24NCgkJXGl0ZW0gW0xhc3QgTW9kaWZpZWRdIFxQVkNTTW9kdGltZQ0KDQoJXGVuZCB7 bGlzdH0NCg0KCVBVVCBBIEJSSUVGIERFU0NSSVBUSU9OIE9GIFRIRSBQUk9HUkFNIEhFUkUNCg0K CVx2ZmlsbA0KCVxzZXRsZW5ndGgge1xwYXJpbmRlbnR9IHswaW59DQoJXHNldGxlbmd0aCB7XHBh cnNraXB9IHtcbWVkc2tpcGFtb3VudH0NClxwYXIgXHJ1bGUge1x0ZXh0d2lkdGh9IHswLjRwdH0N CglccGFyDQpDb3B5cmlnaHQgXGNvcHlyaWdodH4xOTk2IGJ5IFRpcHRvbiBDb2xlIGFuZCBDby5c cGFyIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQoNClxlbmQge3RpdGxlcGFnZX0NCg0KXHBhZ2VudW1i ZXJpbmcge3JvbWFufQ0KDQpcdGFibGVvZmNvbnRlbnRzDQpcY2xlYXJkb3VibGVwYWdlDQpccGFn ZW51bWJlcmluZyB7YXJhYmljfQ0KXHBhcnQge0ludGVyZmFjZX0NCg0KXGJlZ2luIHttYW5wYWdl fSB7UFVUIENBVEVHT1JZIEhFUkV9IHtQVVQgUFJPRyBOQU1FIEhFUkV9IHtSZXZpc2lvbiBcUFZD U1JldmlzaW9ufQ0KDQoJXHN1YnRpdGxlIHtOQU1FfQ0KCQlcbmFtZXBhcnQge1BVVCBQUk9HIE5B TUUgSEVSRX0ge1BVVCBBIEJSSUVGIERFU0NSSVBUSU9OIE9GIFRIRSBQUk9HUkFNIEhFUkV9DQoN Cglcc3VidGl0bGUge1NZTk9QU0lTfQ0KCQlcYmVnaW57dGFiYmluZ30NCgkJCVw9eHh4eHh4eHh4 eHh4eHh4eHggXD14eHh4eHh4eHh4eHh4eHh4eHh4IFw9eHh4eHh4eHh4eHh4eHh4IFxraWxsDQoJ CQlcPltbXV1cXA0KCQlcZW5ke3RhYmJpbmd9DQoJCVBVVCBVU0FHRSBJTkZPUk1BVElPTiBIRVJF DQoNCglcc3VidGl0bGUge0RFU0NSSVBUSU9OfQ0KCQlERVNDUklCRSBIT1cgWU9VUiBQUk9HUkFN IElTIFVTRUQgSEVSRQ0KDQoJXHN1YnRpdGxlIHtBVVRIT1IvQ09OVEFDVH0NCgkJUFVUIFlPVVIg TkFNRSBIRVJFLyB7XGl0IHNhbWV9DQoNClxlbmQge21hbnBhZ2V9DQoNClxjbGVhcmRvdWJsZXBh Z2UNClxwYXJ0IHtJbXBsZW1lbnRhdGlvbn0NClxwYWdlc3R5bGV7bm93ZWJ9DQpAICUNClxzZWN0 aW9uIHtNb2R1bGUgRGVmaW5pdGlvbnN9DQpAICUNCjw8Kj4+PQ0KPDxQVkNTIGluZm8+Pg0KPDxt b2R1bGU+Pg0KPDxQVkNTIGluZm8+Pg0KQCAlDQpcc3Vic2VjdGlvbiB7VmlzdWFsIEJBU0lDIERl ZmluaXRpb25zfQ0KQCAlDQo8PG1vZHVsZSgoVmlzdWFsIEJBU0lDKSk+Pj0NCjw8RGVmaW5lIHRo ZSBtYWluIHByb2NlZHVyZSBzdWJyb3V0aW5lPj4NCjw8RGVmaW5lIHRoZSBQVVQgU1VCIE5BTUUg SEVSRSBzdWJyb3V0aW5lPj4NCk1haW4gKCkNCkAgJQ0Kd2hlcmUNCkAgJQ0KPDxQVVQgU1VCIE5B TUUgSEVSRSBzdWJuYW1lPj49DQpQVVQgU1VCIE5BTUUgSEVSRQ0KQCAlDQpcc3Vic2VjdGlvbiB7 Rm9ybSBEZWZpbml0aW9uc30NCkAgJQ0KPDxtb2R1bGUoKFZCIEZvcm0pKT4+PQ0KPDxEZWZpbmUg dGhlIFBVVCBGT1JNIE5BTUUgSEVSRSBmb3JtPj4NCkAgJQ0Kd2hlcmUNCkAgJQ0KPDxQVVQgRk9S TSBOQU1FIEhFUkUgZm9ybW5hbWU+Pj0NClBVVCBGT1JNIE5BTUUgSEVSRQ0KQCAlDQpcc3Vic2Vj dGlvbiB7SU5JIERlZmluaXRpb25zfQ0KQCAlDQo8PG1vZHVsZSgoSU5JIEZpbGUpKT4+PQ0KUFVU IElOSSBGSUxFIEhFUkUNCkAgJQ0KXHNlY3Rpb24ge1N1YnJvdXRpbmUgTWFpbiBQcm9jZWR1cmV9 DQpAICUNClxzdWJzZWN0aW9uIHtQYXJhbWV0ZXJzfQ0KQCAlDQo8PG1haW4gcHJvY2VkdXJlIHN1 YnJvdXRpbmUgcGFyYW1ldGVycz4+PQ0KUFVUIE1BSU4gUEFSQU1FVEVSUyBIRVJFDQpAICUNClxz dWJzZWN0aW9uIHtQcm9jZWR1cmUgRGVmaW5pdGlvbn0NCkAgJQ0KPDxEZWZpbmUgdGhlIG1haW4g cHJvY2VkdXJlIHN1YnJvdXRpbmU+Pj0NClN1YiBNYWluICg8PG1haW4gcHJvY2VkdXJlIHN1YnJv dXRpbmUgcGFyYW1ldGVycz4+KQ0KDQoJUFVUIFlPVVIgTUFJTiBTVUIgV0VCIEhFUkUNCg0KRW5k IFN1YiAnIE1haW4NCkAgJQ0KXHNlY3Rpb24ge1N1YnJvdXRpbmUgUFVUIFNVQiBUSVRMRSBIRVJF fQ0KQCAlDQpcc3Vic2VjdGlvbiB7UGFyYW1ldGVyc30NCkAgJQ0KPDxQVVQgU1VCIE5BTUUgSEVS RSBzdWJyb3V0aW5lIHBhcmFtZXRlcnM+Pj0NClBVVCBTVUIgUEFSQU1FVEVSUyBIRVJFDQpAICUN ClxzdWJzZWN0aW9uIHtQcm9jZWR1cmUgRGVmaW5pdGlvbn0NCkAgJQ0KPDxEZWZpbmUgdGhlIFBV VCBTVUIgTkFNRSBIRVJFIHN1YnJvdXRpbmU+Pj0NClN1YiA8PFBVVCBTVUIgTkFNRSBIRVJFIHN1 Ym5hbWU+PiAoPDxQVVQgU1VCIE5BTUUgSEVSRSBzdWJyb3V0aW5lIHBhcmFtZXRlcnM+PikNCg0K CVBVVCBZT1VSIFNVQiBXRUIgSEVSRQ0KDQpFbmQgU3ViICcgPDxQVVQgU1VCIE5BTUUgSEVSRSBz dWJuYW1lPj4NCkAgJQ0KXHNlY3Rpb24ge0Zvcm0gUFVUIEZPUk0gVElUTEUgSEVSRX0NCkAgJQ0K XHN1YnNlY3Rpb24ge0Zvcm0gRGVmaW5pdGlvbn0NCkAgJQ0KPDxEZWZpbmUgdGhlIFBVVCBGT1JN IE5BTUUgSEVSRSBmb3JtPj49DQpCZWdpbiBGb3JtIDw8UFVUIEZPUk0gTkFNRSBIRVJFIGZvcm1u YW1lPj4NCgk8PERlZmluZSB0aGUgUFVUIEZPUk0gTkFNRSBIRVJFIGZvcm0gd2luZG93Pj4NCgk8 PERlZmluZSB0aGUgUFVUIEZPUk0gTkFNRSBIRVJFIGNvbnRyb2xzPj4NCkVuZCAnIDw8UFVUIEZP Uk0gTkFNRSBIRVJFIGZvcm1uYW1lPj4NCjw8RGVmaW5lIHRoZSBQVVQgRk9STSBOQU1FIEhFUkUg Y29udHJvbCBtZXRob2RzPj4NCkAgJQ0KXHN1YnN1YnNlY3Rpb24ge0Zvcm0gV2luZG93fQ0KQCAl DQo8PERlZmluZSB0aGUgUFVUIEZPUk0gTkFNRSBIRVJFIGZvcm0gd2luZG93Pj49DQpQVVQgRk9S TSBXSU5ET1cgREVGSU5JVElPTiBIRVJFDQpAICUNClxzdWJzZWN0aW9uIHtDb250cm9scyBEZWZp bml0aW9uc30NCkAgJQ0KPDxEZWZpbmUgdGhlIFBVVCBGT1JNIE5BTUUgSEVSRSBjb250cm9scz4+ PQ0KPDxEZWZpbmUgdGhlIFBVVCBDT05UUk9MIE5BTUUgSEVSRSBjb250cm9sPj4NCkAgJQ0KXHN1 YnN1YnNlY3Rpb24ge1BVVCBDT05UUk9MIE5BTUUgSEVSRSBjb250cm9sfQ0KQCAlDQo8PERlZmlu ZSB0aGUgUFVUIENPTlRST0wgTkFNRSBIRVJFIGNvbnRyb2w+Pj0NClBVVCBDT05UUk9MIERFRklO SVRJT04gSEVSRQ0KQCAlDQpcc3Vic2VjdGlvbiB7Q29udHJvbCBNZXRob2RzIERlZmluaXRpb25z fQ0KQCAlDQpcc3Vic3Vic2VjdGlvbiB7UFVUIENPTlRST0wgTkFNRSBIRVJFIG1ldGhvZHN9DQpA ICUNCjw8RGVmaW5lIHRoZSBQVVQgRk9STSBOQU1FIEhFUkUgY29udHJvbCBtZXRob2RzPj49DQo8 PERlZmluZSB0aGUgUFVUIENPTlRST0wgTkFNRSBIRVJFIG1ldGhvZHM+Pg0KQCAlDQo8PERlZmlu ZSB0aGUgUFVUIENPTlRST0wgTkFNRSBIRVJFIG1ldGhvZHM+Pj0NClBVVCBDT05UUk9MIE1FVEhP RCBERUZJTklUSU9OUyBIRVJFDQpAICUNClxjbGVhcmRvdWJsZXBhZ2UNClxwYXJ0IHtBcHBlbmRp eH0NClxhcHBlbmRpeA0KQCAlDQpcc2VjdGlvbiB7TGFuZ3VhZ2UgYW5kIFZlcnNpb24gQ29udHJv bCBUb29sc30NCkAgJQ0KVGhpcyBwdXRzIHJldmlzaW9uIGluZm9ybWF0aW9uIGluIHRoZSBzY3Jp cHQgc28gd2UgY2FuIHRlbGwgb24tc2l0ZSB3aGljaCBvbmUgdGhleSdyZSB1c2luZy4NCkAgJQ0K PDxQVkNTIGluZm8oKFZpc3VhbCBCQVNJQykpPj49DQonICRIZWFkZXIkDQonICRXb3JrZmlsZSQN CkAgJQ0KPDxQVkNTIGluZm8oKFZCIEZvcm0pKT4+PQ0KJyAkSGVhZGVyJA0KJyAkV29ya2ZpbGUk DQpAICUNCjw8UFZDUyBpbmZvKChJTkkgRmlsZSkpPj49DQo7ICRIZWFkZXIkDQo7ICRXb3JrZmls ZSQNCkAgJQ0KXHNlY3Rpb24ge1ZlcnNpb24gQ29udHJvbCBMb2d9DQpAICUNCjw8UFZDU0xvZz4+ PQ0KJSAkTG9nJA0KJSAkSGVhZGVyJA0KQCAlDQpcc2VjdGlvbiB7TGlzdCBvZiBDaHVua3N9DQpc bm93ZWJjaHVua3MNClx0d29jb2x1bW5bXHNlY3Rpb257SWRlbnRpZmllciBJbmRleH1dDQpcbm93 ZWJpbmRleA0KQCAlDQpcZW5ke2RvY3VtZW50fQ== ------ =_NextPart_000_01BD294B.7B3B1EC0 Content-Type: APPLICATION/OCTET-STREAM; NAME="Makefile.web" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: IyAkSGVhZGVyOiAgIEg6L3dvcmsvY3JnX3Rvb2wvbG9nZmlsZXMvcy9NQUtFRklMRS53ZWIgICAx LjI2ICAgMTcgQXByIDE5OTcgMTU6MDU6MzIgICBDQVJMICAkDQojICRXb3JrZmlsZTogICBNQUtF RklMRS5XRUIgICQNCiMNCiMgVGFuZ2xlcyBhbmQgd2VhdmVzIFBhcmFkb3ggYXBwbGljYXRpb25z ICguU0MgYW5kIC5URVggZmlsZXMpDQojDQoNCk5BTUU9J25hbWUgb2YgUFZDUyB2ZXJzaW9uJw0K Tk9UQU5HTEU9c2ggbm90YW5nbGUNCk5PV0VBVkU9c2ggbm93ZWF2ZQ0KIyAuU1VGRklYRVM6IC5u dyAudGV4IC5kdmkgLmggLmV4ZQ0KDQojCVBWQ1MgTG9nDQoubncudmNsOg0KCS0gJChOT1RBTkdM RSkgLXQ0IC1SUFZDU0xvZyAkKi5udyA+JCoudmNsDQoNCiMJTGFUZVgNCi5udy50ZXg6DQoJLSAk KE5PV0VBVkUpIC1pbmRleCAtdDQgLWRlbGF5ICQqLm53ID4gJCoudGV4DQoudGV4LmR2aToNCgkt IGxhdGV4ICQqLnRleA0KLnRleC5zbWw6DQoJLSBsYXRleCAkKi50ZXgNCgktIGxhdGV4ICQqLnRl eA0KLnRleC5iaWc6DQoJLSBibGF0ZXggJCoudGV4DQoJLSBibGF0ZXggJCoudGV4DQoNCiMJUEFM DQoubncuc2V0Og0KCS0gJChOT1RBTkdMRSkgLXQ0IC1maWx0ZXIgIm5vY29uZCBUZXN0IFZlcnNp b24iICQqLm53ID4kKi5zY3QNCgktICQoTk9UQU5HTEUpIC10NCAtZmlsdGVyICJub2NvbmQgUHJv ZHVjdGlvbiIgJCoubncgPiQqLnNjcA0KCS0gJChOT1RBTkdMRSkgLXQ0IC1maWx0ZXIgIm5vY29u ZCBCdWlsZCBMaWJyYXJ5IiAkKi5udyA+JCouc2NsDQoubncuc2N0Og0KCS0gJChOT1RBTkdMRSkg LXQ0IC1maWx0ZXIgIm5vY29uZCBUZXN0IFZlcnNpb24iICQqLm53ID4kKi5zY3QNCi5udy5zY3A6 DQoJLSAkKE5PVEFOR0xFKSAtdDQgLWZpbHRlciAibm9jb25kIFByb2R1Y3Rpb24iICQqLm53ID4k Ki5zY3ANCi5udy5zY2w6DQoJLSAkKE5PVEFOR0xFKSAtdDQgLWZpbHRlciAibm9jb25kIEJ1aWxk IExpYnJhcnkiICQqLm53ID4kKi5zY2wNCi5udy5zYzoNCgktICQoTk9UQU5HTEUpIC10NCAkKi5u dyA+JCouc2MNCg0KIwlJSFMNCmluc3RhbGw6DQoJLSAkKE5PVEFOR0xFKSAtdDQgLWZpbHRlciAi bm9jb25kIEluc3RhbGwiICQqLm53ID5pbnN0YWxsLmJhdA0KCS0gJChOT1RBTkdMRSkgLXQ0IC1m aWx0ZXIgIm5vY29uZCBSdW5JSFMiICQqLm53ID5paHMuYmF0DQoJLSAkKE5PVEFOR0xFKSAtdDQg LWZpbHRlciAibm9jb25kIFJlYWRNZSIgJCoubncgPnJlYWQubWUNCg0KIwlIVE1MDQoubncuaHRt Og0KCS0gJChOT1RBTkdMRSkgLXQ0IC1maWx0ZXIgIm5vY29uZCBQcm9kdWN0aW9uIiAkKi5udyA+ JCouaHRtDQoNCiMJRWlmZmVsDQoubncuZToNCgktICQoTk9UQU5HTEUpIC10NCAkKi5udyA+JCou ZQ0KDQojCUMsIEMrKywgQVdLDQoubncuYzoNCgktICQoTk9UQU5HTEUpIC10NCAkKi5udyA+JCou Yw0KLm53LmNwcDoNCgktICQoTk9UQU5HTEUpIC10NCAkKi5udyA+JCouY3BwDQoubncuYXdrOg0K CS0gJChOT1RBTkdMRSkgLXQ0ICQqLm53ID4kKi5hd2sNCi5udy5oOg0KCS0gJChOT1RBTkdMRSkg LVJoZWFkZXIgLXQ0ICQqLm53ID54JCouaA0KIwktY21wIC1zIHgkKi5oICQqLmggfHwgY3AgeCQq LmggJCouaA0KCS0gY29weSB4JCouaCAkKi5oDQoJLSBkZWwgeCQqLmgNCg0KIwlQYXNjYWwNCi5u dy5wYXM6DQoJLSAkKE5PVEFOR0xFKSAtdDQgJCoubncgPiQqLnBhcw0KDQojCUJBU0lDDQoubncu YmFzOg0KCS0gJChOT1RBTkdMRSkgLXQ0IC1maWx0ZXIgIm5vY29uZCBWaXN1YWwgQkFTSUMiICQq Lm53ID4kKi5iYXMNCi5udy5mcm06DQoJLSAkKE5PVEFOR0xFKSAtdDQgLWZpbHRlciAibm9jb25k IFZCIEZvcm0iICQqLm53ID4kKi5mcm0NCi5udy5pbmk6DQoJLSAkKE5PVEFOR0xFKSAtdDQgLWZp bHRlciAibm9jb25kIElOSSBGaWxlIiAkKi5udyA+JCouaW5pDQoubncudmI6DQoJLSAkKE5PVEFO R0xFKSAtdDQgLWZpbHRlciAibm9jb25kIFZpc3VhbCBCQVNJQyIgJCoubncgPiQqLmJhcw0KCS0g JChOT1RBTkdMRSkgLXQ0IC1maWx0ZXIgIm5vY29uZCBWQiBGb3JtIiAkKi5udyA+JCouZnJtDQoJ LSAkKE5PVEFOR0xFKSAtdDQgLWZpbHRlciAibm9jb25kIElOSSBGaWxlIiAkKi5udyA+JCouaW5p DQoNCiMJQWNjZXNzDQoubncudHh0Og0KCS0gJChOT1RBTkdMRSkgLXQ0ICQqLm53ID4kKi50eHQN Ci5udy5hY2M6DQoJLSAkKE5PVEFOR0xFKSAtdDQgJCoubncgPiQqLmFjYw0KLm53LnlhcDoNCgkt ICQoTk9UQU5HTEUpIC10NCAtZmlsdGVyICJub2NvbmQgRGVjbGFyYXRpb25zIiB5YXAubncgPnlh cF9kZWNsLnR4dA0KCS0gJChOT1RBTkdMRSkgLXQ0IC1maWx0ZXIgIm5vY29uZCBJbml0aWFsaXph dGlvbiIgeWFwLm53ID55YXBfaW5pdC50eHQNCgktICQoTk9UQU5HTEUpIC10NCAtZmlsdGVyICJu b2NvbmQgTWFpbnRlbmFuY2UgVXRpbGl0aWVzIiB5YXAubncgPnlhcF91dGlsLnR4dA0KDQojCUxp dFByb2cNCi5udy5scDoNCgktICQoTk9UQU5HTEUpIC10NCAtZmlsdGVyICJub2NvbmQgTWFrZWZp bGUiICQqLm53ID4kKi5tYWsNCgktICQoTk9UQU5HTEUpIC10NCAtZmlsdGVyICJub2NvbmQgRE9T IEJhdGZpbGUiICQqLm53ID4kKi5iYXQNCg0KIwlBQkFQDQoubncuc2FwOg0KCS0gJChOT1RBTkdM RSkgLXQ0IC1maWx0ZXIgIm5vY29uZCBUZXN0IFZlcnNpb24iICQqLm53ID4kKl9kLnNhcA0KCS0g JChOT1RBTkdMRSkgLXQ0IC1maWx0ZXIgIm5vY29uZCBQcm9kdWN0aW9uIiAkKi5udyA+JCoucGFw DQoJLSAkKE5PVEFOR0xFKSAtdDQgLWZpbHRlciAibm9jb25kIFRyYW5zcG9ydCIgJCoubncgPiQq LnNhdA0KDQojCVV0aWxpdGllcw0KLm53Lm1hazoNCgktICQoTk9UQU5HTEUpIC10NCAtZmlsdGVy ICJub2NvbmQgTWFrZWZpbGUiICQqLm53ID4kKi5tYWsNCi5udy5iYXQ6DQoJLSAkKE5PVEFOR0xF KSAtdDQgLWZpbHRlciAibm9jb25kIERPUyBCYXRmaWxlIiAkKi5udyA+JCouYmF0DQojICANCiMg JExvZzogICBIOi93b3JrL2NyZ190b29sL2xvZ2ZpbGVzL3MvTUFLRUZJTEUud2ViICAkDQojICAN CiMgICAgIFJldiAxLjI2ICAgMTcgQXByIDE5OTcgMTU6MDU6MzIgICBDQVJMDQojICBSZXZpc2Vk IGZyb20gV0hBVFNFVC5OVyByMS40Ng0KIyAgDQojICAgICBSZXYgMS4yNSAgIDE3IEFwciAxOTk3 IDE0OjQyOjIwICAgQ0FSTA0KIyAgUmV2aXNlZCBmcm9tIFdIQVRTRVQuTlcgcjEuNDUNCiMgIA0K IyAgICAgUmV2IDEuMjQgICAyMCBNYXIgMTk5NyAxOToyOTo0OCAgIENBUkwNCiMgIFJldmlzZWQg ZnJvbSBXSEFUU0VULk5XIHIxLjQ0DQojICANCiMgICAgIFJldiAxLjIzICAgMjYgRmViIDE5OTcg MTg6NTM6MjQgICBDQVJMDQojICBSZXZpc2VkIGZyb20gV0hBVFNFVC5OVyByMS40Mw0KIyAgDQoj ICAgICBSZXYgMS4yMiAgIDE5IEZlYiAxOTk3IDIwOjEwOjQwICAgQ0FSTA0KIyAgUmV2aXNlZCBm cm9tIFdIQVRTRVQuTlcgcjEuNDENCiMgIA0KIyAgICAgUmV2IDEuMjEgICAwMyBTZXAgMTk5NiAx MToxODozOCAgIENBUkwNCiMgIFJldmlzZWQgZnJvbSBXSEFUU0VULk5XIHIxLjMzDQojICANCiMg ICAgIFJldiAxLjIwICAgMjMgQXVnIDE5OTYgMTM6MTE6NDQgICBDQVJMDQojICBSZXZpc2VkIGZy b20gV0hBVFNFVC5OVyByMS4zMQ0KIyAgDQojICAgICBSZXYgMS4xOSAgIDI3IE1hciAxOTk2IDEx OjU5OjE4ICAgQ0FSTA0KIyAgUmV2aXNlZCBmcm9tIFdIQVRTRVQuTlcgcjEuMjYNCiMgIA0KIyAg ICAgUmV2IDEuMTggICAyNiBNYXIgMTk5NiAxNjozMzozMiAgIENBUkwNCiMgIFJldmlzZWQgZnJv bSBXSEFUU0VULk5XIHIxLjI1DQojICANCiMgICAgIFJldiAxLjE3ICAgMjIgTWFyIDE5OTYgMTg6 NDI6MzggICBDQVJMDQojICBSZXZpc2VkIGZyb20gV0hBVFNFVC5OVyByMS4yMw0KIyAgDQojICAg ICBSZXYgMS4xNiAgIDE0IEZlYiAxOTk2IDIwOjE1OjUyICAgQ0FSTA0KIyAgUmV2aXNlZCBmcm9t IFdIQVRTRVQuTlcgcjEuMTkNCiMgIA0KIyAgICAgUmV2IDEuMTUgICAxNCBGZWIgMTk5NiAxOTo1 ODowOCAgIENBUkwNCiMgIFJldmlzZWQgZnJvbSBXSEFUU0VULk5XIHIxLjE4DQojICANCiMgICAg IFJldiAxLjEyICAgMjkgU2VwIDE5OTUgMTE6NDk6MzQgICBDQVJMDQojICBBZGRlZCAuSU5JIHJ1 bGUsIGFsc28gdG8gLlZCIHJ1bGUNCiMgIA0KIyAgICAgUmV2IDEuMTEgICAyMiBTZXAgMTk5NSAx Njo0Nzo1MCAgIENBUkwNCiMgIEFkZGVkIC5WQiBydWxlLCBjb21iaW5lcyAuQkFTIGFuZCBGUk0g cnVsZXMNCiMgIA0KIyAgICAgUmV2IDEuMTAgICAyMiBTZXAgMTk5NSAxNjozMzowOCAgIENBUkwN CiMgIFJldmlzZWQgLkJBUyBydWxlLCBhZGRlZCAuRlJNIHJ1bGUsIHRvIGRpc3Rpbmd1aXNoIFZp c3VhbCBCQVNJQyB0YW5nbGVzDQojICANCiMgICAgIFJldiAxLjkgICAyMiBTZXAgMTk5NSAxMDo1 NDoyMCAgIENBUkwNCiMgIEFkZGVkIG1ha2UgZm9yIC5CQVMgZmlsZXMNCiMgIA0KIyAgICAgUmV2 IDEuOCAgIDIyIFNlcCAxOTk1IDEwOjUyOjI2ICAgQ0FSTA0KIyAgQWRkZWQgbWFrZSBmb3IgSFRN TCBmaWxlcw0KIyAgDQojICAgICBSZXYgMS43ICAgMTYgTm92IDE5OTQgMTY6MjM6NTQgICBDQVJM DQojICBBZGRlZCAic2V0IiB0YXJnZXQsIHdoaWNoIGlzIHJlYWxseSBhIGNvbXBvc2l0ZSBvZiB0 aHJlZSBtYWtlcw0KIyAgDQojICAgICBSZXYgMS42ICAgMDcgTm92IDE5OTQgMTI6Mjg6MTYgICBD QVJMDQojICBOb3cgaGF2ZSBydWxlcyBmb3IgdGVzdCAoLnNjdCksIHByb2R1Y3Rpb24gKC5zY3Ap LCBhbmQgbGlicmFyeSAoLnNjbCkgc2NyaXB0cw0KIyAgDQojICAgICBSZXYgMS41ICAgMTIgQXVn IDE5OTQgMTM6NDc6NTggICBDQVJMDQojICBUb29rICI8IiBiYWNrIG9mZiBhbGwgY29tbWFuZHMg YWZ0ZXIgSSBmb3VuZCBvdXQgdGhlIHdlYXZlIGZhaWxzIHRvIHB1dA0KIyAgc2NyaXB0IG5hbWVz IGluIHBhZ2UgaGVhZGVycyB3aXRoIGl0IG9uIChhbmQgd2hvIGtub3dzIHdoYXQgZWxzZSA/PykN CiMgIA0KIyAgICAgUmV2IDEuNCAgIDIwIEp1bCAxOTk0IDE4OjM4OjUyICAgQ0FSTA0KIyAgQWRk ZWQgIjwiIHJlZGlyZWN0aW9uIHRvIGFsbCBjb21tYW5kczoNCiMgIG5vd2VhdmUgd29ya2VkIGRp ZmZlcmVudGx5ISBzbyBJIGRlY2lkZWQgdG8gcGxheSBpdCBzYWZlIHdpdGggbm90YW5nbGUNCiMg IA0KIyAgICAgUmV2IDEuMyAgIDEyIEp1bCAxOTk0IDEyOjE4OjIwICAgQ0FSTA0KIyAgQ2hhbmdl ZCAteCBub3dlYXZlIG9wdGlvbiB0byAtaW5kZXggZm9yIGNvcnJlY3QgaW5kZXhpbmcNCiMgIA0K IyAgICAgUmV2IDEuMiAgIDA3IEp1bCAxOTk0IDE3OjExOjE0ICAgQ0FSTA0KIyAgQWRkZWQgLWRl bGF5IGZsYWcgZm9yIEljb24tYmFzZWQgbm93ZWF2ZS5leGUNCiMgIA0KIyAgICAgUmV2IDEuMSAg IDAxIEp1bCAxOTk0IDE0OjQ4OjMyICAgQ0FSTA0KIyAgQWRkZWQgcnVsZXMgZm9yIC5udyB0byAu cGFzIGFuZCAubncgdG8gLmF3ayBmaWxlcw0KIyAgDQojICAgICBSZXYgMS4wICAgMzAgTWFyIDE5 OTMgMTU6MDE6MzggICBDQVJMDQojICBJbml0aWFsIHJldmlzaW9uLg0KIyAkSGVhZGVyOiAgIEg6 L3dvcmsvY3JnX3Rvb2wvbG9nZmlsZXMvcy9NQUtFRklMRS53ZWIgICAxLjI2ICAgMTcgQXByIDE5 OTcgMTU6MDU6MzIgICBDQVJMICAkDQo= ------ =_NextPart_000_01BD294B.7B3B1EC0-- 6-Feb-1998 15:11:15-GMT,1659;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 IAA27547 for ; Fri, 6 Feb 1998 08:11:14 -0700 (MST) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 06 Feb 1998 08:53:00 EST From: Jason Alexander Reply-To: LitProg@SHSU.edu, jalex@ea.oac.uci.edu Subject: Customizing variables in CWEB Date: 6 Feb 1998 14:42:15 GMT Message-ID: <6bf7g7$nu6$1@elna.ethz.ch> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu After searching for a good tool to do literate programming in C/C++, I finally settled on Knuth & Levi's CWEB. I have one question, though. In my program, I have an array of structures with the following names: world[i][j].neighbor.N world[i][j].neighbor.NW world[i][j].neighbor.NE : : Now, Cweave correctly recognizes that 'N' in 'world[i][j].neighbor.N' ought to be typeset as a variable, but it thinks that 'NW' in 'world[i][j].neighbor.NW' ought to be typeset in typewriter-style (which makes sense, given that most words in all-caps are defined constants). I would like to override this behavior of Cweave by telling it that 'NW' ought to be treated as a variable. I've tried using @s and @f, but to no avail. I think \def\NW{$NW$} @s NW TeX would work, but that seems more difficult than it should be. Any suggestions? Jason 7-Feb-1998 13:12:26-GMT,1178;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 GAA28153 for ; Sat, 7 Feb 1998 06:12:24 -0700 (MST) 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, 07 Feb 1998 06:10:55 EST From: Uwe Knietzsch Reply-To: LitProg@SHSU.edu, Uwe.Knietzsch@informatik.tu-chemnitz.de Subject: nuweb0.90 for other than amiga ? Date: 6 Feb 1998 18:19:41 GMT Message-ID: <6bfk7t$fhq$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Exist nuweb0.90 for other than amiga ? Nuweb has a nice include-feature - it's fine for using with a lot of short sourceparts (such as assembler) -- MfG 55&73 to you ... --------------------------------------------- E-Mail: ukn@informatik.tu-chemnitz.de www: http://www.tu-chemnitz.de/~ukn/index.html --------------------------------------------- 7-Feb-1998 13:50:39-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 GAA28817 for ; Sat, 7 Feb 1998 06:50:38 -0700 (MST) 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, 07 Feb 1998 07:37:50 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@samson.kean.edu Subject: Re: Customizing variables in CWEB Date: 6 Feb 1998 21:20:57 GMT Message-ID: <6bfurp$n54$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: LitProg@SHSU.edu On 6 Feb 1998, Jason Alexander wrote: > After searching for a good tool to do literate programming in C/C++, I > finally settled on Knuth & Levi's CWEB. I have one question, though. > In my program, I have an array of structures with the following names: > > world[i][j].neighbor.N > world[i][j].neighbor.NW > world[i][j].neighbor.NE > : > : > > Now, Cweave correctly recognizes that 'N' in 'world[i][j].neighbor.N' > ought to be typeset as a variable, but it thinks that 'NW' in > 'world[i][j].neighbor.NW' ought to be typeset in typewriter-style (which > makes sense, given that most words in all-caps are defined constants). > I would like to override this behavior of Cweave by telling it that 'NW' > ought to be treated as a variable. I've tried using @s and @f, but to > no avail. > > I think > > \def\NW{$NW$} > @s NW TeX > > would work, but that seems more difficult than it should be. > > Any suggestions? Since standard C practice is to use all-caps for defined constants, it *should* be a bit difficult to override the default behavior, IMO. I think your final solution will work, but I recommend \def\NW{\\{NW}} instead of \def\NW{$NW$}. The difference between italic and math italic is subtle, but noticeable. CWEB used math italic only for single-letter identifiers, which is why N is typeset correctly (obviously, the single-letter rule has precedence over the all-caps rule). -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Computer Science Department | Routine is the death of security. Kean University | Union, NJ 07083 | -- Donald Westlake | "Smoke" (1995) leew@samson.kean.edu | ------------------------------------------------------------------------ 8-Feb-1998 10:39:16-GMT,1621;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 DAA24714 for ; Sun, 8 Feb 1998 03:39:15 -0700 (MST) 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, 08 Feb 1998 04:22:56 EST From: shane@maths.anu.edu.au (Shane Latham) Reply-To: LitProg@SHSU.edu, shane@maths.anu.edu.au Subject: FWEB and verbatim mode Date: 8 Feb 1998 02:57:18 GMT Message-ID: <6bj6ue$acm$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu Hi, I am trying to write a literate TCL/TK (am I crazy?) script using FWEB (1.60b/1.53) and the verbatim mode @Lv. However, I am encountering a few features/bugs which I am unable to resolve. (1) code mode in module names doesn't seem to work. If I try something like @Lv @* Nasty FWEB. @a @o main.tcl @ @ Here is the TCL for setting a variable @= set variable "My String" Ftangling this code seems to work OK. Fweaving and LaTeXing produces some rather creative (totally wrong) formatting. If you leave out the code mode in the module names, everything works as it should :) Are there any work arounds for this problem? (2) Is there a way to define keywords, in verbatim mode, so that they fweave into bold face? I see that the @f, @v and @W commands look relevent in the FWEB doco, but am unsure how to get it working in verbatim mode? Newbie LitProgger, Shane. 8-Feb-1998 11:33:48-GMT,1234;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id EAA25662 for ; Sun, 8 Feb 1998 04:33:46 -0700 (MST) 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, 08 Feb 1998 05:12:12 EST From: cyberubik@aol.com (CyberUbik) Reply-To: LitProg@SHSU.edu, cyberubik@aol.com Subject: NEW PROGRAMMER ON THE NET!!!!!!!!!! Date: 8 Feb 1998 11:13:04 GMT Message-ID: <19980208111301.GAA10344@ladder02.news.aol.com> To: LitProg@SHSU.edu Newly qualified programmer (mainly C, C++) new to the net but old to general computing...looking to e-correspond with other programmers of all levels to exchange views, thoughts, and sample code, particularly interested in helping joint write programs with other people on-line .......... I do not want to correspond with the following types of people--- ANORAKS, KIDS, PEOPLE WITH LARGE RED BIRTHMARKS, PERVERTS (unless you are a programmer who happens to be perverted as well) AND ANYONE WHO DOES NOT WANT THE SPICE GIRLS DEAD!!!!!!!!!!!!!!!! 9-Feb-1998 9:08:11-GMT,1592;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 CAA23046 for ; Mon, 9 Feb 1998 02:08:09 -0700 (MST) 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, 09 Feb 1998 03:01:32 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@samson.kean.edu Subject: Re: FWEB and verbatim mode Date: 8 Feb 1998 18:19:18 GMT Message-ID: <6bksv6$4b$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: LitProg@SHSU.edu On 8 Feb 1998, Shane Latham wrote: > I am trying to write a literate TCL/TK (am I crazy?) script using > FWEB (1.60b/1.53) and the verbatim mode @Lv. However, I am encountering a > few features/bugs which I am unable to resolve. Literate Tcl/Tk is a Good Idea (I've done it myself; Tk, in particular, gets quite out of hand without LP -- at least for me), but I think you'll have much more success with noweb or nuweb, than with FWEB. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Computer Science Department | Routine is the death of security. Kean University | Union, NJ 07083 | -- Donald Westlake | "Smoke" (1995) leew@samson.kean.edu | ------------------------------------------------------------------------ 9-Feb-1998 9:27:48-GMT,1213;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 CAA23448 for ; Mon, 9 Feb 1998 02:27:47 -0700 (MST) 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, 09 Feb 1998 03:12:00 EST From: anyone@No-Such-Domain.anywhere (see.signature) Subject: Re: nuweb0.90 for other than amiga ? Reply-To: LitProg@SHSU.edu Message-ID: Date: 9 Feb 98 09:10:48 GMT To: LitProg@SHSU.edu On 6 Feb 1998 18:19:41 GMT, Uwe Knietzsch wrote: >Exist nuweb0.90 for other than amiga ? > Yes, it does exist, but not with the internationalization feature. It is based on modifications made by mengel@fnal.gov. I do have the sources. Mail me if you want them. Marc -- ------------------------------------------------------------------------------ email: marc dot hoffmann at users dot whh dot wau dot nl ------------------------------------------------------------------------------ 12-Feb-1998 4:04:37-GMT,3484;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 VAA04539 for ; Wed, 11 Feb 1998 21:04:32 -0700 (MST) 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, 11 Feb 1998 21:28:14 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@samson.kean.edu Subject: RE: noweb and VB and Access (fwd) Date: 11 Feb 1998 17:38:01 GMT Message-ID: <6bsnlp$8lg$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: LitProg@SHSU.edu Continuing the off-group discussion ... -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Computer Science Department | Routine is the death of security. Kean University | Union, NJ 07083 | -- Donald Westlake | "Smoke" (1995) leew@samson.kean.edu | ------------------------------------------------------------------------ ---------- Forwarded message ---------- Date: Tue, 10 Feb 1998 17:27:04 -0800 (PST) From: Joseph Hayes To: Carl Gregory , Lee Wittenberg Subject: RE: noweb and VB and Access > > > > Excuse an aging Boomer for a moment's indulgence. There is a > > poignancy here, the appreciation of which will probably die with the > > dwindling of my generation.... > > Now, apparently, a family of historians develops Commercial Bank code > > and exchanges advice using the Department of Defense's expanded > > communication network. Should we regard this as a moment of triumph > > or travesty? Actually its just the Daddy historian who has sold out :-) Be assured that the poignancy of the situation will not die out with your generation as I am often struck by it. A Medievalist by training, turned computer jockey for a Brazilian Bank in order to support little ones. Ahh, the wonders of a free market economy! > > Principle #1: command line programming is vastly more powerful than IDE. Thank you for the reminder. I'm afraid that at times I get taken in by the IDE's easy ways and sultry glances, and forget that programming is the application of computers to solve a problem. IDEs make it so easy to forget the problem and showcase the newest technology ofthe moment. > > Principle #2: literate programming is not exclusively, nor even > > primarily, a documentation technique. It is a program development > > tool. Probably what I enjoy the most about reading literate programs is that it allows you to see into another mind at work in a way code listings (even well-commented ones) cannot do. The language the programmer has chosen does not get in the way, instead it compliments the programmer's thinking but does not overwhelm it. Thank you for the very enjoyable rant, the templates and, most of all, the ideas. I'll need to work the ideas over, struggle with them and try them out (and do some more reading) but I believe you have put this historian/programmer/capitalist on the right track! Thank you again, Joe Hayes == Joseph P. Hayes e-mail: JoePHayes@yahoo.com _________________________________________________________ DO YOU YAHOO!? Get your free @yahoo.com address at http://mail.yahoo.com 12-Feb-1998 1:58:35-GMT,1315;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 SAA01922 for ; Wed, 11 Feb 1998 18:58:33 -0700 (MST) 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, 11 Feb 1998 19:21:42 EST From: Andreas Scherer Reply-To: LitProg@SHSU.edu, andreas.scherer@pobox.com Subject: Re: nuweb0.90 for other than amiga ? Date: 11 Feb 1998 06:30:43 GMT Message-ID: <6brgij$fgq$1@news.interlog.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Uwe Knietzsch wrote: > > Exist nuweb0.90 for other than amiga ? Amiga always up-front. :-) Except for the two calls of "signal()" in the "output" module, I had no problems compiling the Amiga sources of NuWeb 0.90 with Visual C++ 4.1 under WinNT 3.51. So, I guess all Amiga specific stuff is cleanly shut off on other systems and porting should be trivial. Cheers, -- Andreas PS: The 1995 edition of (Ami)NuWeb 0.90 is located at ftp://ftp.dante.de/pub/tex/web/nuweb/nuweb_ami/ I haven't seen any update since. 12-Feb-1998 21:38:07-GMT,1912;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 OAA00077 for ; Thu, 12 Feb 1998 14:38:01 -0700 (MST) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from mail-relay2.ja.net by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 12 Feb 1998 14:54:58 EST Received: from vms.rhbnc.ac.uk (actually host alpha1.rhbnc.ac.uk) by mail-relay2.ja.net with JANET SMTP (PP); Thu, 12 Feb 1998 16:50:11 +0000 Date: Thu, 12 Feb 1998 16:41:31 GMT From: Philip Taylor (RHBNC) Reply-To: LitProg@SHSU.edu, P.Taylor@vms.rhbnc.ac.uk To: 4TeX@nic.surfnet.nl, all-tug-members@tug.org, CSTeX@cs.felk.cvut.cz, CyrTeX-t2@vvv.vsu.ru, Cyrtug@Mir.Msk.Su, Ellhnika@urz.uni-heidelberg.de, Emtex-User@physik.tu-berlin.de, Gust-L@Man.Torun.Pl, Gut@Ens.Fr CC: CHAA006@vms.rhbnc.ac.uk Message-ID: <980212164131.4af43@vms.rhbnc.ac.uk> Subject: TUG'98: Revised deadlines for submissions Dear Colleagues -- At the request of several potential speakers at the TUG'98 conference in Torun, Poland, the deadlines for submission of proposals and papers have been revised. The new deadlines are: Receipt of proposals: 15th March 1998; Notification of acceptance/rejection: 6th April 1998; Receipt of first drafts: 30th April 1998; Receipt of final versions: 30th May 1998. It would be much appreciated if those who have already submitted proposals would keep to the original deadlines; this will much help the work of both the Programme and Publication Committees by distributing the load in time. Full details of the conference and the procedures for submitting proposals may be found at http://www.tug.org/tug-98/ Philip Taylor, Chairman, TUG'98 Programme Committee. 15-Feb-1998 1:17:05-GMT,1081;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 SAA01440 for ; Sat, 14 Feb 1998 18:17:04 -0700 (MST) 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, 14 Feb 1998 19:08:35 EST Date: Sat, 14 Feb 1998 15:04:55 -0600 Message-ID: <6c513o$iub$1@wolfman.xtra.co.nz> From: "Sméagol" Reply-To: LitProg@SHSU.edu, melkor@xtra.co.nz Subject: Using SendKeys in VB5 to a hidden/but with focus, DOS prompt To: LitProg@SHSU.edu I wonder if anyone can help me, I need to send the letter 'n' followed by the 'enter' key into a hidden/but with focus, DOS prompt. The code is as follows... SendKeys "n" & "{ENTER}", True VB Help states that 'SendKeys' can only be used in programs designed for Windows, isn't MS DOS prompt designed for Windows? Any help or suggestions would be greatly appreciated. 16-Feb-1998 16:56:51-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 JAA15530 for ; Mon, 16 Feb 1998 09:56:48 -0700 (MST) 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, 16 Feb 1998 06:30:49 EST From: thompson@sun1.coe.ttu.edu Subject: comp.programming.literate FAQ Date: 16 Feb 1998 11:06:18 GMT Message-ID: Reply-To: LitProg@SHSU.edu, thompson@sun1.coe.ttu.edu To: LitProg@SHSU.edu Archive-name: literate-programming-faq Last-modified: 1997/08/15 Version: 1.1.18 The Literate Programming FAQ David B. Thompson 15 August 1997 This document is for new and experienced users of literate programming tools. The purpose is to explain the concept of literate programming and to provide a resource for locating files of interest to literate programmers and those interested in literate programming. ______________________________________________________________________ Table of Contents: 1. Welcome 1.1. Disclaimer 1.2. Copyright 1.3. What's New? 2. Introduction or 3. How do I get the FAQ? 3.1. Literate Programming FAQ 3.2. FWEB FAQ 4. Is there a newsgroup? 5. What internet nodes are of interest to literate programmers? 6. What is Literate Programming? 7. How do I begin literate programming? 8. What literate programming tools are available? 8.1. APLWEB 8.2. AWEB 8.3. CLiP 8.4. CWEB 8.5. CWEBx3.0 8.6. mCWEB 8.7. FunnelWeb 8.8. FunnelWeb 3.0AC 8.9. FWEB 8.10. IMPACT 8.11. lit2x 8.12. Literate Programmer's Workshop (LPW) 8.13. MapleWEB 8.14. MWEB (Schrod/Detig) 8.15. MWEB (Sewell) 8.16. noweb 8.17. nuweb 8.18. ProTeX 8.19. RWEB 8.20. SchemeWEB 8.21. SpideryWEB 8.22. WEB 8.23. WinWordWEB 9. Are there other tools I should know about? 9.1. C2LaTeX 9.2. c2cweb 9.3. c2man 9.4. cnoweb 9.5. Fold2Web 9.6. Funnelweb Mode 9.7. noweb.el 9.8. nuweb.el 9.9. TIE 9.10. Web mode 10. What other resources are available? 10.1. World Wide Web 10.2. TeX Resources 11. Are there any code examples? 12. Bibliographies 13. How to anonymously ftp 14. Acknowledgements 15. End notes ______________________________________________________________________ 1. Welcome Information contained in this document is the best available at preparation. The original file was dated October 15, 1993 (just for historical purposes). 1.1. Disclaimer Disclaimer: ``This FAQ is presented with no warranties or guarantees of ANY KIND including correctness or fitness for any particular purpose. The author of this document has attempted to verify correctness of the data contained herein; however, slip-ups can and do happen. If you use this data, you do so at your own risk.'' 1.2. Copyright Copyright 1993-1997 by David B. Thompson. All rights reserved worldwide. Permission is granted to copy this document for free distribution so long as it remains intact and unmodified. For other arrangements, contact the author/maintainer via email: 1.3. What's New? o My email address has changed (once again). o Newsgroup is moderated. o Updated fweb entry. o Updated noweb entry. o Added mCWEB entry. o Updated c2cweb entry. o Updated nuweb.el entry. o Updated cLiP entry. o Updated Lee W's examples (from bart). o Last, but not least, new formatting of the FAQ. Many thanks go to Andrew Johnson for helping make this happen. 2. Introduction or ``What's this all about?'' This document is for new and experienced users of literate programming tools. The purpose is to explain the concept of literate programming and to provide a resource for locating files of interest to literate programmers and those interested in literate programming. The Literate Programming (LitProg) Frequently Asked Questions (FAQ) list is maintained by Dave Thompson Comments and constructive criticisms are welcome. Direct flames to /dev/null (or nul if you're a msdos user! ;-) If you find an error, please report it. I'm particularly interested in establishing the locations of generally available literate programming tools. If you are the author of such a tool and wish to have it included in this list, please send email. Please note this is a work-in-progress. It is not complete, and probably will never be complete. Nevertheless, the information contained herein may be useful to some. Use it as it is intended. 3. How do I get the FAQ? 3.1. Literate Programming FAQ You have many ways to get a current copy of this FAQ. One is to use anonymous ftp (if you don't know how, see a later section in this FAQ) to connect to one of the Comprehensive TeX Arvchive Network (CTAN) sites or the Literate Programming Archive and retrieve a copy of the file. Open an ftp connection to one of the CTAN sites and retrieve the file: help/LitProg-FAQ (For more information on CTAN and the literate programming archive, see the section below entitled ``Internet Nodes of Interest to Literate Programmers''.) 3.2. FWEB FAQ David Coker maintains the FWEB FAQ. The current version number is 1.30a. It can be retrieved in the same way as this FAQ. The FWEB FAQ exists in various formats, including HyperText (see other resources below). In Europe, the complete distribution can also be obtained from ftp.desy.de 131.169.10.115 in directory /pub/faq/web/fweb/. It is also available from the literate programming archive in the directory LPA/Documentation/faq/fweb (see the references to LPA below for more information). 4. Is there a newsgroup? One of the most important resources is the literate programming newsgroup, comp.programming.literate. Because of the amount of spamming and unrelated the posts, the newsgroup is now moderated. Posts to the newsgroup are now routed through litprog- mod@cs.virginia.edu. If your news reader does not post through this address, then you will be unable to post messages to the newgroup. You can read this newsgroup using your standard reader. 5. What internet nodes are of interest to literate programmers? The principal nodes of interest to literate programmers are the Literate Programming Archive (LPA hereafter) and the CTAN (Comprehensive TeX Archive Network). The Literate Programming Archive (LPA) is: Node: ftp.th-darmstadt.de [130.83.55.75] Directory: programming/literate-programming Notes: Fastest response during off-U.S. [yep] business hours. Participating hosts in the Comprehensive TeX Archive Network are: ftp.dante.de (Deutschland) -- anonymous ftp /tex-archive (/pub/tex /pub/archive) -- gopher on node sun.dante.de -- e-mail via ftpmail@dante.de -- Administrator: ftp.tex.ac.uk (England) -- anonymous ftp /tex-archive (/pub/tex /pub/archive) -- gopher on node gopher.tex.ac.uk -- NFS mountable from nfs.tex.ac.uk:/public/ctan/tex-archive -- World Wide Web access on www.tex.ac.uk -- Administrator: The site ftp.shsu.edu used to be the American CTAN site. Apparently, that site has fallen into disrepair and should not be considered a primary source for either TeX related or literate programming related material. For the record, the address is: ftp.shsu.edu (Texas, USA) -- anonymous ftp and gopher /tex-archive (/pub/tex /pub/archive) -- NFS mountable from ftp.SHSU.edu:/pub/ftp/tex-archive -- e-mail via ftpmail@ftp.SHSU.edu -- World Wide Web access on www.SHSU.edu -- Administrator: A list of CTAN archive sites and their mirrors can be found on: ftp.dante.de:/tex-archive/CTAN.sites I presume that the other CTAN sites mirror this file, but have not checked. As of my last check (September 1994), it contains: "In order to reduce network load, it is recommended that you use the Comprehensive TeX Archive Network (CTAN) host which is located in the closest network proximity to your site." Known partial mirrors of the CTAN reside on (alphabetically): dongpo.math.ncu.edu.tw (Taiwan) /tex-archive ftp.adfa.oz.au (Australia) /pub/tex/ctan ftp.muni.cz (The Czech Republic) /pub/tex/CTAN ftp.cs.ruu.nl (The Netherlands) /pub/tex-archive ftp.uu.net (Virginia, USA) /pub/text-processing/TeX nic.switch.ch (Switzerland) /mirror/tex Known mirrors of the CTAN reside on (alphabetically): ftp.center.osaka-u.ac.jp (Japan) /CTAN ftp.ccu.edu.tw (Taiwan) /pub/tex ftp.cs.rmit.edu.au (Australia) /tex-archive ftp.duke.edu (North Carolina, USA) /tex-archive ftp.germany.eu.net (Deutschland) /pub/packages/TeX ftp.gwdg.de (Deutschland) /pub/dante ftp.jussieu.fr (France) /pub4/TeX/CTAN ftp.loria.fr (France) /pub/unix/tex/ctan ftp.mpi-sb.mpg.de (Deutschland) /pub4/tex/mirror/ftp.dante.de ftp.uni-bielefeld.de (Deutschland) /pub/tex ftp.uni-stuttgart.de (Deutschland) /tex-archive (/pub/tex) ftpserver.nus.sg (Singapore) /pub/zi/TeX src.doc.ic.ac.uk (England) /packages/tex/uk-tex sunsite.unc.edu (North Carolina, USA) /pub/packages/TeX wuarchive.wustl.edu (Missouri, USA) /packages/TeX Other nodes and directories of interest include: Node: ftp.desy.de [131.169.10.115] Directory: pub/web. Various documents, samples, and the FWEB FAQ. Notes: Has a www server, http://info.desy.de:80/ 6. What is Literate Programming? Literate programming is the combination of documentation and source together in a fashion suited for reading by human beings. In fact, literate programs should be enjoyable reading, even inviting! (Sorry Bob, I couldn't resist!) In general, literate programs combine source and documentation in a single file. Literate programming tools then parse the file to produce either readable documentation or compilable source. The WEB style of literate programming was created by D.E. Knuth during the development of his TeX typsetting software. All the original work revolves around a particular literate programming tool called WEB. Knuth says: The philosophy behind WEB is that an experienced system pro- grammer, who wants to provide the best possible documenta- tion of his or her software products, needs two things simultaneously: a language like TeX for formatting, and a language like C for programming. Neither type of language can provide the best documentation by itself; but when both are appropriately combined, we obtain a system that is much more useful than either language separately. The structure of a software program may be thought of as a web that is made up of many interconnected pieces. To docu- ment such a program we want to explain each individual part of the web and how it relates to its neighbours. The typo- graphic tools provided by TeX give us an opportunity to explain the local structure of each part by making that structure visible, and the programming tools provided by languages such as C or Fortran make it possible for us to specify the algorithms formally and unambigously. By combin- ing the two, we can develop a style of programming that max- imizes our ability to perceive the structure of a complex piece of software, and at the same time the documented pro- grams can be mechanically translated into a working software system that matches the documentation. Another author (Eric W. van Ammers) wrote me a short article treating his opinions on literate programming. The text follows: First observation on LP About 90% of the disussion on this list is about problems with applying some WEB-family member to a particular programming language or a special documentation situation. This is ridiculous, I think. Let me explain shortly why. Lemma 1: I have proposed for many years that programming has nothing to do with programming langauges, i.e. a good programmer makes good programs in any language (given some time to learn the syntax) and a bad programmer will never make a good program, no matter the language he uses (today many people share this view, fortunately). Lemma 2: Literate Programming has (in a certain way not yet completely understood) to do with essential aspects of programming. Conclusion 1: A LP-tool should be independent of programming language. Lemma 3: It seems likely that the so called BOOK FORMAT PARADIGM ref. 1 plays an important role in making literate programs work. Lemma 4: There are very many documentation systems currently being used to produce documents in the BOOK FORMAT. Conclusion 2: A LP-tool should be independent of the documentation system that the program author whishes to use. My remark some time ago that we should discuss the generic properties of an LP-tool was based on the above observation. References 1 Paul W. Oman and Curtus Cook. ``Typographical style is more than cosmetic.'' CACM 33, 5, 506-520 (May 1990) Second observation on LP The idea of a literate program as a text book should be extendend even further. I would like to see a literate program as an (in)formal argument of the correctness of the program. Thus a literate program should be like a textbook on mathematicics. A mathematical textbook explains a theory in terms of lemma and theorems. But the proofs are never formal in the sense that they are obtaind by symbol manipulation of a proof checker. Rather the proofs are by so called ``informal rigour'', i.e. by very precise and unambiguous sentences in a natural language. Eric W. van Ammers Department of Computer Science Wageningen Agricultural University Dreijenplein 2 E-mail: ammers@rcl.wau.nl 6703 HB Wageningen voice: +31 (0)8370 83356/84154 The Netherlands fax: +31 (0)8370 84731 Another author (Norman Ramsey) wrote me and asked that his opinions be included in the FAQ. What follows are Norman's comments verbatim. I see it's time for the ``how is literate programming dif- ferent from verbose commenting'' question. Perhaps David Thompson will get this into the FAQ. Alert! What follows are my opinions. In no way do I claim to speak for the (fractious) literate-programming community. How is literate programming different from verbose commenting? There are three distinguishing characteristics. In order of importance, they are: o flexible order of elaboration o automatic support for browsing o typeset documentation, especially diagrams and mathematics Flexible order of elaboration means being able to divide your source program into chunks and write the chunks in any order, independent of the order required by the compiler. In principle, you can choose the order best suited to explaining what you are doing. More subtly, this discipline encourages the author of a literate program to take the time to consider each fragment of the program in its proper sphere, e.g., not to rush past the error checking to get to the ``good parts.'' In its time and season, each part of the program is a good part. (This is the party line; your mileage may vary.) I find the reordering most useful for encapsulating tasks like input validation, error checking, and printing output fit for humans --- all tasks that tend to obscure ``real work'' when left inline. Reordering is less important when using languages like Modula-3, which has exceptions and permits declarations in any order, than when using languages like C, which has no exceptions and requires declaration before use. Automatic support for browsing means getting a table of contents, index, and cross-reference of your program. Cross-reference might be printed, so that you could consult an index to look up the definition of an identifier `foo'. With good tools, you might get a printed mini-index on every page if you wanted. Or if you can use a hypertext technology, cross-reference might be as simple as clicking on an identifier to reach its definition. Indexing is typically done automatically or `semi- automatically', the latter meaning that identifier definitions are marked by hand. Diligently done semi- automatic indexes seem to be best, because the author can mark only the identifiers he or she considers important, but automatic indexing can be almost as good and requires no work. Some tools allow a mix of the two strategies. Some people have applied literate-programming tools to large batches of legacy code just to get the table of contents, index, and cross-reference. I don't use diagrams and mathematics very often, but I wouldn't want to have to live without them. I have worked on one or two projects where the ability to use mathematical formulae to document the program was indispensible. I also wouldn't like to explain some of my concurrent programs without diagrams. Actually I write almost all of my literate programs using only sections headers, lists, and the occasional table. >Wouldn't it be easier to do one's literate programming using >a wysiwyg word processor (e.g. Word for Windows) and >indicate what is source code by putting it in a different >font? The data formats used in wysiwyg products are proprietary, and they tend to be documented badly if at all. They are subject to change at the whim of the manufacturer. (I'll go out on a limb and say there are no significant wysiwyg tools in the public domain. I hope the Andrew people will forgive me.) These conditions make it nearly impossible to write tools, especially tools that provide automatic indexing and cross-reference support. The CLiP people have a partial solution that works for tools that can export text --- they plant tags and delimiters throughout the document that enable the reordering transformation (``tangling''). People use TeX, roff, and HTML because free implementations of these tools are widely available on a variety of platforms. TeX and HTML are well documented, and TeX and roff are stable. TeX is the most portable. I think I have just answered the FAQ ``how come all these tools use TeX, anyway?'' :-) Norman Ramsey 7. How do I begin literate programming? A recommended book is D.E. Knuth's collection of articles (1992) Literate Programming. Center for the Study of Language and Information, Stanford University, ISBN 0-937073-80-6 (pbk). This book gives insight into Knuth's thoughts as he developed the web system of literate programming (and TeX for typesetting). It does not document methods for literate programming. A recommended book is Wayne Sewell's (1989) Weaving a Program: Literate Programming in WEB. Van Nostrand Reinhold, ISBN 0-442-31946-0 (pbk). This book focuses on using Knuth's web system. Some talk exists in the newsgroup/mailing list for a Usenet University course in literate programming. I'm sure discussion of this topic will be welcomed. If you are interested, please participate. 8. What literate programming tools are available? A significant number of tools for literate programming are available. Most have been ported from their original systems, so support multiple computer platforms. If you are the developer of such a tool, and would like to make the software freely available, please send me email and I'll reply with a form (like those below) for you to fill in. (Or short-circuit the process and kludge a form from below. :-) 8.1. APLWEB Developer: Christoph von Basum Version: Unknown Hardware: MSDOS Languages: IBM APL2 and STSC APL Formatter: Plain TeX Availability: Anonymous ftp from: LPA:/apl watserv1.uwaterloo.ca:/languages/apl/aplweb Readme: Unknown Description: None available. Support: Unknown Note: The status of this particular package is unknown. 8.2. AWEB Developer: Unknown Version: Unknown Hardware: Unknown Languages: Ada Formatter: Unknown Availability: Anonymous ftp from: LPA:/ada/web Readme: Unknown Description: None available Support: Not supported. 8.3. CLiP Developer: E.W. van Ammers and M.R. Kramer Versions: 2.0 and 2.4b (DOS only) Platform: Vax/VMS, Unix, DOS Languages: Any programming language Formatter: Any formatter (TeX, LaTeX, Troff, Runoff, HTML, etc) or any wordprocessor including WYSIWYG systems (Word Perfect, WinWord, Ami Pro, Word Pro, etc.) Availability: Anonymous ftp from: sun01.info.wau.nl:/CLIP/ms_dos DOS sun01.info.wau.nl:/CLIP/ms_dos_24b DOS (v. 2.4b) sun01.info.wau.nl:/CLIP/vax_vms VAX/VMS sun01.info.wau.nl:/CLIP/unix Unix CTAN:/web/clip LPA:/machines/ms-dos LPA:/machines/vax Readme: With bundle above Description: CLiP does not use explicit commands to perform the extraction process. Rather it recognizes pseudostatements written as comments in the programming language in question. CLiP distinguishes pseudostatements from ordinary comments because the former comply with a particular style. This style can be adjusted to suit virtually any programming language. The CLiP approach to LP makes the system extremely versatile. It is independent of programming language and text processing environment. We designed CLiP to be compatible with hypertext systems as well. Some hypertext examples are at ftp://sun01.info.wau.nl/clip/html/queens.htm ftp://sun01.info.wau.nl/clip/html/pal1.htm Features: + CLiP imposes virtually no limitations on the text-processing system used to produce the documentation. If the text-processor supports these items you can + structure the documentation according to your own taste. + include drawings, pictures, tables etc. + disclose your documentation my means of X-ref tables, Indexes, Table of contents, Table of tables, Table of figures, etc. + typeset the documented code. + Extracts any number of modules from a maximum of 64 source files. + No pretty-printing. Code from the source files is copied "as is" to the module. + Appearance of code segments in the documentation matches those of the modules to ease the identification of code segments. + Supports partially specified data types. + Comprehensive user manual (preliminary version) and technical description. - No automatic generation of a X-ref table for program identifiers. Support: Bugs, problems and assistance by e-mail to Eric.vanAmmers@user.info.wau.nl 8.4. CWEB Developer: Silvio Levy and D.E. Knuth Version: 3.0 Hardware: Unix systems (dos and amiga ports available) Languages: C and C++ Formatter: Plain TeX and LaTeX. Availability: Anonymous ftp from: labrea.stanford.edu:/pub/cweb LPA:/c.c++ CTAN:/web/c_cpp/cweb DOS version in CTAN:/web/c_cpp/cwb30p8c DOS version in LPA:/machines/ms-dos Amiga version CTAN:/web/c_cpp/AmigaCWEB Mac port of CTANGLE in LPA:/machines/mac LaTeX support in LPA:/c.c++ Readme: Bundled with above Description: No description provided. Support: Bugs to levy@math.berkeley.edu 8.5. CWEBx3.0 Developer: Marc van Leeuwen Version: Unknown Hardware: Any system using ASCII code Languages: ANSI C Formatter: Plain TeX Availability: Anonymous ftp from: ftp.cwi.nl/pub/cweb Readme: Bundled with above Brief description: A modified implementation of CWEB, with some extensions. Provides a mode for full compatibility with Levy/Knuth CWEB. The most significant extras are: - Typedef declarations affect formatting througout source file - Include files are scanned for typedef definitions - Flexible selection of layout style - Possibility to refer to sections using symbolic labels - CTANGLE detects unbalanced braces and parentheses - CWEAVE can be made to report syntax errors more easily - Some additional mechanisms to avoid formatting problems - New and modular set of grammar rules, based on ANSI C syntax - Possibility to suppress #line directives - A new manual Support: bugs and remarks to M.van.Leeuwen@cwi.nl 8.6. mCWEB Developer: Markus Oellinger Version: 1.0 Hardware: Unix Languages: C/C++ Formatter: plainTeX Availability: anonymous ftp from ist.tu-graz.ac.at:/pub/utils/litprog/mcweb/mcweb.tgz Readme: at same location Description: This is mCWEB 1.0, a descendant of the CWEB system of structured documentation by Donald E. Knuth and Silvio Levy. It adds some features that are indispensable when working in a team. mCWEB regards a project of a book consisting of several chapter files. By means of import and export commands, it automatically manages all relationships between the chapters of a book and to other books. Interface documentation is now also part of mCWEB. It is extracted into a second TeX file. This makes it possible to define well known interfaces between the individual parts of a project that will be implemented by different persons. In addition, mCWEB parses C header files to find out about all the datatypes defined there. mCWEB comes with a full completely rewritten user manual and is compatible with CWEB. Support: Institute of Software Technology moell@ist.tu-graz.ac.at 8.7. FunnelWeb Developer: Ross N. Williams: ross@guest.adelaide.edu.au Version: Unknown Hardware: MSDOS, Mac, VMS, Sun. Other ports reported. Languages: No restrictions. Formatter: Plain TeX for printing. Otherwise, no restrictions. Availability: Anonymous ftp from: CTAN:/web/funnelweb LPA:/independent ftp.adelaide.edu.au:/pub/funnelweb Readme: With bundle above. Description: FunnelWeb is a production-quality literate-programming tool that emphasises simplicity and reliability. Everything about FunnelWeb, from the simplicity of its language to the comprehensive tutorial in the user's manual, has been designed to make this as simple, as practical, and as usable a tool as possible. Features: + Provides a simple macro preprocessor facility. + Can produce typeset documentation. + Runs on Sun, VMS VAX, Macintosh, PC, and others. + Portable C source code distributed under GNU licence. + Comprehensive user's manual including tutorial. + Programming-language independent. + Can generate multiple output files. + Allows complete control over the output text. + Regression test suite with over 200 tests. + Fully worked example (in /pub/funnelweb/examples). - Requires TeX to produce typeset documentation. - Typesets program code using TT font only. Support: No formal support available. Mailing list maintained with about 50 subscribers. Informal assistance available from mailing list. 8.8. FunnelWeb 3.0AC Developer: Enhanced by A.B.Coates (coates@physics.uq.edu.au) from FunnelWeb v3.0 by Ross N. Williams (ross@guest.adelaide.edu.au) Version: 3.0AC Hardware: MSDOS, Mac, VMS, Sun, OSF/1, Linux, Sys.V, OS/2. Languages: No restrictions. Formatter: Tex, LaTeX, or HTML. Availability: Anonymous ftp from ftp.physics.uq.oz.au:/pub/funnelwebAC30.tar.gz Readme: With bundle above; for FunnelWeb manual see WWW page http://www.physics.uq.oz.au:8001/people/coates/funnelweb.html Description: FunnelWeb 3.0AC is an enhanced version of FunnelWeb (see the entry for FunnelWeb). FunnelWeb is designed to be typesetter independent, though FunnelWeb v3.0 only supports (La)TeX as the typesetter. FunnelWeb 3.0AC also supports HTML, and creates appropriate hypertext links within the document among the code sections. FunnelWeb 3.0AC also supports automatic and manual insertion of line directives, so that compiler errors can be flagged back to the original FunnelWeb source file. FunnelWeb 3.0AC is completely compatible with FunnelWeb v3.0 sources (with one minor exception; see the file README.ABC which comes with the FunnelWeb 3.0AC distribution). Support: Supported by A.B.Coates (coates@physics.uq.edu.au), subject to the time constraints imposed by his thesis. 8.9. FWEB Developer: John A. Krommes Version: 1.53 (1.60-beta for the experienced, patient, and brave) Hardware: Unix, VMS, and DOS platforms (anything with ANSI C) Languages: C, C++, Fortran-77, Fortran-90, Ratfor, TeX; also, a language-independent mode. Formatter: LaTeX. Plain TeX may work, but is no longer supported. Availability: Anonymous ftp from: ftp.pppl.gov:/pub/fweb CTAN:/web/fweb LPA:/fweb DOS version in LPA:/machines/ms-dos Readme: In bundle with above. Description: It also has a well-developed user's manual and its own FAQ (see above). Beginning with 1.40, documentation is maintained in gnu texinfo format. It runs on most platforms: VMS, PC, UNIX, and pretty much anything that the GNU C compiler (GCC) is supported for. Features: + Processes multiple languages during a single run (so one can mix C and Fortran, for example). + Language-independent mode (v1.40). + Ability to turn off pretty-printing (v1.40). + Built-in Ratfor translator. + Built-in macro preprocessor (closely follows ANSI C, with extensions). + A style file that allows the user to adjust many parameters and behavior patterns of FWEB. + Various operator-overloading features that provide additional pretty-printing capabilities to languages such as C++ and Fortran-90. + Numerous miscellaneous features and command-line options. Support: Bug reports and suggestions to krommes@princeton.edu 8.10. IMPACT Developer: Timothy Larkin, from Levy/Knuth CWEB 3.1 Version: 1.0 Hardware: Macintosh; requires AppleEvents. Languages: C, C++ Formatter: TeX Availability: CTAN archives Readme: A short readme file is included in the SEA archive. Description: IMPACT implements CTangle from the Levy/Knuth CWEB 3.1. It operates as a foreground program, tangling files selected from the Mac File Picker. Or it can operate in the background, tangling files in response to odoc events sent by other applications, such as editors. Support: I welcome any reports of bugs. The product will be updated as new versions of the CWEB appear. Other features may be added as users suggest them. 8.11. lit2x Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/independent Readme: Unknown Description: None available Support: Unknown 8.12. Literate Programmer's Workshop (LPW) Developer: Norbert Lindenberg Version: 1.1 Hardware: Apple Macintosh Languages: C++, Object Pascal & others Formatter: self-contained WYSIWYG system Availability: Anonymous ftp from: LPA:/machines/mac CTAN:/web/lpw ftp.apple.com:/pub/literate.prog Readme: With bundle above. Also comes with 38-page manual. Description: The Literate Programming Workshop is an environment for the integrated development of program source text and documentation in combined documents. It consists of a WYSIWYG word processor based on a style sheet approach, a mechanism to extract parts of the text in a document, and a project management system that handles multi-document projects. The system is designed to be used in conjunction with the Macintosh Programmer's Workshop: it prepares raw source text for the MPW compilers, accepts MPW error messages, and shows them in the context of the original documents. Automatic indexing and hypertext features allow for easy access to both source text and documentation. LPW is shareware. Support: Bugs, problems, and questions to lpw@aol.com. 8.13. MapleWEB Developer: Unknown Version: Unknown Hardware: Unknown Languages: Maple Formatter: Unknown Availability: Anonymous ftp from: LPA:/maple Readme: Unknown Description: None Support: Unknown 8.14. MWEB (Schrod/Detig) Developer: Joachim Schrod Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. 8.15. MWEB (Sewell) Developer: Sewell Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. 8.16. noweb Developer: Norman Ramsey Version: 2.8 Hardware: Unix and DOS platforms (DOS binaries available for v2.7). Languages: All programming languages, singly or in combination. Automatic indexing for C, Icon, Pascal, Standard ML, TeX, Yacc Formatter: Plain TeX, LaTeX, and HTML formatters. Will convert LaTeX to HTML automatically. Availability: Anonymous ftp from: CTAN:/web/noweb LPA:/independent Last recourse, use ftp.cs.virginia.edu:pub/nr Readme: With bundle above, or see the noweb home page: http://www.cs.virginia.edu/~nr/noweb Those without ftp access can consult ``Literate Programming Simplified,'' IEEE Software, September 1994, pp97-105. Description: noweb is designed to meet the needs of literate programmers while retaining the simplest possible input format. Its primary advantages are simplicity, extensibility, and language-independence. noweb uses 5 control sequences to WEB's 27. The noweb manual is only 3 pages; an additional page explains how to customize its LaTeX output. noweb works ``out of the box'' with any programming language, and supports TeX, latex, and HTML back ends. A back end to support full hypertext or indexing takes about 250 lines; a simpler one can be written in 40 lines of awk. The primary sacrifice relative to WEB is that code is not prettyprinted. noweb supports indexing and identifier cross-reference, including hypertext ``hot links.'' noweb includes a simple, efficient LaTeX-to-HTML converter, so you can use hypertext browsers on your legacy documents. noweb can also process nuweb programs, so you can use noweb to convert a standard nuweb program to HTML with one command. Support: email to the author 8.17. nuweb Developer: Preston Briggs: preston@cs.rice.edu Version: 0.87 Hardware: Unix systems: Sparcs, RS/6000s, HPs; (!) MSDOS and Amiga. Languages: Any programming language or combination of programming languages. Formatter: Latex Availability: Anonymous ftp from: Unix: CTAN:/web/nuweb DOS: CTAN:/web/nuweb-pc LPA:/independent Amiga: CTAN:/web/nuweb/nuweb_ami Amiga: wuarchive.wustl.edu/pub/aminet Readme: Send mail to preston@cs.rice.edu Description: A single program that takes a web file written in a combination of latex and any programming language(s) and produces a latex file that can be pretty printed and a set of files containing code for compilation/interpretation by the appropriate language processors. Strengths include speed, simplicity, multiple languages, nice indices and cross-references, latex. Doesn't require any special macros or macro files. Drawbacks: latex-dependent, no code pretty printing, harder to make indices than cweb. More good stuff: nice support for make, doesn't reformat source files, so they're easy to debug. Lots of control without too much effort. That is, it doesn't do too much! Future directions... Very little change planned, except perhaps refinements in the indexing software. Support: Hack it yourself or send e-mail to preston@cs.rice.edu 8.18. ProTeX Developer: Eitan Gurari Version: ProTeX 1.1, AlProTeX 1.4 Hardware: Any platform with (La)TeX Languages: Any language Formatter: TeX or LaTeX Availability: Anonymous ftp from: ftp.cis.ohio-state.edu : pub/tex/osu/gurari/ LPA:/independent Readme: With bundle above Description: + Easy to use + Extensible + Language independent + Multiple output files + Fast (single compilation provides output and dvi files) + No installation is needed besides copying the files (written in TeX) Introduction of main features and examples in pub/tex/osu/gurari/LitProg Complete manual in Eitan M. Gurari, "TeX and LaTeX: Drawing and Literate Programming", McGraw-Hill, 1994 Support: gurari@cis.ohio-state.edu 8.19. RWEB Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/reduce Readme: Unknown Description: Web generator in AWK. Support: Unknown 8.20. SchemeWEB Developer: John D. Ramsdell Version: 2.1 Hardware: Unix and DOS platforms Languages: Any dialect of Lisp. Formatter: LaTeX. Availability: The Unix version is in the Scheme Repository and it is available via anonymous ftp from: cs.indiana.edu:/pub/scheme-repository/utl/schemeweb.sh LPA:/lisp CTAN:/tex-archive/web/schemeweb The DOS version is part of the PCS/Geneva Scheme system which is available via anonymous ftp from: cui.unige.ch:/pub/pcs LPA:/machines/ms-dos Readme: In bundle with above. Description: SchemeWEB is a Unix filter that allows you to generate both Lisp and LaTeX code from one source file. The generated LaTeX code formats Lisp programs in typewriter font obeying the spacing in the source file. Comments can include arbitrary LaTeX commands. SchemeWEB was originally developed for the Scheme dialect of Lisp, but it can easily be used with most other dialects. Support: Bug reports to ramsdell@mitre.org. 8.21. SpideryWEB Developer: Norman Ramsey Version: Unknown Hardware: Unix and DOS platforms Languages: Most Algol-like languages, including C, Ada, Pascal, Awk, and many others. Formatter: Plain TeX and latex for text formatters. Availability: Anonymous ftp from: CTAN LPA:/spiderweb Readme: In distribution. Description: A system for building language-dependent WEBs. Spider is frozen; no further development is planned. Support: Bug reports to spider-bugs@oracorp.com. 8.22. WEB Developer: Donald Knuth Version: Unknown Hardware: Unknown Languages: Pascal Formatter: TeX (of course! ;-) Availability: Anonymous ftp from: LPA:/pascal Readme: Unknown Description: This is the original software that started it all. The original TeX processor was written in WEB. Support: None known. 8.23. WinWordWEB Developer: Lee Wittenberg Version: Unknown Hardware: Needs Microsoft Word for Windows, v.2.x, and, of course, MS-Windows 3.x. Languages: Any programming language. Formatter: Word for Windows 2.x for text formatting and file maintenance. Availability: Anonymous ftp from: bart.kean.edu:pub/leew LPA:/machines/ms-dos World-Wide Web (WWW) Readme: WORDWEB.DOC in the downloadable package describes the system. Description: WinWordWEB is a set of a Word for Windows macros (plus a paragraph style) that provide a crude literate programming environment. The ``look and feel'' of the system is based on Norman Ramsey's noweb, but can easily be modified to suit individual tastes. Support: None. WinWordWEB was written as a prototype to see if a WYSIWYG literate programming system was possible. It is intended as a jumping off point for future work by others. However, the system is surprisingly usable as it stands, and the author is interested in hearing from users (satisfied and dissatisfied). Anyone interested in actively supporting (and improving) the product should contact the author via email. 9. Are there other tools I should know about? First of all, I'll list some not-quite-literate-programming tools. Some may consider these to be pretty-printers. Others may call them literate programming tools. In any event, they don't seem to be quite in the same category as the tools listed above, so I'll include them here. 9.1. C2LaTeX Developer: John D. Ramsdell Version: Unknown Hardware: Unix Languages: C Formatter: LaTeX but it's easy to change the formatter. Availability: Anonymous ftp from omnigate.clarkson.edu:/pub/tex/tex-programs/c2latex. Readme: Absent. Documentation is in the C source for c2latex. Description: C2latex provides simple support for literate programming in C. Given a C source file in which the comments have been written in LaTeX, c2latex converts the C source file into a LaTeX source file. It can be used to produce typeset listings of C programs and/or documentation associated with the program. C2latex produces LaTeX source by implementing a small number of rules. A C comment that starts at the beginning of a line is copied unmodified into the LaTeX source file. Otherwise, non-blank lines are surrounded by a pair of formatting commands (\begin{flushleft} and \end{flushleft}), and the lines are separated by \\*. Each non-blank line is formatted using LaTeX's \verb command, except comments within the line are formatted in an \mbox. Support: Send bug reports to ramsdell@mitre.org. 9.2. c2cweb Developer: Werner Lemberg Version: 1.5 Hardware: DOS, OS/2, Unix (gcc) - CWEB source included Languages: C, C++ Formatter: TeX Availability: Anonymous ftp from CTAN:/web/c_cpp/c2cweb Readme: In distribution. Description: c2cweb will transform plain C or C++ code into a CWEB file to get a pretty formatted output. A modified CWEAVE (which transforms the CWEB file into a TeX file, see below) is included also. Support: Werner Lemberg 9.3. c2man language: C, nroff, texinfo, latex, html package: c2man version: 2.0 patchlevel 33 parts: documentation generator (C -> nroff -man, -> texinfo, ->latex, -> html) author: Graham Stoney location: ftp from any comp.sources.misc archive, in volume42 (the version in the comp.sources.reviewed archive is obsolete) ftp /pub/Unix/Util/c2man-2.0.*.tar.gz from dnpap.et.tudelft.nl Australia: ftp /usenet/comp.sources.misc/volume42/c2man-2.0/* from archie.au N.America: ftp /usenet/comp.sources.misc/volume42/c2man-2.0/* from ftp.wustl.edu Europe: ftp /News/comp.sources.misc/volume42/c2man-2.0/* from ftp.irisa.fr Japan: ftp /pub/NetNews/comp.sources.misc/volume42/c2man-2.0/* from ftp.iij.ad.jp Patches: ftp pub/netnews/sources.bugs/volume93/sep/c2man* from lth.se description: c2man is an automatic documentation tool that extracts comments from C source code to generate functional interface documentation in the same format as sections 2 & 3 of the Unix Programmer's Manual. It requires minimal effort from the programmer by looking for comments in the usual places near the objects they document, rather than imposing a rigid function-comment syntax or requiring that the programmer learn and use a typesetting language. Acceptable documentation can often be generated from existing code with no modifications. conformance: supports both K&R and ISO/ANSI C coding styles features: + generates output in nroff -man, TeXinfo, LaTeX or HTML format + handles comments as part of the language grammar + automagically documents enum parameter & return values + handles C (/* */) and C++ (//) style comments - doesn't handle C++ grammar (yet) requires: yacc/byacc/bison, lex/flex, and nroff/groff/texinfo/LaTeX. ports: Unix, OS/2, MSDOS, VMS. portability: very high for unix, via Configure status: actively developed; contributions by users are encouraged. discussion: via a mailing list: send "subscribe c2man " (in the message body) to listserv@research.canon.oz.au help: from the author and other users on the mailing list: c2man@research.canon.oz.au announcements: patches appear first in comp.sources.bugs, and then in comp.sources.misc. updated: 1994/10/07 9.4. cnoweb Developer: Jim Fox Version: 1.4 (January 4, 1991) Hardware: Anything with C and TeX. Languages: C Formatter: Plain TeX. Availability: Anonymous ftp from: CTAN LPA:/c.c++ Readme: Unknown, cnoweb.tex contains documentation. Description: cnoweb is as it's name describes: write C, not web. No tangling or weaving is implemented. Documentation (between standard /* */ delimiteres) is written in TeX. cnoweb provides typesetting of documentation, an table of contents of routines, and pretty-printing of C source. Support: None known. 9.5. Fold2Web Developer: Bernhard Lang Version: V0.8 Hardware: MSDOS Languages: All (must allow comment lines) Formatter: LaTeX Availability: Anonymous ftp from: kirk.ti1.tu-harburg.de (134.28.41.50) /pub/fold2web/readme /pub/fold2web/fold2web.zip Readme: In distribution Description: The idea behind the Fold2Web tool is the following: A programmer can write his program source with a folding editor and later map the folded source files automatically to WEB-files. The generated WEB-files can then be modified by inserting required documentations. The advantage by starting program developement with original sources is to get short design cycles during the compile/debug steps. By using a folding editor the global structuring information can be already captured in folds during this developement phase. Fold information is typically stored in comment lines and thus will not affect the efficiency of the compile/debug design cycle. Some folding editors and a folding mode for the emacs are available (e.g. see our FUE folding editor for MSDOS machines which is a modified micro emacs. Pick it at kirk in directory /pub/fold2web). After reaching a stable version of a program source its time to convert the source file to a WEB-file and do the program documentation. Fold2Web is written to convert folded source text of any programming language to nuweb files. The folded structure is kept by mapping folds to scraps. Fold markers which differ between languages due to different ways of specifying comments can be configured for each language. Good results can also achived when given but poor documented program sources have to be modified. Such sources can be folded using a folding editor to extract the global structures. This offers a global view to the program structures and help to understand its functionality. Furthermore the program code is not affected, only comment lines are inserted. Once folded the program source can be automatically translated to a WEB document using the above tool. Support: email to lang@tu-harburg.d400.de 9.6. Funnelweb Mode Developer: Daniel Simmons Version: Unknown Availability: http://www.miscrit.be/~ddw Description: The other day I did a quick hack to nuweb.el as included with the nuweb distribution so as to make a funnelweb-mode.el. I've only used it briefly, and I'm sure that it can be improved quite a bit. I've been thinking about adding support for folding on sections, a pull-down menu to select macro definitions (like the recent functions posted to gnu.emacs.sources for a C function definition pull-down menu) and some kind of tags support for funnelweb. Support: Unknown 9.7. noweb.el Developer: Bruce Stephens Version: Unknown. Availability: LitProg archives (in an email message). Description: This is a very simple mode I just hacked up. There's a lot wrong with it, but I thought others may be interested, even as it stands. It *requires* text properties, and assumes those used in GNU Emacs 19.22; it'll quite likely work with Lucid Emacs, but I haven't tried it. I use it with auctex8.1 and cc-mode 3.229, both of which are loaded separately (I think my emacs is dumped with them, in fact). The idea is to have one mode (which calls itself c-mode, but actually has LaTeX-mode keybindings) generally (this means that the code is hilighted nicely), and have the code chunks use a different keymap. Support: Email to bruce@liverpool.ac.uk 9.8. nuweb.el Developer: Dominique de Waleffe Version: 1.99 Availability: Anonymous ftp from: LPA CTAN Description: Provides a major mode extending Auctex for editing nuweb files. Main features (in 2.0): - Edit scrap bodies in a separate buffer in a different mode (selected using emacs defaults for files, specific indication -*-mode-*-, or a buffer-local variable) - Extends Auctex commands so that nuweb is called before LaTeX, - Easy navigation on scrap definition and use points. - Now creates an imenu (C-M-mouse1) with user index entries, macro definition positions and file definition positions. Support: Email to ddw@acm.org 9.9. TIE Developer: Unknown Version: Unknown Hardware: Unknown Availability: Anonymous ftp from: LPA:/Tools Readme: Unknown Description: This software merges change files. Support: Unknown 9.10. Web mode Developer: Bart Childs Version: Unknown Tools supported: web, fweb, cweb, funnelweb Availability: Anonymous ftp from ftp.cs.tamu.edu:pub/tex-web/web/EMACS.web-mode thrain.anu.edu.au:pub/web/EMACS.web-mode Description: This version works with versions 18 and 19 of Emacs to be best of my knowledge. I have cleaned up a number of documentation items ... In the same directory is wm_refcard.tex which is an edited version of the famous one to include some web-mode commands. The files limbo* are related to its use and notice that half them have an uppercase L in them for LaTeX. The setup is based upon the fact that we (I am not alone here) primarily use FWEB for C and Fortran programming. We are using version 1.40 of FWEB although John Krommes warns that it is not mature and the manual is not yet updated. The info files are! We are using LaTeX almost exclusively. That will likely change and we will revert to version 1.30 if the final form of 1.40 cannot return to the simple section numbers and avoid the HORRIBLE LATEX 0.1.7.2.4.6 type section numbers. Support: Unknown 10. What other resources are available? 10.1. World Wide Web An untapped resource (by me anyway ;-) is the World Wide Web. Marcus Speh has expended considerable effort in this regard. If you're connected to WWW, then access: http://info.desy.de:80/user/projects/LitProg.html If you aren't connected to WWW, telnet to info.cern.ch and explore. You can reach Marcus' literate programming pages by typing: go http://info.desy.de:80/user/projects/LitProg.html or use a WWW browser and access the URL ftp://rtfm.mit.edu/pub/usenet/news-answers/www/resources/literate-programming Help for people who have only Email and neither WWW nor telnet, can be obtained by Email from TEST-LIST@INFO.CERN.CH by sending a message, SEND , for example, SEND http://info.desy.de:80/user/projects/LitProg.html to retrieve the LitProg library page. A help file can be retrieved by sending a message to the list server above with the text HELP in the body of the message. Instructions will be returned by email. For literate programming documents, you can try anonymous ftp to rtfm.mit.edu and retrieve the official Usenet resource file /pub/usenet/news.answers/www/resources/literate-programming 10.2. TeX Resources Another resource of interest to literate programmers is the comp.text.tex newsgroup. If you're using (La)TeX as your typsetting system and have access to internet, then you should investigate this resource. Another reason the TeX resources should be important is that so many of the literate programming tools rely on either plain TeX or LaTeX as their text formatter. (La)TeX software systems exist for most computing platforms. These systems can be found on CTAN and other major archive sites. Use archie to find them or simply ftp to one of the CTAN sites and browse. 11. Are there any code examples? Examples of web programs are included with the FWEB, CWEB, and noweb distributions. nuweb is written in itself. Cameron Smith converted the K&R calculator program into a literate program. It can be retrieved by anonymous ftp from: niord.shsu.edu [192.92.115.8] directory kr-cweb-sample as krcwsamp.zip or from LPA/Documentation Ross Williams has released a funnelweb example. You can retrieve this file from node ftp.adelaide.edu.au 129.127.40.3 as /pub/funnelweb/examples/except.* This file should be on CTAN as well. Lee Wittenberg has posted a few litprog examples. They are available via anonymous ftp from: ftp://samson.kean.edu/pub/leew/samples.LP The Stanford GraphBase is a large collection of programs by Don Knuth for doing all kinds of computations and games with graphs; it is writ- ten in (Levy/Knuth) CWEB. More details in the distribution. It is available via anonymous ftp from: labrea.stanford.edu:/pub/sgb 12. Bibliographies Nelson Beebe has collected an extensive bibliography treating literate programming. His work is available for anonymous ftp from ftp.math.utah.edu 128.110.198.2 in directory /pub/tex/bib as files: litprog.bib litprog.ltx litprog.twx. Although I have not verified this, LPA is an alternate source for these files. Note that they are updated frequently (Nelson says sev- eral times each week), so be sure to get a fresh copy before extensive use. Joachim Schrod indicates that these files may be updated daily and can be retrieved via anonymous ftp at LPA/documentation. 13. How to anonymously ftp Pretty much everything mentioned here is available by anonymous FTP. FAQ lists cross-posted to news.answers and rec.answers can be gotten from rtfm.mit.edu 18.181.0.24, under /pub/usenet/news.answers or under /pub/usenet/more.specific.group.name "anonymous FTP" is just a way for files to be stored where anyone can retrieve them over the Net. For example, to retrieve the latest version of the literate programming FAQ, do the following: > ftp rtfm.mit.edu /* connect to the site; message follows */ > anonymous /* type this when it asks for your name */ > /* type your address as the password */ > cd /pub/usenet /* go to the directory you want to be */ > cd comp.programming.literate /* one level down (no slash). */ > dir /* look at what's there */ > get literate-progamming-faq /* get the file; case-sensitive */ > quit /* stop this mysterious thing */ If your FTP program complains that it doesn't know where the site you want to use is, type the numerical address instead of the sitename: > ftp 18.181.0.24 /* connect with numerical address */ If you don't have ftp access, send e-mail to mail-server@rtfm.mit.edu with the single word "help" in the body of the message. Getting binary files (executables, or any compressed files) is only slightly more difficult. You need to set binary mode inside FTP before you transfer the file. > binary /* set binary transfer mode */ > ascii /* set back to text transfer mode */ FAQs and spoiler lists are generally ascii files; everything else is generally binary files. Some common extensions on binary files in archive sites are: .Z Compressed; extract with uncompress .tar.Z Compressed 'tape archive'; uncompress then untar or tar -xvf .gz or .z Gnu gzip; use gunzip (available from prep.gnu.ai.mit.edu) .sit (Mac) StufIt archive .zip Extract with Zip or Unzip .zoo Yet another archive/compress program .lhe (Amiga) ? .lzh Lha archive program. .arj (PC) Arj archive program. .exe (PC) Sometimes self-extracting archives-just execute them. .uue or .UUE Transfer as text file; use uudecode to convert to binary .hqx (Mac) BinHex format; transfer in text mode Generic help can be found in the FAQs of comp.binaries. for how to transfer, extract, and virus-check binary files. (At rtfm.mit.edu) If you can't FTP from your site, use one of the following ftp-by-mail servers: ftpmail@decwrl.dec.com ftpmail@src.doc.ic.ac.uk ftpmail@cs.uow.edu.au ftpmail@grasp.insa-lyon.fr For complete instructions, send a message reading "help" to the server. If you don't know exactly what you're looking for, or exactly where it is, there are programs and servers that can help you. For more info, send e-mail to mail-server@rtfm.mit.with with the body of the message reading send usenet/news.answers/finding-sources Thanks to Aliza R. Panitz (the "buglady") for this text. I copied it verbatim from her post on faq-maintainers with only minor modifications. 14. Acknowledgements This document would not have happened without the help of many people. Among them are Marcus Speh, George Greenwade, Rob Beezer, Joachim Schrod, Piet van Oostrum, and Ross N. Williams. A special thanks to Aliza R. Panitz for the text describing how to execute an anonymous ftp for files of interest. Any omissions from these acknowledgements should be considered an act of stupidity on my part. Of course, the authors of literate programming tools mentioned above all play a vital role in the vitality of literate programming. Furthermore, participants in the comp.programming.literate newsgroup (and associated mailing list) all contributed in various fashions. Thank all of you. 15. End notes This document will continue to evolve. I'm planning on adding entries for additional literate programming tools and will expand the sections on examples as more examples become available. Tools I will include are WEB (the original pascal version) for starters. Others will be added as I find and document them. Omission of a particular tool should not be considered a snub in any sense--simply an error or oversight on my part. 18-Feb-1998 12:44:14-GMT,1630;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 FAA28908 for ; Wed, 18 Feb 1998 05:44:12 -0700 (MST) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from rzm31.rz.uni-hildesheim.de by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 18 Feb 1998 06:35:06 EST Received: from rzm23.uni-hildesheim.de (rzm23.rz.uni-hildesheim.de [147.172.16.33]) by rzm31.rz.uni-hildesheim.de (8.8.8/8.8.8) with SMTP for id ; Wed, 18 Feb 1998 13:34:45 +0100 (MET) Received: from localhost by rzm23.uni-hildesheim.de (SMI-8.6/SMI-SVR4) id NAA11377; Wed, 18 Feb 1998 13:34:42 +0100 Date: Wed, 18 Feb 1998 13:34:42 +0100 (MET) From: Torsten Pinkepank Reply-To: LitProg@SHSU.edu, tpin0127@rz.uni-hildesheim.de To: LitProg@SHSU.edu Subject: Compiler Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII > Hi Johny ! > > " Is there such a thing as a Compiler for Basic...??? If so, where can I > get one?" Very good question- I dont know !! > But now I'm looking for a compiler, and I cant find one ! > You wrote your massage in 1995, three years ago ? > Perhaps you've found a compiler ?? ( ah, .... if so, where ????!!!!!) > > Thanks !! > > py > \||/ ( .. ) --------------------oOO--(__)--OOo-------------------------- 20-Feb-1998 7:25:47-GMT,1294;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 AAA00611 for ; Fri, 20 Feb 1998 00:25:45 -0700 (MST) 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, 20 Feb 1998 01:21:46 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Seeking logo for literate-programming tool Date: 19 Feb 1998 18:02:29 GMT Message-ID: <6chs3l$ndv$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu I've just learned that I'm the only person in my department whose projects don't have cute logos attached. (To see some logos, you can visit www.cs.virginia.edu --- try not to get nauseated.) So, I'm soliciting ideas or actual artwork for a logo for Noweb. (I'd love to see something like a quill pen writing a program, but I'm open to all ideas.) In addition to notoriety (if desired), I'm offering dinner for two at your favorite restaurant (to be reimbursed in US$) to anyone who comes up with artwork that I like well enough to use. Norman -- Norman Ramsey http://www.cs.virginia.edu/~nr 20-Feb-1998 15:46:20-GMT,7046;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 IAA10737 for ; Fri, 20 Feb 1998 08:46:19 -0700 (MST) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from dfw-ix12.ix.netcom.com by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 20 Feb 1998 09:22:13 EST Received: (from smap@localhost) by dfw-ix12.ix.netcom.com (8.8.4/8.8.4) id IAA19017; Fri, 20 Feb 1998 08:57:50 -0600 (CST) Date: Fri, 20 Feb 1998 08:57:50 -0600 (CST) From: centurymkting@hotmail.com Reply-To: LitProg@SHSU.edu, centurymkting@hotmail.com Message-ID: <199802201457.IAA19017@dfw-ix12.ix.netcom.com> Received: from wt-d5-217.wt.net(208.201.49.217) by dfw-ix12.ix.netcom.com via smap (V1.3) id rma018681; Fri Feb 20 08:56:18 1998 Subject: FREE ADVERTISING!!! FREE ADVERTISING FOR YOUR BUSINESS, PRODUCT, SERVICE, OR MONEY-MAKING OPPORTUNITY!! REACH "MILLIONS" - ABSOLUTELY FREE - WITH OUR AMAZING, NEW USER-FRIENDLY EMAIL SOFTWARE! ******************************************************************** FREE 10 Page WEB SITE DESIGN Must be hosted in our INSTANT SUCCESS MALL FOR $50.00 MONTHLY (NO OTHER PURCHASE NECESSARY) ******************************************************************** Now THE PURPOSE IN WHICH I AM WRITING TODAY ! Dear Friend, Are you ready to learn how you can create an immediate "cash-flow explosion"? Would you like to know how I've totally eliminated most of my advertising & marketing costs in one of my businesses - and how YOU can do the same?!? Are you ready to absolutely . . . . BLOW YOUR COMPETITION OUT OF THE WATER! If so, I have some very, very exciting news for you! But first, let me ask you a few questions about your business . . . Does the high cost of advertising prevent your business from really taking off and going to the next level? Does it sometimes create a major strain on your cash flow? And if you're a NEW business, the high cost sure does make it tough just "getting off the ground", doesn't it? Let's face it. Marketing and advertising is the lifeblood of your business. It makes or breaks you. And unfortunately, its usually the most costly thing a business pays for. Do you know why more than 90% of all businesses fail? They're undercapitalized. In other words, NO MONEY FOR MARKETING! It's a BIG, BIG PROBLEM. UNTIL NOW! . . . . If you could "wipe out" most of your advertising costs, and still be able to reach not thousands . . . but "millions" of potential customers - absolutely FREE - would you be interested in finding out HOW? I thought you would. Hi, my name is Dwight DuBose and I'm an Entrepreneur and Direct Marketing Expert. What I'm about to reveal to you can turn your business into a predictable, turnkey, money-making machine - literally overnight! At virtually ZERO COST! Just like its doing for me and hundreds of others. REACH MILLIONS OF PEOPLE - ABSOLUTELY FREE! Let's cut to the chase. What I'm talking about here is an amazing new piece of software called NetContact - that allows you to send Email messages (your sales message) to thousands and thousands of people - EVERY SINGLE HOUR! And yes - absolutely FREE! Amazing, huh? I'm telling you, direct Emailing with NetContact will become your #1 form of advertising, and without a doubt . . . . YOUR ULTIMATE CASH FLOW GENERATOR! So let me tell you more . . . . HERE ARE SOME UNIQUE NETCONTACT FEATURES THAT MAKE IT THE ULTIMATE MARKETING TOOL: * Emailing is FREE! Your only "operating" expense is a special internet connection, which as a client you'll get full details on. The cost is only about $21 a week! * NO POSTAGE & MAILING COSTS - The last 1000 piece direct mailing I did cost me $642. Emailing that same 1000 or even 1,000,000 pieces now costs me NOTHING! * NO PRINTING OR MATERIAL COSTS - On another 1000 piece mailing campaign, my 4-page sales letter cost me $100 in print charges, with the envelopes costing another $40. Those days are gone! Emailing eliminates all of that! * YOU CAN SEND UP TO 10,000 MESSAGES - EVERY SINGLE HOUR! I don't recommend it though - unless you're really prepared to handle a flood of responses, inquiries & real SALES! * PERSONALIZED MESSAGES - NetContact can actually address your prospective customers by their first and last name. Just think how your sales can explode when prospects receive an Email message that looks like you wrote it specifically for them! Believe me, personalized messages are 100 times more likely to get read. And to my knowledge, No other Email software on the market has this feature! * INSTANT SALES - Once you send your Email, the recipient gets it about 60 seconds later. Just imagine . . . if you wanted to Email 10,000 people, you could actually have inquiries, people calling you, or even flat-out sales, WELL BEFORE YOU EVEN FINISH MAILING! If you did direct mail, you'd have to wait 6-10 days for your first response! NO MORE WAITING! TIME IS MONEY! * BUILD TARGETED LISTS IN ANY CATEGORY - NetContact can create lists in any category from the online services and the internet. Want to target home-based businesses? You can do it. Cooking enthusiasts? No problem. How about a list of Multi-level Marketers? I'll tell you, there's a virtual goldmine of names available in this category! My friend, the possibilities are endless. YOU'LL NEVER HAVE TO BUY ANOTHER MAILING LIST EVER AGAIN! *LIGHTNING FAST - You can download up to 15,000 Email addresses an hour! * AMAZINGLY SIMPLE TO USE - I'm not a computer guy, but I was up and running the very first day I got it. Actually, the very first hour! It's TOTALLY DUMMY PROOF! (forgive the term, you know what I mean - it's simple!) Feel Free to call me for a Free Download test to "SEE IT WORK" Sincerely, Dwight DuBose 1-800-374-3611 P.S. Send for NetContact now and get unlimited FREE ADVERTISING to "millions of people" for your business, product, service or money-making opportunity! P.P.S. Imagine . . . no more worries about the high cost of advertising and how to generate a steady and predictable stream of leads and sales. With one simple, but revolutionary marketing tool - you can create an immediate cash-flow explosion, eliminate most of your advertising and marketing costs, and absolutely . . . BLOW YOUR COMPETITION OUT OF THE WATER! P.P.P.S. If you order within the next 7 days, you'll get 6 BONUS GIFTS - with a total value of $824.90 - absolutely FREE! These gifts ALONE are enough to turn your current business into a virtual cash flow machine! In addition, your FREE BONUSES are yours to keep - forever! No matter what! Fair enough? * * * * * * * * * * * * * * * * * 30 DAY NO RISK TRIAL OFFER * * * * * * * * * * * * * * * * * * CALL NOW FOR MY PERSONAL ASSISTANCE 1-800-374-3611 _ 22-Feb-1998 13:36:16-GMT,1148;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 GAA07957 for ; Sun, 22 Feb 1998 06:36:15 -0700 (MST) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 22 Feb 1998 07:30:38 EST From: Jason Alexander Reply-To: LitProg@SHSU.edu, jalex@ea.oac.uci.edu Subject: Book-style CWEB output? Date: 21 Feb 1998 20:34:28 GMT Message-ID: <6cndok$gvg$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Does anyone know if it is possible to easily get book-style output (i.e., with chapters, table of contents, and the index at the end) from Cweave? If so, does this require rewriting parts of the TeX input file used by the generated TeX file, or does it require a different version of the Cweave executable? Thanks, Jason Alexander University of California, Irvine 25-Feb-1998 13:41:32-GMT,1839;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 GAA18301 for ; Wed, 25 Feb 1998 06:41:31 -0700 (MST) 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, 25 Feb 1998 07:27:25 EST From: P.T.H.Tutelaers@urc.tue.nl (Piet Tutelaers) Reply-To: LitProg@SHSU.edu, P.T.H.Tutelaers@urc.tue.nl Subject: Literate programming class style? Date: 25 Feb 1998 13:14:40 GMT Message-ID: <6d15g0$jaf$1@elna.ethz.ch> To: LitProg@SHSU.edu Does somebody have any experience with literate programming in combination with a programming class? It seems natural to do this in HTML so that one has the possibility to click on a <> with the result that the details of this piece are exploded. Another click on the <> target and the details disappear. before the click after the click ...... ....... <>; <>; ...... expansion lines for piece of code ....... So the idea is to show the expansion in the context of the containing program and not as a separate piece of code. It would also be nice to have a standard colouring scheme to present keywords and meta symbols. Thanks for any advice, suggestion and/or examples! --Piet E-mail: rcpt@urc.tue.nl __o Piet Tutelaers _`\<,_ Computer Center Room RC 1.82 phone: +31 (0)40 2474541 (_)/ (_) Eindhoven University of Technology fax: +31 (0)40 2434438 Save nature P.O. Box 513, 5600 MB Eindhoven, NL 25-Feb-1998 22:25:29-GMT,865;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 PAA02728 for ; Wed, 25 Feb 1998 15:25:27 -0700 (MST) 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, 25 Feb 1998 16:14:21 EST From: saturday99@aol.com (Saturday99) Reply-To: LitProg@SHSU.edu, saturday99@aol.com Subject: Borland Compiler help Date: 25 Feb 1998 21:26:11 GMT Message-ID: <19980225212601.QAA21746@ladder03.news.aol.com> To: LitProg@SHSU.edu I'm looking for a copy of Borland's dos compiler Turbo C ver 2.00 but can't get hold of it anywhere. Can anyone help and point me to a ftp site or elsewhere? Any help much appreciated. 25-Feb-1998 23:20:46-GMT,2557;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 QAA04267 for ; Wed, 25 Feb 1998 16:20:45 -0700 (MST) 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, 25 Feb 1998 17:13:36 EST From: Mark Gritter Reply-To: LitProg@SHSU.edu, mgritter@pup16.Stanford.EDU Subject: Re: Literate programming class style? Date: 25 Feb 1998 22:41:24 GMT Message-ID: <6d26mk$gh0$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu P.T.H.Tutelaers@urc.tue.nl (Piet Tutelaers) writes: > Does somebody have any experience with literate programming in > combination with a programming class? I wrote my compilers class projects using noweb; it seemed to work fairly well. Turning the weaved version into something hand-in-able was a matter of cutting out old and irrelevant stuff, and re-writing the introduction each time. At least, I received no complaints... The style adapts well to the sort of explanation expected in a programming assignment: related pieces of code can be placed next to each other, even if they're in separate classes. (More a problem in Java than C++.) > It seems natural to do this in > HTML so that one has the possibility to click on a <> > with the result that the details of this piece are exploded. Another > click on the <> target and the details disappear. > > before the click after the click > > ...... ....... > <>; <>; > ...... expansion lines > for piece of code > ....... > > > So the idea is to show the expansion in the context of the containing > program and not as a separate piece of code. It would also be nice to > have a standard colouring scheme to present keywords and meta symbols. > This is an interesting idea, although you'd want to do it dynamically rather than generating lots of HTML pages with virtually identical contents... -- Mark Gritter http://www.stanford.edu/~mgritter/ /* ... the results may be unreliable because a small inaccuracy may */ /* affect the result; this is especially true of = and zero?. When in */ /* doubt, consult a numerical analyst. -- Revised^5 Report on Scheme */ 26-Feb-1998 8:30:16-GMT,1295;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 BAA16612 for ; Thu, 26 Feb 1998 01:30:15 -0700 (MST) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 26 Feb 1998 02:12:17 EST From: David Martin Reply-To: LitProg@SHSU.edu, dmartin@cs.berkeley.edu Subject: modular literate programming Date: 25 Feb 1998 23:46:06 GMT Message-ID: <6d2afu$i8b$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 am trying to find a way to do literate programming in a modular manner, and have not found a satisfactory way to do so with noweb. The noweb model seems to be that there is _one_ noweb file. This is clearly not satisfactory. Putting multiple noweb files on the tangle command-line is not general, and also not satisfacory. Am I missing an elegant solution for noweb? Or should I use nuweb, which has an include directive? LaTeX and C++ is my modus operandi, if that makes a difference... David Martin 26-Feb-1998 9:38:38-GMT,1805;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 CAA18145 for ; Thu, 26 Feb 1998 02:38:37 -0700 (MST) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 26 Feb 1998 03:29:05 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: modular literate programming Date: 25 Feb 1998 23:51:56 GMT Message-ID: <6d2aqs$ig7$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu In article <6d2afu$i8b$1@murdoch.acc.Virginia.EDU>, David Martin wrote: >I am trying to find a way to do literate programming in a modular >manner, and have not found a satisfactory way to do so with noweb. The >noweb model seems to be that there is _one_ noweb file. This is clearly >not satisfactory. Putting multiple noweb files on the tangle >command-line is not general, and also not satisfacory. I don't think I understand your complaint. It seems the dual of this complaint: I am trying to find a way to do literate programming in a modular manner, and have not found a satisfactory way to do so with nuweb. The nuweb model seems to be that there is _one_ nuweb file. This is clearly not satisfactory. Including multiple nuweb files in the master nuweb file with @i is not general, and also not satisfacory. Perhaps you could supply a concrete example of a program you would like to express in noweb, but can't? Norman P.S. On a Unix system, one could easily whip up a noweb filter that would implement inclusion---I bet it's a sh/awk script of under 10 lines. 26-Feb-1998 9:41:29-GMT,986;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 CAA18209 for ; Thu, 26 Feb 1998 02:41:28 -0700 (MST) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 26 Feb 1998 03:34:17 EST From: Josep Vela Reply-To: LitProg@SHSU.edu, jvela@fihoca.com Subject: Literate programming with SGML Date: 26 Feb 1998 03:10:10 GMT Message-ID: <6d2mei$3r3$1@news.interlog.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Hi. Does anybody know referecences about literate programming with SGML? -- Josep Vela - R&D Manager grup FIHOCA Avda. Roma, 25 08029 Barcelona - Spain Phone: +34 3 410 90 00 - Fax: +34 3 410 30 81 26-Feb-1998 9:52:58-GMT,2852;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 CAA18430 for ; Thu, 26 Feb 1998 02:52:57 -0700 (MST) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 26 Feb 1998 03:40:06 EST From: Aleksandar Bakic Reply-To: LitProg@SHSU.edu, bakicale@brazil.tcimet.net Subject: Re: Literate programming class style? Date: 26 Feb 1998 03:12:59 GMT Message-ID: <6d2mjr$nb1$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu One can use IDVI for things like this (see http://www.geom.umn.edu/java/idvi/). Aleks Mark Gritter wrote: > > P.T.H.Tutelaers@urc.tue.nl (Piet Tutelaers) writes: > > > Does somebody have any experience with literate programming in > > combination with a programming class? > > I wrote my compilers class projects using noweb; it seemed to work > fairly well. Turning the weaved version into something hand-in-able > was a matter of cutting out old and irrelevant stuff, and re-writing > the introduction each time. At least, I received no complaints... > The style adapts well to the sort of explanation expected in a > programming assignment: related pieces of code can be placed next to > each other, even if they're in separate classes. (More a problem > in Java than C++.) > > > It seems natural to do this in > > HTML so that one has the possibility to click on a <> > > with the result that the details of this piece are exploded. Another > > click on the <> target and the details disappear. > > > > before the click after the click > > > > ...... ....... > > <>; <>; > > ...... expansion lines > > for piece of code > > ....... > > > > > > So the idea is to show the expansion in the context of the containing > > program and not as a separate piece of code. It would also be nice to > > have a standard colouring scheme to present keywords and meta symbols. > > > > This is an interesting idea, although you'd want to do it dynamically > rather than generating lots of HTML pages with virtually identical > contents... > > -- > Mark Gritter http://www.stanford.edu/~mgritter/ > /* ... the results may be unreliable because a small inaccuracy may */ > /* affect the result; this is especially true of = and zero?. When in */ > /* doubt, consult a numerical analyst. -- Revised^5 Report on Scheme */ 26-Feb-1998 10:24:43-GMT,2345;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 DAA19032 for ; Thu, 26 Feb 1998 03:24:42 -0700 (MST) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 26 Feb 1998 04:18:23 EST From: ajc@roe.ac.uk Reply-To: LitProg@SHSU.edu, ajc@roe.ac.uk Subject: Re: Literate programming class style? Date: 26 Feb 1998 10:07:24 GMT Message-ID: <6d3ess$48k$1@elna.ethz.ch> To: LitProg@SHSU.edu hi, slightly unrelated, but... i wrote a script that takes C code and inserts links, so that clicking on a function name takes you to the function definition. it is extremely buggy, but useful enough to be used by several people where i work. however, i would have to clear it with my employers before distributing it. on the other hand, there are similar programs in the public domain that try to do the same kind of thing (given C's syntax it is not quite trivial!). contact me if you need more info. andrew p.s. it would only work in unix - it is a perl script that calls several other programs (like the c preprocessor) p.p.s. doc++ does a better job for c++, but assumes that people write the code with documnetation in mind. my hack was to help me understand some rather old and poorly documented code. In article <6d15g0$jaf$1@elna.ethz.ch>, P.T.H.Tutelaers@urc.tue.nl (Piet Tutelaers) wrote: > Does somebody have any experience with literate programming in > combination with a programming class? It seems natural to do this in > HTML so that one has the possibility to click on a <> > with the result that the details of this piece are exploded. Another > click on the <> target and the details disappear. > > before the click after the click > > ...... ....... > <>; <>; > ...... expansion lines > for piece of code > ....... -----== Posted via Deja News, The Leader in Internet Discussion ==----- http://www.dejanews.com/ Now offering spam-free web-based newsreading 26-Feb-1998 12:23:08-GMT,1638;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 FAA21134 for ; Thu, 26 Feb 1998 05:23:07 -0700 (MST) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 26 Feb 1998 06:07:16 EST From: M.J.Rooney@wbmt.tudelft.nl (Marco Rooney) Reply-To: LitProg@SHSU.edu, M.J.Rooney@wbmt.tudelft.nl Subject: Re: Literate programming class style? Date: Thu, 26 Feb 1998 21:05:11 GMT Message-ID: <34f5d7d9.971019@news.tudelft.nl> To: LitProg@SHSU.edu P.T.H.Tutelaers@urc.tue.nl (Piet Tutelaers) wrote: > >Does somebody have any experience with literate programming in >combination with a programming class? It seems natural to do this in >HTML so that one has the possibility to click on a <> >with the result that the details of this piece are exploded. Another >click on the <> target and the details disappear. > > before the click after the click > > ...... ....... > <>; <>; > ...... expansion lines > for piece of code > ....... There is a OS and programming language called Oberon which is able to do that. The nature of the systems allows text to be folded etc. You can check http://www.ssw.uni-linz.ac.at/Projects/RevLitProg.html. IMHO this comes very close to the ultimate LP tool. Marco Rooney. 26-Feb-1998 22:25:42-GMT,1339;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 PAA06935 for ; Thu, 26 Feb 1998 15:25:39 -0700 (MST) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 26 Feb 1998 15:44:16 EST From: David Martin Reply-To: LitProg@SHSU.edu, dmartin@cs.berkeley.edu Subject: Re: modular literate programming Date: 26 Feb 1998 18:29:55 GMT Message-ID: <6d4cb3$iov$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: > P.S. On a Unix system, one could easily whip up a noweb filter that > would implement inclusion---I bet it's a sh/awk script of under 10 lines. Right, but then you can't transmit line information to the compiler properly. I just want to break my n[ou]web document into several files like it is commonly done with latex documents. I guess this isn't really modularity in the strict sense. I think it is nevertheless very useful, and it doesn't seem that you can do it with noweb (and get useful compiler messages). /dm 26-Feb-1998 22:35:56-GMT,1654;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id PAA07212 for ; Thu, 26 Feb 1998 15:35:54 -0700 (MST) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 26 Feb 1998 15:42:33 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: modular literate programming Date: 26 Feb 1998 19:43:41 GMT Message-ID: <6d4gld$l9h$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu > > P.S. On a Unix system, one could easily whip up a noweb filter that > > would implement inclusion---I bet it's a sh/awk script of under 10 lines. > > > > > Right, but then you can't transmit line information to the > compiler properly. OK, maybe 20 lines, since you must track @file and @line and @nl :-) > I just want to break my n[ou]web document into several files > like it is commonly done with latex documents. I guess this > isn't really modularity in the strict sense. I think it is > nevertheless very useful, and it doesn't seem that you can > do it with noweb (and get useful compiler messages). Aha. So what I do is write a bunch of .nw files, make .tex files using noweave -delay, and then I have a master document that contains lots of latex \include directives. This works just fine. If you want to see this style in action, check out http://www.cs.virginia.edu/~nr/toolkit/src/. The master document is source.nw. Norman 26-Feb-1998 23:15:14-GMT,1141;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 QAA08278 for ; Thu, 26 Feb 1998 16:15:13 -0700 (MST) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Thu, 26 Feb 1998 16:46:23 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: Literate programming class style? Date: 26 Feb 1998 19:53:41 GMT Message-ID: <6d4h85$ljp$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu In article <6d3ess$48k$1@elna.ethz.ch>, wrote: > slightly unrelated, but... i wrote a script that takes C code > and inserts links, so that clicking on a function name takes you > to the function definition. FYI, noweb does this. Try noweave -autodefs c -index -html foo.nw > foo.html The linking is based on pattern matching and works OK. One day somebody will take the lcc front end and do it right. Any volunteers? Norman 27-Feb-1998 15:56:46-GMT,7421;000000000001 Received: from plot79.math.utah.edu (beebe@plot79.math.utah.edu [128.110.198.3]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id IAA00838; Fri, 27 Feb 1998 08:56:45 -0700 (MST) From: "Nelson H. F. Beebe" Received: (from beebe@localhost) by plot79.math.utah.edu (8.8.5/8.8.5) id IAA24021; Fri, 27 Feb 1998 08:56:44 -0700 (MST) Date: Fri, 27 Feb 1998 08:56:44 -0700 (MST) To: LitProg@SHSU.edu, jvela@fihoca.com Cc: beebe@math.utah.edu X-US-Mail: "Center for Scientific Computing, University of Utah, 155 S 1400 E RM 233, Salt Lake City, UT 84112-0090, USA" X-Telephone: +1 801 581 5254 X-FAX: +1 801 581 4148 X-URL: http://www.math.utah.edu/~beebe Subject: Re: Literate programming with SGML Message-ID: On 26 Feb 1998 03:10:10 GMT, Josep Vela asked: >> Does anybody know referecences about literate programming with SGML? Here is what I found via bibsearch on my system: URL=ftp://ftp.math.utah.edu/pub/tex/bib/litprog.bib Line=2812 @InProceedings{MoralesGerman:1994:SPE, author = "D. Morales-German", title = "An {SGML-based} programming environment for literate programming", crossref = "Botsford:1994:PCI", pages = "42--49", month = "", year = "1994", bibdate = "Sat Sep 7 17:48:58 MDT 1996", abstract = "Literate programming is a documentation method that attempts to maintain consistency among the various design and program documents of a software system. Unfortunately, the majority of the literate programming tools do not have appropriate user interfaces and require the users to learn complicated and cryptic tagging languages. SGML is a metalanguage used to specify markup or tagging languages that can be used to encode the structure of documents. This paper describes how a markup language defined using SGML can be used as the basic method for structuring literate programming documents and can be made independent of the programming language. Furthermore, with SGML and tools to browse and edit SGML documents, literate programs can benefit from WYSIWYG editing and hypertext capabilities and can even include pictures and other graphics. In addition, syntax-directed editors that support SGML can hide the markup tags and thus remove the need to learn a markup language. Text databases that use SGML can also be used to store literate programs. As a result, literate programs can be browsed and queried using complex search expressions, a capability beyond most text editors. For example, the searches can involve combinations of structural and textual information. Because SGML is a popular and emerging standard, we can expect to have more powerful tools to manipulate many different forms of design and program documentation. This paper describes the issues involved in the development of a literate programming environment that uses SGML as the storage model.", acknowledgement = ack-nhfb, affiliation = "Dept. of Comput. Sci., Waterloo Univ., Ont., Canada", classification = "C6115 (Programming support); C6130D (Document processing techniques); C6130M (Multimedia); C6140D (High level languages)", keywords = "Complex search expressions; Consistency maintenance; Design documents; Document browsing; Document editing; Document structure encoding; Graphics; Hypertext; Literate programming; Markup language; Program documentation method; Program documents; SGML-based programming environment; Storage model; Syntax-directed editors; Tagging languages; Text databases; User interfaces; WYSIWYG editing", thesaurus = "Hypermedia; ISO standards; Page description languages; Programming environments; System documentation; Text editing", } URL=ftp://ftp.math.utah.edu/pub/tex/bib/sgml.bib Line=26754 @String{j-COMP-STANDARDS-INTERFACES = "Computer Standards and Interfaces"} @String{pub-ELS = "Elsevier Science Publishers B.V."} @String{pub-ELS:adr = "Amsterdam, The Netherlands"} @Article{Rath:1996:MSW, author = "H. H. Rath and H.-P. Wiedling", title = "Making {SGML} work: Introducing {SGML} into an enterprise and using its possibilities in advanced applications", journal = j-COMP-STANDARDS-INTERFACES, volume = "18", number = "1", publisher = pub-ELS, address = pub-ELS:adr, pages = "37--53", month = jan, year = "1996", CODEN = "CSTIEZ", ISSN = "0920-5489", bibdate = "Tue Apr 1 16:59:41 MST 1997", bibsource = "UnCover library database", acknowledgement = ack-nhfb, affiliation = "Comput. Graphics Center, Darmstadt, Germany", classcodes = "C6130D (Document processing techniques); C6140D (High level languages)", corpsource = "Comput. Graphics Center, Darmstadt, Germany", keywords = "analysis; document; document handling; exchange; hypermedia documents; HyTime; literate Programming; page description languages; product life cycle; SGML; SGML-based application; tagging; tailored SGML applications; text and graphics; World Wide Web", pubcountry = "Netherlands", treatment = "P Practical", } URL=ftp://ftp.math.utah.edu/pub/tex/bib/litprog.bib Line=3776 @Proceedings{Botsford:1994:PCI, editor = "J. Botsford and A. Gawman and M. Gentleman and E. Kidd and K. Lyons and J. Slonim", booktitle = "Proceedings. {CASCON} '94. Integrated Solutions", title = "Proceedings. {CASCON} '94. Integrated Solutions", publisher = "Nat. Res. Council Canada", address = "Ottawa, Ont., Canada", pages = "xxiv + 386", year = "1994", bibdate = "Sat Sep 7 17:48:58 MDT 1996", acknowledgement = ack-nhfb, confdate = "31 Oct.--3 Nov. 1994", conflocation = "Toronto, Ont., Canada", confsponsor = "IBM; Nat. Res. Council of Canada; Ind. Canada; Nat. Sci. and Eng. Res. Council", pubcountry = "Canada", } ---------------------------------------------------------------------------- - Nelson H. F. Beebe Tel: +1 801 581 5254 - - Center for Scientific Computing FAX: +1 801 581 4148 - - University of Utah Internet e-mail: beebe@math.utah.edu - - Department of Mathematics, 105 JWB beebe@acm.org - - 155 S 1400 E RM 233 beebe@ieee.org - - Salt Lake City, UT 84112-0090, USA URL: http://www.math.utah.edu/~beebe - ---------------------------------------------------------------------------- 27-Feb-1998 16:28:03-GMT,7733;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 JAA01704 for ; Fri, 27 Feb 1998 09:27:59 -0700 (MST) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from csc-sun.math.utah.edu by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 27 Feb 1998 09:57:29 EST Received: from plot79.math.utah.edu (beebe@plot79.math.utah.edu [128.110.198.3]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id IAA00838; Fri, 27 Feb 1998 08:56:45 -0700 (MST) From: "Nelson H. F. Beebe" Reply-To: LitProg@SHSU.edu, beebe@math.utah.edu Received: (from beebe@localhost) by plot79.math.utah.edu (8.8.5/8.8.5) id IAA24021; Fri, 27 Feb 1998 08:56:44 -0700 (MST) Date: Fri, 27 Feb 1998 08:56:44 -0700 (MST) To: LitProg@SHSU.edu, jvela@fihoca.com CC: beebe@math.utah.edu Subject: Re: Literate programming with SGML Message-ID: On 26 Feb 1998 03:10:10 GMT, Josep Vela asked: >> Does anybody know referecences about literate programming with SGML? Here is what I found via bibsearch on my system: URL=ftp://ftp.math.utah.edu/pub/tex/bib/litprog.bib Line=2812 @InProceedings{MoralesGerman:1994:SPE, author = "D. Morales-German", title = "An {SGML-based} programming environment for literate programming", crossref = "Botsford:1994:PCI", pages = "42--49", month = "", year = "1994", bibdate = "Sat Sep 7 17:48:58 MDT 1996", abstract = "Literate programming is a documentation method that attempts to maintain consistency among the various design and program documents of a software system. Unfortunately, the majority of the literate programming tools do not have appropriate user interfaces and require the users to learn complicated and cryptic tagging languages. SGML is a metalanguage used to specify markup or tagging languages that can be used to encode the structure of documents. This paper describes how a markup language defined using SGML can be used as the basic method for structuring literate programming documents and can be made independent of the programming language. Furthermore, with SGML and tools to browse and edit SGML documents, literate programs can benefit from WYSIWYG editing and hypertext capabilities and can even include pictures and other graphics. In addition, syntax-directed editors that support SGML can hide the markup tags and thus remove the need to learn a markup language. Text databases that use SGML can also be used to store literate programs. As a result, literate programs can be browsed and queried using complex search expressions, a capability beyond most text editors. For example, the searches can involve combinations of structural and textual information. Because SGML is a popular and emerging standard, we can expect to have more powerful tools to manipulate many different forms of design and program documentation. This paper describes the issues involved in the development of a literate programming environment that uses SGML as the storage model.", acknowledgement = ack-nhfb, affiliation = "Dept. of Comput. Sci., Waterloo Univ., Ont., Canada", classification = "C6115 (Programming support); C6130D (Document processing techniques); C6130M (Multimedia); C6140D (High level languages)", keywords = "Complex search expressions; Consistency maintenance; Design documents; Document browsing; Document editing; Document structure encoding; Graphics; Hypertext; Literate programming; Markup language; Program documentation method; Program documents; SGML-based programming environment; Storage model; Syntax-directed editors; Tagging languages; Text databases; User interfaces; WYSIWYG editing", thesaurus = "Hypermedia; ISO standards; Page description languages; Programming environments; System documentation; Text editing", } URL=ftp://ftp.math.utah.edu/pub/tex/bib/sgml.bib Line=26754 @String{j-COMP-STANDARDS-INTERFACES = "Computer Standards and Interfaces"} @String{pub-ELS = "Elsevier Science Publishers B.V."} @String{pub-ELS:adr = "Amsterdam, The Netherlands"} @Article{Rath:1996:MSW, author = "H. H. Rath and H.-P. Wiedling", title = "Making {SGML} work: Introducing {SGML} into an enterprise and using its possibilities in advanced applications", journal = j-COMP-STANDARDS-INTERFACES, volume = "18", number = "1", publisher = pub-ELS, address = pub-ELS:adr, pages = "37--53", month = jan, year = "1996", CODEN = "CSTIEZ", ISSN = "0920-5489", bibdate = "Tue Apr 1 16:59:41 MST 1997", bibsource = "UnCover library database", acknowledgement = ack-nhfb, affiliation = "Comput. Graphics Center, Darmstadt, Germany", classcodes = "C6130D (Document processing techniques); C6140D (High level languages)", corpsource = "Comput. Graphics Center, Darmstadt, Germany", keywords = "analysis; document; document handling; exchange; hypermedia documents; HyTime; literate Programming; page description languages; product life cycle; SGML; SGML-based application; tagging; tailored SGML applications; text and graphics; World Wide Web", pubcountry = "Netherlands", treatment = "P Practical", } URL=ftp://ftp.math.utah.edu/pub/tex/bib/litprog.bib Line=3776 @Proceedings{Botsford:1994:PCI, editor = "J. Botsford and A. Gawman and M. Gentleman and E. Kidd and K. Lyons and J. Slonim", booktitle = "Proceedings. {CASCON} '94. Integrated Solutions", title = "Proceedings. {CASCON} '94. Integrated Solutions", publisher = "Nat. Res. Council Canada", address = "Ottawa, Ont., Canada", pages = "xxiv + 386", year = "1994", bibdate = "Sat Sep 7 17:48:58 MDT 1996", acknowledgement = ack-nhfb, confdate = "31 Oct.--3 Nov. 1994", conflocation = "Toronto, Ont., Canada", confsponsor = "IBM; Nat. Res. Council of Canada; Ind. Canada; Nat. Sci. and Eng. Res. Council", pubcountry = "Canada", } ---------------------------------------------------------------------------- - Nelson H. F. Beebe Tel: +1 801 581 5254 - - Center for Scientific Computing FAX: +1 801 581 4148 - - University of Utah Internet e-mail: beebe@math.utah.edu - - Department of Mathematics, 105 JWB beebe@acm.org - - 155 S 1400 E RM 233 beebe@ieee.org - - Salt Lake City, UT 84112-0090, USA URL: http://www.math.utah.edu/~beebe - ---------------------------------------------------------------------------- 27-Feb-1998 20:06:57-GMT,1872;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 NAA07958 for ; Fri, 27 Feb 1998 13:06:56 -0700 (MST) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 27 Feb 1998 13:36:02 EST From: Balasubramanian Narasimhan Reply-To: LitProg@SHSU.edu, naras@stat.stanford.edu Subject: Re: modular literate programming Date: 27 Feb 1998 18:35:49 GMT Message-ID: <6d7125$lp$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu Norman Ramsey writes: > > I just want to break my n[ou]web document into several files > > like it is commonly done with latex documents. I guess this > > isn't really modularity in the strict sense. I think it is > > nevertheless very useful, and it doesn't seem that you can > > do it with noweb (and get useful compiler messages). > > Aha. So what I do is write a bunch of .nw files, make .tex files > using noweave -delay, and then I have a master document that contains > lots of latex \include directives. This works just fine. > > If you want to see this style in action, check out > http://www.cs.virginia.edu/~nr/toolkit/src/. The master document is > source.nw. I've also used this technique successfully with noweb for a while now. See http://www-stat.stanford.edu/~naras/bpois.ps.gz. This also shows an example of a book style in use, with chapters, etc., something another person mentioned in this newsgroup. ________________________________________________________________ B. Narasimhan naras@stat.stanford.edu http://www-stat.stanford.edu/~naras 27-Feb-1998 22:10:44-GMT,1420;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 PAA11258 for ; Fri, 27 Feb 1998 15:10:42 -0700 (MST) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 27 Feb 1998 15:42:28 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: modular literate programming Date: 26 Feb 1998 19:43:52 GMT Message-ID: <6d4glo$l9i$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu > using an include filter has problems as far as i can see > > * prefilter : loss of line information since only my noweb has a markup > to set the file/line "@ %file " > * postfilter : need to do markup yourself and handle the tangling > > am i missing something? The filter sees the noweb pipeline. Let's suppose it spots this magic cookie: @nl @text % include myfile.nw @nl or whatever. It remembers the current file and line (based on watching @file, @line, @nl and @index nl on their way through). Then it calls "markup mfile.nw | includefilter". Then it emits @file and @line to reset file and line. Writing it and counting the number of lines is left as an exercise for the reader :-) N 27-Feb-1998 22:14:23-GMT,2166;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 PAA11354 for ; Fri, 27 Feb 1998 15:14:22 -0700 (MST) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 27 Feb 1998 15:41:58 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@samson.kean.edu Subject: Re: Literate programming class style? Date: 26 Feb 1998 16:33:25 GMT Message-ID: <6d45gl$es2$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: LitProg@SHSU.edu On 25 Feb 1998, Piet Tutelaers wrote: > > Does somebody have any experience with literate programming in > combination with a programming class? It seems natural to do this in > HTML so that one has the possibility to click on a <> > with the result that the details of this piece are exploded. Another > click on the <> target and the details disappear. > > before the click after the click > > ...... ....... > <>; <>; > ...... expansion lines > for piece of code > ....... > While I haven't done exactly that, I *have* use LP (noweb) notation in class to better teach top-down design and step-wise refinement. I presented a paper on this at the First Australasian Conference on Computer Science Education. I'm at the SIGCSE Conference in Atlanta at the momemnt, so I don't have the exact citation for you. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Computer Science Department | Routine is the death of security. Kean University | Union, NJ 07083 | -- Donald Westlake | "Smoke" (1995) leew@samson.kean.edu | ------------------------------------------------------------------------ 27-Feb-1998 22:37:33-GMT,1618;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 PAA12071 for ; Fri, 27 Feb 1998 15:37:31 -0700 (MST) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 27 Feb 1998 16:28:57 EST From: ajc@roe.ac.uk Reply-To: LitProg@SHSU.edu, ajc@roe.ac.uk Subject: Re: modular literate programming Date: 27 Feb 1998 02:33:25 GMT Message-ID: <6d58ll$p55$1@news.interlog.com> To: LitProg@SHSU.edu hi, i'm not sure this is the answer you are looking for, but... i have a program (c++) which is written in serveral chapters. each chapter is a separate noweb file and a joint index is produced using noindex. one "main" tex file is needed to include all the chapter.tex files. i can email you the Makefile which should explain things further if you want. andrew In article <6d2afu$i8b$1@murdoch.acc.Virginia.EDU>, David Martin wrote: > > I am trying to find a way to do literate programming in a modular > manner, and have not found a satisfactory way to do so with noweb. The > noweb model seems to be that there is _one_ noweb file. This is clearly > not satisfactory. Putting multiple noweb files on the tangle > command-line is not general, and also not satisfacory. -----== Posted via Deja News, The Leader in Internet Discussion ==----- http://www.dejanews.com/ Now offering spam-free web-based newsreading 28-Feb-1998 3:31:56-GMT,1379;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 UAA18522 for ; Fri, 27 Feb 1998 20:31:54 -0700 (MST) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Fri, 27 Feb 1998 21:25:35 EST From: Balasubramanian Narasimhan Reply-To: LitProg@SHSU.edu, naras@stat.stanford.edu Subject: Re: Literate programming class style? Date: 27 Feb 1998 18:38:42 GMT Message-ID: <6d717i$oq$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu Norman Ramsey writes: > FYI, noweb does this. Try > > noweave -autodefs c -index -html foo.nw > foo.html > > The linking is based on pattern matching and works OK. > One day somebody will take the lcc front end and do it right. > Any volunteers? I thought I would point to some more examples of html generated with noweb. http://www-stat.stanford.edu/~naras/index.html#programs http://www.stat.umn.edu/~luke/xls/projects/projects.html ________________________________________________________________ B. Narasimhan naras@stat.stanford.edu http://www-stat.stanford.edu/~naras 28-Feb-1998 7:36:32-GMT,881;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 AAA23818 for ; Sat, 28 Feb 1998 00:36:28 -0700 (MST) 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, 28 Feb 1998 01:31:19 EST From: "Giovanni Siano" Reply-To: LitProg@SHSU.edu, gsiano@edl.it Subject: #Line directive Date: 27 Feb 1998 02:34:14 GMT Message-ID: <6d58n6$p5v$1@news.interlog.com> To: LitProg@SHSU.edu Hi, I'd like to use a literate programming tool with Delphi Does anybody know how to emulate in Delphi the #LINE and #FILE directives of C-languages? Thanks in advance P.S. Please answer me via my e-mail address also 28-Feb-1998 7:36:32-GMT,881;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 AAA23818 for ; Sat, 28 Feb 1998 00:36:28 -0700 (MST) 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, 28 Feb 1998 01:31:19 EST From: "Giovanni Siano" Reply-To: LitProg@SHSU.edu, gsiano@edl.it Subject: #Line directive Date: 27 Feb 1998 02:34:14 GMT Message-ID: <6d58n6$p5v$1@news.interlog.com> To: LitProg@SHSU.edu Hi, I'd like to use a literate programming tool with Delphi Does anybody know how to emulate in Delphi the #LINE and #FILE directives of C-languages? Thanks in advance P.S. Please answer me via my e-mail address also 1-Mar-1998 3:52:13-GMT,1023;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 UAA17593 for ; Sat, 28 Feb 1998 20:52:11 -0700 (MST) 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, 28 Feb 1998 21:46:05 EST From: "David R. Martin" Reply-To: LitProg@SHSU.edu, dmartin@cs.berkeley.edu Subject: pretty-printing with noweb Date: 28 Feb 1998 18:00:01 GMT Message-ID: <6d9jb1$klc$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: LitProg@SHSU.edu What is the proper way to add a pretty-printing filter to noweb? All I want is bold C++ keywords. Do I have to filter the latex, or can noweb be extended somehow? Looks like code is typeset in a verbatim environment, so this is probably not possible... -David