2-Jan-1998 1:04:59-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 SAA07395 for ; Thu, 1 Jan 1998 18:04: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, 01 Jan 1998 18:49:01 EST From: thompson@sun1.coe.ttu.edu Subject: comp.programming.literate FAQ Date: 1 Jan 1998 11:45:32 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. 2-Jan-1998 5:04:56-GMT,884;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 WAA11335 for ; Thu, 1 Jan 1998 22:04:55 -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, 01 Jan 1998 22:58:25 EST Message-ID: <34AC736D.634401A0@notes.cc.sunysb.edu> Date: Thu, 01 Jan 1998 23:56:13 -0500 From: "Mark E. Stolzberg, Ph.D." Reply-To: LitProg@SHSU.edu, mstolzberg@notes.cc.sunysb.edu MIME-Version: 1.0 Subject: HTML help please Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu I can't figure out how to do MouseOver events in HTML. Please help someone. 3-Jan-1998 21:37:36-GMT,2317;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 OAA04941 for ; Sat, 3 Jan 1998 14:37:35 -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, 03 Jan 1998 15:29:51 EST From: adler@pulsar.cs.wku.edu (Allen Adler) Reply-To: LitProg@SHSU.edu, adler@pulsar.cs.wku.edu Subject: Re: Non Literate Porgramming Recovery Date: 3 Jan 1998 21:18:45 GMT Message-ID: <68m9vl$16b$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu Being good at neither FORTRAN nor FWEB nor computational chemistry, I decided to take some computational chemistry code written in FORTRAN and try to convert it to a literate program written in FWEB. It was a very educational process which I eventually had to drop because of the pressure of other projects. In principle I would take it up again. Whether I could succeed in it, I don't know. It was a LOT of work. I tried to isolate as many parts of the program as I could, i.e. every subroutine got its own node, blocks of declarations got their own node until I could make enough sense of the individual ones to give them their own nodes, etc. One thing I never got the hang of was how to put the sections in an essentially arbitrary order. What was more difficult was writing prose to explain a program the workings of most of which I really didn't understand. One of the reasons for the delay was that I realized I would need to spend some time reading basic literature in computational chemistry in order to get an overview of the algorithms, notation and terminology that were probably being used. That process is still in progress, in principle, so when I know more about the relevant theory, I will feel more confident about taking up the project again. It makes a big difference that I am doing it on my own with no deadlines. What I think would be a more severe test of this kind of "restorative" literate programming would be to take an executable file on your favorite computer and turn it into a work of literature. Allan Adler adler@pulsar.cs.wku.edu -- Norman Ramsey http://www.cs.virginia.edu/~nr 4-Jan-1998 20:58:54-GMT,1577;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 NAA27628 for ; Sun, 4 Jan 1998 13:58:53 -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, 04 Jan 1998 14:52:50 EST From: jdnier@execpc.com (David Niergarth) Reply-To: LitProg@SHSU.edu, jdnier@execpc.com Subject: Re: Python Literate Programming Date: 4 Jan 1998 19:18:22 GMT Message-ID: <68on9u$r6v$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu You may want to look at the py2tex package by Jeroen van Maanen. He mentioned it recently on the PSA members list. Unfortunately, I didn't keep the message and can't reconstruct where I ftp'd it from. The version I have seems to be dated November 4, 1996. His email address is listed as Jeroen.van.Maanen@intern.nl.net. --David Niergarth Also, a search of the comp.lang.python archive came up with > > What's the best way to print python code? Is there a pretty > > printer? Or a vgrind module or whatever? > > Jeroen van Maanen wrote py2tex, which produces really nice TeX > output from Python code. It should be somewhere on ftp.python.org, or > you can get it from ftp://ftp.cwi.nl/pub/jeroenm/py2tex . If you're a > fan of Knuth's literate programming style, I've found that python + > py2tex is the best such environment I've yet seen. > > Andrew Kuchling > amk@magnet.com 4-Jan-1998 20:58:55-GMT,1188;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 NAA27630 for ; Sun, 4 Jan 1998 13:58: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; Sun, 04 Jan 1998 14:52:53 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: Python Literate Programming Date: 4 Jan 1998 19:29:11 GMT Message-ID: <68onu7$rdd$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu In article <68on9u$r6v$1@murdoch.acc.Virginia.EDU>, David Niergarth wrote: > Jeroen van Maanen wrote py2tex, which produces really nice TeX > output from Python code. It should be somewhere on ftp.python.org, or > you can get it from ftp://ftp.cwi.nl/pub/jeroenm/py2tex . If you're a > fan of Knuth's literate programming style, I've found that python + > py2tex is the best such environment I've yet seen. Any volunteers to try to turn this into a noweb filter? Norman 5-Jan-1998 12:16:14-GMT,1038;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 FAA13123 for ; Mon, 5 Jan 1998 05:16: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; Mon, 05 Jan 1998 06:00:46 EST From: Harald Falkenberg Subject: URL changed for LitProg pages at DESY Date: 5 Jan 1998 11:54:14 GMT Message-ID: <68qhl6$c7u$1@elna.ethz.ch> Reply-To: LitProg@SHSU.edu, harald.falkenberg@desy.de MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: LitProg@SHSU.edu The URL for LitProg pages at DESY changed (http://www.desy.de/user/projects/LitProg.html). Please aware that the hostname info.desy.de is no longer available and that you'll find the pages on www.desy.de. Please change your links if you refer to these pages. regards H. Falkenberg 5-Jan-1998 23:41:22-GMT,1431;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 QAA05466 for ; Mon, 5 Jan 1998 16:41:21 -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, 05 Jan 1998 17:33:42 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: One-Page Guide to Noweb is now available Date: 5 Jan 1998 23:12:50 GMT Message-ID: <68rpdi$qv6$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu Thanks to some stimulus from Carl Gregory and Lee Wittenberg, I have put together a one-page guide to noweb. This tells you everything you need to know (really!) to create masterpieces of the literate programmer's art, *even* *if* *you* *have* *never* *written* *a* *literate* *program* *before*. Well, no. Actually, what it does is tell you just enough about Noweb and LaTeX to be dangerous---given the examples, you should be able to use this guide to create your own literate programs, even if you don't know anything about noweb or latex. If you're lucky. And if some kind soul has put noweb and latex on your machine. See http://www.cs.virginia.edu/~nr/noweb/onepage.ps. I hope hordes of people will find it useful :-) Norman 7-Jan-1998 16:21:50-GMT,3541;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 JAA28677 for ; Wed, 7 Jan 1998 09:21:45 -0700 (MST) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from hkomm.hillkomm.dk by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Wed, 07 Jan 1998 09:53:43 EST Received: from bib-pc58.hillkomm.dk (bib-pc58.hillkomm.dk [130.228.91.58]) by hkomm.hillkomm.dk (8.6.9/8.6.9) with ESMTP id RAA02460; Wed, 7 Jan 1998 17:54:31 +0100 Message-ID: <34B3A4D0.AC521431@hotmail.com> Date: Wed, 07 Jan 1998 16:52:48 +0100 From: krasilnikoff Reply-To: LitProg@SHSU.edu, krasilnikoff@hotmail.com MIME-Version: 1.0 To: LitProg@SHSU.edu, crazymantc@aol.com Subject: BASIC COMPILER Content-Type: multipart/mixed; boundary="------------3EE4C52301B3F9CA0EC6C8AB" This is a multi-part message in MIME format. --------------3EE4C52301B3F9CA0EC6C8AB Content-Type: text/plain; charset=us-ascii Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit I am looking for a QBasic or Basic compiler for DOS or WINDOWS, preferably shareware or freeware but will take almost anything. Reply to: Phahh3@usa.net --------------3EE4C52301B3F9CA0EC6C8AB Content-Type: text/html; charset=us-ascii; name="msg00585.html" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="msg00585.html" Content-Base: "http://www.uni-giessen.de/hrz/tex/more _info/info/mailarchiv/litprog.1995/ msg00585.html" BASIC COMPILER
[Prev][Next][Index][Thread]

BASIC COMPILER



I am looking for a QBasic or Basic compiler for DOS, preferably shareware,
but will take almost anything.  Reply to:

                                            CRAZYMANTL

                         THANX!



--------------3EE4C52301B3F9CA0EC6C8AB-- 11-Jan-1998 23:03:55-GMT,1848;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 QAA28776 for ; Sun, 11 Jan 1998 16:03: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; Sun, 11 Jan 1998 16:50:28 EST From: Mark Gritter Reply-To: LitProg@SHSU.edu, mgritter@pup16.stanford.edu Subject: Re: Beginner questions Date: 11 Jan 1998 22:48:10 GMT Message-ID: <69bi7a$bla$1@elna.ethz.ch> To: LitProg@SHSU.edu talmg@atom.forensic.sa.gov.au (Michael Talbot-Wilson) writes: > > I'm almost converted to the notion of literate programming (right now, > in Tcl on Linux) and had a look at FunnelwebAC and Noweb. > > Noweb appears to have a number of advantages and to be based on > later concepts. > > But I think I need HTML, which the Noweb documentation says is > only available if noweb is compiled or used with something > called Icon. Presumably Icon is a commercial product marketed > by the noweb author. > Not so. Check out http://www.cs.arizona.edu/icon/index.html It's a freely available programming language; you can get a binary distribution for linux, if you wish. I can't comment specifically on your other comments or on Funnelweb, but it seems to me that noweb would be good for developing a SGML-based LP system, since it already supports multiple back-ends. -- Mark Gritter http://www.stanford.edu/~mgritter/ /* "Perhaps there is no regularity to be discerned." */ /* "Oh, you and your constant rumblings about chaos! I'll hear */ /* none of that, thank you." -- The Tortise and Achilles */ 11-Jan-1998 23:38:28-GMT,1632;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 QAA29343 for ; Sun, 11 Jan 1998 16:38:27 -0700 (MST) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from arthur.cs.purdue.edu by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sun, 11 Jan 1998 17:22:21 EST Received: from narnia.cs.purdue.edu (0@narnia.cs.purdue.edu [128.10.17.74]) by arthur.cs.purdue.edu (8.8.7/8.8.7/PURDUE_CS-2.0) with ESMTP id SAA18867; Sun, 11 Jan 1998 18:22:55 -0500 (EST) Received: from localhost (723@localhost [127.0.0.1]) by narnia.cs.purdue.edu (8.8.7/PURDUE_CS-1.4) with SMTP id SAA02365; Sun, 11 Jan 1998 18:22:52 -0500 (EST) Message-ID: <199801112322.SAA02365@narnia.cs.purdue.edu> To: LitProg@SHSU.edu, talmg@atom.forensic.sa.gov.au CC: zamboni@cs.purdue.edu Subject: Re: Beginner questions MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sun, 11 Jan 1998 18:22:50 -0500 From: zamboni@cs.purdue.edu (Diego Zamboni) Reply-To: LitProg@SHSU.edu, zamboni@cs.purdue.edu talmg@atom.forensic.sa.gov.au said: > Presumably Icon is a commercial product marketed by the noweb author. A WWW search turned up the following URL, which apparently contains information and implementations for download of Icon (I haven't tried it because it was already installed in our systems here when I compiled noweb, but it may be useful for you). http://www.cs.arizona.edu/icon/index.htm Cheers, --Diego 12-Jan-1998 6:45:07-GMT,3069;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 XAA06999 for ; Sun, 11 Jan 1998 23:45:06 -0700 (MST) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from mail.eunet.ch by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Mon, 12 Jan 1998 00:39:34 EST Received: from igate.ska.com (firewall-user@igate.ska.com [198.240.202.195]) by mail.eunet.ch (8.8.6/1.34) via ESMTP id GAA07702; Mon, 12 Jan 1998 06:40:24 GMT env-from (barry.gaunt@csfb.com) Received: (from uucp@localhost) by igate.ska.com (8.7.3/8.6.11) id HAA00435; Mon, 12 Jan 1998 07:35:48 +0100 (MET) Received: from mx2.ska.com(198.240.223.100) by igate.ska.com via smap (g3.0.3) id xma000428; Mon, 12 Jan 98 07:35:40 +0100 Received: from gmszrh1.itzrh.ska.com (gmszrh1.itzrh.ska.com [159.122.217.90]) by mx2.ska.com (8.7.5+phmap1.4+pmdfhack1.0/8.7.3/MX1-02-APR-96) with ESMTP id HAA26703; Mon, 12 Jan 1998 07:39:53 +0100 (MET) Received: from pc85149 (pc85149.tplzrh.ska.com [159.122.85.209]) by gmszrh1.itzrh.ska.com (8.7.5+phmap-1.3/8.7.3) with ESMTP id HAA07480; Mon, 12 Jan 1998 07:37:57 +0100 (MET) Message-ID: <34B9BAC2.9FA448C4@csfb.com> Date: Mon, 12 Jan 1998 07:40:02 +0100 From: Barry Gaunt Reply-To: LitProg@SHSU.edu, barry.gaunt@csfb.com MIME-Version: 1.0 To: LitProg@SHSU.edu, talmg@atom.forensic.sa.gov.au Subject: Re: Beginner questions References: <69bf2u$7jf$1@elna.ethz.ch> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hello Michael, Icon is indeed free and on the web on its own WWW home page. Norman Ramsey's own pages will also point you to it. Search and you will find. Maybe you should retract your presumption, it could hurt the feelings of Norman who is, in his free time, providing the tools which we are unable to (or unwilling) to produce ourselves... -- Barry Michael Talbot-Wilson wrote: > I'm almost converted to the notion of literate programming (right now, > > in Tcl on Linux) and had a look at FunnelwebAC and Noweb. > > Noweb appears to have a number of advantages and to be based on > later concepts. > > But I think I need HTML, which the Noweb documentation says is > only available if noweb is compiled or used with something > called Icon. Presumably Icon is a commercial product marketed > by the noweb author. > > I will probably use FunnelwebAC, but I was interested in another > post on the subject of SGML and the possibility of LP with > an SGML tool. > > Something that originated on Linux is a SGML documentation tool with > the LinuxDoc DTD, used among other things to produce the Linux HOWTOs. > > I'm not familiar with these concepts (am about to start looking > again). > But I wonder if anyone can comment on the potential feasibilities > of LP in the context of a (presumably hacked) LinuxDoc tool. > > Cheers... 12-Jan-1998 14:20:43-GMT,1090;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 HAA14629 for ; Mon, 12 Jan 1998 07:20: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; Mon, 12 Jan 1998 08:00:06 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: Windoze tools? Date: 10 Jan 1998 19:53:54 GMT Message-ID: <698jki$bej$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu In article <698j8r$b80$1@murdoch.acc.Virginia.EDU>, Schol-R-LEA wrote: >I would >like to know if any tools for LP tools for Win95 are available. There's a Win32 port of noweb available on CTAN in the binaries subdirectory of the noweb distribution. I think there's at least one other port floating around. I hope by summer's end to take over the maintenance of those ports. Norman 12-Jan-1998 14:20:44-GMT,1160;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 HAA14631 for ; Mon, 12 Jan 1998 07:20: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; Mon, 12 Jan 1998 08:00:01 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: Beginner questions Date: 12 Jan 1998 01:05:04 GMT Message-ID: <69bq80$jmv$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu > But I think I need HTML, which the Noweb documentation says is > only available if noweb is compiled or used with something > called Icon. Presumably Icon is a commercial product marketed > by the noweb author. You've misread the documentation. Noweb supports HTML without Icon; it just works better with Icon. As others have pointed out, and as is stated in the noweb README file, the Icon programming language is freely available from the University of Arizona. Norman 12-Jan-1998 14:20:55-GMT,2037;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 HAA14634 for ; Mon, 12 Jan 1998 07:20: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; Mon, 12 Jan 1998 07:59:56 EST From: David Kastrup Reply-To: LitProg@SHSU.edu, dak@fsnif.neuroinformatik.ruhr-uni-bochum.de Subject: Re: Beginner questions Date: 12 Jan 1998 10:00:00 GMT Message-ID: <69cpj0$2l0$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 (generated by tm-edit 7.106) Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit To: LitProg@SHSU.edu talmg@atom.forensic.sa.gov.au (Michael Talbot-Wilson) writes: > I'm almost converted to the notion of literate programming (right now, > in Tcl on Linux) and had a look at FunnelwebAC and Noweb. > > Noweb appears to have a number of advantages and to be based on > later concepts. > > But I think I need HTML, which the Noweb documentation says is > only available if noweb is compiled or used with something > called Icon. Presumably Icon is a commercial product marketed > by the noweb author. You are being pretty unfair casting around accusations like that without bothering to check the facts before. If I remember correctly, the noweb documentation contains explicit reference to the source of the freely available Icon compiler (by a different author, BTW). In addition, noweb is available in a binary distribution for Linux (already compiled, does not need any Icon runtime) at the precise location where you can get the source distribution. -- David Kastrup Phone: +49-234-700-5570 Email: dak@neuroinformatik.ruhr-uni-bochum.de Fax: +49-234-709-4209 Institut für Neuroinformatik, Universitätsstr. 150, 44780 Bochum, Germany 12-Jan-1998 14:31:48-GMT,1474;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 HAA14878 for ; Mon, 12 Jan 1998 07:31:44 -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, 12 Jan 1998 07:59:59 EST From: Schol-R-LEA Subject: Windoze tools? Date: 10 Jan 1998 19:47:39 GMT Message-ID: <698j8r$b80$1@murdoch.acc.Virginia.EDU> Reply-To: LitProg@SHSU.edu, scholr@i_sue_spammers.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu In my present position, I am working in Win95 environment, developing in Access. While I cant imagine getting official saction for it, I would like to know if any tools for LP tools for Win95 are available. I can't seem to find WinWordWeb anywhere, and I suspect it may have been dropped or had it name changed (there's a commercial thesaurus called 'WordWeb', and there may have been legal issues with its creators). -- #define KINSEY rand() % 7 ______ Schol-R-LEA;2 LCF ELF JAM BiWM BigTimeHardLineBadLuckFistFuck \ bi / "Like marmalade on burnt toast" Want some catsup for your menu? \/ Now on Slip '.' Net as 'scholr' Trouble rather the tiger in his lair than the scholar among his books 12-Jan-1998 16:02:49-GMT,42900;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 JAA16761; Mon, 12 Jan 1998 09:02:48 -0700 (MST) From: "Nelson H. F. Beebe" Received: (from beebe@localhost) by plot79.math.utah.edu (8.8.5/8.8.5) id JAA13427; Mon, 12 Jan 1998 09:02:47 -0700 (MST) Date: Mon, 12 Jan 1998 09:02:47 -0700 (MST) To: LitProg@SHSU.edu, talmg@atom.forensic.sa.gov.au 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: Beginner questions In-Reply-To: Your message of 11 Jan 1998 21:54:38 GMT Message-ID: Michael Talbot-Wilson writes on the litprog list on 11 Jan 1998 21:54:38 GMT: >> Presumably Icon is a commercial product marketed >> by the noweb author. Wrong. It is a venerable system (14+ years old) that is freely available. Visit ftp://ftp.cs.arizona.edu/icon for source and binary distributions. Here are BibTeX entries for the books about Icon: @String{pub-PH = "Pren{\-}tice-Hall"} @String{pub-PH:adr = "Englewood Cliffs, NJ 07632, USA"} @String{pub-PUP = "Princeton University Press"} @String{pub-PUP:adr = "Princeton, NJ, USA"} @Book{Griswold:IIP86, author = "Ralph E. Griswold and Madge T. Griswold", title = "The Implementation of the {Icon} Programming Language", publisher = pub-PUP, address = pub-PUP:adr, pages = "x + 336", year = "1986", ISBN = "0-691-08431-9", LCCN = "QA76.73.I19 G76 1986", price = "US\$39.50", bibdate = "Sun Jul 10 01:07:50 1994", } @Book{Griswold:IPL83, author = "Ralph E. Griswold and Madge T. Griswold", title = "The {Icon} Programming Language", publisher = pub-PH, address = pub-PH:adr, pages = "xviii + 313", year = "1983", ISBN = "0-13-449777-5", LCCN = "QA76.73.I19 G74 1983", bibdate = "Tue Dec 14 22:54:38 1993", } @Book{Griswold:IPL90, author = "Ralph E. Griswold and Madge T. Griswold", title = "The {Icon} Programming Language", publisher = pub-PH, address = pub-PH:adr, edition = "Second", pages = "xv + 367", year = "1990", ISBN = "0-13-447889-4", LCCN = "QA76.73.I19 G74 1990", bibdate = "Tue Dec 14 22:54:39 1993", libnote = "Not yet in my library.", } There are quite a few technical papers about Icon as well. Here is everything I could find (37 entries) via bibsearch, a fast front end to my archives of 180K+ BibTeX entries: @String{j-BYTE = "Byte Magazine"} @String{j-COMP-J = "The Computer Journal"} @String{j-COMP-LANGS = "Computer Languages"} @String{j-COMP-SYS = "Computing Systems"} @String{j-SIGPLAN = "ACM SIG{\-}PLAN Notices"} @String{j-SPE = "Software---Practice and Experience"} @String{j-SPE = "Soft\-ware\emdash Prac\-tice and Experience"} @String{j-TOPLAS = "ACM Transactions on Programming Languages and Systems"} @String{pub-ACM = "ACM Press"} @String{pub-ACM:adr = "New York, NY 10036, USA"} @String{pub-ACM:adr = "New York, NY, USA"} @String{pub-NH = "North-Hol{\-}land"} @String{pub-NH:adr = "Amsterdam, The Netherlands"} @String{pub-USENIX = "USENIX"} @String{pub-USENIX:adr = "Berkeley, CA, USA"} @String{ser-SIGPLAN = "ACM SIG{\-}PLAN Notices"} @Article{Griswold:1980:UCS, author = "R. E. Griswold", title = "The use of character sets and character mappings in {Icon}", journal = j-COMP-J, volume = "23", number = "2", pages = "107--114", month = may, year = "1980", CODEN = "CMPJA6", ISSN = "0010-4620", bibdate = "Tue Mar 25 13:51:56 MST 1997", bibsource = "Compendex database", acknowledgement = ack-nhfb, classcodes = "C6140D (High level languages)", classification = "723", corpsource = "Dept. of Computer Sci., Univ. of Arizona, Tucson, AZ, USA", keywords = "character mapping; character sets; computer programming; computer programming languages; Icon programming; language; nonnumerical; paradigms; problems; procedure oriented languages; programming techniques", treatment = "P Practical", } @Article{Hanson:1980:PSM, author = "David R. Hanson", title = "A Portable Storage Management System for the {Icon} Programming Language", journal = j-SPE, volume = "10", number = "6", pages = "489--500", month = jun, year = "1980", CODEN = "SPEXBL", ISSN = "0038-0644", bibdate = "Sat May 31 13:36:16 MDT 1997", acknowledgement = ack-nhfb, } @Article{Griswold:1981:GI, author = "Ralph E. Griswold and David R. Hanson and John T. Korb", title = "Generators in {Icon}", journal = j-TOPLAS, volume = "3", number = "2", pages = "144--161", month = apr, year = "1981", CODEN = "ATPSDT", ISSN = "0164-0925", bibsource = "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib", acknowledgement = ack-pb, } @Article{Griswold:1982:EEI, author = "Ralph E. Griswold", title = "The Evaluation of Expressions in {Icon}", journal = j-TOPLAS, volume = "4", number = "4", pages = "563--584", month = oct, year = "1982", CODEN = "ATPSDT", ISSN = "0164-0925", bibsource = "Compiler/bevan.bib", abstract = "Expressions in the Icon programming language may be {\em conditional}, possibly producing no result, or they may be {\em generators}, possibly producing a sequence of results. Generators, coupled with a goal directed evaluation mechanism, provide a concise method for expression many complex computations. This paper describes the evaluation of expressions in Icon and presents an Icon program that explicates the semantics of expression evaluation. This program also provides an executable ``formalism'' that can be used as a tool to design and test changes and additions to the language.", acknowledgement = ack-pb, checked = "19940302", keywords = "control structures; Icon; interpreters; semantics", source = "Dept. Library", } @Article{Griswold:1983:ISP, author = "Ralph E. Griswold", title = "Implementing {Snobol4} Pattern Matching in {Icon}", journal = j-COMP-LANGS, volume = "8", number = "2", pages = "77--92", month = "????", year = "1983", CODEN = "COLADA", ISSN = "0096-0551", bibdate = "Tue Mar 25 14:04:06 MST 1997", bibsource = "Compendex database", acknowledgement = ack-nhfb, classcodes = "C6130 (Data handling techniques)", classification = "723", corpsource = "Dept. of Computer Sci., Univ. of Arizona, Tucson, AZ, USA", journalabr = "Comput Lang", keywords = "computer software; cursor model; data handling; Icon; pattern matching; pattern recognition; SNOBOL4 pattern matching; string; substring model", treatment = "P Practical", } @Article{Griswold:1983:PCO, author = "R. E. Griswold and Michael Novak", title = "Programmer-Defined Control Operations", journal = j-COMP-J, volume = "26", number = "2", pages = "175--183", month = may, year = "1983", CODEN = "CMPJA6", ISSN = "0010-4620", bibdate = "Tue Mar 25 13:51:56 MST 1997", bibsource = "Compendex database", acknowledgement = ack-nhfb, classcodes = "C6140D (High level languages); C6150J (Operating systems)", classification = "723", corpsource = "Dept. of Computer Sci., Univ. of Arizona, Tucson, AZ, USA", keywords = "computer programming languages; control operations; high level languages; Icon; operating systems (computers); OS; programmers; programming languages", treatment = "P Practical", }@String{j-COMP-J = "The Computer Journal"} @Article{Wampler:1983:CI, author = "S. B. Wampler and R. E. Griswold", title = "Co-expressions in {Icon}", journal = j-COMP-J, volume = "26", number = "1", pages = "72--78", month = feb, year = "1983", CODEN = "CMPJA6", ISSN = "0010-4620", bibdate = "Tue Mar 25 13:51:56 MST 1997", bibsource = "Compendex database", acknowledgement = ack-nhfb, classcodes = "C6140D (High level languages)", classification = "723", corpsource = "Dept. of Computer Sci., Univ. of Arizona, Tucson, AZ, USA", keywords = "co-expressions; computer programming languages; generators; high level languages; high level programming; Icon; programming languages", treatment = "P Practical", } @Article{Wampler:1983:IGG, author = "Stephen B. Wampler and Ralph E. Griswold", title = "The Implementation of Generators and Goal-directed Evaluation in {Icon}", journal = j-SPE, volume = "13", number = "6", pages = "495--518", month = jun, year = "1983", CODEN = "SPEXBL", ISSN = "0038-0644", bibdate = "Sat May 31 13:36:16 MDT 1997", acknowledgement = ack-nhfb, keywords = "languages; measurement; performance", review = "ACM CR 8405-0364", subject = "D.3.2 Software, PROGRAMMING LANGUAGES, Language Classifications, ICON \\ D.3.3 Software, PROGRAMMING LANGUAGES, Language Constructs, Control structures \\ D.3.4 Software, PROGRAMMING LANGUAGES, Processors, Run-time environments \\ G.2.1 Mathematics of Computing, DISCRETE MATHEMATICS, Combinatorics, Generating functions", } @Article{Wampler:1983:RS, author = "Stephen B. Wampler and Ralph E. Griswold", title = "Result Sequences", journal = j-COMP-LANGS, volume = "8", number = "1", pages = "1--14", month = "????", year = "1983", CODEN = "COLADA", ISSN = "0096-0551", bibdate = "Tue Mar 25 14:04:06 MST 1997", bibsource = "Compendex database", acknowledgement = ack-nhfb, classcodes = "C6140D (High level languages)", classification = "723", corpsource = "Dept. of Computer Sci., Tucson, AZ, USA", journalabr = "Comput Lang", keywords = "computer programming languages; control operations; enclosing; expression; expression evaluation; goal directed evaluation; high level languages; Icon; languages; programming; result sequences", treatment = "P Practical", } @TechReport{Mitchell:1984:ISU, author = "William H. Mitchell", title = "An {Icon} subsystem for {UNIX} Emacs", type = "Technical report", number = "TR 84-8", institution = "Dept. of Computer Science, The University of Arizona", address = "Tucson, AZ, USA", pages = "17", year = "1984", bibdate = "Wed Oct 30 08:29:31 MST 1996", acknowledgement = ack-nhfb, keywords = "Icon (Computer program language); Text editors (Computer programs)", teyp = "Technical report", } @Article{Lapalme:1986:LIP, author = "Guy Lapalme and Suzanne Chapleau", title = "Logicon: An Integration of {Prolog} into {Icon}", journal = j-SPE, volume = "16", number = "10", pages = "925--944", month = oct, year = "1986", CODEN = "SPEXBL", ISSN = "0038-0644", bibdate = "Sat May 31 13:36:16 MDT 1997", acknowledgement = ack-nhfb, } @InProceedings{Hinckley:1987:OOE, author = "K. Hinckley", title = "An object oriented extension language for integrating disparate applications", crossref = "Bullinger:1987:HII", pages = "529--533", year = "1987", bibdate = "Wed Oct 30 06:13:54 MST 1996", abstract = "QUICHE (quick user interface and command handling extension) is an extension language based on the Icon programming language. Like Lisp-style EMACS extension languages, it can be used to define key bindings. Unlike those extensions, QUICHE is not bound to any particular application, can easily make system calls and invoke programs and can call entry points in the program it is extending, either directly or through a trait binding mechanism. It is this latter ability that makes QUICHE an ideal means of unifying application interfaces. Traits are defined for applications such as window managers, debuggers and editors. Each trait encapsulates a set of basic operations that will be available in any instance of an object. The existence of a standard set of traits allows the interface designer to tailor interfaces that provide consistency across multiple applications, and to easily modify or add features to a set of applications. In addition, QUICHE can also extend applications which do not themselves support any traits. A manager can be written in QUICHE that, instead of calling the application, inserts the commands corresponding to a call as though the user had entered them.", acknowledgement = ack-nhfb, affiliation = "User Environment Apollo Computer, Inc., Chelmsford, MA, USA", classification = "C6140D (High level languages); C6110 (Systems analysis and programming); C6180 (User interfaces); C6150J (Operating systems)", keywords = "Object oriented extension language; Disparate applications; Quick user interface; Command handling extension; Icon programming language; Key bindings; System calls; Entry points; Trait binding mechanism; QUICHE; Application interfaces; Window managers; Debuggers; Editors; Interface designer; Consistency; Multiple applications", thesaurus = "High level languages; Multiprogramming; Object-oriented programming; User interfaces", } @InProceedings{OBagy:1987:RII, author = "J. O'Bagy and R. E. Griswold", title = "A recursive interpreter for the {Icon} programming language", crossref = "Wexelblat:1987:IIT", pages = "138--149", year = "1987", bibdate = "Sat Aug 13 17:16:20 MDT 1994", series = ser-SIGPLAN, acknowledgement = ack-nhfb, keywords = "design; languages", subject = "D.3.2 Software, PROGRAMMING LANGUAGES, Language Classifications, ICON \\ D.3.4 Software, PROGRAMMING LANGUAGES, Processors, Interpreters", } @Article{Griswold:1988:PG, author = "R. E. Griswold", title = "Programming with Generators", journal = j-COMP-J, volume = "31", number = "3", pages = "220--228", month = jun, year = "1988", CODEN = "CMPJA6", ISSN = "0010-4620", bibdate = "Tue Mar 25 13:51:56 MST 1997", bibsource = "Compendex database", acknowledgement = ack-nhfb, affiliation = "Univ of Arizona, Tucson, AZ, USA", affiliationaddress = "Univ of Arizona, Tucson, AZ, USA", classcodes = "C6110 (Systems analysis and programming); C6140D (High level languages)", classification = "723", corpsource = "Dept. of Comput. Sci., Arizona Univ., Tucson, AZ, USA", keywords = "computer programming; computer programming languages; control structures; expression evaluation; generators; goal-directed evaluation; high level languages; icon; Icon programming language; logic programming; programming language; programming with generators; result; sequences; termination", treatment = "P Practical", } @Article{Griswold:1988:SPL, author = "Ralph E. Griswold and Janalee O'Bagy", title = "{Seque}: a Programming Language for Manipulating Sequences", journal = j-COMP-LANGS, volume = "13", number = "1", pages = "13--22", month = "????", year = "1988", CODEN = "COLADA", ISSN = "0096-0551", bibdate = "Tue Mar 25 14:04:06 MST 1997", bibsource = "Compendex database", acknowledgement = ack-nhfb, affiliationaddress = "Univ of Arizona, Tucson, AZ, USA", classcodes = "C6130 (Data handling techniques); C6140D (High level languages)", classification = "723", corpsource = "Dept. of Comput. Sci., Arizona Univ., Tucson, AZ, USA", journalabr = "Comput Lang", keywords = "component; computational; computer programming; computer programming languages; data handling; data objects; evaluation; goal-directed; goal-directed evaluation; high level languages; Icon programming language; infinite data objects; language; manipulating sequences; programming; recurrence relations; Seque; sequences manipulation; storage component; stream manipulation", treatment = "P Practical", } @InProceedings{Griswold:1989:DSI, author = "Ralph E. Griswold", title = "Data Structures in the {Icon} Programming Language", crossref = "USENIX:1989:CSF", volume = "2", number = "4", pages = "339--365", month = "Fall", year = "1989", bibdate = "Wed Aug 13 10:28:01 1997", bibsource = "ftp://ftp.uu.net/library/bibliography", acknowledgement = ack-nhfb, affiliation = "University of Arizona", } @Article{Griswold:COMPSYS-2-4-339, author = "Ralph E. Griswold", title = "Data Structures in the Icon Programming Language", journal = j-COMP-SYS, volume = "2", number = "4", pages = "339--365", month = "Fall", year = "1989", CODEN = "CMSYE2", ISSN = "0895-6340", bibdate = "Fri Sep 13 08:53:14 MDT 1996", acknowledgement = ack-nhfb, affiliation = "Arizona Univ., Tucson, AZ, USA", classification = "C6120 (File organisation); C6140D (High level languages)", keywords = "Positional access mechanisms; Type repertoire extension; Automatic storage management; Icon programming language; Data structures; Sets; Arbitrary values; Tables; Associative lookup; Lists; Deque access mechanisms; Records; Goal-directed evaluation mechanism; Pointer semantics; Heterogeneity; Natural geometrical interpretation; Trees; Graphs; Problem domain; Programming domain", thesaurus = "Data structures; High level languages", } @Article{Walker:1989:FPI, author = "Kenneth W. Walker", title = "First-class patterns for {Icon}", journal = j-COMP-LANGS, volume = "14", number = "3", pages = "153--163", month = "????", year = "1989", CODEN = "COLADA", ISSN = "0096-0551", bibdate = "Tue Mar 25 14:04:06 MST 1997", bibsource = "Compendex database", acknowledgement = ack-nhfb, affiliation = "Univ of Arizona", affiliationaddress = "Tucson, AZ, USA", classcodes = "C6140D (High level languages); C6130D (Document processing techniques)", classification = "723", corpsource = "Dept. of Comput. Sci., Arizona Univ., Tucson, AZ, USA", journalabr = "Comput Lang", keywords = "backtracking; coexpression semantics; Computer Programming Languages; constructs; control structure; dynamically created; entities; executable form; high level languages; Icon Programming Language; Icon programming language; interpreters; language; Language Constructs; matching expressions; modifications; pattern data type; pattern simulation; problem solving; procedure syntax; Snobol Programming Language; SNOBOL4; String Pattern Matching; string pattern matching", treatment = "P Practical", } @Article{Griswold:1990:SSI, author = "R. E. Griswold", title = "String Scanning in the {Icon} Programming Language", journal = j-COMP-J, volume = "33", number = "2", pages = "98--107", month = apr, year = "1990", CODEN = "CMPJA6", ISSN = "0010-4620", bibdate = "Tue Mar 25 13:51:56 MST 1997", acknowledgement = ack-nhfb, affiliation = "Dept. of Comput. Sci., Arizona Univ., Tucson, AZ, USA", classcodes = "C6140D (High level languages); C6130D (Document processing techniques); C6110 (Systems analysis and programming)", classification = "C6110 (Systems analysis and programming); C6130D (Document processing techniques); C6140D (High level languages)", corpsource = "Dept. of Comput. Sci., Arizona Univ., Tucson, AZ, USA", keywords = "design; general-; General-purpose programming language; high level languages; HLL; Icon programming language; implementation issues; Implementation issues; language; Language design; numerical computation; Numerical computation; programming; purpose programming language; string manipulation; String manipulation; string scanning; String scanning; word processing", thesaurus = "High level languages; Programming; Word processing", treatment = "P Practical", } @Article{Nilsen:1990:HLG, author = "Kelvin Nilsen", title = "High-level Goal-directed Concurrent Processing in {Icon}", journal = j-SPE, volume = "20", number = "12", pages = "1273--1290", month = dec, year = "1990", CODEN = "SPEXBL", ISSN = "0038-0644", bibdate = "Sat May 31 13:36:16 MDT 1997", acknowledgement = ack-nhfb, } @Article{Nilsen:1990:SDT, author = "Kelvin Nilsen", title = "A stream data type that supports goal-directed pattern matching on unbounded sequences of values", journal = j-COMP-LANGS, volume = "15", number = "1", pages = "41--54", month = "????", year = "1990", CODEN = "COLADA", ISSN = "0096-0551", bibdate = "Tue Mar 25 14:04:06 MST 1997", bibsource = "Compendex database", acknowledgement = ack-nhfb, affiliation = "Iowa State Univ", affiliationaddress = "Ames, IA, USA", classcodes = "C6120 (File organisation); C6110 (Systems analysis and programming); C5260B (Computer vision and picture processing)C6180N (Natural language processing); C6130D (Document processing techniques); C6140D (High level languages)", classification = "723", corpsource = "Dept. of Comput. Sci., Iowa State Univ., Ames, IA, USA", journalabr = "Comput Lang", keywords = "arbitrary values; Computer Programming Languages; computerised pattern recognition; Data Processing--Data Structures; data structures; data type; Design; goal-directed; Goal-Directed Pattern Matching; high; Icon; interactive user; interfaces; level languages; natural language processing; pattern matching techniques; processing; programming; sequences; Snobol4; SNOBOL4; stream data type; unbounded; user interfaces; word", treatment = "P Practical", } @Article{Fernandez:1992:GCA, author = "Mary F. Fernandez and David R. Hanson", title = "Garbage Collection Alternatives for {Icon}", journal = j-SPE, volume = "22", number = "8", pages = "659--672", month = aug, year = "1992", CODEN = "SPEXBL", ISSN = "0038-0644", bibdate = "Sat May 31 13:36:16 MDT 1997", acknowledgement = ack-nhfb, } @Article{Gudeman:1992:DSG, author = "David A. Gudeman", title = "Denotational Semantics of a Goal-Directed Language", journal = j-TOPLAS, volume = "14", number = "1", pages = "107--125", month = jan, year = "1992", CODEN = "ATPSDT", ISSN = "0164-0925", bibdate = "Fri Jan 5 07:58:42 MST 1996", URL = "http://www.acm.org/pubs/toc/Abstracts/0164-0925/104659.html", abstract = "Goal-directed evaluation is a very expressive programming language paradigm that is supported in relatively few languages. It is characterized by evaluation of expressions in an attempt to meet some goal, with resumption of previous expressions on failure. This paradigm is found in SNOBL4 in its pattern-matching facilities, and in Icon as a general part of the language. This paper presents a denotational semantics of Icon and shows how Icon is in fact a combination of two distinct paradigms, goal-directed evaluation and functional application. The two paradigms are not supported separately in different contexts, but integrated fully into a single evaluation mechanism.", acknowledgement = ack-nhfb # " and " # ack-pb, keywords = "languages; theory", subject = "{\bf F.3.2}: Theory of Computation, LOGICS AND MEANINGS OF PROGRAMS, Semantics of Programming Languages, Denotational semantics. {\bf D.3.1}: Software, PROGRAMMING LANGUAGES, Formal Definitions and Theory, Semantics. {\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language Classifications, Nonprocedural languages. {\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language Classifications, ICON. {\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language Constructs and Features, Control structures. {\bf F.3.3}: Theory of Computation, LOGICS AND MEANINGS OF PROGRAMS, Studies of Program Constructs, Control primitives.", } @Article{Walker:1992:OCI, author = "Kenneth Walker and Ralph E. Griswold", title = "An Optimizing Compiler for the {Icon} Programming Language", journal = j-SPE, volume = "22", number = "8", pages = "637--657", month = aug, year = "1992", CODEN = "SPEXBL", ISSN = "0038-0644", bibdate = "Sat May 31 13:36:16 MDT 1997", acknowledgement = ack-nhfb, } @Article{Griswold:1993:DID, author = "William G. Griswold and Gregg M. Townsend", title = "The Design and Implementation of Dynamic Hashing for Sets and Tables in {Icon}", journal = j-SPE, volume = "23", number = "4", pages = "351--367", month = apr, year = "1993", CODEN = "SPEXBL", ISSN = "0038-0644", bibdate = "Sat May 31 13:36:16 MDT 1997", acknowledgement = ack-nhfb, } @InProceedings{Griswold:1993:HIP, author = "R. E. Griswold and M. T. Griswold", title = "History of the {Icon} programming language", crossref = "ACM:1993:ASH", journal = j-SIGPLAN, volume = "28", number = "3", pages = "53--68", month = mar, year = "1993", CODEN = "SINODQ", ISSN = "0362-1340", bibdate = "Thu Dec 14 18:49:37 MST 1995", abstract = "The Icon programming language, which was conceived in 1977, was strongly influenced by the earlier SNOBOL languages and the subsequent SL5. The paper concentrates primarily on the early development of Icon, but also discusses subsequent versions. The motivation, design philosophy, and environment factors that shaped Icon are emphasized. (108 Refs.)", acknowledgement = ack-nhfb, affiliation = "Dept. of Comput. Sci., Arizona Univ., Tucson, AZ, USA", classification = "C6140D (High level languages)", confdate = "20-23 April 1993", conflocation = "Cambridge, MA, USA", confsponsor = "ACM", keywords = "Icon programming language; SL5; SNOBOL languages", thesaurus = "High level languages; History", } @InProceedings{Hanson:1993:BII, author = "D. R. Hanson", title = "A brief introduction to {Icon}", crossref = "ACM:1993:ASH", journal = j-SIGPLAN, volume = "28", number = "3", pages = "359--360", month = mar, year = "1993", CODEN = "SINODQ", ISSN = "0362-1340", bibdate = "Thu Dec 14 18:49:37 MST 1995", abstract = "Icon is a very high-level imperative language with a rich repertoire of string and structure processing facilities. It is available on a wide range of computers and is in wide use. In Icon, values, not variables, are typed. Built-in data types include numerics, character sets, strings, sets, lists, associative tables, records, and procedures. The aggregate types-sets, lists, tables, and records-can hold values of any type. Tables can be indexed by values of any type. Numerics, character sets, and strings are atomic values; operations on them produce new values. Aggregates use pointer semantics; operations on them can change existing values as well as produce new ones. Strings and aggregates can be of arbitrary size, and their sizes can change during execution. Memory management is automatic. Icon has an expression-oriented syntax, even control structures are expressions. Procedures consist of zero or more expressions separated by newlines or semicolons. Icon programs consist of one or more procedure definitions, and execution begins by calling the procedure named main. (0 Refs.)", acknowledgement = ack-nhfb, affiliation = "Princeton Univ., NJ, USA", classification = "C6140D (High level languages)", confdate = "20-23 April 1993", conflocation = "Cambridge, MA, USA", confsponsor = "ACM", keywords = "Aggregate types; Associative tables; Character sets; Control structures; Data types; Expression-oriented syntax; Icon; Lists; Numerics; Pointer semantics; Procedures; Records; Sets; Strings; Structure processing; Values; Very high-level imperative language", thesaurus = "High level languages", } @Article{OBagy:1993:OSI, author = "Janalee O'Bagy and Kenneth Walker and Ralph E. Griswold", title = "An operational semantics for {Icon}: implementation of a procedural goal-directed language", journal = j-COMP-LANGS, volume = "18", number = "4", pages = "217--239", month = "????", year = "1993", CODEN = "COLADA", ISSN = "0096-0551", bibdate = "Tue Mar 25 14:04:06 MST 1997", acknowledgement = ack-nhfb, classcodes = "C6140D (High level languages); C6150C (Compilers, interpreters and other processors); C6110 (Systems analysis and programming)", corpsource = "Dept. of Comput. Sci., Arizona Univ., Tucson, AZ, USA", keywords = "C; code-generation; compiled code; compiler; compilers; evaluation; function parameters; goal-directed; high level languages; Icon programs; language translation; operational semantics; optimizing; Pascal; procedural goal-directed language; program; programming; programming languages; recursion; technique; traditional control structures; traditional high-level language", treatment = "P Practical", } @Article{Griswold:1994:SAR, author = "Ralph E. Griswold", title = "Some Assembly Required: The {Icon Programming Language}: {Icon} does string and structure processing and numerical computation", journal = j-BYTE, volume = "19", number = "5", pages = "193--??", month = may, year = "1994", CODEN = "BYTEDJ", ISSN = "0360-5280", bibdate = "Tue Jan 2 10:01:41 MST 1996", acknowledgement = ack-nhfb, } @Article{Jeffery:1994:FEM, author = "Clinton L. Jeffery and Ralph E. Griswold", title = "A Framework for Execution Monitoring in {Icon}", journal = j-SPE, volume = "24", number = "11", pages = "1025--1049", month = nov, year = "1994", CODEN = "SPEXBL", ISSN = "0038-0644", bibdate = "Sat May 31 13:36:16 MDT 1997", acknowledgement = ack-nhfb, } @InProceedings{Jeffery:1994:GPI, author = "Clinton L. Jeffery", title = "Graphics Programming in {Icon} Version 9", crossref = "USENIX:1994:PUSb", pages = "157--168", day = "26--28", month = oct, year = "1994", bibdate = "Thu Feb 22 08:12:14 MST 1996", bibsource = "http://www.usenix.org/, ftp://ftp.uu.net/library/bibliography", acknowledgement = ack-nhfb, affiliation = "University of Texas, San Antonio", } @Article{Sloane:1995:EAG, author = "Anthony M. Sloane", title = "An Evaluation of an Automatically Generated Compiler", journal = j-TOPLAS, volume = "17", number = "5", pages = "691--703", month = sep, year = "1995", CODEN = "ATPSDT", ISSN = "0164-0925", bibdate = "Fri Jan 5 07:58:42 MST 1996", URL = "http://www.acm.org/pubs/toc/Abstracts/0164-0925/213980.html", abstract = "Compilers or language translators can be generated using a variety of formal specification techniques. Whether generation is worthwhile depends on the effort required to specify the translation task and the quality of the generated compiler. A systematic comparison was conducted between a hand-coded translator for the Icon programming language and one generated by the Eli compiler construction system. A direct comparison could be made since the generated program performs the same translation as the hand-coded program. The results of the comparison show that efficient compilers can be generated from specifications that are much smaller and more problem oriented than the equivalent source code. We also found that further work must be done to reduce the dynamic memory usage of the generated compilers.", acknowledgement = ack-nhfb, keywords = "experimentation; languages; performance", subject = "{\bf C.4}: Computer Systems Organization, PERFORMANCE OF SYSTEMS, Measurement techniques. {\bf D.2.m}: Software, SOFTWARE ENGINEERING, Miscellaneous, Reusable software. {\bf D.3.4}: Software, PROGRAMMING LANGUAGES, Processors, Translator writing systems and compiler generators.", } @Proceedings{Bullinger:1987:HII, editor = "H.-J. Bullinger and B. Shackel and K. Kornwachs", booktitle = "Human-computer Interaction --- INTERACT '87: proceedings of the Second IFIP Conference on Human-Computer Interaction, held at the University of Stuttgart, Federal Republic of Germany, 1--4 September, 1987", title = "Human-computer Interaction --- {INTERACT} '87: proceedings of the Second {IFIP} Conference on Human-Computer Interaction, held at the University of Stuttgart, Federal Republic of Germany, 1--4 September, 1987", publisher = pub-NH, address = pub-NH:adr, pages = "xli + 1138", year = "1987", ISBN = "0-444-70304-7", LCCN = "QA76.9.S88I325 1987", bibdate = "Wed Oct 30 06:13:54 MST 1996", acknowledgement = ack-nhfb, confdate = "1--4 Sept. 1987", conflocation = "Stuttgart, West Germany", pubcountry = "Netherlands", } @Proceedings{Wexelblat:1987:IIT, editor = "Richard L. Wexelblat", booktitle = "Proceedings of the {SIGPLAN} '87 Symposium on Interpreters and Interpretive Techniques, {St. Paul, Minnesota}, {June} 24--26, 1987", title = "Proceedings of the {SIGPLAN} '87 Symposium on Interpreters and Interpretive Techniques, {St. Paul, Minnesota}, {June} 24--26, 1987", publisher = pub-ACM, address = pub-ACM:adr, pages = "vii + 291", year = "1987", ISBN = "0-89791-235-7", LCCN = "QA76.7 .S54 v.22:7", bibdate = "Sat Aug 13 17:16:20 MDT 1994", note = "SIGPLAN Notices, v. 22, no. 7 (July 1987).", price = "US\$23.00", acknowledgement = ack-nhfb, keywords = "design; interpreters (computer programs) -- congresses; languages", subject = "D.0 Software, GENERAL", } @Proceedings{USENIX:1989:CSF, editor = "{USENIX} Association", booktitle = "Computing Systems, Fall, 1989.", title = "Computing Systems, Fall, 1989.", publisher = "USENIX Association", address = pub-USENIX:adr, month = "Fall", year = "1989", bibdate = "Fri Oct 18 07:24:24 MDT 1996", bibsource = "ftp://ftp.uu.net/library/bibliography", acknowledgement = ack-nhfb, } @Proceedings{ACM:1993:ASH, key = "HOPL'93", booktitle = "ACM SIGPLAN HOPL-II. 2nd ACM SIGPLAN History of Programming Languages Conference (Preprints)", title = "{ACM SIGPLAN HOPL-II}. 2nd {ACM SIGPLAN} History of Programming Languages Conference (Preprints)", journal = j-SIGPLAN, volume = "28(3)", publisher = pub-ACM, address = pub-ACM:adr, month = mar, year = "1993", CODEN = "SINODQ", ISBN = "????", ISSN = "0362-1340", LCCN = "????", bibdate = "Fri Aug 16 19:15:37 1996", acknowledgement = ack-nhfb, classification = "C6140D (High level languages)", confdate = "20-23 April 1993", conflocation = "Cambridge, MA, USA", confsponsor = "ACM", keywords = "Ada; ALGOL 68; C; C++; CLU; Concurrent Pascal; FORMAC; Forth; Icon; Lisp; Pascal; Prolog; Simulation languages; Smalltalk", pubcountry = "USA", thesaurus = "High level languages; History", } @Proceedings{USENIX:1994:PUSb, editor = "{USENIX Association}", booktitle = "Proceedings of the {USENIX} Symposium on Very High Level Languages ({VHLL}): October 26--28, 1994, Santa Fe, New Mexico, USA", title = "Proceedings of the {USENIX} Symposium on Very High Level Languages ({VHLL}): October 26--28, 1994, Santa Fe, New Mexico, {USA}", publisher = pub-USENIX, address = pub-USENIX:adr, pages = "226", year = "1994", ISBN = "1-880446-65-0", LCCN = "QA76.7 .U74 1994", bibdate = "Sun Feb 18 07:46:09 MST 1996", acknowledgement = ack-nhfb, annote = "Spine title: Very high level languages (VHLL) proceedings. ``Autumn 1994''--Spine.", keywords = "Programming languages (Electronic computers) --- Congresses.", } ---------------------------------------------------------------------------- - 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 - ---------------------------------------------------------------------------- 12-Jan-1998 17:49:46-GMT,1737;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 KAA19776 for ; Mon, 12 Jan 1998 10:49:40 -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, 12 Jan 1998 10:53:24 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@samson.kean.edu Subject: Re: Windoze tools? Date: 12 Jan 1998 15:41:02 GMT Message-ID: <69ddie$bip$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: LitProg@SHSU.edu On 10 Jan 1998, Schol-R-LEA wrote: > In my present position, I am working in Win95 environment, developing in > Access. While I cant imagine getting official saction for it, I would > like to know if any tools for LP tools for Win95 are available. I can't > seem to find WinWordWeb anywhere, and I suspect it may have been dropped > or had it name changed (there's a commercial thesaurus called 'WordWeb', > and there may have been legal issues with its creators). WinWordWEB (the original prototype -- VERY out of date wrt WinWord '97) is available at ftp://samson.kean.edu/pub/leew/ -- 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 | ------------------------------------------------------------------------ 12-Jan-1998 18:05:57-GMT,43158;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 LAA20275 for ; Mon, 12 Jan 1998 11:05:45 -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; Mon, 12 Jan 1998 10:02:50 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 JAA16761; Mon, 12 Jan 1998 09:02:48 -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 JAA13427; Mon, 12 Jan 1998 09:02:47 -0700 (MST) Date: Mon, 12 Jan 1998 09:02:47 -0700 (MST) To: LitProg@SHSU.edu, talmg@atom.forensic.sa.gov.au CC: beebe@math.utah.edu Subject: Re: Beginner questions Message-ID: Michael Talbot-Wilson writes on the litprog list on 11 Jan 1998 21:54:38 GMT: >> Presumably Icon is a commercial product marketed >> by the noweb author. Wrong. It is a venerable system (14+ years old) that is freely available. Visit ftp://ftp.cs.arizona.edu/icon for source and binary distributions. Here are BibTeX entries for the books about Icon: @String{pub-PH = "Pren{\-}tice-Hall"} @String{pub-PH:adr = "Englewood Cliffs, NJ 07632, USA"} @String{pub-PUP = "Princeton University Press"} @String{pub-PUP:adr = "Princeton, NJ, USA"} @Book{Griswold:IIP86, author = "Ralph E. Griswold and Madge T. Griswold", title = "The Implementation of the {Icon} Programming Language", publisher = pub-PUP, address = pub-PUP:adr, pages = "x + 336", year = "1986", ISBN = "0-691-08431-9", LCCN = "QA76.73.I19 G76 1986", price = "US\$39.50", bibdate = "Sun Jul 10 01:07:50 1994", } @Book{Griswold:IPL83, author = "Ralph E. Griswold and Madge T. Griswold", title = "The {Icon} Programming Language", publisher = pub-PH, address = pub-PH:adr, pages = "xviii + 313", year = "1983", ISBN = "0-13-449777-5", LCCN = "QA76.73.I19 G74 1983", bibdate = "Tue Dec 14 22:54:38 1993", } @Book{Griswold:IPL90, author = "Ralph E. Griswold and Madge T. Griswold", title = "The {Icon} Programming Language", publisher = pub-PH, address = pub-PH:adr, edition = "Second", pages = "xv + 367", year = "1990", ISBN = "0-13-447889-4", LCCN = "QA76.73.I19 G74 1990", bibdate = "Tue Dec 14 22:54:39 1993", libnote = "Not yet in my library.", } There are quite a few technical papers about Icon as well. Here is everything I could find (37 entries) via bibsearch, a fast front end to my archives of 180K+ BibTeX entries: @String{j-BYTE = "Byte Magazine"} @String{j-COMP-J = "The Computer Journal"} @String{j-COMP-LANGS = "Computer Languages"} @String{j-COMP-SYS = "Computing Systems"} @String{j-SIGPLAN = "ACM SIG{\-}PLAN Notices"} @String{j-SPE = "Software---Practice and Experience"} @String{j-SPE = "Soft\-ware\emdash Prac\-tice and Experience"} @String{j-TOPLAS = "ACM Transactions on Programming Languages and Systems"} @String{pub-ACM = "ACM Press"} @String{pub-ACM:adr = "New York, NY 10036, USA"} @String{pub-ACM:adr = "New York, NY, USA"} @String{pub-NH = "North-Hol{\-}land"} @String{pub-NH:adr = "Amsterdam, The Netherlands"} @String{pub-USENIX = "USENIX"} @String{pub-USENIX:adr = "Berkeley, CA, USA"} @String{ser-SIGPLAN = "ACM SIG{\-}PLAN Notices"} @Article{Griswold:1980:UCS, author = "R. E. Griswold", title = "The use of character sets and character mappings in {Icon}", journal = j-COMP-J, volume = "23", number = "2", pages = "107--114", month = may, year = "1980", CODEN = "CMPJA6", ISSN = "0010-4620", bibdate = "Tue Mar 25 13:51:56 MST 1997", bibsource = "Compendex database", acknowledgement = ack-nhfb, classcodes = "C6140D (High level languages)", classification = "723", corpsource = "Dept. of Computer Sci., Univ. of Arizona, Tucson, AZ, USA", keywords = "character mapping; character sets; computer programming; computer programming languages; Icon programming; language; nonnumerical; paradigms; problems; procedure oriented languages; programming techniques", treatment = "P Practical", } @Article{Hanson:1980:PSM, author = "David R. Hanson", title = "A Portable Storage Management System for the {Icon} Programming Language", journal = j-SPE, volume = "10", number = "6", pages = "489--500", month = jun, year = "1980", CODEN = "SPEXBL", ISSN = "0038-0644", bibdate = "Sat May 31 13:36:16 MDT 1997", acknowledgement = ack-nhfb, } @Article{Griswold:1981:GI, author = "Ralph E. Griswold and David R. Hanson and John T. Korb", title = "Generators in {Icon}", journal = j-TOPLAS, volume = "3", number = "2", pages = "144--161", month = apr, year = "1981", CODEN = "ATPSDT", ISSN = "0164-0925", bibsource = "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib", acknowledgement = ack-pb, } @Article{Griswold:1982:EEI, author = "Ralph E. Griswold", title = "The Evaluation of Expressions in {Icon}", journal = j-TOPLAS, volume = "4", number = "4", pages = "563--584", month = oct, year = "1982", CODEN = "ATPSDT", ISSN = "0164-0925", bibsource = "Compiler/bevan.bib", abstract = "Expressions in the Icon programming language may be {\em conditional}, possibly producing no result, or they may be {\em generators}, possibly producing a sequence of results. Generators, coupled with a goal directed evaluation mechanism, provide a concise method for expression many complex computations. This paper describes the evaluation of expressions in Icon and presents an Icon program that explicates the semantics of expression evaluation. This program also provides an executable ``formalism'' that can be used as a tool to design and test changes and additions to the language.", acknowledgement = ack-pb, checked = "19940302", keywords = "control structures; Icon; interpreters; semantics", source = "Dept. Library", } @Article{Griswold:1983:ISP, author = "Ralph E. Griswold", title = "Implementing {Snobol4} Pattern Matching in {Icon}", journal = j-COMP-LANGS, volume = "8", number = "2", pages = "77--92", month = "????", year = "1983", CODEN = "COLADA", ISSN = "0096-0551", bibdate = "Tue Mar 25 14:04:06 MST 1997", bibsource = "Compendex database", acknowledgement = ack-nhfb, classcodes = "C6130 (Data handling techniques)", classification = "723", corpsource = "Dept. of Computer Sci., Univ. of Arizona, Tucson, AZ, USA", journalabr = "Comput Lang", keywords = "computer software; cursor model; data handling; Icon; pattern matching; pattern recognition; SNOBOL4 pattern matching; string; substring model", treatment = "P Practical", } @Article{Griswold:1983:PCO, author = "R. E. Griswold and Michael Novak", title = "Programmer-Defined Control Operations", journal = j-COMP-J, volume = "26", number = "2", pages = "175--183", month = may, year = "1983", CODEN = "CMPJA6", ISSN = "0010-4620", bibdate = "Tue Mar 25 13:51:56 MST 1997", bibsource = "Compendex database", acknowledgement = ack-nhfb, classcodes = "C6140D (High level languages); C6150J (Operating systems)", classification = "723", corpsource = "Dept. of Computer Sci., Univ. of Arizona, Tucson, AZ, USA", keywords = "computer programming languages; control operations; high level languages; Icon; operating systems (computers); OS; programmers; programming languages", treatment = "P Practical", }@String{j-COMP-J = "The Computer Journal"} @Article{Wampler:1983:CI, author = "S. B. Wampler and R. E. Griswold", title = "Co-expressions in {Icon}", journal = j-COMP-J, volume = "26", number = "1", pages = "72--78", month = feb, year = "1983", CODEN = "CMPJA6", ISSN = "0010-4620", bibdate = "Tue Mar 25 13:51:56 MST 1997", bibsource = "Compendex database", acknowledgement = ack-nhfb, classcodes = "C6140D (High level languages)", classification = "723", corpsource = "Dept. of Computer Sci., Univ. of Arizona, Tucson, AZ, USA", keywords = "co-expressions; computer programming languages; generators; high level languages; high level programming; Icon; programming languages", treatment = "P Practical", } @Article{Wampler:1983:IGG, author = "Stephen B. Wampler and Ralph E. Griswold", title = "The Implementation of Generators and Goal-directed Evaluation in {Icon}", journal = j-SPE, volume = "13", number = "6", pages = "495--518", month = jun, year = "1983", CODEN = "SPEXBL", ISSN = "0038-0644", bibdate = "Sat May 31 13:36:16 MDT 1997", acknowledgement = ack-nhfb, keywords = "languages; measurement; performance", review = "ACM CR 8405-0364", subject = "D.3.2 Software, PROGRAMMING LANGUAGES, Language Classifications, ICON \\ D.3.3 Software, PROGRAMMING LANGUAGES, Language Constructs, Control structures \\ D.3.4 Software, PROGRAMMING LANGUAGES, Processors, Run-time environments \\ G.2.1 Mathematics of Computing, DISCRETE MATHEMATICS, Combinatorics, Generating functions", } @Article{Wampler:1983:RS, author = "Stephen B. Wampler and Ralph E. Griswold", title = "Result Sequences", journal = j-COMP-LANGS, volume = "8", number = "1", pages = "1--14", month = "????", year = "1983", CODEN = "COLADA", ISSN = "0096-0551", bibdate = "Tue Mar 25 14:04:06 MST 1997", bibsource = "Compendex database", acknowledgement = ack-nhfb, classcodes = "C6140D (High level languages)", classification = "723", corpsource = "Dept. of Computer Sci., Tucson, AZ, USA", journalabr = "Comput Lang", keywords = "computer programming languages; control operations; enclosing; expression; expression evaluation; goal directed evaluation; high level languages; Icon; languages; programming; result sequences", treatment = "P Practical", } @TechReport{Mitchell:1984:ISU, author = "William H. Mitchell", title = "An {Icon} subsystem for {UNIX} Emacs", type = "Technical report", number = "TR 84-8", institution = "Dept. of Computer Science, The University of Arizona", address = "Tucson, AZ, USA", pages = "17", year = "1984", bibdate = "Wed Oct 30 08:29:31 MST 1996", acknowledgement = ack-nhfb, keywords = "Icon (Computer program language); Text editors (Computer programs)", teyp = "Technical report", } @Article{Lapalme:1986:LIP, author = "Guy Lapalme and Suzanne Chapleau", title = "Logicon: An Integration of {Prolog} into {Icon}", journal = j-SPE, volume = "16", number = "10", pages = "925--944", month = oct, year = "1986", CODEN = "SPEXBL", ISSN = "0038-0644", bibdate = "Sat May 31 13:36:16 MDT 1997", acknowledgement = ack-nhfb, } @InProceedings{Hinckley:1987:OOE, author = "K. Hinckley", title = "An object oriented extension language for integrating disparate applications", crossref = "Bullinger:1987:HII", pages = "529--533", year = "1987", bibdate = "Wed Oct 30 06:13:54 MST 1996", abstract = "QUICHE (quick user interface and command handling extension) is an extension language based on the Icon programming language. Like Lisp-style EMACS extension languages, it can be used to define key bindings. Unlike those extensions, QUICHE is not bound to any particular application, can easily make system calls and invoke programs and can call entry points in the program it is extending, either directly or through a trait binding mechanism. It is this latter ability that makes QUICHE an ideal means of unifying application interfaces. Traits are defined for applications such as window managers, debuggers and editors. Each trait encapsulates a set of basic operations that will be available in any instance of an object. The existence of a standard set of traits allows the interface designer to tailor interfaces that provide consistency across multiple applications, and to easily modify or add features to a set of applications. In addition, QUICHE can also extend applications which do not themselves support any traits. A manager can be written in QUICHE that, instead of calling the application, inserts the commands corresponding to a call as though the user had entered them.", acknowledgement = ack-nhfb, affiliation = "User Environment Apollo Computer, Inc., Chelmsford, MA, USA", classification = "C6140D (High level languages); C6110 (Systems analysis and programming); C6180 (User interfaces); C6150J (Operating systems)", keywords = "Object oriented extension language; Disparate applications; Quick user interface; Command handling extension; Icon programming language; Key bindings; System calls; Entry points; Trait binding mechanism; QUICHE; Application interfaces; Window managers; Debuggers; Editors; Interface designer; Consistency; Multiple applications", thesaurus = "High level languages; Multiprogramming; Object-oriented programming; User interfaces", } @InProceedings{OBagy:1987:RII, author = "J. O'Bagy and R. E. Griswold", title = "A recursive interpreter for the {Icon} programming language", crossref = "Wexelblat:1987:IIT", pages = "138--149", year = "1987", bibdate = "Sat Aug 13 17:16:20 MDT 1994", series = ser-SIGPLAN, acknowledgement = ack-nhfb, keywords = "design; languages", subject = "D.3.2 Software, PROGRAMMING LANGUAGES, Language Classifications, ICON \\ D.3.4 Software, PROGRAMMING LANGUAGES, Processors, Interpreters", } @Article{Griswold:1988:PG, author = "R. E. Griswold", title = "Programming with Generators", journal = j-COMP-J, volume = "31", number = "3", pages = "220--228", month = jun, year = "1988", CODEN = "CMPJA6", ISSN = "0010-4620", bibdate = "Tue Mar 25 13:51:56 MST 1997", bibsource = "Compendex database", acknowledgement = ack-nhfb, affiliation = "Univ of Arizona, Tucson, AZ, USA", affiliationaddress = "Univ of Arizona, Tucson, AZ, USA", classcodes = "C6110 (Systems analysis and programming); C6140D (High level languages)", classification = "723", corpsource = "Dept. of Comput. Sci., Arizona Univ., Tucson, AZ, USA", keywords = "computer programming; computer programming languages; control structures; expression evaluation; generators; goal-directed evaluation; high level languages; icon; Icon programming language; logic programming; programming language; programming with generators; result; sequences; termination", treatment = "P Practical", } @Article{Griswold:1988:SPL, author = "Ralph E. Griswold and Janalee O'Bagy", title = "{Seque}: a Programming Language for Manipulating Sequences", journal = j-COMP-LANGS, volume = "13", number = "1", pages = "13--22", month = "????", year = "1988", CODEN = "COLADA", ISSN = "0096-0551", bibdate = "Tue Mar 25 14:04:06 MST 1997", bibsource = "Compendex database", acknowledgement = ack-nhfb, affiliationaddress = "Univ of Arizona, Tucson, AZ, USA", classcodes = "C6130 (Data handling techniques); C6140D (High level languages)", classification = "723", corpsource = "Dept. of Comput. Sci., Arizona Univ., Tucson, AZ, USA", journalabr = "Comput Lang", keywords = "component; computational; computer programming; computer programming languages; data handling; data objects; evaluation; goal-directed; goal-directed evaluation; high level languages; Icon programming language; infinite data objects; language; manipulating sequences; programming; recurrence relations; Seque; sequences manipulation; storage component; stream manipulation", treatment = "P Practical", } @InProceedings{Griswold:1989:DSI, author = "Ralph E. Griswold", title = "Data Structures in the {Icon} Programming Language", crossref = "USENIX:1989:CSF", volume = "2", number = "4", pages = "339--365", month = "Fall", year = "1989", bibdate = "Wed Aug 13 10:28:01 1997", bibsource = "ftp://ftp.uu.net/library/bibliography", acknowledgement = ack-nhfb, affiliation = "University of Arizona", } @Article{Griswold:COMPSYS-2-4-339, author = "Ralph E. Griswold", title = "Data Structures in the Icon Programming Language", journal = j-COMP-SYS, volume = "2", number = "4", pages = "339--365", month = "Fall", year = "1989", CODEN = "CMSYE2", ISSN = "0895-6340", bibdate = "Fri Sep 13 08:53:14 MDT 1996", acknowledgement = ack-nhfb, affiliation = "Arizona Univ., Tucson, AZ, USA", classification = "C6120 (File organisation); C6140D (High level languages)", keywords = "Positional access mechanisms; Type repertoire extension; Automatic storage management; Icon programming language; Data structures; Sets; Arbitrary values; Tables; Associative lookup; Lists; Deque access mechanisms; Records; Goal-directed evaluation mechanism; Pointer semantics; Heterogeneity; Natural geometrical interpretation; Trees; Graphs; Problem domain; Programming domain", thesaurus = "Data structures; High level languages", } @Article{Walker:1989:FPI, author = "Kenneth W. Walker", title = "First-class patterns for {Icon}", journal = j-COMP-LANGS, volume = "14", number = "3", pages = "153--163", month = "????", year = "1989", CODEN = "COLADA", ISSN = "0096-0551", bibdate = "Tue Mar 25 14:04:06 MST 1997", bibsource = "Compendex database", acknowledgement = ack-nhfb, affiliation = "Univ of Arizona", affiliationaddress = "Tucson, AZ, USA", classcodes = "C6140D (High level languages); C6130D (Document processing techniques)", classification = "723", corpsource = "Dept. of Comput. Sci., Arizona Univ., Tucson, AZ, USA", journalabr = "Comput Lang", keywords = "backtracking; coexpression semantics; Computer Programming Languages; constructs; control structure; dynamically created; entities; executable form; high level languages; Icon Programming Language; Icon programming language; interpreters; language; Language Constructs; matching expressions; modifications; pattern data type; pattern simulation; problem solving; procedure syntax; Snobol Programming Language; SNOBOL4; String Pattern Matching; string pattern matching", treatment = "P Practical", } @Article{Griswold:1990:SSI, author = "R. E. Griswold", title = "String Scanning in the {Icon} Programming Language", journal = j-COMP-J, volume = "33", number = "2", pages = "98--107", month = apr, year = "1990", CODEN = "CMPJA6", ISSN = "0010-4620", bibdate = "Tue Mar 25 13:51:56 MST 1997", acknowledgement = ack-nhfb, affiliation = "Dept. of Comput. Sci., Arizona Univ., Tucson, AZ, USA", classcodes = "C6140D (High level languages); C6130D (Document processing techniques); C6110 (Systems analysis and programming)", classification = "C6110 (Systems analysis and programming); C6130D (Document processing techniques); C6140D (High level languages)", corpsource = "Dept. of Comput. Sci., Arizona Univ., Tucson, AZ, USA", keywords = "design; general-; General-purpose programming language; high level languages; HLL; Icon programming language; implementation issues; Implementation issues; language; Language design; numerical computation; Numerical computation; programming; purpose programming language; string manipulation; String manipulation; string scanning; String scanning; word processing", thesaurus = "High level languages; Programming; Word processing", treatment = "P Practical", } @Article{Nilsen:1990:HLG, author = "Kelvin Nilsen", title = "High-level Goal-directed Concurrent Processing in {Icon}", journal = j-SPE, volume = "20", number = "12", pages = "1273--1290", month = dec, year = "1990", CODEN = "SPEXBL", ISSN = "0038-0644", bibdate = "Sat May 31 13:36:16 MDT 1997", acknowledgement = ack-nhfb, } @Article{Nilsen:1990:SDT, author = "Kelvin Nilsen", title = "A stream data type that supports goal-directed pattern matching on unbounded sequences of values", journal = j-COMP-LANGS, volume = "15", number = "1", pages = "41--54", month = "????", year = "1990", CODEN = "COLADA", ISSN = "0096-0551", bibdate = "Tue Mar 25 14:04:06 MST 1997", bibsource = "Compendex database", acknowledgement = ack-nhfb, affiliation = "Iowa State Univ", affiliationaddress = "Ames, IA, USA", classcodes = "C6120 (File organisation); C6110 (Systems analysis and programming); C5260B (Computer vision and picture processing)C6180N (Natural language processing); C6130D (Document processing techniques); C6140D (High level languages)", classification = "723", corpsource = "Dept. of Comput. Sci., Iowa State Univ., Ames, IA, USA", journalabr = "Comput Lang", keywords = "arbitrary values; Computer Programming Languages; computerised pattern recognition; Data Processing--Data Structures; data structures; data type; Design; goal-directed; Goal-Directed Pattern Matching; high; Icon; interactive user; interfaces; level languages; natural language processing; pattern matching techniques; processing; programming; sequences; Snobol4; SNOBOL4; stream data type; unbounded; user interfaces; word", treatment = "P Practical", } @Article{Fernandez:1992:GCA, author = "Mary F. Fernandez and David R. Hanson", title = "Garbage Collection Alternatives for {Icon}", journal = j-SPE, volume = "22", number = "8", pages = "659--672", month = aug, year = "1992", CODEN = "SPEXBL", ISSN = "0038-0644", bibdate = "Sat May 31 13:36:16 MDT 1997", acknowledgement = ack-nhfb, } @Article{Gudeman:1992:DSG, author = "David A. Gudeman", title = "Denotational Semantics of a Goal-Directed Language", journal = j-TOPLAS, volume = "14", number = "1", pages = "107--125", month = jan, year = "1992", CODEN = "ATPSDT", ISSN = "0164-0925", bibdate = "Fri Jan 5 07:58:42 MST 1996", URL = "http://www.acm.org/pubs/toc/Abstracts/0164-0925/104659.html", abstract = "Goal-directed evaluation is a very expressive programming language paradigm that is supported in relatively few languages. It is characterized by evaluation of expressions in an attempt to meet some goal, with resumption of previous expressions on failure. This paradigm is found in SNOBL4 in its pattern-matching facilities, and in Icon as a general part of the language. This paper presents a denotational semantics of Icon and shows how Icon is in fact a combination of two distinct paradigms, goal-directed evaluation and functional application. The two paradigms are not supported separately in different contexts, but integrated fully into a single evaluation mechanism.", acknowledgement = ack-nhfb # " and " # ack-pb, keywords = "languages; theory", subject = "{\bf F.3.2}: Theory of Computation, LOGICS AND MEANINGS OF PROGRAMS, Semantics of Programming Languages, Denotational semantics. {\bf D.3.1}: Software, PROGRAMMING LANGUAGES, Formal Definitions and Theory, Semantics. {\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language Classifications, Nonprocedural languages. {\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language Classifications, ICON. {\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language Constructs and Features, Control structures. {\bf F.3.3}: Theory of Computation, LOGICS AND MEANINGS OF PROGRAMS, Studies of Program Constructs, Control primitives.", } @Article{Walker:1992:OCI, author = "Kenneth Walker and Ralph E. Griswold", title = "An Optimizing Compiler for the {Icon} Programming Language", journal = j-SPE, volume = "22", number = "8", pages = "637--657", month = aug, year = "1992", CODEN = "SPEXBL", ISSN = "0038-0644", bibdate = "Sat May 31 13:36:16 MDT 1997", acknowledgement = ack-nhfb, } @Article{Griswold:1993:DID, author = "William G. Griswold and Gregg M. Townsend", title = "The Design and Implementation of Dynamic Hashing for Sets and Tables in {Icon}", journal = j-SPE, volume = "23", number = "4", pages = "351--367", month = apr, year = "1993", CODEN = "SPEXBL", ISSN = "0038-0644", bibdate = "Sat May 31 13:36:16 MDT 1997", acknowledgement = ack-nhfb, } @InProceedings{Griswold:1993:HIP, author = "R. E. Griswold and M. T. Griswold", title = "History of the {Icon} programming language", crossref = "ACM:1993:ASH", journal = j-SIGPLAN, volume = "28", number = "3", pages = "53--68", month = mar, year = "1993", CODEN = "SINODQ", ISSN = "0362-1340", bibdate = "Thu Dec 14 18:49:37 MST 1995", abstract = "The Icon programming language, which was conceived in 1977, was strongly influenced by the earlier SNOBOL languages and the subsequent SL5. The paper concentrates primarily on the early development of Icon, but also discusses subsequent versions. The motivation, design philosophy, and environment factors that shaped Icon are emphasized. (108 Refs.)", acknowledgement = ack-nhfb, affiliation = "Dept. of Comput. Sci., Arizona Univ., Tucson, AZ, USA", classification = "C6140D (High level languages)", confdate = "20-23 April 1993", conflocation = "Cambridge, MA, USA", confsponsor = "ACM", keywords = "Icon programming language; SL5; SNOBOL languages", thesaurus = "High level languages; History", } @InProceedings{Hanson:1993:BII, author = "D. R. Hanson", title = "A brief introduction to {Icon}", crossref = "ACM:1993:ASH", journal = j-SIGPLAN, volume = "28", number = "3", pages = "359--360", month = mar, year = "1993", CODEN = "SINODQ", ISSN = "0362-1340", bibdate = "Thu Dec 14 18:49:37 MST 1995", abstract = "Icon is a very high-level imperative language with a rich repertoire of string and structure processing facilities. It is available on a wide range of computers and is in wide use. In Icon, values, not variables, are typed. Built-in data types include numerics, character sets, strings, sets, lists, associative tables, records, and procedures. The aggregate types-sets, lists, tables, and records-can hold values of any type. Tables can be indexed by values of any type. Numerics, character sets, and strings are atomic values; operations on them produce new values. Aggregates use pointer semantics; operations on them can change existing values as well as produce new ones. Strings and aggregates can be of arbitrary size, and their sizes can change during execution. Memory management is automatic. Icon has an expression-oriented syntax, even control structures are expressions. Procedures consist of zero or more expressions separated by newlines or semicolons. Icon programs consist of one or more procedure definitions, and execution begins by calling the procedure named main. (0 Refs.)", acknowledgement = ack-nhfb, affiliation = "Princeton Univ., NJ, USA", classification = "C6140D (High level languages)", confdate = "20-23 April 1993", conflocation = "Cambridge, MA, USA", confsponsor = "ACM", keywords = "Aggregate types; Associative tables; Character sets; Control structures; Data types; Expression-oriented syntax; Icon; Lists; Numerics; Pointer semantics; Procedures; Records; Sets; Strings; Structure processing; Values; Very high-level imperative language", thesaurus = "High level languages", } @Article{OBagy:1993:OSI, author = "Janalee O'Bagy and Kenneth Walker and Ralph E. Griswold", title = "An operational semantics for {Icon}: implementation of a procedural goal-directed language", journal = j-COMP-LANGS, volume = "18", number = "4", pages = "217--239", month = "????", year = "1993", CODEN = "COLADA", ISSN = "0096-0551", bibdate = "Tue Mar 25 14:04:06 MST 1997", acknowledgement = ack-nhfb, classcodes = "C6140D (High level languages); C6150C (Compilers, interpreters and other processors); C6110 (Systems analysis and programming)", corpsource = "Dept. of Comput. Sci., Arizona Univ., Tucson, AZ, USA", keywords = "C; code-generation; compiled code; compiler; compilers; evaluation; function parameters; goal-directed; high level languages; Icon programs; language translation; operational semantics; optimizing; Pascal; procedural goal-directed language; program; programming; programming languages; recursion; technique; traditional control structures; traditional high-level language", treatment = "P Practical", } @Article{Griswold:1994:SAR, author = "Ralph E. Griswold", title = "Some Assembly Required: The {Icon Programming Language}: {Icon} does string and structure processing and numerical computation", journal = j-BYTE, volume = "19", number = "5", pages = "193--??", month = may, year = "1994", CODEN = "BYTEDJ", ISSN = "0360-5280", bibdate = "Tue Jan 2 10:01:41 MST 1996", acknowledgement = ack-nhfb, } @Article{Jeffery:1994:FEM, author = "Clinton L. Jeffery and Ralph E. Griswold", title = "A Framework for Execution Monitoring in {Icon}", journal = j-SPE, volume = "24", number = "11", pages = "1025--1049", month = nov, year = "1994", CODEN = "SPEXBL", ISSN = "0038-0644", bibdate = "Sat May 31 13:36:16 MDT 1997", acknowledgement = ack-nhfb, } @InProceedings{Jeffery:1994:GPI, author = "Clinton L. Jeffery", title = "Graphics Programming in {Icon} Version 9", crossref = "USENIX:1994:PUSb", pages = "157--168", day = "26--28", month = oct, year = "1994", bibdate = "Thu Feb 22 08:12:14 MST 1996", bibsource = "http://www.usenix.org/, ftp://ftp.uu.net/library/bibliography", acknowledgement = ack-nhfb, affiliation = "University of Texas, San Antonio", } @Article{Sloane:1995:EAG, author = "Anthony M. Sloane", title = "An Evaluation of an Automatically Generated Compiler", journal = j-TOPLAS, volume = "17", number = "5", pages = "691--703", month = sep, year = "1995", CODEN = "ATPSDT", ISSN = "0164-0925", bibdate = "Fri Jan 5 07:58:42 MST 1996", URL = "http://www.acm.org/pubs/toc/Abstracts/0164-0925/213980.html", abstract = "Compilers or language translators can be generated using a variety of formal specification techniques. Whether generation is worthwhile depends on the effort required to specify the translation task and the quality of the generated compiler. A systematic comparison was conducted between a hand-coded translator for the Icon programming language and one generated by the Eli compiler construction system. A direct comparison could be made since the generated program performs the same translation as the hand-coded program. The results of the comparison show that efficient compilers can be generated from specifications that are much smaller and more problem oriented than the equivalent source code. We also found that further work must be done to reduce the dynamic memory usage of the generated compilers.", acknowledgement = ack-nhfb, keywords = "experimentation; languages; performance", subject = "{\bf C.4}: Computer Systems Organization, PERFORMANCE OF SYSTEMS, Measurement techniques. {\bf D.2.m}: Software, SOFTWARE ENGINEERING, Miscellaneous, Reusable software. {\bf D.3.4}: Software, PROGRAMMING LANGUAGES, Processors, Translator writing systems and compiler generators.", } @Proceedings{Bullinger:1987:HII, editor = "H.-J. Bullinger and B. Shackel and K. Kornwachs", booktitle = "Human-computer Interaction --- INTERACT '87: proceedings of the Second IFIP Conference on Human-Computer Interaction, held at the University of Stuttgart, Federal Republic of Germany, 1--4 September, 1987", title = "Human-computer Interaction --- {INTERACT} '87: proceedings of the Second {IFIP} Conference on Human-Computer Interaction, held at the University of Stuttgart, Federal Republic of Germany, 1--4 September, 1987", publisher = pub-NH, address = pub-NH:adr, pages = "xli + 1138", year = "1987", ISBN = "0-444-70304-7", LCCN = "QA76.9.S88I325 1987", bibdate = "Wed Oct 30 06:13:54 MST 1996", acknowledgement = ack-nhfb, confdate = "1--4 Sept. 1987", conflocation = "Stuttgart, West Germany", pubcountry = "Netherlands", } @Proceedings{Wexelblat:1987:IIT, editor = "Richard L. Wexelblat", booktitle = "Proceedings of the {SIGPLAN} '87 Symposium on Interpreters and Interpretive Techniques, {St. Paul, Minnesota}, {June} 24--26, 1987", title = "Proceedings of the {SIGPLAN} '87 Symposium on Interpreters and Interpretive Techniques, {St. Paul, Minnesota}, {June} 24--26, 1987", publisher = pub-ACM, address = pub-ACM:adr, pages = "vii + 291", year = "1987", ISBN = "0-89791-235-7", LCCN = "QA76.7 .S54 v.22:7", bibdate = "Sat Aug 13 17:16:20 MDT 1994", note = "SIGPLAN Notices, v. 22, no. 7 (July 1987).", price = "US\$23.00", acknowledgement = ack-nhfb, keywords = "design; interpreters (computer programs) -- congresses; languages", subject = "D.0 Software, GENERAL", } @Proceedings{USENIX:1989:CSF, editor = "{USENIX} Association", booktitle = "Computing Systems, Fall, 1989.", title = "Computing Systems, Fall, 1989.", publisher = "USENIX Association", address = pub-USENIX:adr, month = "Fall", year = "1989", bibdate = "Fri Oct 18 07:24:24 MDT 1996", bibsource = "ftp://ftp.uu.net/library/bibliography", acknowledgement = ack-nhfb, } @Proceedings{ACM:1993:ASH, key = "HOPL'93", booktitle = "ACM SIGPLAN HOPL-II. 2nd ACM SIGPLAN History of Programming Languages Conference (Preprints)", title = "{ACM SIGPLAN HOPL-II}. 2nd {ACM SIGPLAN} History of Programming Languages Conference (Preprints)", journal = j-SIGPLAN, volume = "28(3)", publisher = pub-ACM, address = pub-ACM:adr, month = mar, year = "1993", CODEN = "SINODQ", ISBN = "????", ISSN = "0362-1340", LCCN = "????", bibdate = "Fri Aug 16 19:15:37 1996", acknowledgement = ack-nhfb, classification = "C6140D (High level languages)", confdate = "20-23 April 1993", conflocation = "Cambridge, MA, USA", confsponsor = "ACM", keywords = "Ada; ALGOL 68; C; C++; CLU; Concurrent Pascal; FORMAC; Forth; Icon; Lisp; Pascal; Prolog; Simulation languages; Smalltalk", pubcountry = "USA", thesaurus = "High level languages; History", } @Proceedings{USENIX:1994:PUSb, editor = "{USENIX Association}", booktitle = "Proceedings of the {USENIX} Symposium on Very High Level Languages ({VHLL}): October 26--28, 1994, Santa Fe, New Mexico, USA", title = "Proceedings of the {USENIX} Symposium on Very High Level Languages ({VHLL}): October 26--28, 1994, Santa Fe, New Mexico, {USA}", publisher = pub-USENIX, address = pub-USENIX:adr, pages = "226", year = "1994", ISBN = "1-880446-65-0", LCCN = "QA76.7 .U74 1994", bibdate = "Sun Feb 18 07:46:09 MST 1996", acknowledgement = ack-nhfb, annote = "Spine title: Very high level languages (VHLL) proceedings. ``Autumn 1994''--Spine.", keywords = "Programming languages (Electronic computers) --- Congresses.", } ---------------------------------------------------------------------------- - 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 - ---------------------------------------------------------------------------- 13-Jan-1998 0:10:50-GMT,1894;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 RAA29585 for ; Mon, 12 Jan 1998 17:10: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, 12 Jan 1998 18:01:50 EST From: talmg@atom.forensic.sa.gov.au (Michael Talbot-Wilson) Reply-To: LitProg@SHSU.edu, talmg@atom.forensic.sa.gov.au Subject: Icon - followup Date: 12 Jan 1998 23:50:01 GMT Message-ID: <69ea79$3a0$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu I have received quite a lot of mail in response to my post which made a reference to Icon and the noweb author. Here is one of the kinder responses (some were, shall we say, franker): > Icon is indeed free and on the web on its own WWW home page. > Norman Ramsey's own pages will also point you to it. > Search and you will find. > Maybe you should retract your presumption, it could hurt the feelings of > Norman who is, in his free time, providing the tools which we are unable > to (or unwilling) to produce ourselves... I do indeed retract and apologize. All I can say in my defense is that I didn't find anything on Icon in poking around the noweb sources, e.g. there was no README in the icon subdirectory. On looking again, I find enough in the top-level README to at least suggest that my first assumption was incorrect. I now know that Icon is free and that there are published books on it. It is an established programming language, and so there really wasn't any need for the Norman Ramsey to provide any explanation. Thanks to those who pointed this out and put me on the right track. Incidentally, the original post has not reached me, hence the second thread. Cheers... 13-Jan-1998 0:18:06-GMT,892;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 RAA29762 for ; Mon, 12 Jan 1998 17:18:05 -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, 12 Jan 1998 18:10:28 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: temporary moderation outage for c.p.l Date: 12 Jan 1998 23:55:07 GMT Message-ID: <69eagr$3fg$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu Several postings have been OKed by the moderators but seem not to have reached the public at large. I'm working on tracking down the problem. Norman -- Norman Ramsey http://www.cs.virginia.edu/~nr 14-Jan-1998 23:23:21-GMT,2243;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 QAA29821 for ; Wed, 14 Jan 1998 16:23:20 -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, 14 Jan 1998 17:09:05 EST From: sjlozowski@icdc.com Reply-To: LitProg@SHSU.edu, sjlozowski@icdc.com Subject: Language Independent Tool Recommendation Requested Date: 14 Jan 1998 22:52:15 GMT Message-ID: <69jfiv$sfb$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu I never knew of literate programming until a few weeks ago. I am looking for recommendations for how to marry literate programming with a proprietary in-house programming language. The company I work for has a home-grown translation/mapping product that many would consider part of an integration engine. It has it's own language, compiler, etc. Currently we create map specifications (company A's format to and from ours), then code the map. As you can imagine, much, if not all, of the information in the spec is re-expressed in the code. This appears to be an ideal candidate for the introduction of literate programming to our staff, especially since the same person usually does the spec and the code now. (Which is something I would prefer not to happen, but that's a story for another newsgroup.) I have been reading this newsgroup, some of the general literate programming infomration on the internet, and some of the CLIP docs. Before I invest any time attempting this, I would appreciate any comments on the viability of this effort. I anticipate using or modifying an existing literate programming tool to work off comments in the format already supported by our mapping language, although it's possible to modify that at some point. Nobody in my company has any experience in Tex or Latex, if that matters. This mapping tool runs on PC's (OS/2, DOS/NT), STRATUS (VOS) and IBM mainframes (MVS...), although I suppose the document generation aspect could be limited to the PC DOS/NT environment. Steve Lozowski sjlozowski@icdc.com 14-Jan-1998 23:39:30-GMT,1410;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 QAA00218 for ; Wed, 14 Jan 1998 16:39:29 -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, 14 Jan 1998 17:29:57 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: Language Independent Tool Recommendation Requested Date: 14 Jan 1998 23:18:30 GMT Message-ID: <69jh46$bb$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu In article <69jfiv$sfb$1@murdoch.acc.Virginia.EDU>, wrote: >I never knew of literate programming until a few weeks ago. I am >looking for recommendations for how to marry literate programming with >a proprietary in-house programming language. noweb and nuweb would be good choices. noweb has the advantage of `native' support for html, so your shop wouldn't have to learn latex. nuweb is easier to install and offers no bewildering extensions. funnelweb is plausible but requires you learn a new, limited typesetting language used nowhere else. clip is for you if you really like using wysiwyg to produce documents. Norman P.S. See the FAQ for locations of all these tools. 15-Jan-1998 21:35:01-GMT,2290;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 OAA27204 for ; Thu, 15 Jan 1998 14:34: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, 15 Jan 1998 15:12:41 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@samson.kean.edu Subject: Re: Language Independent Tool Recommendation Requested Date: 15 Jan 1998 20:51:56 GMT Message-ID: <69lstc$9u0$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: LitProg@SHSU.edu On 14 Jan 1998 sjlozowski@icdc.com wrote: > I never knew of literate programming until a few weeks ago. I am > looking for recommendations for how to marry literate programming with > a proprietary in-house programming language. The "language-independents" (noweb, nuweb, CLiP) are almost certainly your best bets. I prefer noweb, mself, but that is merely a matter of taste. > Nobody in my company has any experience in Tex or Latex, if that > matters. This mapping tool runs on PC's (OS/2, DOS/NT), STRATUS (VOS) > and IBM mainframes (MVS...), although I suppose the document > generation aspect could be limited to the PC DOS/NT environment. (La)TeX is available, I believe, for all these envirnoments (I know for a fact about OS/2, DOS & NT), and Norman Ramsey has an excellent one-page summary of the minimal LaTeX needed to use noweb. If you are thinking of installing TeX, O'Reilly has an excellent book called "Making TeX Work" (I forget the author), which is very helpful wrt installation. Of course, noweb also can also generate HTML, which may satisfy your document gneneration needs. -- 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 | ------------------------------------------------------------------------ 16-Jan-1998 0:20:01-GMT,1627;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 RAA01156 for ; Thu, 15 Jan 1998 17:19:59 -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, 15 Jan 1998 18:13:54 EST From: Chris Lusena Reply-To: LitProg@SHSU.edu, lusena@cs.uky.edu Subject: Re: Language Independent Tool Recommendation Requested Date: 15 Jan 1998 23:35:53 GMT Message-ID: <69m6gp$gtc$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: LitProg@SHSU.edu On 14 Jan 1998 sjlozowski@icdc.com wrote: > > Nobody in my company has any experience in Tex or Latex, if that > matters. This mapping tool runs on PC's (OS/2, DOS/NT), STRATUS (VOS) > and IBM mainframes (MVS...), although I suppose the document > generation aspect could be limited to the PC DOS/NT environment. Hardly nessary since I'm pretty sure that there is a version of TeX for the other too platforms, and a web browser. No/nuweb should also be protable. This is the world of usefull portable tools. We don't like thing that strickly on the (Inferor IMHO) MS platforms. JM2C --Chris Lusena U of Kentucky, Dept. of Com. Sci. Just a plain boring .SIG, eh? Lexington, Kentucky, U.S.A. email: Lusena@cs.engr.uky.edu #include and for the webbies out there: http://www.cs.engr.uky.edu/~lusena/ 16-Jan-1998 15:17:48-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 IAA18077 for ; Fri, 16 Jan 1998 08:17:41 -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, 16 Jan 1998 06:58:00 EST From: thompson@sun1.coe.ttu.edu Subject: comp.programming.literate FAQ Date: 16 Jan 1998 11:46:33 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. 17-Jan-1998 22:14:19-GMT,1456;000000000001 Received: from turbo.kean.edu (TURBO.Kean.EDU [131.125.1.1]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id PAA24066 for ; Sat, 17 Jan 1998 15:14:18 -0700 (MST) Received: from SAMSON.KEAN.EDU by turbo.kean.edu (5.65v4.0/1.1.8.2/08Feb95-0139PM) id AA25955; Sat, 17 Jan 1998 17:13:15 -0500 Received: from localhost by samson.kean.edu (5.x/SMI-SVR4) id AA03023; Sat, 17 Jan 1998 17:09:06 -0500 Date: Sat, 17 Jan 1998 17:09:05 -0500 (EST) From: Lee Wittenberg X-Sender: leew@samson To: "Nelson H. F. Beebe" Subject: Re: ``Making TeX Work'' book In-Reply-To: Message-Id: Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Thu, 15 Jan 1998, Nelson H. F. Beebe wrote: > Here is the complete reference to the book cited by Lee Wittenberg > in mail of 15 Jan 1998 20:51:56 GMT to this list: > ... Somehow I knew you'd come through with the complete reference :-) -- 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 | ------------------------------------------------------------------------ 19-Jan-1998 13:59:06-GMT,4062;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 GAA04411 for ; Mon, 19 Jan 1998 06:59:05 -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, 19 Jan 1998 07:43:03 EST From: talmg@atom.forensic.sa.gov.au (Michael Talbot-Wilson) Reply-To: LitProg@SHSU.edu, talmg@atom.forensic.sa.gov.au Subject: Re: Language Independent Tool Recommendation Requested Date: 17 Jan 1998 03:10:58 GMT Message-ID: <69p7g2$4tk$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu In article <69jh46$bb$1@murdoch.acc.Virginia.EDU>, Norman Ramsey wrote: >In article <69jfiv$sfb$1@murdoch.acc.Virginia.EDU>, > wrote: >>I never knew of literate programming until a few weeks ago. I am >>looking for recommendations for how to marry literate programming with >>a proprietary in-house programming language. > >noweb and nuweb would be good choices. noweb has the advantage of >`native' support for html, so your shop wouldn't have to learn latex. >nuweb is easier to install and offers no bewildering extensions. >funnelweb is plausible but requires you learn a new, limited >typesetting language used nowhere else. clip is for you if you really >like using wysiwyg to produce documents. > >Norman > >P.S. See the FAQ for locations of all these tools. As a beginner in LP who is looking at both I think you do a little less than justice to funnelweb. I take issue with the "plausible". The advantages I see in funnelweb are that it is very simple and standalone. You need TeX, but no additional macros, so if your TeX configuration is a bit dodgy you may be able to get going easier with funnelweb. In some sense it's a little more portable. E.g. I'm wondering about the feasibility of making it a D3 (Advanced Pick) "built in", making it usable within that environment. I think that would be inconceivable with noweb because noweb is less self-contained. I certainly didn't find noweb easier to install, because I first had to obtain and install Icon, whose Linux port is antiquated. Yes, you need a learn a macro cum typesetting language but it is bog simple. Conceivably you might find funnelweb to be your macro preprocessor of choice. FunnelwebAC does HTML, though the implementation may antedate any HTML standard. The argument for the different language (as regards typesetting) is that funnelweb is typesetter-independent, so the same file (apart from a pragma that appears once) produces both TeX and HTML output. You can make the funnelweb file specific for one or other of these with another pragma if you want to do your own markup in TeX or HTML. But the philosophy behind the bone simple approach of funnelweb is that, as a rule, you will not do any markup. So far I've found no serious need to fiddle with the default typesetting. My only quibble is that it allows vglue in millimetre units _only_ and I would prefer to use picas. But it is only in display headings at the top of the file that you would ever bother about such things. The advantages of noweb that I have seen to date are that it is currently maintained, the approach of sending all output to stdout is more flexible, allowing extended pipelines which can do useful things with the output, and that there are a couple of useful utilities included. Whereas funnelweb can directly output to several files (if corresponding O macros are defined), noweb output is always to stdout and a different run (with a different root option and redirection) is required for each output file. Therefore noweb needs to be run (several times) by a makefile to obtain a functionality that is native in funnelweb - a slight complication. I think I am going to find that funnelweb is better for beginners and small projects, and that noweb is better for large ones. --Mike P.S. Thanks. Nice work. 19-Jan-1998 14:20:08-GMT,3383;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 HAA04830 for ; Mon, 19 Jan 1998 07:20:08 -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, 19 Jan 1998 07:55:14 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: Language Independent Tool Recommendation Requested Date: 17 Jan 1998 20:34:41 GMT Message-ID: <69r4l1$sft$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu Let the Web Wars resume! I want to correct a few minor errors in Michael Talbot-Wilson's post. I'll try to refrain from taking pot shots at funnelweb while I'm at it :-) In article <69p7g2$4tk$1@murdoch.acc.Virginia.EDU>, Michael Talbot-Wilson wrote: >In article <69jh46$bb$1@murdoch.acc.Virginia.EDU>, Norman Ramsey wrote: >> >>noweb and nuweb would be good choices. noweb has the advantage of >>`native' support for html, so your shop wouldn't have to learn latex. >>nuweb is easier to install and offers no bewildering extensions. >>funnelweb is plausible but requires you learn a new, limited >>typesetting language used nowhere else. clip is for you if you really >>like using wysiwyg to produce documents. > >As a beginner in LP who is looking at both I think you do a little less >than justice to funnelweb. I take issue with the "plausible". > >The advantages I see in funnelweb are that it is very simple and >standalone. You need TeX, but no additional macros, so if your TeX >configuration is a bit dodgy you may be able to get going easier with >funnelweb. Equally true of nuweb, and as a bonus, you're not required to learn and limit yourself to Ross's little typesetting language. >I certainly didn't find noweb easier to install, because I first had to >obtain and install Icon, whose Linux port is antiquated. Quite correct. But I didn't say noweb was easy to install, I said nuweb was easy to install. (Blame Preston Briggs for the similarity in names.) >The argument for the >different language (as regards typesetting) is that funnelweb is >typesetter-independent, so the same file (apart from a pragma that >appears once) produces both TeX and HTML output. Or with noweb, and a reasonably sane subset of LaTeX, you can produce both TeX and HTML output, and you don't have to learn a typesetting language that is used nowhere else. And you don't need pragmas. It would be nice if somebody would support Linuxdoc-SGML (is it now called SGML-tools) which is a more disciplined approach to similar goals. Seriously, I'm not arguing there's anything wrong with Ross's typesetting language; I'm arguing that the benefit isn't worth the cost of using yet another typesetting language, one that nobody else uses. >Whereas funnelweb can directly output to several files (if corresponding >O macros are defined), noweb output is always to stdout and a different >run (with a different root option and redirection) is required for each >output file. This characterization of noweb is incorrect. See the man page for noweb(1) at, e.g., http://www.cs.virginia.edu/cgi-bin/manpage?section=1&topic=noweb. Norman 20-Jan-1998 5:40:33-GMT,1344;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 WAA22927 for ; Mon, 19 Jan 1998 22:40: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; Mon, 19 Jan 1998 23:35:46 EST From: Glauber Ribeiro Reply-To: LitProg@SHSU.edu, glauber@iws-irms.com Subject: Win32 binary for FW AC Date: Mon, 19 Jan 1998 15:10:58 -0600 Message-ID: <34C3C161.754C834F@iws-irms.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Hello, i got tired of using the MS-DOG funnelweb binary, and compiled a Win32 version (using Cygnus gcc) of funnelweb 3.05AC (with Anthony Coates extensions). If anybody is interested in this, here it is (177KB): http://idt.net/~glauber9/fw/fw.exe (please let me know of any bugs) If you don't have any Cygnus tools installed, you will also need cygwin.dll (Cygnus gcc support library), which you can get here (1/2 MB): ftp://ftp.cygnus.com/pub/gnu-win32/latest/cygwin.dll Glauber -- Glauber Ribeiro --- IWS mailto://glauber@iws-irms.com http://www.iws-irms.com 21-Jan-1998 21:51:22-GMT,780;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 OAA16316 for ; Wed, 21 Jan 1998 14:51: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; Wed, 21 Jan 1998 15:22:13 EST From: Nancy Walker Subject: Re: comp.programming.literate FAQ Date: Wed, 21 Jan 1998 15:18:39 -0500 Message-ID: <34C6584B.E06@epix.net> Reply-To: LitProg@SHSU.edu, pinklpur@epix.net MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu unsubscribe 22-Jan-1998 13:00:31-GMT,1990;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 GAA05339 for ; Thu, 22 Jan 1998 06:00:30 -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, 22 Jan 1998 06:48:23 EST From: Marc van Leeuwen Reply-To: LitProg@SHSU.edu, maavl@zenon.univ-poitiers.fr Subject: Re: Language Independent Tool Recommendation Requested Date: 22 Jan 1998 11:25:57 GMT Message-ID: <6a7ac5$3hk$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: > > Let the Web Wars resume! > I don't really want to enter a quarrel about other people's (favourite?) software, but couldn't resist making one remark. > >The argument for the > >different language (as regards typesetting) is that funnelweb is > >typesetter-independent, so the same file (apart from a pragma that > >appears once) produces both TeX and HTML output. > > Or with noweb, and a reasonably sane subset of LaTeX, you can produce > both TeX and HTML output, and you don't have to learn a typesetting > language that is used nowhere else. And you don't need pragmas. Try to define precisely that reasonably sane subset of LaTeX, and you'll surely arrive at a typesetting language that is used nowhere else. Marc van Leeuwen Actually I'm extremely glad to see the continuing development of languages, not only because programming languages are getting better and better in important ways, but also because such work soaks up a lot of people's energy---therefore computer scientists don't write papers that I would otherwise have to read, and I can get my books finished a lot sooner. -- Donald E. Knuth 23-Jan-1998 21:21:33-GMT,730;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 OAA10807 for ; Fri, 23 Jan 1998 14:21: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, 23 Jan 1998 15:03:17 EST From: tbailey15@aol.com (TBailey15) Reply-To: LitProg@SHSU.edu, tbailey15@aol.com Subject: Re: MAKE MONEY!!! IT REALLY WORKS!!! IT DID FOR ME!!! Date: 23 Jan 1998 21:01:27 GMT Message-ID: <19980123210101.QAA08783@ladder02.news.aol.com> To: LitProg@SHSU.edu Can you say SCAM??? 24-Jan-1998 13:07:01-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 GAA19416 for ; Sat, 24 Jan 1998 06:06:58 -0700 (MST) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from nic.bme.hu by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Sat, 24 Jan 1998 07:02:29 EST Received: from euromath.math.bme.hu (euromath.math.bme.hu [152.66.83.1]) by nic.bme.hu (8.8.8/8.8.8) with ESMTP id OAA08695 for ; Sat, 24 Jan 1998 14:03:24 +0100 (MET) Received: from lemma.math.bme.hu (lemma.math.bme.hu [152.66.83.11]) by euromath.math.bme.hu (8.8.5/8.7.3) with SMTP id OAA03306 for ; Sat, 24 Jan 1998 14:03:24 +0100 Received: from localhost by lemma.math.bme.hu; (5.65v3.2/1.1.8.2/28Feb97-0901PM) id AA20398; Sat, 24 Jan 1998 14:03:23 +0100 Date: Sat, 24 Jan 1998 14:03:23 +0100 (MET) From: Sudar Csaba Reply-To: LitProg@SHSU.edu, sudar@math.bme.hu To: LitProg@SHSU.edu Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII HELP 26-Jan-1998 8:27:23-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 BAA09234 for ; Mon, 26 Jan 1998 01:27:20 -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, 26 Jan 1998 02:18:18 EST From: "Michael Guravage (ID)" Reply-To: LitProg@SHSU.edu, guravage@nlr.nl Subject: Problem with C++ `new' operator in CWEBx3.0. Date: 25 Jan 1998 18:19:39 GMT Message-ID: <6afvnr$5c1$1@news.interlog.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu L.S. I have recently tried some C++ code with Marc van Leeuwen's CWEBx3.0 and have discovered one little annoyance. There is no problem tangling the code; but cweave stumbles over the C++ `new' operator. To placate cweave, I have to force that which follows the `new' operator to assume the syntactic category `expression' and then add a space to make it look nice. int *foo; foo = new @[@t\ @> int@]; Can anyone show me the error of my ways; or better yet, a patch to CWEBx3.0? BTW, this phenomenon does not occur with Knuth's cweb version 3.4f. Thanks in advance. Michael Guravage -- Michael A. Guravage Email: guravage@nlr.nl National Aerospace Laboratory Phone: +31 (0)20 511 3695 P.O. Box 90502, 1006 BM, Fax: +31 (0)20 511 3210 Amsterdam, The Netherlands URL: 26-Jan-1998 14:58:09-GMT,1459;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 HAA16778 for ; Mon, 26 Jan 1998 07:57: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; Mon, 26 Jan 1998 08:32:08 EST From: Marc van Leeuwen Reply-To: LitProg@SHSU.edu, maavl@zenon.univ-poitiers.fr Subject: new distribution site for CWEBx Date: 26 Jan 1998 13:59:59 GMT Message-ID: <6ai4sv$atv$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu The CWEBx package, a literate programming tool for ANSI C, and a compatible variant of Levy/Knuth CWEB, will henceforth be distributed from http://wallis.univ-poitiers.fr/~maavl/CWEBx/ rather than from its old site in Amsterdam. While the move was necessary for personal reasons, I have taken the opportunity to change the wrapper of the distribution from FTP to WWW technology, and to fix a problem recently reported by Michael Guravage. Also, I have included macros that will automate the generation of hyperTeX links for use with (for instance)the xhdvi previewer. Apart from this, nothing has changed; the version number is now 3.03. Marc van Leeuwen 26-Jan-1998 15:24:32-GMT,2396;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 IAA17473 for ; Mon, 26 Jan 1998 08:24:25 -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, 26 Jan 1998 08:32:00 EST From: Marc van Leeuwen Reply-To: LitProg@SHSU.edu, maavl@zenon.univ-poitiers.fr Subject: Re: Problem with C++ `new' operator in CWEBx3.0. Date: 26 Jan 1998 14:18:22 GMT Message-ID: <6ai5ve$bis$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Michael Guravage (ID) wrote: > > L.S. > > I have recently tried some C++ code with Marc van Leeuwen's CWEBx3.0 > and have discovered one little annoyance. There is no problem tangling > the code; but cweave stumbles over the C++ `new' operator. To placate > cweave, I have > [do some horrid things] > > Can anyone show me the error of my ways; or better yet, > a patch to CWEBx3.0? > > BTW, this phenomenon does not occur with Knuth's cweb version 3.4f. There was no error in your ways, and as I mentioned in another message just posted, the problem has been fixed. More fundamentally, there is, and probably will remain, difficulty with handling the full syntax of C++ in CWEBx (although I admit your example was a very ordinary use). The fact that this phenomenon does not occur with Levy/Knuth's CWEB is not completely surprising, given the different approach to the syntax: while CWEBx uses narrowly formulated syntax rules that stay close to the official grammar, CWEB favours broadly formulated rules that try to catch all possible uses, whether precisely grammatical or not. Despite this difference, I am sure that both fail to parse all legal C++ code; only CWEBx is more likely to fail for lack of an appropriate rule, whereas CWEB is more likely to fail because an overbroadly formulated rule seizes control where it shouldn't. All the same, I encourage people having difficulties with CWEBx and C++ to report them, since concrete problems are usually easy to detect and solve. Marc van Leeuwen Universite de Poitiers http://wallis.univ-poitiers.fr/~maavl/ 26-Jan-1998 17:21:14-GMT,1094;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 KAA20817 for ; Mon, 26 Jan 1998 10:21:05 -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, 26 Jan 1998 10:48:00 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: new distribution site for CWEBx Date: 26 Jan 1998 16:25:08 GMT Message-ID: <6aidd4$gkl$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu In article <6ai4sv$atv$1@murdoch.acc.Virginia.EDU>, Marc van Leeuwen wrote: >[CWEBx 3.03 includes] macros that >will automate the generation of hyperTeX links for use with (for >instance)the xhdvi previewer. Can anybody tell me how hard this is? I would love to see hyperTeX support in noweb, but I probably don't have time to do this myself---at least not soon. Norman 26-Jan-1998 22:49:53-GMT,953;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 PAA00614 for ; Mon, 26 Jan 1998 15:49:51 -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, 26 Jan 1998 16:36:42 EST From: "Gilles.Bourque" Subject: Booch OO class diagram Package for LaTeX? Date: 26 Jan 1998 22:31:41 GMT Message-ID: <6aj2sd$ath$1@elna.ethz.ch> Reply-To: LitProg@SHSU.edu, Gilles.Bourque@nrc.ca MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Hello World, Does a Booch OO class diagram Package exist? Or other type of OO analysis and design for LaTeX? Thanks in advance, Gilles Bourque Gilles.Bourque@nrc.ca 27-Jan-1998 9:44:32-GMT,3279;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 CAA15551 for ; Tue, 27 Jan 1998 02:44: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; Tue, 27 Jan 1998 03:32:14 EST From: Marc van Leeuwen Reply-To: LitProg@SHSU.edu, maavl@zenon.univ-poitiers.fr Subject: providing hyperTeX support Date: 27 Jan 1998 09:15:00 GMT Message-ID: <6ak8ik$jrb$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Norman Ramsey wrote: > > In article <6ai4sv$atv$1@murdoch.acc.Virginia.EDU>, > Marc van Leeuwen wrote: > >[CWEBx 3.03 includes] macros that > >will automate the generation of hyperTeX links for use with (for > >instance) the xhdvi previewer. > > Can anybody tell me how hard this is? I would love to see hyperTeX > support in noweb, but I probably don't have time to do this > myself---at least not soon. In CWEBx the implementation was quite easy; it amounted to rewriting some of the already existing formatting macros so that they will define hyperlinks/targets whenever they are invoked. The functionality is basically the following: every section number becomes a hypertarget, every module reference provides a link to the first defining section, at the end of which there are links to all references and possibly to any further defining sections; every section reference in the (global) index links to the corresponding section, while the index entry itself (usually an identifier) is a hypertarget, linked to by every occurrence of that identifier in the program (thus to find other occurrences of an identifier, you first jump to the index, then to a section mentioned there). The implementation in CWEBx was easy, because cweave already puts macros in place wherever they are needed, and it suffices to change their definition (there is no change whatsoever to the programs of CWEBx themselves). The main practical difficulty was that cweave is a bit parsimonious with macros (e.g., only one is generated to format the entire list of section references following an index entry, so that a loop has to be used in its definition), and the presence of a few formatting quirks in CWEBx (e.g., an identifier |x1| formats as $x_1$); without these complications the task would have been truly trivial. The macros are available at http://wallis.univ-poitiers.fr/~maavl/CWEBx/cwebx/cwebhmac.tex, so you can judge for yourself. Whether doing the same for noweb is as easy depends on the context in which it is to be used. If you already are using prettyprinting and generating an index, I guess it would add up to about the same modifications as for CWEBx, I'd say no more than a day's work. If not, you can still add hyperness to chunk references almost for free, but to do something useful with identifiers, you inevitably have to recognise them (i.e., make the distinction from keywords) and provide some form of indexing. Marc van Leeuwen 28-Jan-1998 23:23:23-GMT,1221;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 QAA09642 for ; Wed, 28 Jan 1998 16:23:21 -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, 28 Jan 1998 12:41:48 EST From: Norman Ramsey Reply-To: LitProg@SHSU.edu, nr@cs.virginia.edu Subject: Re: providing hyperTeX support Date: 28 Jan 1998 15:32:15 GMT Message-ID: <6anj1v$g46$1@murdoch.acc.Virginia.EDU> To: LitProg@SHSU.edu In article <6ak8ik$jrb$1@murdoch.acc.Virginia.EDU>, Marc van Leeuwen wrote: >> Can anybody tell me how hard [hyperTeX] is? I would love to see hyperTeX >> support in noweb, but I probably don't have time to do this >> myself---at least not soon. I asked the wrong question. Noweb already generates HTML with hyperlin,ks, so the hooks are all there. My qeustion should have been: does anybody know how much the hyperTeX model of links resembles the HTML model of links? Or where to find out? Norman 29-Jan-1998 10:08:58-GMT,2332;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 DAA24249 for ; Thu, 29 Jan 1998 03:08:52 -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, 29 Jan 1998 04:02:50 EST From: Marc van Leeuwen Reply-To: LitProg@SHSU.edu, maavl@zenon.univ-poitiers.fr Subject: Re: providing hyperTeX support Date: 29 Jan 1998 09:45:59 GMT Message-ID: <6apj4n$mk5$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Norman Ramsey wrote: > > In article <6ak8ik$jrb$1@murdoch.acc.Virginia.EDU>, > Norman Ramsey wrote: > >> Can anybody tell me how hard [hyperTeX] is? I would love to see hyperTeX > >> support in noweb, but I probably don't have time to do this > >> myself---at least not soon. > > I asked the wrong question. Noweb already generates HTML with > hyperlinks, so the hooks are all there. My question should have > been: does anybody know how much the hyperTeX model of links > resembles the HTML model of links? Or where to find out? The answer is: as much as possible. To make a hyperlink to URL with text "click here" you write \special{html:}click here\special{html:} and other cases are similar; I guess the principle is clear. To similarilty to HTML is maintained even to the point where it gets annoying, in that an URL pointing to a local target (which the majority of the URL's will probably be; in any case it is the only kind that xhdvi can handle without calling an external browser) should start with the character '#', which means some care is required with respect to TeX's expansion mechanism. This is not a problem if the \special commands are written out explicitly, since the expansion performed by \special does not affect '#' (one should not write '##'), but if the \special commands are themselves produced by macro expansion, one has to be very careful, and it may be wise to use a version of '#' with neutralised category code, so that expansion will not affect it. Marc van Leeuwen 29-Jan-1998 18:51:16-GMT,1750;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 LAA06552 for ; Thu, 29 Jan 1998 11:51: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; Thu, 29 Jan 1998 10:10:48 EST From: Pierre Mai Reply-To: LitProg@SHSU.edu, dent@cs.tu-berlin.de Subject: Re: providing hyperTeX support Date: 29 Jan 1998 15:34:08 GMT Message-ID: <6aq7hg$2i9$1@murdoch.acc.Virginia.EDU> MIME-Version: 1.0 (generated by tm-edit 7.106) Content-Type: text/plain; charset=US-ASCII To: LitProg@SHSU.edu >>>>> "NR" == Norman Ramsey writes: NR> I asked the wrong question. Noweb already generates HTML with NR> hyperlin,ks, so the hooks are all there. My qeustion should NR> have been: does anybody know how much the hyperTeX model of NR> links resembles the HTML model of links? Or where to find NR> out? If you already generate _LaTeX_ (not plain-TeX, although the hyperref package might even work with plain-TeX, but I haven't checked), it should be fairly easy to provide support for hyperTeX, pdftex (and so for PDF output with links), etc., if you use the hyperref-Package by Sebastian Rahtz. It can be found on CTAN at macros/latex/contrib/supported/hyperref This produces links automatically for all LaTeX macros, where it makes sense, including the \ref macros, etc. Regs, Pierre. -- Pierre Mai http://home.pages.de/~trillian/ "Such is life." -- Fiona in "Four Weddings and a Funeral" (UK/1994)