Archive-Date: Fri, 02 Sep 1994 05:11:27 CDT Sender: owner-litprog@SHSU.edu From: brenta@EuroPARC.Xerox.COM (Ludovic Brenta) Subject: Re: Preparing for takeoff Date: 2 Sep 1994 09:16:26 GMT Message-ID: <346qha$l6n@news.parc.xerox.com> Reply-To: LitProg@SHSU.edu, brenta@EuroPARC.Xerox.COM (Ludovic Brenta) To: LitProg@SHSU.EDU In article <33n0tp$oc7@svpal.svpal.org>, luke@svpal.org (Luther Welsh Jr) writes: > I'm an experienced C programmer simultaneously migrating to C++ and > DOS/Windows from VAX/VMS. I figured that I might as well do it right, > so I've decided to learn LP, too. > > I'm all ready to go, FAQ in hand: > MS C/C++ 7.0 > Software Developement Kit 3.1 > MS Word 6.0 (MS Office 4.2) > CLiP v??, from ftp.shsu.edu > > Any final words of advice/encouragement/warning before I take the > plunge? In particular, are the any CLiP Word C/C++ examples out there > other than what I might find via the FAQ? Are you going to use a class library ? If not, the benefits of C++ will me minimised. However, I suggest that you write some simple DOS sample programs in C++ before you take off. As an exercise, try to write, use and document (choose one) : o a Vector class o a Matrix class o a String class o (more advanced) a command-line-option class Not only are you likely to master C++ better, but you may also find these classes useful in other programs. Oh yes, the Windows SDK is NOT object-oriented, only C-based. Worse, all the documentation is also C-based, and unless you use an already existing class library, you won't be able to do OOP with only the SDK. Of course, you could write your own class library, but I don't recommend it since this is a huge project (about 35000 lines of C++ code, 120+ classes) not suitable for a beginner. Last of all, write at least a couple of "hello world"-class programs in C under Windows. You will find the experience useful when doing more advanced programs in C++, because you will know what the SDK actually looks like. Remember that both C++ and Windows are aeas where a lot of expertise is required. You should consider at least one year before you actually master both. Hope this helps. Ludovic. -- char*_="TT+<1*7= ^.;2,? d>.;2,?`90.80r72\ -?s4'12r:.b\n WRM_ T'12t \\;0?.,3;2, 1: P.1<+=,712 [2972;;.729 EYP.Ct \ Z.?2=;\nsss ]q]uu +2<;. QMqnt T72+(t \\QMt I72<1)- ?, 813; z +2<;. I72<1)- ?, \ )1.5 sss\n}72=4+<; d-, Reply-To: LitProg@SHSU.edu, marcus@x4u.desy.de To: LitProg@SHSU.EDU Archive-name: www/resources/literate-programming Last-modified: 2 September 1994 Posting-Frequency: monthly ----------------------------------------------------------------------------- * Recent Changes ----------------------------------------------------------------------------- o The "Noweb Hacker's Guide" [PostScript] is out! o Mail additions to this list using a form. o Interview with D.E.Knuth on LitProg! o Samples: HTML from NOWEB. o HyperTeX: Article on adding HyperText capability to TeX. o Search for keyword on this server. o More about NOWEB on the home page of its author, N. Ramsey. o Simple NOWEB & HTML samples, part of a GNA OOP/C++ course. o NOWEB goes WWW! ----------------------------------------------------------------------------- * Literate Programming on the World Wide Web ----------------------------------------------------------------------------- FYI, there is a wealth of information on Literate Programming, the art of structured programming and documentation [like WEB-like systems with (La)TeX formatting] available on the World Wide Web [WWW], a distributed HyperText system, a network of documents connected by links which can be activated electronically. Examples for LitProg environments are WEB for Pascal (DEK), CWEB for C/C++ (Levy/Knuth), FWEB for C/C++/Fortran/ratfor/TeX (Krommes), various language independent tools...and many more. ----------------------------------------------------------------------------- * How to get to the Web ----------------------------------------------------------------------------- If you have a WWW browser up and running, try going to http://info.desy.de/general/users.html and look for "Literate Programming" in the panel which appears. The precise URL is http://info.desy.de/user/projects/LitProg.html If you have no clue what WWW is, you can go over the Internet with telnet info.cern.ch which brings you to the WWW Home Page at CERN. You are now using the simple line mode browser. To move around the Web, enter the numbers given after an item. To go to the Literate Programming documents, enter go http://info.desy.de/user/projects/LitProg.html This is what you should see now: ----------------------------------------------------------------------------- * What you will see here ----------------------------------------------------------------------------- LITERATE PROGRAMMING LIBRARY Recent Changes[1] -- Mail additions to this list to You can also search for keyword on this server.[2](Here is help on searching[3].) ___________________________________ Getting Start(l)ed[4] A first look into Literate Programming with WEB Virtual Course[5] Planned GNA[6] Internet course on Literate Programming Editing[7] GNU Emacs mode for WEB programming Tools[8] Common, freely available Literate Programming environments Examples[9] Literate Programming archives and selected examples Discussion[10] Discussion on LitProg takes place on a mailing list and a newsgroup Program Library[11] George D. Greenwade's Literate Programming Library at Niord.shsu.edu. Experimental service: Archive Search[12] FAQs[13] Lists of Frequently Asked Questions: General and FWEB Further Reading Nelson Beebe's Literate Programming bibliography at ftp.math.utah.edu in directory /pub/tex/bib[14](files litprog.*) HyperLitProg[15] Literate Programming using HyperText[16] Techniques OO-LitProg[17] Opinions and examples on Object-Oriented[18] Literate Programming [[Now you can continue climbing down the documentation tree by entering numbers 1-18 and follow your own interests]] ----------------------------------------------------------------------------- * More on Browsing the Web ----------------------------------------------------------------------------- A very nice way of "browsing" through WWW uses X-based tools like "tkWWW" or "NCSA Mosaic". For the latter, binaries for many platforms (ready for use) and sources are available via anonymous FTP from ftp.ncsa.uiuc.edu in directory Web/Mosaic-binaries. For vt100 terminals there is a much-used browser called "Lynx" which can be obtained by FTP from ftp2.cc.ukans.edu in the pub/lynx directory. Emacs users will like the "W3" browser, FTP to cs.indiana.edu:/pub/elisp/w3. There is a FTP repository for browser software at info.cern.ch (including a hypertext browser/editor for NeXTStep 3.0 and tkWWW). If you cannot go through TELNET, you can still retrieve WWW documents by e-mail: send Email to test-list@info.cern.ch with one or more lines of the form send [http-address] e.g. send http://info.desy.de/user/projects/LitProg.html at the bottom of the page you'll find all links of that document listed. Your mail system must have a mail gateway to internet mail. ----------------------------------------------------------------------------- * Contact for Further Information ----------------------------------------------------------------------------- Please feel free to contact me for questions, suggestions and further contributions, or just to tell me whether you found this information useful in any way. For questions related to WWW, consult the WWW-FAQ: available via anonymous FTP from rtfm.mit.edu in directory pub/usenet/news.answers/www/faq, or on WWW at URL http://sunsite.unc.edu/boutell/faq/www_faq.html Enjoy! Marcus Speh for GNA. ***************************************************************************** Copyright 1993-94 Globewide Network Academy, Inc. Distributed under the terms of the GNU Public License. Permission is granted to copy this document for free distribution so long as it remains intact and unmodified. See more on WWW at http://uu-gna.mit.edu:8001/uu-gna/index.html or get the GNA FAQ via anonymous FTP to rtfm.mit.edu as file pub/usenet/news.answers/globewide-network-academy-faq ------------------------------------------------------------------------- END -- I say: take no thought of the harvest, But only of the proper sowing - T.S.Eliot ----------------------------------------------------------------------- Marcus Speh, DESY Theory Group, Notkestr. 85, D--22603 Hamburg, Germany Phone: +49-40 8998 3753, Fax: +49-40 8998 2777, Private: +49-40 4203206 Email: marcus@x4u.desy.de WWW: http://info.desy.de/www/marcus.html ================================================================================ Archive-Date: Fri, 02 Sep 1994 10:53:16 CDT Sender: owner-litprog@SHSU.edu Date: Fri, 02 Sep 1994 17:20:26 +0000 (GMT) From: "Eric W. van Ammers, LUW, tel: (+31)8370-83356" Reply-To: LitProg@SHSU.edu, AMMERS@RCL.WAU.NL Subject: Re: Preparing for takeoff To: LitProg@SHSU.edu Message-ID: <01HGN7JSV9FAFODFN2@RCL.WAU.NL> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT >Any final words of advice/encouragement/warning before I take the >plunge? In particular, are the any CLiP Word C/C++ examples out there >other than what I might find via the FAQ? Yes, there are. A student of mine is currently working on a project to LP a simulation model in C++ using CLiP in combination with WinWord. I'll talk to him about your work. Eric ============================================================================ 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 ============================================================================ ================================================================================ Archive-Date: Fri, 02 Sep 1994 10:53:30 CDT Sender: owner-litprog@SHSU.edu Date: Fri, 02 Sep 1994 17:29:04 +0000 (GMT) From: "Eric W. van Ammers, LUW, tel: (+31)8370-83356" Reply-To: LitProg@SHSU.edu, AMMERS@RCL.WAU.NL Subject: Re: give me arguments! To: LitProg@SHSU.edu Message-ID: <01HGN845OUZ4FODFN2@RCL.WAU.NL> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Read http://info.desy.de/user/projects/LitProg/Start.html Eric van Ammers ================================================================================ Archive-Date: Fri, 02 Sep 1994 19:48:36 CDT Sender: owner-litprog@SHSU.edu From: tsl1@cornell.edu (Timothy Larkin) Reply-To: LitProg@SHSU.edu, tsl1@CORNELL.EDU Subject: Impact 1.1 released Date: Fri, 02 Sep 1994 20:15:09 +0500 Message-ID: To: LitProg@SHSU.EDU I am pleased to announce the release of Impact 1.1, a Ctangle processor for the Macintosh, to the CTAN archive. IMPACT is a port of Levy-Knuth CTangle 3.1 to the Macintosh. It differs from previous ports in two major ways. First, it runs persistently, by which I mean that you can tangle as many files as you like, instead of having to restart the application for each run. Second, it responds to the 'odoc' Apple Event, so you can tangle a file from any other application, for instance, your editor, that will send an appropriate Apple Event. Version 1.1 incorporates some important improvements. A. An options menu allows control over two features. You can specify the file extension used for the output file. For instance, I change this to ``.cp'' when generating C++ files. And you can instruct Tangle to omit all line and section references. The line references seriously confuse the Symantec C++ compiler and debugger. B. Tangle has been revised to create temporary files, rather than replacing the previous versions of its output. Impact then compares the new versions with the previous ones to see if any changes have been made. Only if a file has changed is it replaced. This feature frees a writer to include as many output files as he likes in one web file, without paying the penalty of unnecessary compilations. Messageware. Timothy Larkin PO Box 107 Brooktondale, NY 14817-0107 607.539.7299 tsl1@cornell.edu -- tsl1@cornell.edu Timothy Larkin He said that the world was sentient to its core and secret and black beyond men's imagining and that its nature did not reside in what could be seen or not seen. --Cormac McCarthy, "The Crossing" Public key 768/6CC32A85 ================================================================================ Archive-Date: Sat, 03 Sep 1994 09:57:54 CDT Sender: owner-litprog@SHSU.edu From: dgall@aol.com (DGall) Reply-To: LitProg@SHSU.edu, dgall@AOL.COM Subject: Re: Dissassembler Date: 3 Sep 1994 10:33:05 -0400 Message-ID: <34a1f1$fqh@search01.news.aol.com> To: LitProg@SHSU.EDU In article <32htal$gbq@search01.news.aol.com>, mpg59@aol.com (MPG59) writes: <> The most you could do would be to disassemble the executable into assembly. Since a compiler is changing source code from the native language to macine code, the resulting exe file, which is in machine code, could have come from any language, be it C, C++, Pascal, etc... DGALL ================================================================================ Archive-Date: Mon, 05 Sep 1994 09:53:48 CDT Sender: owner-litprog@SHSU.edu From: partingr@p4.cs.man.ac.uk (Robert Partington) Reply-To: LitProg@SHSU.edu, partingr@P4.CS.MAN.AC.UK Subject: CWEB 3 Date: 5 Sep 1994 14:35:26 GMT Message-ID: <34fabe$e9g@m1.cs.man.ac.uk> To: LitProg@SHSU.EDU How can you stop CWEB 3 from including identifiers in header files in the index? I have a program which includes 6 header files which declare a *lot* of identifiers, functions etc. When I @h "header.h" them, CWEB recognises the identifiers, typesets my program correctly and creates an index thats 9 pages long. Considering my program is 5 pages long, this is ridiculous. If I do @h , the index only contains identifiers in my program, but CWEB doesn't recognise the identifiers from the header files and typesets my program incorrectly (types,#defines not set in bold but italic). Is there any way I can include the headers so that CWEB knows about the identifiers (and sets them in bold) but doesn't include them in the index? -- Robert Partington partingr@cs.man.ac.uk Computer Science, 3rd year 25MHz ARM3,80MB HD,4MB A5000 running RO3.11 - but no Settlers or Emacs! 7MHz 68000,40MB HD,7MB A2000 running WB2.1 - Settlers *and* Emacs. Joy. "Hi, my name's Rob - and I'm an emacholic." ================================================================================ Archive-Date: Mon, 05 Sep 1994 16:47:35 CDT Sender: owner-litprog@SHSU.edu Date: Mon, 05 Sep 1994 16:47:30 CDT From: "George D. Greenwade" Reply-To: LitProg@SHSU.edu, bed_gdg@SHSU.EDU To: LitProg@SHSU.edu, tsl1@CORNELL.EDU CC: ctan-ann@SHSU.edu Message-ID: <00984066.485C0044.112@SHSU.edu> Subject: RE: Impact 1.1 released On Fri, 02 Sep 1994 20:15:09 +0500, tsl1@cornell.edu (Timothy Larkin) posted: > I am pleased to announce the release of Impact 1.1, a Ctangle processor for > the Macintosh, to the CTAN archive. > > IMPACT is a port of Levy-Knuth CTangle 3.1 to the Macintosh. > > It differs from previous ports in two major ways. First, it runs > persistently, by which I mean that you can tangle as many files as you > like, instead of having to restart the application for each run. Second, > it responds to the 'odoc' Apple Event, so you can tangle a file from any > other application, for instance, your editor, that will send an appropriate > Apple Event. > > Version 1.1 incorporates some important improvements. > > A. An options menu allows control over two features. You can specify the > file extension used for the output file. For instance, I change this to > ``.cp'' when generating C++ files. And you can instruct Tangle to omit all > line and section references. The line references seriously confuse the > Symantec C++ compiler and debugger. > > B. Tangle has been revised to create temporary files, rather than > replacing the previous versions of its output. Impact then compares the > new versions with the previous ones to see if any changes have been made. > Only if a file has changed is it replaced. This feature frees a writer to > include as many output files as he likes in one web file, without paying > the penalty of unnecessary compilations. > > Messageware. Thanks for the update. The files submitted have been installed in tex-archive/web/systems/mac/impact at ftp.shsu.edu and the prior version has been removed. Regards and thanks for your interest in our services, George %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% George D. Greenwade, Ph.D. Internet: bed_gdg@SHSU.edu Department of Economics and Business Analysis THEnet: SHSU::BED_GDG College of Business Administration Voice: (409) 294-1266 Sam Houston State University FAX: (409) 294-3612 Huntsville, TX 77341-2118 USA %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ================================================================================ Archive-Date: Tue, 06 Sep 1994 02:23:43 CDT Sender: owner-litprog@SHSU.edu From: iggjacob@sgi18 (Jacob Nielsen (c898594)) Reply-To: LitProg@SHSU.edu, iggjacob@SGI18 Subject: Re: CWEB 3 Date: 6 Sep 1994 07:12:21 GMT Message-ID: <34h4ol$lv7@unidhp.uni-c.dk> To: LitProg@SHSU.EDU Robert Partington (partingr@p4.cs.man.ac.uk) wrote: : How can you stop CWEB 3 from including identifiers in header files in the : index? : I have a program which includes 6 header files which declare a *lot* of : identifiers, functions etc. When I @h "header.h" them, CWEB recognises : the identifiers, typesets my program correctly and creates an index thats : 9 pages long. Considering my program is 5 pages long, this is ridiculous. : If I do @h , the index only contains identifiers in my program, : but CWEB doesn't recognise the identifiers from the header files and : typesets my program incorrectly (types,#defines not set in bold but italic). : Is there any way I can include the headers so that CWEB knows about the : identifiers (and sets them in bold) but doesn't include them in the index? I'm not a CWEB user, but I seem to recall that there are commands to define types and #defines in the web file. I agree that it would be nicer to just include the appropriate header file and be done with it instead of hardwiring the definitions of types and #defines into the web file, but an ``emacholic'' should be able to produce the needed commands with a little lisp programming :-) Happy emacsing, Jacob -- Jacob Nielsen iggjacob@bbar.dtu.dk ================================================================================ Archive-Date: Tue, 06 Sep 1994 03:47:19 CDT Sender: owner-litprog@SHSU.edu From: royd@zapffe.mat-stat.uit.no (Roy Einar Dragseth) Reply-To: LitProg@SHSU.edu, royd@ZAPFFE.MAT-STAT.UIT.NO Subject: FWEB and HyperTeX Message-ID: Date: Tue, 6 Sep 1994 08:35:19 GMT To: LitProg@SHSU.EDU Hello, everybody. I am a dedicated user of fweb and I saw in the Literate programming home page on WWW that someone has ported cweb (cweave) to support hypertext links. I am wondering if anyone has any plans to change fwebmac.sty to support hypertex(t)? I would like to hear from them and offer my help, but I'm pretty clueless about what has to be done. -- ________________________________________________________________________ INSTITUTE OF MATHEMATICAL SCIENCES Dept. of Mathematics and Statistics University of Tromsoe, N-9037 Tromsoe, Norway, Tlf. +47 77 64 40 00, Fax +47 77 64 47 65 Roy Dragseth, Ph. D. st., direct call +47 77 64 40 31, E-mail: royd@math.uit.no ------------------------------------------------------------------------ ================================================================================ Archive-Date: Tue, 06 Sep 1994 09:29:51 CDT Sender: owner-litprog@SHSU.edu From: "deepak r. kenchammana-hosekote" Reply-To: LitProg@SHSU.edu, kencham@CS.UMN.EDU Message-ID: <199409061428.JAA16746@ulysses.cs.umn.edu> Subject: Re: FWEB and HyperTeX To: LitProg@SHSU.edu, royd@ZAPFFE.MAT-STAT.UIT.NO Date: Tue, 6 Sep 1994 09:28:25 -0500 (CDT) X-Uucp address : ...!rutgers!umn-cs!kencham X-Mailer: ELM [version 2.4 PL22] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Length: 1132 Ref: Roy Einar Dragseth's mail: # #I am a dedicated user of fweb and I saw in the Literate programming Roy, Since you are a dedicated user of fweb can I ask you a couple of (newbie) questions on fweb? 1. How do I include figures in the fweb file? I have tried to generate LaTeX code and set the options.LaTeX to "psfig" in fweb.sty. There seems to be no errors while compiles with LaTeX but then I "dvips" the file I get no figures at all? What changes does one need to make in fwebmac.sty to get psfig to work? 2. The manual says @I "saves trees" but when I do a @I the file does indeed get included in the woven file? Am I doing something wrong? 3. Strangely when I declare more than two a formats using @f, LaTeX barfs saying "not enough space"! What do you suppose is the problem? Thanks for all your help. \deepak -- And then the alien anthropologists admitted they were still perplexed, But on eliminating every other reason for our sad demise, They logged the explanation left, this species has amused itself to death, No tears to cry no feelings left, this species has amused itself to death. ================================================================================ Archive-Date: Tue, 06 Sep 1994 13:48:39 CDT Sender: owner-litprog@SHSU.edu From: kientzle@netcom.com Reply-To: LitProg@SHSU.edu, kientzle@NETCOM.COM Subject: Re: CWEB and Latex2e Message-ID: Date: Tue, 6 Sep 1994 18:22:37 GMT To: tex-news@SHSU.EDU In article <1994Sep2.202422.14089@mcs.drexel.edu>, Justin Smith wrote: >I love the way CWEB formats C and C++ but would like to include >program listings in Latex2e files using this. Has anyone worked on the >idea of integrating CWEB with Latex2e, or has found a way to >temporarily turn Latex2e into plain tex so the cweb macros can take >effect? I've taken ideas from Schrod's work and made a few minor changes to CWEAVE to obtain a system that lets you integrate CWEB files into LaTeX2e. I'm using this to generate chapters for a book I'm writing. Most of the chapters are plain LaTeX, but the ones with code in them are generated from CWEB files. One of the reasons I started this work was because plain CWEB and Schrod's cweb.sty are all based on the idea that one CWEB file creates a single document, and I instead wanted one document that includes multiple CWEB files. It's working, but it's not ready to release. Email me if you'd like to play with the version I have now. In particular, I've made no effort yet to handle indices or section lists. Some things I've managed to do (not entirely cleanly, but it mostly works): - Section numbers are referenced through a redefinable macro. The default setup generates a LaTeX \ref command so that LaTeX section numbers are used, e.g., . In the book I'm writing, I've redefined the macro to \pageref, which seems much nicer. (Someday this may be a package option.) (Using page numbers also has the pleasant side-effect of removing the need to number un-named sections. There are unpleasant side-effects of using page references, mostly due to the fact that CWEAVE does indexing and cross-referencing itself rather than allowing it to be done by LaTeX.) - LaTeX sectioning commands are used, and the CWEB level specifiers (@**, @*, @*1, @*2, etc.) are obeyed. You can specify whether @* is \chapter, \section, or whatever. You can also specify what section level un-named sections refer to. The default is that @* generates a \section and un-named sections also generate \section. The method used for handling un-named sections should work with most document classes. (For the technically minded: I redefine \@startsection and then execute the sectioning macro.) - The CWEB commands are implemented in a package. If you want a stand-alone document, you need to explicitly set the document class and \usepackage{cweb} in the preamble. - Changes to CWEAVE remove a number of problems and simplify the package: \fi at the end of sections is replaced by \CWebEndSection, \end at the end of the document is replaced by \CWebEndDocument, code sections are bracketed by handy macros. The modified cwebmac \let's these appropriately; `Plain CWEB' documents can be processed by this modified CWEAVE with NO alterations, producing IDENTICAL output (as attested by doing a byte-by-byte comparison of the DVI files generated by CWEAVE.WEB). Again, if you'd like to play with it, let me know. Keep in mind that it's pretty rough, and needs improvement, but it does work. - Tim Kientzle ================================================================================ Archive-Date: Tue, 06 Sep 1994 17:02:01 CDT Sender: owner-litprog@SHSU.edu MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Tue, 06 Sep 1994 18:00:05 +0600 To: LitProg@Shsu.edu From: groener@vt.edu Reply-To: LitProg@SHSU.edu, groener@VT.EDU Subject: Compiling Funnelweb? I am currently enrolled in a graduate course at Virginia Tech learning how to do literate programming. The tools we use are LaTex and Funnelweb. I was able to download both through the Internet. I am using a PC and have DOS and Linux available to me. The copy of Funnelweb I retrieved was split into 20 Parts. I was able to decompress these. Now I am facing the task of compiling them so that I can started using Funnelweb. I am stuck and have no idea how to compile these parts and get everything to work. I would like to compile for DOS, but Linux is fine with me. Can somebody please explain to me the steps I have to take in either operating system to get Funnelweb compiled and running. Or if someone was really kind could an executable version for DOS be posted? I appreciate every help I can get. Please send email to groener@vt.edu. Thanks, Markus Groener ************************************************************************** * Markus K. Groener * * Ph.D. student at Virginia Polytechnic Institute and State University * * e-mail: groener@vt.edu * * * * snail mail: * * 750 Hethwood Blvd. #1300-B * * Blacksburg, VA 24060-4324 * * * * Tel.: (703) 552-4095 * ************************************************************************** - we have learned to fly like the birds in the sky, to swim like the fish in the ocean, but we have forgotten the trivial task to live like brothers. -Martin Luther- ================================================================================ Archive-Date: Tue, 06 Sep 1994 18:51:17 CDT Sender: owner-litprog@SHSU.edu From: Jim Belesiu Reply-To: LitProg@SHSU.edu, jimb@COTTON.MCM.HP.COM Message-ID: <9409062350.AA29149@cotton.mcm.hp.com> Subject: Re: Compiling Funnelweb? To: LitProg@SHSU.edu, groener@vt.edu Date: Tue, 6 Sep 94 16:50:50 PDT MIME-Version: 1.0 Content-Type: Message/rfc822 Marcus, > > I am currently enrolled in a graduate course at Virginia Tech learning how > to do literate programming. The tools we use are LaTex and Funnelweb. I was > able to download both through the Internet. I am using a PC and have DOS and > Linux available to me. The copy of Funnelweb I retrieved was split into 20 > Parts. I was able to decompress these. Now I am facing the task of compiling > them so that I can started using Funnelweb. I am stuck and have no idea how > to compile these parts and get everything to work. I would like to compile > for DOS, but Linux is fine with me. > Can somebody please explain to me the steps I have to take in either > operating system to get Funnelweb compiled and running. Or if someone was > really kind could an executable version for DOS be posted? > Very simple, once you setup the proper environment #define in the environ.h file type gcc *.c -o fw This will compile all of the files and generate an output called fw. I've used by the gcc compiler for Linux and the Zortech compiler for DOS successfully using this method. I can send you a DOS executable if you need one. Cheers, Jim Belesiu Diagnostic Cardiology Business Group Hewlett-Packard Co. 1700 South Baker Street McMinnville OR 97128, USA E-mail: jimb@mcm.hp.com ================================================================================ Archive-Date: Wed, 07 Sep 1994 02:19:07 CDT Sender: owner-litprog@SHSU.edu Date: Wed, 07 Sep 94 02:28:20 EST From: viper@cml.com Reply-To: LitProg@SHSU.edu, viper@CML.COM Message-ID: <23940EMPXNBRCKYAPHQ@cml.com> Subject: HELP! To: LitProg@SHSU.EDU I am writing a report on careers in the programming field and would like your help. If you could answer some or all of these questions it would be of great help. Thank you in advance. 1. What kind of education do you need to get into the programming field? 2. What are the languages to learn? 3. Who are the companies to work for? 4. What do you think are the coming things in programming? 5. In what order do you think a person should learn the different languages? 6. What is the best software in each language? 7. Which school is the most respected in the Industry? 8. In your opinion, what is the best way to get into the Industry? 9. Do you still try to learn different languages, or learn more about the one that you use? 10. Do you see a single language becoming the standard or do you see another language coming in to the field? E-Mail viper@cml.com * SLMR 2.1a * You're an old timmer if you eat radio dinners! ComputerLink 'the easy way to bbs' (416) 233 - 7150 ================================================================================ Archive-Date: Wed, 07 Sep 1994 11:47:46 CDT Sender: owner-litprog@SHSU.edu From: rraschke@cs.tu-berlin.de (Robert Raschke) Reply-To: LitProg@SHSU.edu, rraschke@CS.TU-BERLIN.DE Subject: Connection between CLiP and VAMP? Date: 7 Sep 1994 16:11:32 GMT Message-ID: <34konk$1vi@news.cs.tu-berlin.de> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit To: LitProg@SHSU.EDU Hi, I was wondering if there is a connection between CLiP and VAMP. There seem to be some articles about VAMP written by Eric van Ammers and Mark Kramer. Both are also responsible for CLiP. I have not been able to look into the articles, as my library doesn't have them. So, I would be grateful if anyone can provide any information. I want to include some information on existing WEB's in my masters thesis. Robby -- rraschke@cs.tu-berlin.de ================================================================================ Archive-Date: Wed, 07 Sep 1994 14:25:39 CDT Sender: owner-litprog@SHSU.edu From: ara@zurich.ai.mit.edu (Allan Adler) Reply-To: LitProg@SHSU.edu, ara@ZURICH.AI.MIT.EDU Subject: FWEB progress, more questions Date: 7 Sep 94 14:23:35 Message-ID: To: LitProg@SHSU.EDU In an earlier message, I complained about FWEB running the words together in statements like IMPLICIT DOUBLE PRECISION LOGICAL /GLEEP/DUH I finally found out how to correct it: write everything in lower case. Also, I started reading Knuth's book METAFONT The Program to gain some insight into WEB prose and compositional style. I find this quite helpful and now I feel like I am beginning to get the hang of it. One of the positive features of Knuth's style involves beautifying those parts of the programming language that are usually ugly or hard to read. It is not hard to find such features in Fortran. For example, FORMAT statements are quite ugly and READ and WRITE statements are usually not much better. In addition to these problems, there is also the fact that READ or WRITE statements are often separated from their FORMAT statements by a great distance. I welcome suggestions on how to make these monstrosities beautiful with FWEB. Allan Adler ara@altdorf.ai.mit.edu ================================================================================ Archive-Date: Thu, 08 Sep 1994 12:43:22 CDT Sender: owner-litprog@SHSU.edu Date: Thu, 8 Sep 94 13:43:02 EDT From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET To: LitProg@shsu.edu, partingr@t9.cs.man.ac.uk Subject: Re: CWEB 3 Message-ID: Robert Partington asks: > How can you stop CWEB 3 from including identifiers in header files in the > index? > > I have a program which includes 6 header files which declare a *lot* of > identifiers, functions etc. When I @h "header.h" them, CWEB recognises > the identifiers, typesets my program correctly and creates an index thats > 9 pages long. Considering my program is 5 pages long, this is ridiculous. > > If I do @h , the index only contains identifiers in my program, > but CWEB doesn't recognise the identifiers from the header files and > typesets my program incorrectly (types,#defines not set in bold but italic). If you don't have a lot of type names, you can try: @s typename1 int @s typename2 int @q ... etc ... @> @h or something along those lines. I've never used @h before. I guess I'll have to reread the manual. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Thinking's a dizzy business, a matter of Computer Science Department | catching as many of those foggy glimpses Kean College of New Jersey | as you can and fitting them together the Union, NJ 07083 | best you can. USA | | -- Dashiell Hammett leew@pilot.njin.net | "The Dain Curse" (1929) ------------------------------------------------------------------------ ================================================================================ Archive-Date: Fri, 09 Sep 1994 01:39:07 CDT Sender: owner-litprog@SHSU.edu Date: Fri, 09 Sep 1994 08:39:23 +0000 (GMT) From: "Eric W. van Ammers, LUW, tel: (+31)8370-83356" Reply-To: LitProg@SHSU.edu, AMMERS@RCL.WAU.NL Subject: Harold Thimbleby's address please To: LITPROG@shsu.edu Message-ID: <01HGWHNZO2KYFODS9V@RCL.WAU.NL> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT I'm trying to contact Harold Thimbleby, the author of Cweb. Who can help me to his e-mail address? Eric W. van Ammers ============================================================================ 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 ============================================================================ ================================================================================ Archive-Date: Fri, 09 Sep 1994 01:55:46 CDT Sender: owner-litprog@SHSU.edu From: houtzager@amc.uva.nl (Jeroen Houtzager) Reply-To: LitProg@SHSU.edu, houtzager@AMC.UVA.NL Subject: cman Date: Fri, 9 Sep 1994 06:23:54 GMT Message-ID: To: LitProg@SHSU.EDU Hi I am interested in using cman on my pc. Unfortunately I need a gzipper to uncompress it and I don't have one. Could anybody supply me with an uncompressed source? Thanks in advance! ------------------------------------------------ Jeroen Houtzager Academic Medical Centre; University of Amsterdam The Netherlands Information Supply Department - Infrastructure ================================================================================ Archive-Date: Mon, 12 Sep 1994 04:01:08 CDT Sender: owner-litprog@SHSU.edu To: LitProg@SHSU.edu From: "Andreas Scherer" Reply-To: LitProg@SHSU.edu, SCHERER@GENESIS.INFORMATIK.RWTH-AACHEN.DE Date: 12 Sep 94 11:00:30 +0100 Subject: CWEB 3 - Formatting header files. Message-ID: <7C8B81F77FB@genesis.informatik.rwth-aachen.de> Robert Partington asks: > How can you stop CWEB 3 from including identifiers in header files > in the index? > > I have a program which includes 6 header files which declare a > *lot* of identifiers, functions etc. When I @h "header.h" them, > CWEB recognises the identifiers, typesets my program correctly and > creates an index thats 9 pages long. Considering my program is 5 > pages long, this is ridiculous. > > If I do @h , the index only contains identifiers in my > program, but CWEB doesn't recognise the identifiers from the > header files and typesets my program incorrectly (types,#defines not > set in bold but italic). With CWEB 3.2 (Levy/Knuth, CWB32P10 in CTAN) I couldn't get this effect! Do you use a special version of CWEB? The `@h' command is supposed to put all `@d'efines "here", i.e., CTANGLE copies all global defines together at possibly many places in the output and CWEAVE puts the pseudo section reference "" at any of these places. This is especially useful if you produced multiple output files and wanted to have all defines present simultaneously. The standard version of CWEB doesn't give a parameter to `@h' anyway. Andreas Scherer ``If all else fails, read the instructions.'' -- TeX ================================================================================ Archive-Date: Mon, 12 Sep 1994 04:02:05 CDT Sender: owner-litprog@SHSU.edu To: LitProg@SHSU.edu From: "Andreas Scherer" Reply-To: LitProg@SHSU.edu, SCHERER@GENESIS.INFORMATIK.RWTH-AACHEN.DE Date: 12 Sep 94 11:01:39 +0100 Subject: A parsing bug in CWEAVE?! revisited Message-ID: <7C8BD0C2D3B@genesis.informatik.rwth-aachen.de> Felix Gartner asks: > I've come across a situation where the CWEAVE parser doesn't seem to > do the job correctly: > > ---------example follows: ---------------------------------------- > > @ Try this: > > @c > #define string char* /* why doesn't this work? */ > > ----------end example---------------------------------------------- > > Has anybody else discovered this and is there are solution to the > problem? There have been several different answers to this problem, the best of which are by Lee Wittenberg and Barry Schwartz, who both suggest using "typedef" instead of "define". I agree. But if you really absolutely have to use the construction above, use it in the following form: ! @ Try this ! ! @s string int ! ! @c ! #define string char* @; /* `@;' is the clue! */ This works in every case with a "type name" as replacement text. And if you look at the analysis mode `@1', it is often advisable to put an extra `@;' at the end of the line, especially with tricky constructions in parametric macros. Even in C-itations `@;' has its benefits. (In the case above there is an irreducible `decl' scrap left, but this is better than a `decl_head' without the `@;', because this also gives some problems to TeX.) Andreas Scherer ================================================================================ Archive-Date: Mon, 12 Sep 1994 14:10:52 CDT Sender: owner-litprog@SHSU.edu Date: Mon, 12 Sep 94 12:20:37 EDT From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET To: LitProg@shsu.edu Subject: LP and Maintenance CC: gregory@utkcs2.cs.utk.edu Message-ID: The following unsolicited quote (albeit from an LP convert) may prove useful for those of us who are trying to convince others that LP techniques really pay off in the long run: I just had to pick up the stuff I wrote last November and revise it, and ... this was the first work I could be absolutely confident saying that if it wasn't a literate program, I would simply not have been able to revise it. (Carl Gregory, 12 September 1994) 'nuff said. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Thinking's a dizzy business, a matter of Computer Science Department | catching as many of those foggy glimpses Kean College of New Jersey | as you can and fitting them together the Union, NJ 07083 | best you can. USA | | -- Dashiell Hammett leew@pilot.njin.net | "The Dain Curse" (1929) ------------------------------------------------------------------------ ================================================================================ Archive-Date: Tue, 13 Sep 1994 10:59:44 CDT Sender: owner-litprog@SHSU.edu To: LitProg@SHSU.edu From: "Andreas Scherer" Date: 13 Sep 94 12:54:40 +0100 Subject: Examples for CWEB programming Reply-To: LitProg@SHSU.edu, scherer@genesis.informatik.rwth-aachen.de Message-ID: <7E29F8C44B6@genesis.informatik.rwth-aachen.de> I'm working on a collection of CWEB (Levy/Knuth, CWB32P10 in CTAN) programs in the astronomical background. The single (!) source file ASTROLIB.W contains several library modules and about a dozen example programs that make use of the routines in the library. One major goal of this private project is the creation of a truely PORTABLE system of routines and programs for astronomical applications, like calculating the movement of sun, moon, planets, comets, predicting solar eclipses, and many others. The archive (375 KB) still is in the making, so the documentation is a bit tearse. But the library and all programs have successfully been installed on AMIGA (SAS/C), MSDOS (Borland C), and UNIX (HP, SGI, Sun, with CC and GCC). There are Makefiles for all these systems included in the archive. Beware: The complete source code is in German, and depends on some extra files in the CWB32P10 distribution. If you would like to take a look at this work in progress, give me a call and I'll mail it to you. Andreas Scherer ================================================================================ Archive-Date: Tue, 13 Sep 1994 11:02:25 CDT Sender: owner-litprog@SHSU.edu From: thompson@sun1.coe.ttu.edu Subject: comp.programming.literate FAQ Date: 13 Sep 1994 09:02:07 GMT Message-ID: Reply-To: LitProg@SHSU.edu, thompson@sun1.coe.ttu.edu To: LitProg@SHSU.EDU Archive-name: literate-programming-faq Last-modified: 1994/08/23 Version: 1.1.10 Welcome to the Literate Programming Frequently Asked Questions List ------------------------------------------------------------------- This version was created Tuesday, August 23, 1994, and should considered stale after 90 days. Information contained in this document is the best available at preparation. The original file was dated October 15, 1993 (just for historical purposes). Disclaimer: "This FAQ is presented with no warranties or guarantees of ANY KIND including correctness or fitness for any particular purpose. The author of this document has attempted to verify correctness of the data contained herein; however, slip-ups can and do happen. If you use this data, you do so at your own risk." Copyright 1993, 1994 David B. Thompson. All rights reserved worldwide. Permission is granted to copy this document for free distribution so long as it remains intact and unmodified. For other arrangements, contact the author/maintainer via email: thompson@sun1.coe.ttu.edu. What's New? ----------- + Add Fold2Web entry. + Correct noweb.el entry. (Thanks Dominique!) + Update nuweb.el entry. + Update SchemeWEB entry. + Update WWW and literate programming entry. + Update c2cweb entry. = ====================================================================== * Introduction or "What's this all about?" ------------------------------------------ This document is for new and experienced users of literate programming tools. The purpose is to explain the concept of literate programming and to provide a resource for locating files of interest to literate programmers and those interested in literate programming. The Literate Programming (LitProg) Frequently Asked Questions (FAQ) list is maintained by Dave Thompson, who can be reached at: thompson@sun1.coe.ttu.edu * Preferred mailing address for FAQ related comments/questions. wqdbt@ttacs1.ttu.edu * Forwarded to my pc. Comment and constructive criticism is welcome. Direct flames to /dev/null (or > nul if you're a msdos user! ;-) If you find an error, please report it. I'm particularly interested in establishing the locations of generally available literate programming tools. If you are the author of such a tool and wish to have it included in this list, please send email. Please note this is a work-in-progress. It is *not* complete, and probably will not be complete for some months. Nevertheless, the information contained herein may be useful to some. Use it as it is intended. - ---------------------------------------------------------------------- - Typography ------------ Major sections of the FAQ are divided by double lines (====). Minor sections and other divisions are separated by single lines (----). Major topics use a "* " as a leader. Minor topics use a "- " as a leader. This should simplify searching for topics. = ====================================================================== Table of Contents: ------------------ * Introduction, or "What's this all about?" - Typography * How do I get the FAQ? - Literate Programming FAQ - FWEB FAQ * Is there a newsgroup? (The comp.programming.literate newsgroup) * What internet nodes are of interest to literate programmers? * What is literate programming? * How do I begin literate programming? * What literate programming tools are available and where are they? - APLWEB - AWEB - CLiP - CWEB - FunnelWeb - FWEB - IMPACT - lit2x - Literate Programmer's Workshop (LPW) - MapleWEB - MWEB (Schrod/Detig) - MWEB (Sewell) - noweb - nuweb - ProTeX - RWEB - SchemeWEB - Spidery WEB - WEB - WinWordWEB * Are there other tools I should know about? - C2LaTeX - c2cweb - c2man - cnoweb - Fold2web - FunnelWeb mode - noweb.el - nuweb.el - TIE - Web mode * What other resources are available? - World Wide Web - TeX Resources - Virtual Coursework * Are there any code examples? - Examples included with developer's tools - Cameron Smith's KR-CWEB - Stanford GraphBase * Bibliographies. * How to anonymously ftp. * Acknowledgements. * End notes. = ====================================================================== * How do I get the FAQ? ----------------------- - Literate Programming FAQ -------------------------- You have many ways to get a current copy of this FAQ. One is to use anonymous ftp (if you don't know how, see a later section in this FAQ) to connect to one of the Comprehensive TeX Arvchive Network (CTAN) sites or the Literate Programming Archive and retrieve a copy of the file. Open an ftp connection to one of the CTAN sites and retrieve the file: help/LitProg-FAQ (For more information on CTAN and the literate programming archive, see the section below entitled "Internet Nodes of Interest to Literate Programmers.") An alternative is to use the fileserver at Sam Houston State University (SHSU). Send a message to FILESERV@SHSU.EDU and include in your message: SENDME LITPROG.FAQ The file server will forward a copy of the file to you via email. - ---------------------------------------------------------------------- - FWEB FAQ ---------- Marcus Speh maintains the FWEB FAQ. The current version number is 1.29. It can be retrieved in the same way as this FAQ; either by anonymous ftp or through the SHSU file server. On the SHSU server, the file name is FAQ.FWEB. Invoke your ftp software, open a connection to NIORD.SHSU.EDU [192.92.115.8], attach to the directory FAQ, and transfer the file FAQ.FWEB. Alternatively, send a message to the file server, FILESERV@SHSU.EDU, and include the following text in a one line message: SENDME FAQ.FWEB The file server will send the current version of the file via email. The FWEB FAQ exists in various formats, including HyperText (see other resources below). In Europe, the complete distribution can also be obtained from ftp.desy.de [131.169.10.115] in directory /pub/faq/web/fweb/. It is also available from the literate programming archive (LPA) in the directory LPA/Documentation/faq/fweb (see the references to LPA below for more information). Also, Marcus Speh is looking for someone willing to take over the FWEB FAQ. The text of his email message follows... "Please add to the FWEB FAQ the note that I am looking for someone to take the maintenance of the FAQ over - I am ready to assist in any way whatsoever, including tons of mail, notes for v1.29->v1.30, Texinfo sources, a WWW server and Hypertextification etc." If you're interested, send mail to marcus@x4u2.desy.de and express your willingness to serve. = ====================================================================== * Is there a newsgroup? ----------------------- One of the most important resources is the literate programming newsgroup, comp.programming.literate. You can read this newsgroup using your standard reader. Altenatively, the newsgroup is gated to a mailing list hosted by George Greenwade and Sam Houston State University. You can subscribe by sending mail to the list-server, LISTSERV@SHSU.EDU, and include in the message one line of text: SUBSCRIBE LITPROG "your name in quotes" The list is unmoderated; messages sent to litprog@shsu.edu are automatically distributed to all subscribers and cross-posted to comp.programming.literate. Archives of the mailing list and newsgroup are maintained on niord.shsu.edu [192.92.115.8] in the directory litprog. = ====================================================================== * 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. The CTAN sites are: ftp host IP CTAN root Institution and Sponsor ------------------------------------------------------------------------- ftp.tex.ac.uk 134.151.79.32 pub/archive Aston Univ./UK TeX U.G. ftp.dante.de 129.206.100.192 soft/tex DANTE e.V. ftp.shsu.edu 192.92.115.10 tex-archive Sam Houston State Univ. Other nodes and directories of interest include: Node: niord.shsu.edu [192.92.115.8] Directory: various (do some snooping!) Notes: Has a gopher server. Node: ftp.desy.de [131.169.10.115] Directory: pub/web. Various documents, samples, and the FWEB FAQ. Notes: Has a www server, http://info.desy.de:80/ = ====================================================================== * What is Literate Programming? ------------------------------- Literate programming is the combination of documentation and source together in a fashion suited for reading by human beings. In fact, literate programs should be enjoyable reading, even inviting! (Sorry Bob, I couldn't resist!) In general, literate programs combine source and documentation in a single file. Literate programming tools then parse the file to produce either readable documentation or compilable source. The WEB style of literate programming was created by D.E. Knuth during the development of his TeX typsetting software. All the original work revolves around a particular literate programming tool called WEB. Knuth says: The philosophy behind WEB is that an experienced system programmer, who wants to provide the best possible documentation of his or her software products, needs two things simultaneously: a language like TeX for formatting, and a language like C for programming. Neither type of language can provide the best documentation by itself; but when both are appropriately combined, we obtain a system that is much more useful than either language separately. The structure of a software program may be thought of as a web that is made up of many interconnected pieces. To document such a program we want to explain each individual part of the web and how it relates to its neighbours. The typographic tools provided by TeX give us an opportunity to explain the local structure of each part by making that structure visible, and the programming tools provided by languages such as C or Fortran make it possible for us to specify the algorithms formally and unambigously. By combining the two, we can develop a style of programming that maximizes our ability to perceive the structure of a complex piece of software, and at the same time the documented programs can be mechanically translated into a working software system that matches the documentation. Another author (Eric W. van Ammers) wrote me a short article treating his opinions on literate programming. The text follows: First observation on LP About 90% of the disussion on this list is about problems with applying some WEB-family member to a particular programming language or a special documentation situation. This is ridiculous, I think. Let me explain shortly why... Lemma 1: I have proposed for many years that programming has nothing to do with programming langauges, i.e. a good programmer makes good programs in any language (given some time to learn the syntax) and a bad programmer will never make a good program, no matter the language he uses (today many people share this view, fortunately). Lemma 2: Literate Programming has (in a certain way not yet completely understood) to do with essential aspects of programming. Conclusion 1: A LP-tool should be independent of programming language. Lemma 3: It seems likely that the so called BOOK FORMAT PARADIGM [ref. 1] plays an important role in making literate programs work. Lemma 4: There are very many documentation systems currently being used to produce documents in the BOOK FORMAT. Conclusion 2: A LP-tool should be independent of the documentation system that the program author whishes to use. My remark some time ago that we should discuss the generic properties of an LP-tool was based on the above observation. References: [1] Paul W. Oman and Curtus Cook. Typographical style is more than cosmetic. CACM 33, 5, 506-520 (May 1990) Second observation on LP The idea of a literate program as a text book should be extendend even further. I would like to see a literate program as an (in)formal argument of the correctness of the program. Thus a literate program should be like a textbook on mathematicics. A mathematical textbook explains a theory in terms of lemma and theorems. But the proofs are never formal in the sense that they are obtaind by symbol manipulation of a proof checker. Rather the proofs are by so called "informal rigour", i.e. by very precise and unambiguous sentences in a natural language. Eric W. van Ammers Department of Computer Science Wageningen Agricultural University Dreijenplein 2 E-mail: ammers@rcl.wau.nl 6703 HB Wageningen voice: +31 (0)8370 83356/84154 The Netherlands fax: +31 (0)8370 84731 = ====================================================================== * How do I begin literate programming? -------------------------------------- A recommended book is D.E. Knuth's collection of articles (1992) "Literate Programming," Center for the Study of Language and Information, Stanford University, ISBN 0-937073-80-6 (pbk). This book gives insight into Knuth's thoughts as he developed the web system of literate programming (and TeX for typesetting). It does not document methods for literate programming. A recommended book is Wayne Sewell's (1989) "Weaving a Program: Literate Programming in WEB," Van Nostrand Reinhold, ISBN 0-442-31946-0 (pbk). This book focuses on using Knuth's web system. Some talk exists in the newsgroup/mailing list for a Usenet University course in literate programming. I'm sure discussion of this topic will be welcomed. If you are interested, please participate. = ====================================================================== * What literate programming tools are available and where are they? ------------------------------------------------------------------- A significant number of tools for literate programming are available. Most have been ported from their original systems, so support multiple computer platforms. If you are the developer of such a tool, and would like to make the software freely available, please send me email and I'll reply with a form (like those below) for you to fill in. (Or short-circuit the process and kludge a form from below. :-) - ---------------------------------------------------------------------- - APLWEB -------- Developer: Christoph von Basum Version: Unknown Hardware: MSDOS Languages: IBM APL2 and STSC APL Formatter: Plain TeX Availability: Anonymous ftp from: LPA:/apl watserv1.uwaterloo.ca:/languages/apl/aplweb Readme: Unknown Description: None available. Support: Unknown Note: The status of this particular package is unknown. - ---------------------------------------------------------------------- - AWEB ------ Developer: Unknown Version: Unknown Hardware: Unknown Languages: Ada Formatter: Unknown Availability: Anonymous ftp from: LPA:/ada/web Readme: Unknown Description: None available Support: Not supported. - ---------------------------------------------------------------------- - CLiP ------ Developer: E.W. van Ammers and M.R. Kramer Version: Unknown Hardware: Vax/VMS, Unix, and MS-DOS Languages: Any programming language. Formatter: Any formatter (TeX, LaTeX, Troff, Runoff, etc) or any wordprocessor including WYSIWYG systems (Word Perfect, Win Word, Ami Pro, Word, etc.) Availability: Anonymous ftp from: sun01.info.wau.nl:/CLIP/ms_dos MS-DOS version sun01.info.wau.nl:/CLIP/vax_vms VAX/VMS version CTAN:/web/clip LPA:/machines/ms-dos LPA:/machines/vax Readme: With bundle above Description: CLiP does not use explicite commands to perform the extraction process. Rather it recognizes pseudostatemens written as comments in the programming language in question. CLiP distinguishes pseudostatments from ordinary comments because the former comply with a a particular style. This style can be adjusted to suit virtually any programming language. The CLiP approach to LP makes the system extremely versatile. It is independent of programming language and text processing environment. We designed CLiP to be compatible with hypertext systems as well but we have not yet experimented with this form of documentation. Features: + CLiP imposes virtually no limitations on the text-processing system used to produce the documentation. If the text-processor supports these items you can + structure the documentation according to your own taste. + include drawings, pictures, tables etc. + disclose your documentatio my means of X-ref tables, Indexes, Table of contents, Table of tables, Table of figures, etc. + typeset the documented code. + Extracts any number of modules from a maximum of 64 source files. + No pretty-printing. Code from the source files is copied "as is" to the module. + Appearance of code segments in the documentation matches those of the modules to ease the identification of code segements. + Supports partially specified data types. + Comprehensive user manual (preliminary version) and technical description. - No automatic generation of a X-ref table for program identifiers. Support: Bugs, problems and assistance by e-mail: ammers@rcl.wau.nl - ---------------------------------------------------------------------- - CWEB ------ Developer: Silvio Levy and D.E. Knuth Version: 3.0 Hardware: Unix systems (dos and amiga ports available) Languages: C and C++ Formatter: Plain TeX and LaTeX. Availability: Anonymous ftp from: labrea.stanford.edu:/pub/cweb LPA:/c.c++ CTAN:/web/c_cpp/cweb DOS version in CTAN:/web/c_cpp/cwb30p8c DOS version in LPA:/machines/ms-dos Amiga version CTAN:/web/c_cpp/AmigaCWEB Mac port of CTANGLE in LPA:/machines/mac LaTeX support in LPA:/c.c++ Readme: Bundled with above Description: No description provided. Support: Bugs to levy@math.berkeley.edu Note: A fork of CWEB 3.x was developed by Marc van Leeuwen which implements several changes to CWEB. It is available for anonymous ftp from ftp.cwi.nl:pub/cweb. The principle changes are: - Scans include files for typedef definitions - Grammar and formatting rules are well separated, allowing for run-time selection of a rule set (via command line option) - New manual. - ---------------------------------------------------------------------- - 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. - ---------------------------------------------------------------------- - FWEB ------ Developer: John A. Krommes Version: 1.30a (1.40 for the experienced, patient, and brave) Hardware: Unix, VMS, and DOS platforms (anything with ANSI C) Languages: C, C++, Fortran-77, Fortran-90, Ratfor, TeX; also, a language-independent mode. Formatter: Plain TeX and LaTeX. Availability: Anonymous ftp from: ftp.pppl.gov:/pub/fweb CTAN:/web/fweb LPA:/fweb DOS version in LPA:/machines/ms-dos Readme: In bundle with above. Description: It also has a well-developed user's manual and its own FAQ (see above). Beginning with 1.40, documentation is maintained in gnu texinfo format. It runs on most platforms: VMS, PC, UNIX, and pretty much anything that the GNU C compiler (GCC) is supported for. Features: + Processes multiple languages during a single run (so one can mix C and Fortran, for example). + Language-independent mode (v1.40). + Ability to turn off pretty-printing (v1.40). + Built-in Ratfor translator. + Built-in macro preprocessor (closely follows ANSI C, with extensions). + A style file that allows the user to adjust many parameters and behavior patterns of FWEB. + Various operator-overloading features that provide additional pretty-printing capabilities to languages such as C++ and Fortran-90. + Numerous miscellaneous features and command-line options. Support: Bug reports and suggestions to krommes@princeton.edu - ---------------------------------------------------------------------- - IMPACT -------- Developer: Timothy Larkin, from Levy/Knuth CWEB 3.1 Version: 1.0 Hardware: Macintosh; requires AppleEvents. Languages: C, C++ Formatter: TeX Availability: CTAN archives Readme: A short readme file is included in the SEA archive. Description: IMPACT implements CTangle from the Levy/Knuth CWEB 3.1. It operates as a foreground program, tangling files selected from the Mac File Picker. Or it can operate in the background, tangling files in response to odoc events sent by other applications, such as editors. Support: I welcome any reports of bugs. The product will be updated as new versions of the CWEB appear. Other features may be added as users suggest them. - ---------------------------------------------------------------------- - lit2x ------- Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/independent Readme: Unknown Description: None available Support: Unknown - ---------------------------------------------------------------------- - Literate Programmer's Workshop (LPW) -------------------------------------- Developer: Norbert Lindenberg Version: 1.1 Hardware: Apple Macintosh Languages: C++, Object Pascal & others Formatter: self-contained WYSIWYG system Availability: Anonymous ftp from: LPA:/machines/mac CTAN:/web/lpw ftp.apple.com:/pub/literate.prog Readme: With bundle above. Also comes with 38-page manual. Description: The Literate Programming Workshop is an environment for the integrated development of program source text and documentation in combined documents. It consists of a WYSIWYG word processor based on a style sheet approach, a mechanism to extract parts of the text in a document, and a project management system that handles multi-document projects. The system is designed to be used in conjunction with the Macintosh Programmer's Workshop: it prepares raw source text for the MPW compilers, accepts MPW error messages, and shows them in the context of the original documents. Automatic indexing and hypertext features allow for easy access to both source text and documentation. LPW is shareware. Support: Bugs, problems, and questions to lpw@aol.com. - ---------------------------------------------------------------------- - MapleWEB ---------- Developer: Unknown Version: Unknown Hardware: Unknown Languages: Maple Formatter: Unknown Availability: Anonymous ftp from: LPA:/maple Readme: Unknown Description: None Support: Unknown - ---------------------------------------------------------------------- - MWEB (Schrod/Detig) --------------------- Developer: Joachim Schrod Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. - ---------------------------------------------------------------------- - MWEB (Sewell) --------------- Developer: Sewell Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. - ---------------------------------------------------------------------- - noweb ------- Developer: Norman Ramsey Version: 2.6 Hardware: Unix and DOS platforms. Languages: All programming languages. Formatter: Plain TeX, LaTeX, and HTML (Mosaic) formatters. Availability: Anonymous ftp from: CTAN:/web/noweb LPA:/independent DOS version also in LPA:/machines/ms-dos also bart.kean.edu:/pub/leew Last recourse, use bellcore.com:/pub/norman Readme: With bundle above. Description: noweb is designed to meet the needs of literate programmers while remaining as simple as possible. Its primary advantages are simplicity, extensibility, and language-independence. noweb uses 5 control sequences to WEB's 27. noweb now supports indexing and identifier cross-reference, including hypertext ``hot links'' courtesy of Mosaic. The simple noweb manual is only 2 pages; documenting the full power of noweave and notangle requires another 3 pages. noweb works ``out of the box'' with any programming language, and its formatter-dependent part is a 60-line nawk program. The primary sacrifice relative to WEB is the loss of prettyprinting. Support: email to the author - ---------------------------------------------------------------------- - nuweb ------- Developer: Preston Briggs: preston@cs.rice.edu Version: 0.87 Hardware: Unix systems: Sparcs, RS/6000s, HPs; (!) MSDOS and Amiga. Languages: Any programming language or combination of programming languages. Formatter: Latex Availability: Anonymous ftp from: Unix: CTAN:/web/nuweb DOS: CTAN:/web/nuweb-pc LPA:/independent Amiga: CTAN:/web/nuweb/nuweb_ami Amiga: wuarchive.wustl.edu/pub/aminet Readme: Send mail to preston@cs.rice.edu Description: A single program that takes a web file written in a combination of latex and any programming language(s) and produces a latex file that can be pretty printed and a set of files containing code for compilation/interpretation by the appropriate language processors. Strengths include speed, simplicity, multiple languages, nice indices and cross-references, latex. Doesn't require any special macros or macro files. Drawbacks: latex-dependent, no code pretty printing, harder to make indices than cweb. More good stuff: nice support for make, doesn't reformat source files, so they're easy to debug. Lots of control without too much effort. That is, it doesn't do too much! Future directions... Very little change planned, except perhaps refinements in the indexing software. Support: Hack it yourself or send e-mail to preston@cs.rice.edu - ---------------------------------------------------------------------- - ProTeX -------- Developer: Eitan Gurari Version: 1.1 (AlProTeX 1.2) Hardware: Any platform with TeX (ProTeX is written in TeX) Languages: Any language Formatter: TeX and LaTeX Availability: Anonymous ftp from: ftp.cis.ohio-state.edu : pub/tex/osu/gurari/ LPA:/independent Readme: Unknown Description: There is a book published on using ProTeX, @Book{Gurari:TLD94, author = "Eitan M. Gurari", title = "{\TeX} and {\LaTeX}: Drawing and Literate Programming", publisher = pub-MH, year = "1994", address = pub-MH:adr, bibdate = "Wed Sep 29 17:55:14 1993", acknowledgement = ack-nhfb, } Support: gurari@cis.ohio-state.edu - ---------------------------------------------------------------------- - RWEB ------ Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/reduce Readme: Unknown Description: Web generator in AWK. Support: Unknown - ---------------------------------------------------------------------- - SchemeWEB ----------- Developer: John D. Ramsdell Version: 2.1 Hardware: Unix and DOS platforms Languages: Any dialect of Lisp. Formatter: LaTeX. Availability: The Unix version is in the Scheme Repository and it is available via anonymous ftp from: cs.indiana.edu:/pub/scheme-repository/utl/schemeweb.sh LPA:/lisp CTAN:/tex-archive/web/schemeweb The DOS version is part of the PCS/Geneva Scheme system which is available via anonymous ftp from: cui.unige.ch:/pub/pcs LPA:/machines/ms-dos Readme: In bundle with above. Description: SchemeWEB is a Unix filter that allows you to generate both Lisp and LaTeX code from one source file. The generated LaTeX code formats Lisp programs in typewriter font obeying the spacing in the source file. Comments can include arbitrary LaTeX commands. SchemeWEB was originally developed for the Scheme dialect of Lisp, but it can easily be used with most other dialects. Support: Bug reports to ramsdell@mitre.org. - ---------------------------------------------------------------------- - SpideryWEB ------------ Developer: Norman Ramsey Version: Unknown Hardware: Unix and DOS platforms Languages: Most Algol-like languages, including C, Ada, Pascal, Awk, and many others. Formatter: Plain TeX and latex for text formatters. Availability: Anonymous ftp from: CTAN LPA:/spiderweb Readme: In distribution. Description: A system for building language-dependent WEBs. Spider is frozen; no further development is planned. Support: Bug reports to spider-bugs@oracorp.com. - ---------------------------------------------------------------------- - WEB ----- Developer: Donald Knuth Version: Unknown Hardware: Unknown Languages: Pascal Formatter: TeX (of course! ;-) Availability: Anonymous ftp from: LPA:/pascal Readme: Unknown Description: This is the original software that started it all. The original TeX processor was written in WEB. Support: None known. - ---------------------------------------------------------------------- - WinWordWEB ------------ Developer: Lee Wittenberg Version: Unknown Hardware: Needs Microsoft Word for Windows, v.2.x, and, of course, MS-Windows 3.x. Languages: Any programming language. Formatter: Word for Windows 2.x for text formatting and file maintenance. Availability: Anonymous ftp from: bart.kean.edu:pub/leew LPA:/machines/ms-dos World-Wide Web (WWW) Readme: WORDWEB.DOC in the downloadable package describes the system. Description: WinWordWEB is a set of a Word for Windows macros (plus a paragraph style) that provide a crude literate programming environment. The ``look and feel'' of the system is based on Norman Ramsey's noweb, but can easily be modified to suit individual tastes. Support: None. WinWordWEB was written as a prototype to see if a WYSIWYG literate programming system was possible. It is intended as a jumping off point for future work by others. However, the system is surprisingly usable as it stands, and the author is interested in hearing from users (satisfied and dissatisfied). Anyone interested in actively supporting (and improving) the product should contact the author via email. = ====================================================================== * Are there other tools I should know about? -------------------------------------------- First of all, I'll list some not-quite-literate-programming tools. Some may consider these to be pretty-printers. Others may call them literate programming tools. In any event, they don't seem to be quite in the same category as the tools listed above, so I'll include them here. - C2LaTeX --------- Developer: John D. Ramsdell Version: Unknown Hardware: Unix Languages: C Formatter: LaTeX but it's easy to change the formatter. Availability: Anonymous ftp from omnigate.clarkson.edu:/pub/tex/tex-programs/c2latex. Readme: Absent. Documentation is in the C source for c2latex. Description: C2latex provides simple support for literate programming in C. Given a C source file in which the comments have been written in LaTeX, c2latex converts the C source file into a LaTeX source file. It can be used to produce typeset listings of C programs and/or documentation associated with the program. C2latex produces LaTeX source by implementing a small number of rules. A C comment that starts at the beginning of a line is copied unmodified into the LaTeX source file. Otherwise, non-blank lines are surrounded by a pair of formatting commands (\begin{flushleft} and \end{flushleft}), and the lines are separated by \\*. Each non-blank line is formatted using LaTeX's \verb command, except comments within the line are formatted in an \mbox. Support: Send bug reports to ramsdell@mitre.org. - ---------------------------------------------------------------------- - c2cweb -------- Developer: Werner Lemberg Version: 1.4 Hardware: DOS, OS/2, Unix (gcc) - CWEB source included Languages: C, C++ Formatter: TeX Availability: Anonymous ftp from CTAN:/web/c_cpp/c2cweb Readme: In distribution. Description: c2cweb will transform plain C or C++ code into a CWEB file to get a pretty formatted output. A modified CWEAVE (which transforms the CWEB file into a TeX file, see below) is included also. Support: Werner Lemberg - ---------------------------------------------------------------------- - c2man ------- Developer: Graham Stoney Version: 2.0 patchlevel 26 Hardware: Unix, MSDOS, OS/2. Languages: C Formatter: nroff -man, texinfo (requires yacc/byacc/bison, lex/flex, and nroff/groff/texinfo/LaTeX). Availability: Anonymous ftp from ftp.wustl.edu: /usenet/comp.sources.reviewed/volume03/c2man* ftp.informatik.uni-stuttgart.de: /pub/archive/comp.sources/reviewed/c2man* Readme: See distribution. Description: The primary philosophy here is to use the programming language as far as possible to express the programmer's intentions, and to use comments only when the programming language is not sufficiently expressive. A comment can then become part of the language grammar which is recognised by a "documentation compiler". This tool parses a superset of the programming language and can automatically generate documentation in human-readable form by associating the programmer's comments with the objects in the code by their context. Support: Actively supported; mailing list available: send "subscribe c2man " (in the message body) to listserv@research.canon.oz.au. - ---------------------------------------------------------------------- - cnoweb -------- Developer: Jim Fox Version: 1.4 (January 4, 1991) Hardware: Anything with C and TeX. Languages: C Formatter: Plain TeX. Availability: Anonymous ftp from: CTAN LPA:/c.c++ Readme: Unknown, cnoweb.tex contains documentation. Description: cnoweb is as it's name describes: write C, not web. No tangling or weaving is implemented. Documentation (between standard /* */ delimiteres) is written in TeX. cnoweb provides typesetting of documentation, an table of contents of routines, and pretty-printing of C source. Support: None known. - ---------------------------------------------------------------------- - Fold2Web ---------- Developer: Bernhard Lang Version: V0.8 Hardware: MSDOS Languages: All (must allow comment lines) Formatter: LaTeX Availability: Anonymous ftp from: kirk.ti1.tu-harburg.de (134.28.41.50) /pub/fold2web/readme /pub/fold2web/fold2web.zip Readme: In distribution Description: The idea behind the Fold2Web tool is the following: A programmer can write his program source with a folding editor and later map the folded source files automatically to WEB-files. The generated WEB-files can then be modified by inserting required documentations. The advantage by starting program developement with original sources is to get short design cycles during the compile/debug steps. By using a folding editor the global structuring information can be already captured in folds during this developement phase. Fold information is typically stored in comment lines and thus will not affect the efficiency of the compile/debug design cycle. Some folding editors and a folding mode for the emacs are available (e.g. see our FUE folding editor for MSDOS machines which is a modified micro emacs. Pick it at kirk in directory /pub/fold2web). After reaching a stable version of a program source its time to convert the source file to a WEB-file and do the program documentation. Fold2Web is written to convert folded source text of any programming language to nuweb files. The folded structure is kept by mapping folds to scraps. Fold markers which differ between languages due to different ways of specifying comments can be configured for each language. Good results can also achived when given but poor documented program sources have to be modified. Such sources can be folded using a folding editor to extract the global structures. This offers a global view to the program structures and help to understand its functionality. Furthermore the program code is not affected, only comment lines are inserted. Once folded the program source can be automatically translated to a WEB document using the above tool. Support: email to lang@tu-harburg.d400.de - ---------------------------------------------------------------------- - Funnelweb Mode ---------------- Developer: Daniel Simmons Version: Unknown Availability: Litprog archives (was in email) Anonymous ftp from: ftp.imada.ou.dk Description: The other day I did a quick hack to nuweb.el as included with the nuweb distribution so as to make a funnelweb-mode.el. I've only used it briefly, and I'm sure that it can be improved quite a bit. I've been thinking about adding support for folding on sections, a pull-down menu to select macro definitions (like the recent functions posted to gnu.emacs.sources for a C function definition pull-down menu) and some kind of tags support for funnelweb. Support: Unknown - ---------------------------------------------------------------------- - noweb.el ---------- Developer: Bruce Stephens Version: Unknown. Availability: LitProg archives (in an email message). Description: This is a very simple mode I just hacked up. There's a lot wrong with it, but I thought others may be interested, even as it stands. It *requires* text properties, and assumes those used in GNU Emacs 19.22; it'll quite likely work with Lucid Emacs, but I haven't tried it. I use it with auctex8.1 and cc-mode 3.229, both of which are loaded separately (I think my emacs is dumped with them, in fact). The idea is to have one mode (which calls itself c-mode, but actually has LaTeX-mode keybindings) generally (this means that the code is hilighted nicely), and have the code chunks use a different keymap. Support: Email to bruce@liverpool.ac.uk - ---------------------------------------------------------------------- - nuweb.el ---------- Developer: Dominique de Waleffe Version: 1.99 Availability: Anonymous ftp from: LPA CTAN Description: Provides a major mode extending Auctex for editing nuweb files. Main features (in 2.0): - Edit scrap bodies in a separate buffer in a different mode (selected using emacs defaults for files, specific indication -*-mode-*-, or a buffer-local variable) - Extends Auctex commands so that nuweb is called before LaTeX, - Easy navigation on scrap definition and use points. - Now creates an imenu (C-M-mouse1) with user index entries, macro definition positions and file definition positions. Support: Email to ddw@sunbim.be - ---------------------------------------------------------------------- - TIE ----- Developer: Unknown Version: Unknown Hardware: Unknown Availability: Anonymous ftp from: LPA:/Tools Readme: Unknown Description: This software merges change files. Support: Unknown - ---------------------------------------------------------------------- - Web mode ---------- Developer: Bart Childs Version: Unknown Tools supported: web, fweb, cweb, funnelweb Availability: Anonymous ftp from ftp.cs.tamu.edu:pub/tex-web/web/EMACS.web-mode thrain.anu.edu.au:pub/web/EMACS.web-mode Description: This version works with versions 18 and 19 of Emacs to be best of my knowledge. I have cleaned up a number of documentation items ... In the same directory is wm_refcard.tex which is an edited version of the famous one to include some web-mode commands. The files limbo* are related to its use and notice that half them have an uppercase L in them for LaTeX. The setup is based upon the fact that we (I am not alone here) primarily use FWEB for C and Fortran programming. We are using version 1.40 of FWEB although John Krommes warns that it is not mature and the manual is not yet updated. The info files are! We are using LaTeX almost exclusively. That will likely change and we will revert to version 1.30 if the final form of 1.40 cannot return to the simple section numbers and avoid the HORRIBLE LATEX 0.1.7.2.4.6 type section numbers. Support: Unknown = ====================================================================== * What other resources are available? ------------------------------------- - World Wide Web ---------------- An untapped resource (by me anyway ;-) is the World Wide Web. Marcus Speh has expended considerable effort in this regard. If you're connected to WWW, then access: http://info.desy.de:80/user/projects/LitProg.html If you aren't connected to WWW, telnet to info.cern.ch and explore. You can reach Marcus' literate programming pages by typing: go http://info.desy.de:80/user/projects/LitProg.html 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 ftp.desy.de [131.169.10.115] and get the file: /pub/userWWW/projects/Announce/LitProg.txt - ---------------------------------------------------------------------- - TeX Resources --------------- Another resource of interest to literate programmers is the info-tex mailing list. If you're using (La)TeX as your typsetting system and have access to internet, then you should investigate this mailing list. Mail list service is available through the SHSU list-server. To subscribe, send a message to LISTSERV@SHSU.EDU, and include in the message one line of text: SUBSCRIBE INFO-TEX "your name in quotes" The list is unmoderated; messages sent to info-tex@shsu.edu are automatically distributed to all subscribers and cross-posted to comp.text.tex. Archives of the mailing list and newsgroup are maintained on niord.shsu.edu [192.92.115.8] in the directory info-tex. 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. - ---------------------------------------------------------------------- - Virtual Coursework -------------------- Marcus Speh plans an introductory course on Literate Programming on the Internet, part of the first semester of "Global Network Academy" [GNA], a non-profit corporation incorporated in the state of Texas, affilated with the Usenet University project. The texts/sample programs for this class will be made available via the World-Wide Web. A special room on GNA Virtual Campus will be staffed by a consultant in one to two hour shifts. Students with questions can telnet to the virtual campus and ask questions of the staff there. If you are interested in registering for the course either as a student or as a consultant, please contact marcus@x4u.desy.de. You will receive a standard reply message; no further action will be taken until June 94. Interested parties can check the hypertext notes for the completed C++ Course done in a similar fashion, at URL http://info.desy.de:80/pub/uu-gna/html/cc/index.html [Editor's note: Because of workload, Marcus requests that email inquiries be limited to a statement of interest for either a student or consultant position until June 1994.] = ====================================================================== * Are there any code examples? ------------------------------ Examples of web programs are included with the FWEB, CWEB, and noweb distributions. nuweb is written in itself. Cameron Smith converted the K&R calculator program into a literate program. It can be retrieved by anonymous ftp from: niord.shsu.edu [192.92.115.8] directory kr-cweb-sample as krcwsamp.zip or from LPA/Documentation Ross Williams has released a funnelweb example. You can retrieve this file from node ftp.adelaide.edu.au [129.127.40.3] as /pub/funnelweb/examples/except.* This file should be on CTAN as well. Lee Wittenberg has posted a few litprog examples. They are available via anonymous ftp from: bart.kean.edu:/pub/leew/samples.LP The Stanford GraphBase is a large collection of programs by Don Knuth for doing all kinds of computations and games with graphs; it is written in (Levy/Knuth) CWEB. More details in the distribution. It is available via anonymous ftp from: labrea.stanford.edu:/pub/sgb = ====================================================================== * Bibliographies ---------------- Nelson Beebe has collected an extensive bibliography treating literate programming. His work is available for anonymous ftp from ftp.math.utah.edu [128.110.198.2] in directory /pub/tex/bib as files: litprog.bib litprog.ltx litprog.twx. Although I have not verified this, LPA is an alternate source for these files. Note that they are updated frequently (Nelson says several times each week), so be sure to get a fresh copy before extensive use. Joachim Schrod indicates that these files may be updated daily and can be retrieved via anonymous ftp at LPA/documentation. = ====================================================================== * How to anonymously ftp ------------------------ Pretty much everything mentioned here is available by anonymous FTP. FAQ lists cross-posted to news.answers and rec.answers can be gotten from rtfm.mit.edu [18.181.0.24], under /pub/usenet/news.answers or under /pub/usenet/more.specific.group.name "anonymous FTP" is just a way for files to be stored where anyone can retrieve them over the Net. For example, to retrieve the latest version of the literate programming FAQ, do the following: > ftp rtfm.mit.edu /* connect to the site; message follows */ > anonymous /* type this when it asks for your name */ > /* type your address as the password */ > cd /pub/usenet /* go to the directory you want to be */ > cd comp.programming.literate /* one level down (no slash). */ > dir /* look at what's there */ > get literate-progamming-faq /* get the file; case-sensitive */ > quit /* stop this mysterious thing */ If your FTP program complains that it doesn't know where the site you want to use is, type the numerical address instead of the sitename: > ftp 18.181.0.24 /* connect with numerical address */ If you don't have ftp access, send e-mail to mail-server@rtfm.mit.edu with the single word "help" in the body of the message. Getting binary files (executables, or any compressed files) is only slightly more difficult. You need to set binary mode inside FTP before you transfer the file. > binary /* set binary transfer mode */ > ascii /* set back to text transfer mode */ FAQs and spoiler lists are generally ascii files; everything else is generally binary files. Some common extensions on binary files in archive sites are: .Z Compressed; extract with uncompress .tar.Z Compressed 'tape archive'; uncompress then untar or tar -xvf .gz or .z Gnu gzip; use gunzip (available from prep.gnu.ai.mit.edu) .sit (Mac) StufIt archive .zip Extract with Zip or Unzip .zoo Yet another archive/compress program .lhe (Amiga) ? .lzh Lha archive program. .arj (PC) Arj archive program. .exe (PC) Sometimes self-extracting archives-just execute them. .uue or .UUE Transfer as text file; use uudecode to convert to binary .hqx (Mac) BinHex format; transfer in text mode Generic help can be found in the FAQs of comp.binaries. for how to transfer, extract, and virus-check binary files. (At rtfm.mit.edu) If you can't FTP from your site, use one of the following ftp-by-mail servers: ftpmail@decwrl.dec.com ftpmail@src.doc.ic.ac.uk ftpmail@cs.uow.edu.au ftpmail@grasp.insa-lyon.fr For complete instructions, send a message reading "help" to the server. If you don't know exactly what you're looking for, or exactly where it is, there are programs and servers that can help you. For more info, send e-mail to mail-server@rtfm.mit.with with the body of the message reading send usenet/news.answers/finding-sources Thanks to Aliza R. Panitz (the "buglady") for this text. I copied it verbatim from her post on faq-maintainers with only minor modifications. = ====================================================================== * Acknowledgements ------------------ This document would not have happened without the help of many people. Among them are Marcus Speh, George Greenwade, Rob Beezer, Joachim Schrod, Piet van Oostrum, and Ross N. Williams. A special thanks to Aliza R. Panitz for the text describing how to execute an anonymous ftp for files of interest. Any omissions from these acknowledgements should be considered an act of stupidity on my part. Of course, the authors of literate programming tools mentioned above all play a vital role in the vitality of literate programming. Furthermore, participants in the comp.programming.literate newsgroup (and associated mailing list) all contributed in various fashions. Thank all of you. = ====================================================================== * End notes ----------- This document will continue to evolve. I'm planning on adding entries for additional literate programming tools and will expand the sections on examples as more examples become available. Tools I will include are WEB (the original pascal version) for starters. Others will be added as I find and document them. Omission of a particular tool should not be considered a snub in any sense--simply an error or oversight on my part. = End of File ========================================================== ================================================================================ Archive-Date: Tue, 13 Sep 1994 16:11:50 CDT Sender: owner-litprog@SHSU.edu From: bart@cs.tamu.edu (Bart Childs) Reply-To: LitProg@SHSU.edu, bart@CS.TAMU.EDU Subject: Re: FWEB progress, more questions Date: 13 Sep 1994 20:44:42 GMT Message-ID: <3552vq$2dg@news.tamu.edu> Keywords: FORMAT statements and other uglies To: LitProg@SHSU.EDU Allan Adler's comments show that he has realized that FWEB is based on the concepts that UGLY OLD UPPERCASE should be avoided. It does make it a bit more readable. I try to avoid the FORMAT statements as long as it is reasonable. I use constructs like: read(*,'(8i5)',IOSTAT=io_flag) variable list The inclusion of the IOSTAT (which needs to be in UPPER in FWEB) makes it a long line which often looks ugly. I have thought of defining macros that would do some of these functions and allow it to be reasonable concise. I hope to have access to an F90 compiler shortly and start trying to avoid the current columnar limitations which make the above problems worse. Cheers Bart Childs ================================================================================ Archive-Date: Wed, 14 Sep 1994 20:09:03 CDT Sender: owner-litprog@SHSU.edu From: "deepak r. kenchammana-hosekote" Reply-To: LitProg@SHSU.edu, kencham@CS.UMN.EDU Date: Wed, 14 Sep 1994 19:14:51 -0500 Message-ID: <199409150014.TAA14149@ulysses.cs.umn.edu> To: LitProg@SHSU.edu Subject: Indenting with web-mode.el Hi, I started using web-mode.el recently and I really find it very very useful! As I am getting comfortable with it I am [as is always the case] beginning to feel a serious shortcoming in its handling of indentations. One feels this when writing the code segment of a module. Indentations need to be manually inserted. The situation is similar in the TeX portion of a module but the feature is not that badly missed! Does anyone have any ideas how to set this problem right? Simply switching to a c-mode or c++-mode doesn't work since the label (in case of a named module) of the module throws the whole indentation off. Thanks! \deepak \PS I agree that any piece of code that requires non-trivial indentation can surely to be broken up further for readability but sometimes I find it better to leave the code in one place to prevent a distracting "hyperlink"-jump to a named module! ================================================================================ Archive-Date: Thu, 15 Sep 1994 13:51:34 CDT Sender: owner-litprog@SHSU.edu Subject: FWEB FAQ Message-ID: <1994Sep14.143013.16449@Princeton.EDU> From: coker@cherrypit.Princeton.EDU (David A. Coker) Date: Wed, 14 Sep 1994 14:30:13 GMT Reply-To: LitProg@SHSU.edu, coker@cherrypit.Princeton.EDU (David A. Coker) To: LitProg@SHSU.EDU This is text file `fweb-faq', produced by GNU Makeinfo-1.49 from the Texinfo file `fweb-faq.texi'. >> To see the questions, display lines matching the regexp "^\[[0-9]" << >> To see the index, display lines matching the regexp "^\* " << >> To see a related question, follow the reference after "*note...:" << ///////////////////////////////////////////////////////////////////// // FWEB in Questions and Answers (04/93) // ///////////////////////////////////////////////////////////////////// [last updated 1 July 1994] [Send comments to: David A. Coker, coker@cherrypit.princeton.edu] This article contains frequently asked questions and their answers concerning the FWEB system of "Literate Programming" from the "LitProg" mailing list, until July 1994. I have recently taken over this FAQ from Marcus Speh. As I have am new to maintaining a FAQ, any suggestions would be helpful in this regard. I would especially like to thank Marcus Speh for providing me with the texinfo source and makefiles for this FAQ. Most of the answers are taken from the postings, with little moderation from my side. The original postings are archived at `niord.shsu.edu' in directory `[FILESERV.LITPROG]'. Search for `Archive-Date' in file `fweb-faq.texi' to find the location therein. The line [Archive-Date: Mon, 20 Jul 1992 13:32:00 CDT] points at a posting in the archive file `LITPROG.1992-07'. Comments, corrections and suggestions from several people were used to improve single questions and answers (*note Acknowledgements::.). Most notably, John Krommes, FWEB's designer, provided a wealth of useful comments. I have dubbed him "JAK" in some places. Inside quotes, my own comments are marked "[... -MS]". Sections of the FWEB User's Manual are referred to by their section numbers, as in "[M-10.2]" (*note What is the difference between the FAQ and the manual?: Question 5.). Introduction and Editorial ************************** [1] What is FWEB? ================= For a thorough discussion of the WEB system, I refer to the extensive literature, collected in Nelson Beebe's bibliography (at `ftp.math.utah.edu' in directory `pub/tex/bib'). For pointers, see the "General FAQ" by Dave Thompson. The WEB system. --------------- In D.E. Knuth's [author of the original WEB, coauthor of CWEB] own words, [M-2.3] "The philosophy behind WEB is that an experienced system programmer, who wants to provide the best possible documentation of his or her software products, needs two things simultaneously: a language like TeX for formatting, and a language like C for programming. Neither type of language can provide the best documentation by itself; but when both are appropriately combined, we obtain a system that is much more useful than either language separately. The structure of a software program may be thought of as a "web" that is made up of many interconnected pieces. To document such a program we want to explain each individual part of the web and how it relates to its neighbours. The typographic tools provided by TeX (1) give us an opportunity to explain the local structure of each part by making that structure visible, and the programming tools provided by languages such as C or Fortran make it possible for us to specify the algorithms formally and unambigously. By combining the two, we can develop a style of programming that maximizes our ability to perceive the structure of a complex piece of software, and at the same time the documented programs can be mechanically translated into a working software system that matches the documentation." FWEB - a multilingual WEB variant. ---------------------------------- FWEB which is being supported and upgraded by John Krommes is a substantial extension of CWEB, FWEB supports C, C++, Fortran, Fortran90, Ratfor, and TeX i.e. writing TeX macros (style files). It runs on most platforms: VMS, PC, UNIX, and pretty much anything that the GNU C compiler (GCC) is supported for. [Archive-Date: Wed, 22 Jul 1992 18:20:45 CDT] JAK [M-1]: "The principal design contributions to this version of WEB are 1. the concept of a current language, so that one can process code written in multiple languages in the same WEB run; 2. new production rules for Fortran, Ratfor, and TeX (and some modifications of Levy's (2) rules for C; 3. a C-like built-in macro preprocessor; 4. the ability to directly translate Ratfor into Fortran. In addition, many miscellaneous details have been changed and a variety of convenience features has been added." ---------- Footnotes ---------- (1) [which itself is written in Knuth's original Pascal WEB -MS] (2) [Levy and Knuth are the authors of the C variant of WEB -MS] [2] How can I subscribe to LitProg? =================================== If you are not yet subscribed to LitProg, but you are interested, send a MAIL message to `LISTSERV@SHSU.BITNET, or listserv@shsu.edu, or LitProg-Request@shsu.edu' stating in the text of the MAIL: `SUBSCRIBE LITPROG your name in quotes'. The list itself is unmoderated: messages sent to `litprog@shsu.edu' are automatically distributed to all subscribers. [3] How can I get the FWEB FAQ? =============================== You may obtain the latest version of this FAQ via anonymous FTP from - `niord.shsu.edu' [192.92.115.8] in directory `[FILESERV.FWEB-FAQ]', - `ftp.pppl.gov' [192.55.106.129] in directory `/pub/fweb/faq', - `verdi.imada.ou.dk' [129.142.128.14] in directory `/pub/faq/fweb', and `ftp.uni-stuttgart.de' [130.83.55.75] in directory `pub/soft/tex/web/fweb/FAQ'. To retrieve the plain text file via e-mail, include SENDME FAQ.FWEB in the body of a mail message to FILESERV@SHSU.BITNET (fileserv@shsu.edu). Send the command SENDME FILELIST in a mail message to `FILESERV' to get valid information on the names of the downloaded files if you'd like to have another version of the fweb-faq (*note Which versions of the FAQ are available?: Question 4.). NOTE: do *not* include the message `SENDME FWEB' unless you want the full FWEB distribution! [4] Which versions of the FAQ are available? ============================================ Besides the text file `fweb-faq', the FAQ is available as a Texinfo, a PostScript, an Info or a DVI file. All these can be generated from the Texinfo source file `fweb-faq.texi'. The preprocessed DVI and PostScript files are not included anymore. See the simple makefile which accompanies the fweb-faq distribution for detailed information on how to process the Texinfo source. Short instructions are given in the file `README.fweb-faq'. If you do not know anything about Texinfo, don't worry: With the `texinfo.tex' macro package, the principal source file `fweb-faq.texi' can be TeXed (1) like any ordinary TeX file at the expense of not getting an index - try it! If you would like to start with Texinfo, retrieve its latest version from `prep.ai.mit.edu' in directory `pub/gnu' (*note How can I contribute?: Question 6.). If you like the GNU project and what it produces, please order a tape if you can, since tape orders are the FSF's ("Free Software Foundation" main source of funds to pay programmers and tech writers. For ordering info, send mail to `gnu@prep.ai.mit.edu', or contact the FSF: Free Software Foundation 675 Mass Ave Cambridge, MA 02139 1-617-876-3296 As of spring 1994, there is a WWW Home Page for the FWEB FAQ . This may not be up to date at the of the posting of this FAQ to the net, but will be updated shortly. `http://info.desy.de/user/projects/LitProg/fweb-faq/top.html' ---------- Footnotes ---------- (1) If you do not have TeX, you may GNU's `texi2roff' for formatting. [5] What is the difference between the FAQ and the manual? ========================================================== Most of the stuff in FAQs *is* in the manual, but people either don't read the manual, or it is too hidden to be found (the FWEB User's Manual currently has more than 180 pages). Thus the FAQ provides, if you will, an index to the manual for those questions that come up regularly. Where possible, sections of the User's Manual for the last release (FWEB version 1.3) are referred to by their section numbers in square brackets, as in "[M-10.2]". Note that there's also a user/syntax reference guide which can be obtained independently of the full manual. If you are a seasoned WEB user, the reference guide should be adequate. [6] How can I contribute? ========================= If you think that structure or content of this part of the FAQ can be improved, or if you think you have discovered an error, either write to me or post your comment to LitProg (with `fweb-faq (version)' somewhere in the `Subject' line). If you find your name and email adress anywhere on these pages, I'd be grateful if you check whether I got them right and inform me otherwise. The same for errors in ftp site addresses and `Archive-Date' (look into the `Makefile' to learn how to make these visible). "The FAQ" for Literate Programming will probably not exist before there is a unified tool rather than a family of different environments. On LitProg, all these environments are subject to discussion, and a family of FAQ lists is planned, together with a master FAQ list for general questions. This general FAQ will be maintained by David B. Thompson . If you are interested in participating in one of the FAQ lists for LitProg, either contact George D. Greenwade (E-mail: `bed_gdg@shsu.edu' [Internet], `bed_gdg@shsu' [Bitnet], `shsu::bed_gdg' [DECnet]), who maintains LitProg as well as the `FILESERV' repository at Sam Houston State University, or simply announce your wish on the LitProg mailing list. If you want to write a FAQ yourself, get "FAQ writer's FAQ" (by Nathan Torkington and Ian Kluft) which originates from the faq-maintainers mailing list. It can also be obtained via email by including `SENDME FAQ.WRITING' in the body of a mail message to `FILESERV', or retrieved from `niord.shsu.edu' in `[FILESERV.FAQ]FAQ.WRITING'. If you want to write your FAQ list in Texinfo, use `fweb-faq.texi' as a template for the principal source file (*note Which versions of the FAQ are available?: Question 4.). [7] What else should be included in the FAQ? ============================================ * Give more details on the form of the FAQ file's Texinfo source? * Add thoughts on OOP using the FWEB system (*note Which WEB shall I use for C++: Question 16.)? Please send me your opinion on these items and suggest more things which should be done! [0] Acknowledgements ==================== Thanks to all those whose postings in LitProg I have used and who have sent me corrections, especially Bart Childs, Johannes Muller, David Thompson and Don Petcher for this number of the FAQ, and to Robert Chassell [FSF, GNU Texinfo and Elisp support] for help with some Texinfo bugs. Thanks to the sysadmins who put up the files on FTP sites, especially Thorbjoern Ravn Andersen (ftp.imada.ou.dk) and Joachim Schrod (ftp.th-darmstadt.de). Special thanks to George D. Greenwade for maintaining the list and the file archives at Sam Houston University, and to John Krommes for checking this FAQ list for his child. Personally, I feel indebted to Thorsten Ohl for having introduced me to FWEB in the first place, and having taught me many more things related to computing. FWEB sources/Manual/Installation ******************************** [8] Where can I get FWEB? ========================= You can get FWEB (version 1.30a and version 1.4) via anonymous FTP (*note Information on FTP::.) either from `ftp.pppl.gov', in directory `pub/fweb/': /anonymous@ftp.pppl.gov:/pub/fweb/: -rw-r--r-- 1 4145 589 23685 Oct 30 1993 READ_ME -rw-r--r-- 1 4145 589 9182 Dec 3 1993 READ_ME-1.40 drwxr-xr-x 3 4145 589 512 Jun 25 1993 executables/ drwxr-xr-x 2 4145 daemon 512 May 19 1993 faq/ -rw-r--r-- 1 4145 589 1561989 Jun 17 1993 fweb-1.30a.tar.Z -rw-r--r-- 1 4145 589 1647261 Oct 30 1993 fweb-1.40.tar.Z Or from `niord.shsu.edu', in directory `[FILESERV.FWEB]': /anonymous@niord.shsu.edu:/ANON_DEV:/FILESERV/FWEB: FWEB-1_30.TAR_Z;1 2934 31-MAR-1993 16:45 FWEB-1_30.ZIP;2 2292 31-MAR-1993 16:48 FWEB-1_30.ZIP-LST;1 35 31-MAR-1993 16:52 FWEB.FAQ;2 103 11-JAN-1993 12:16 ... [Archive-Date: Tue, 21 Jul 1992 13:41:38 CDT, Archive-Date: Wed, 22 Jul 1992 17:15:02 CDT, Archive-Date: Tue, 21 Jul 1992 12:00:39 CDT] [9] What is the latest version of FWEB? ======================================= The latest version of FWEB is 1.30a - in October 1993, version 1.40-beta came out. The present version of 1.30a is considered to be stable. The following quote from READ_ME-1.40 illustrates the present status of 1.40 "It contains some bug fixes and various new features, described below. However, because this version initiates some major upgrades and has been inadequately debugged, it is NOT RECOMMENDED for new users or for large programming projects already dependent on a stable FWEB environment. It is my hope that some experts will play with this version and report their difficulties, so that a stable version will evolve." JAK: "However, given the fragmented state of my time, in some sense they're all beta." The latest version can be retrieved via anonymous FTP (*note Information on FTP::.) as described in *Note Where can I get FWEB?: Question 8. [10] Where can I get FWEB for the PC? ===================================== The official FWEB PC executables are generated as part of each FWEB release. Retrieve them via anonymous FTP (*note Information on FTP::.) from the FWEB distribution site `ftp.pppl.gov' (*note Where can I get FWEB?: Question 8.) in the directory `pub/fweb/executables/fweb-1.30' ... -rw-r--r-x 1 4145 589 330978 Jun 25 1993 ftangle.exe* -rw-r--r-x 1 4145 589 294896 Jun 25 1993 ftangle0.exe* -rw-r--r-- 1 4145 589 542928 Aug 30 1993 ftangle2.exe -rw-r--r-x 1 4145 589 302734 Jun 25 1993 fweave.exe* -rw-r--r-- 1 4145 589 462165 Aug 30 1993 fweave2.exe ... `ftangle0.exe' is ftangle without the Ratfor preprocessor (*note Why is FWEB so huge?: Question 26.). Hans-Hermann Bode announced his precompiled files for the PC. They can be retrieved from `anonymous@niord.shsu.edu:[FILESERV.PC-WEB]': 00INDEX.;1 2 23-JUL-1992 16:26:54.85 ... FWEBEXE.README;1 6 11-JUN-1992 00:15 FWEBEXE.READ_ME;1 42 9-JUN-1992 12:13 FWEBEXE.ZIP;2 1525 23-JUL-1992 16:06 FWEBEXE.ZIP-LST;1 2 23-JUL-1992 16:22 ... or in Europe from `dione.rz.uni-osnabrueck.de' (in directory: `pub/msdos/tex/web'), and from `ftp.uni-stuttgart' (in directory `soft/tex/web/cweb'). [Archive-Date: Thu, 23 Jul 1992 16:35:27 CDT] [11] Is FWEB small enough to compile on a PC? ============================================= Yes. It is known to compile with MicroSoft C 6.00 and Turbo C. [Archive-Date: Tue, 21 Jul 1992 11:57:17 CDT] JAK: "As a remark, it took some considerable pain to make this work. The larger sources, such as `ftangle.web', had to be split into as many as 3 parts (handled by WEB macros and module names). The make file compiles each of those parts separately, then combines them at link stage. Before this was done, compilers tended to bomb with messages such as `Out of heap space'." On LitProg, Tero Laakkonen reported that FWEB also compiles under linux-096c with gcc-2.2.2 on a 80386. [Archive-Date: Fri, 02 Oct 1992 01:16:46 CDT] In general, John Krommes offers support for porting FWEB to new systems - contact . [12] Has anyone installed FWEB on an HP machine? ================================================ Either get GCC (the GNU C Compiler), or use (if you have it) the unbundled Hewlett-Packard ANSI C Compiler, which is invoked with `cc -Aa -D _HPUX_SOURCE' (as `cc(1)' explains in detail). Then `make' should proceed without any problems. [Archive-Date: Thu, 06 Aug 1992 08:14:09 CDT] [0] Information on FTP ====================== FTP is a a way of copying files between networked computers. If you need help in using or getting started with FTP, send e-mail to mail-server@rtfm.mit.edu with send usenet/news.answers/ftp-list/faq in the body, instead of asking me. Those without FTP access should send e-mail to mail-server@rtfm.mit.edu with send usenet/news.answers/finding-sources in the body, instead of asking me. To learn virtually everything about FTP, Telnet etc., personally I found Brendan P. Kehoe's "ZEN--A Beginner's Guide to the Internet" very helpful. The first edition of this guide is freely available as a Texinfo, Postscript or DVI file from `ftp.cs.widener.edu' in directory `pub/zen/'. An updated edition is also published as a book by Prentice Hall (1992). Common Things People Want To Know ********************************* [13] Can I use LaTeX with FWEB? =============================== In principle, you may use any package of TeX macros you like. However, an arbitrary macro package may contain conflicts with macros used in `fwebmac.sty'. Such conflicts are supposed to be eliminated for LaTeX). As for LaTeX which is probably the package most widely used, you have to do two things at minimum [M-20.7.22]: 1. Use the command-line option `-PL' (or place them into your initialization file `~/.fweb' (*note Key differences for FWEB on different systems?: Question 25.). 2. Process fweave's output with `latex' instead of `tex'. In most cases, to use LaTeX with FWEB it suffices to just say `latex test' instead of `tex test'. (I.e., an attempt is made to hide internally whatever differences there are.) It never hurts, and sometimes helps, to use the command-line option `-PL' (select post-processor LaTeX). To print a `|' in a `verbatim' environment, use `@|', like: `\begin{verbatim} ... @| ... \end{verbatim}'. Since FWEB overrides the `\output' routine of LaTeX, some clever page layout facilities will not work - e.g. there are no floating bodies: while the `table' environment is lost, the `tabular' environment still works. See [M-19.22] for details. Bart Childs reports that the use of AMSTeX causes some problems but that it has been done. Difficulties with using LaTeX should be reported directly to Krommes. For bringing in `lex' and `yacc' scripts and the problem of using LaTeX's `\footnote', *Note Can I use lex and yacc scripts with FWEB?: Question 14. [14] Can I use lex and yacc scripts with FWEB? ============================================== Archive-Date: Tue, 10 Nov 1992 19:22:21 CST Lewis Perin reported that he has succeeded bringing in `lex' and `yacc' UNIX scripts in for FWEB using LaTeX's `verbatim' environment. [15] Can I use the footnote environment from LaTeX? =================================================== Lewis Perin reports that the superscripts of `\footnotes' appear in the main text while the actual footnote is nowhere to be seen. In his reply, Zdenek Wagner refers to a style file `ftn.sty' which he wrote to correct this (originally for use with CWEB, it seems). `ftn.sty' can be retrieved from `niord.shsu.edu' [192.92.115.8] in directory `[FILESERV.STY]'. [16] Which WEB shall I use for C++ ? ==================================== As CWEB's coauthor Silvio Levy said, starting from version 2.9 (beta), CWEB will understand C++ syntax as well. Archive-Date: Tue, 08 Dec 1992 03:11:13 CST Successful compilation on the PC with Borland-C++ was reported on LitProg. Archive-Date: Thu, 17 Dec 1992 10:49:44 CST In the opinion of many people, FWEB is the best CWEB available. It also supports C, C++, F90, Ratfor, Ratfor-90, and writing TeX macros wherein (f)tangle produces `.sty' files. [Archive-Date: Mon, 21 Sep 1992 09:12:56 CDT] As for the more general question of Object-Oriented Literate Programming, a very interesting discussion was started by Paul Lyon in December. Archive-Date: Tue, 22 Dec 1992 14:56:59 CST [17] Does FWEB support Makefiles? ================================= Not yet. This is planned, though [M-10.2]. [Archive-Date: Tue, 21 Jul 1992 11:57:17 CDT] [18] FWEB with the GNU Emacs editor? ==================================== If you are developing your FWEB programs using the GNU Emacs editor, there is `web-mode.el' by Mark Motl ; the corresponding GNU Emacs "mode" can deal with WEB, CWEB and FWEB. It is capable of many things, including jumping to sections and modules, inserting (and previewing) index entries, hiding and exibiting the body of a `.web' file (showing the tree), inserting, quoting, and consistently renaming modules etc. It supports change files and journal files. It is especially useful when dealing with large `.web' files not to have to deal with "monolithic" FWEB files. For more information, you may obtain a 30pp. User's Manual and the source files from the author, from Bart Childs . [Archive-Date: Fri, 04 Sep 1992 09:42:42 CDT] The current version of `web-mode' (v 1.61, as of Dec 28, 1992) is faster, more robust, and the documentation in the manual is improved and more accurate now. You may also obtain this version as a 220 KByte shell archive `web-mode-1.61.sh ' via anonymous FTP from `verdi.imada.ou.dk' [129.142.128.14] in directory `pub/emacs/'. [19] How do I turn off double sided pagination in FWEB? ======================================================= In FWEB, the command `\identicalpageheadstrue' [to be put in the so called "limbo" part of your FWEB file] makes all page headers identical, but it puts the page numbers in the upper LEFT corner and the section numbers in the upper RIGHT corner. As Don Petcher pointed out, to do it the other way around you can either change the macro `\normaloutput' in `fwebmac.sty' as indicated: \def\normaloutput#1#2#3{\shipout\vbox{ \ifodd\pageno\hoffset=\pageshift\fi \vbox to\fullpageheight { \iftitle\global\titlefalse \else\hbox to\pagewidth {\vbox to10pt{}% \ifidenticalpageheads#3\else % THIS WAS ORIGINALLY #2 <--------- \ifodd\pageno #3% Makes page numbers alternate left \& right. \else#2\fi \fi }% \fi \vfill#1 }}% Parameter |#1| is the page itself \global\advance\pageno by1} or you can include the above version in your TeX file as a redefinition of the macro. [Archive-Date: Wed, 29 Jul 1992 18:08:09 CDT] [20] Can I define (and format) new reserved words? ================================================== Assume you want to declare `far' to indicate a function pointer: void far (*reset)(); In order for fweave to treat `far' like a reserved word in C (or any of the language supported by FWEB), say @f far int somewhere in your source. Weave does not by default recognize `|far|' as a reserved word (this property extends to cweave as well). [Archive-Date: Mon, 10 Aug 1992 07:14:44 CDT] The formatting with `@f' is *language-specific*; it only applies to identifiers used in the language in force at the point the format statement is encountered. This feature allows a WEB programmer to invent new reserved words and/or to unreserve some reserved identifiers [M-11.12]. [21] Symbolic debugging of FWEB files? ====================================== FWEB inserts sync lines `#line 137 foo.web' into the code, so any compiler/debugger worth its money should respect them. (Including those running under MS-DOS.) Extra FWEB comments in the tangled output can be suppressed by a simple command line switch. See [M-14.2] for a list of command line options. NB: well thought out code needs less time debugging - comments like "since I've started using anyWEB, my debugger has just been collecting dust ..." were reported from many people on the list. [Archive-Date: Tue, 21 Jul 1992 11:57:17 CDT] [22] Inserting meta-comments in FWEB files? =========================================== Johannes Muller reported strange output from fweave when defining two macros "debug" and "gubed" to enclose optional code for debugging purposes. As his global language, he chose C++. @m debug @( @m gubed @) @f debug do @f gubed while This worked fine for him using WEB with Pascal. `@(' and `@)' are control codes which mark the begin and end of a "meta-comment", i.e. commented out code that will appear in the output file [M-11.38]. Though I wasn't able to reproduce his errors, it should be remarked that the preferred way is to use the WEB preprocessor construction `@#if(0) ... @#endif' instead. JAK: "That Muller's example doesn't work probably points out a problem with the macro preprocessor". For debugging purposes, one can bracket pieces of code by `@#ifdef DEBUG ... @#endif', switching on DEBUG by the commandline flag `-mDEBUG' for ftangle [M-7.5]. Archive-Date: Thu, 01 Oct 1992 07:49:37 CDT [23] Automatic referencing in documentation sections? ===================================================== To produce the woven output For info on porting, see section 5 As Steve Avery reported, you can cheat and, somewhere after you start the module, just throw in something like `\let\refporting=\modno' and then reference it by `see section~\refporting'. [Archive-Date: Mon, 24 Aug 1992 22:55:43 CDT] In FWEB, `\modno' is set to the number of the module being typeset. Another way to refer to a section is described in [M-20.7.18]: @ Porting. \modlabel{PORTING} ... more ... @ Another section. \modlabel{ANOTHER} For info on Porting, see \WEBsection{PORTING}. `section' is inserted automagically. In the same fashion, the label `ANOTHER' allows the user to refer to that section number. [Archive-Date: Tue, 25 Aug 1992 04:40:29 CDT] In LaTeX, forward referencing works, in Plain TeX it doesn't. Unless you're using LaTeX, the latter recipe requires that `\modlabel{ANOTHER}' is defined before referring to it. If you want to say "module" instead of "section", use `\WEBmodule' (or equivalently `\module') instead of `\WEBsection'. [24] How do I make a title appear on the contents page? ======================================================= [Archive-Date: Mon, 28 Sep 1992 12:00:59 CDT] Bart Childs contributed three short files to solve that problem. These listings will disappear here once the full `web-mode.el' distribution (*note FWEB with the GNU Emacs editor?: Question 18.) is available at `FILESERV'. * `limbo.material' may be used as the initial skeleton for all WEB files. There is a line containing `\def\title' which should be modified to include the `title'. Also note that the first few lines are to encourage a little more documentation about the source. A few lines further into this is a similar convenience to add an abstract that will appear on the cover page too. * `limbo.sty' is a convenient place to record macros that are commonly used in WEB files. * `time.tex', required by `limbo.material'. Note that the `limbo' style-file parameter can be used to automatically insert common material into the limbo section of an FWEB file. `limbo.material' ---------------- ----------------------- limbo.material ------------------ % % ??????.web, ?fweb version 1.23 % Author % Address % e-mail and phone % % LIMBO MATERIAL % \input limbo.sty \def\title{{\tt }} %% Comment the previous and uncomment this if you don't use web-mode %%\def\title{{\tt ?? I need a Title ??}} %%% begin Bottom of Contents Page macro \def\botofcontents{\vskip 0pt plus 1fil minus 1.5in {\bigskip\parskip6pt plus2pt \parindent20pt %% begin abstract \vskip0.5in \noindent{\bf Abstract. }\it }%% end abstract %% BC often puts this in as a comment about pre-release versions ... %\vskip0.5in %{\vfill\it %% comments on anything else ???? % %\vfil}% end of comments on anything else \vfil \rightline{My Name}% You can personalize your output here, for example. \rightline{\today }% today.tex should be preloaded, input it if not \rightline{\miltime }% time.tex should be preloaded, input it if not }% end of botofcontents % END OF LIMBO MATERIAL % % % BEGINNING OF WEB % %% Delete the next line after appropriate substitution. %% In fweb's you want an @c, @c++, @n, @n9, or @Lx at this point @* First Module. @* Index. `limbo.sty' ----------- ------------------------ limbo.sty ------------------------- % \input today %%%%% How Ridiculous, preload it!!!!!!!!! \font\ninett=cmtt9 \font\ninerm=cmr9 \let\mc=\ninerm % medium caps for names like UNIX \font\Csc=cmcsc10 % Computer Modern Computer Small Caps \def\PASCAL{{\rm Pascal}}% Does very little \def\WEB{{\ninett WEB}}% use like \WEB{} to make space significant \let\web=\WEB \def\FWEB{{\ninett FWEB}} \let\fweb=\FWEB \def\Fortran{{\Csc Fortran}} \def\Cee{{\bf C}} \def\Unix{{\mc UNIX}} \let\unix=\Unix \def\BSl{{\rm\char'134}} \def\<{$\langle\,$} \def\>{$\,\rangle$} % %%% begin Top of Contents Page macro % \def\topofcontents{\hsize 6in \vglue -30pt plus 1fil minus 1.5in \centerline{\title} \vskip 15pt \centerline{\today} \bigskip \vfill \def\?##1]{\hbox to 1in{\hfil##1.\ }}}% end of topofcontents `time.tex' ---------- -------------------------- time.tex ---------------------- \newcount\milhours\newcount\minutes\newcount\hours \def\thetime{\milhours=\time \divide\milhours by 60 \minutes=\milhours \multiply \minutes by -60 \advance\minutes by \time \hours=\time \divide\hours by 60 \ifnum \hours>12 \advance \hours by -12 \fi \the\hours:\ifnum \minutes > 9 \the\minutes \else 0\the\minutes \fi} \def\miltime{\milhours=\time \divide\milhours by 60 \minutes=\milhours \multiply \minutes by -60 \advance\minutes by \time \the\milhours:\ifnum\minutes>9 \the\minutes\else 0\the\minutes \fi} [25] Key differences for FWEB on different systems? =================================================== The machine dependent files, especially `custom.h' and `defaults.mk' necessary for bootstrapping, can be found in the current distribution of FWEB (v1.30a) in subdirectory `/boot/'. See the `READ_ME.*' files there for details. To run FWEB, commonly used options can be put into an initialization file [M-14.3] (default name `.fweb'). The subdir's of `/boot/' contain sample `.fweb' files with necessary commandline options for the system on which FWEB was built. [26] Why is FWEB so huge? ========================= Most of FWEB's size can be attributed to the need of supporting vastly different languages. The input routines for a free form language are not usable for Fortran and vice versa. Furthermore, FWEB has a Ratfor processor built in (which is a *big* plus, though it is not strictly related to literate programming). JAK: "Two other reasons for the large size are 1. the built-in macro preprocessor, an extended version of that for ANSI C; 2. the style-file mechanism. On the positive side, FWEB does most of its memory allocations dynamically, so one can cut down the size of various tables if necessary. Type `ftangle -Y' to find out about the current allocations; use the `-y' option to change them. The statistics option `-s' is also helpful to find out how much a job actually uses." (See [M-14.2] for a complete list of options.) If you do not want the Ratfor preprocessor, you can make a smaller `ftangle' with the option `LOAD\_RATFOR=0' (see the file `web/ratfor0.web' of the FWEB distribution, and [5]). [Archive-Date: Wed, 22 Jul 1992 20:49:49 CDT] [27] What is the difference between CWEB and FWEB? ================================================== See [M-20.8], Appendix H, for a short list comparing these two variants of the WEB system. [28] What is the difference between FWEB and Funnelweb? ======================================================= Archive-Date: Thu, 17 Dec 1992 10:20:27 CST The following was extracted from a text by Paul Lyon (and will eventually be merged with a FAQ for Funnelweb ...): "FWEB and Funnelweb are quite distinct. FWEB is built on top of the CWEB framework; although the parser in its weave processor can do more--all of ratfor, C, C++, and (though the support is not complete), TeX, it is still confined to those specific languages, and still imposes on the user the formatting conventions that please its author. To get something different you will have to hack the weave processor. (One could possibly get somewhere by modifying the TeX macro package that FWEB uses, but that might be the harder way to go, unless, of course, you are already a TeXpert) ... Funnelweb, on the other hand, does not try to parse the "source" code at all; it just takes the layout of the source as written, turns off the meaning of plain TeX special characters, sets typewriter font, and then invokes `\obeylines' and `\obeyspaces'; all this together causes TeX to print the source verbatim (the paragraph formatting is turned off, and TeX does not gobble spaces). The original WEB, CWEB, FWEB, and Spiderweb all parse and format the source, inserting TeX math codes for the operators, putting keywords in boldfont, adjusting the indentation, and so on. If you like the style chosen for the programme, it looks much nicer that way. Except for Spiderweb, which can be adapted to various languages by allowing a fair range of variation in specifying the pretty printing grammar using a large `awk' script to process the grammar spec and generate replacement code for significant chunks of weave, the pretty printing parser(s) in the other are hard coded. This has it uses besides making the typeset code more attractive; WEB, CWEB, FWEB, and Spiderweb all do an index of identifiers for the code that can differentiate, for the most part, between declaration and use of an identifier (they know enough about the grammar to do that, but not, of course, as much as a compiler or interpreter) ..." [Rest deleted: continues with more details on Funnelweb.] JAK: "Don't hack `fweave'! Many effects can be obtained by modifying `fwebmac.sty'. (If one knows enough to hack `fweave', he presumably knows enough to hack `fwebmac.sty' instead.) Note that the style-file mechanism does provide some degree of customization." Please report customizations that are really necessary to John Krommes. [29] Do FWEB files necessarily have to be monolithic? ===================================================== [Later, this item might move to the general FAQ by David B. Thompson] Archive-Date: Thu, 10 Dec 1992 16:16:50 CST There is no real support for multiple source files under FWEB. What some might like to see is a solution similar to the one presented by Cameron Smith in his `KR-CWEB-SAMPLE' distribution. He had to hack CWEB's `cwebmac.sty' to get a neat table of contents and a combined index distinguishing between entries from different source files [in fact, `KR-CWEB-SAMPLE' illustrates many more things, all more or less related to breaking up a literate C program into multiple source files]. For illustration, this is how the table of contents should look like (sample from Cameron's files): source module 1: main Sect Page introduction..................1.1 1.1 main pgm......................1.4 1.2 index.........................1.10 1.4 source module 2: getop introduction..................2.1 2.1 etc. while entries of the combined index are separated like Index for source module 1: main ... Index for source module 2: getop ... ... Sections in source module 1: main used in section 4... ... For FWEB, the inclusion of files using `@i' is a partial solution [M-11-13] to avoid having to put all the source code in one file. So far, nobody has presented a solution in Cameron's spirit. This feature is put on JAK's list of possible future enhancements. It is not in 1.30a, though. Note that CWEB has got an `@i' option, too (although FWEB's is somewhat more general). Yet another approach (not limited to FWEB) is the use of a "smart" editor like GNU Emacs, combined with a "smart" tool like `web-mode' which is effectively hiding many of the mischiefs of monolithic source files from the programmer. (*note FWEB with the GNU Emacs editor?: Question 18.). [30] How did tangle and weave get their names? ============================================== [Later, this item might move to the general FAQ by David B. Thompson] Archive-Date: Fri, 11 Dec 1992 00:59:43 CST In a reply, Cameron Smith wrote: "One of the problems with having a single preeminent writer in a language is that everyone always assumes that any enduring tidbit came from his pen ...". Fortunately, for the question "How did tangle and weave get their names", the circulus vitiosus of erroneously quoting William Shakespeare could be broken. The full answer: O, what a tangled web we weave When first we practise to deceive! -- Sir Walter Scott, _Marmion_, canto 6, verse xvii (1808) Cameron also suggested to include these lines by Richard Palais (1982): O, what a tangled WEB we weave When TeX we practise to conceive! Concerning FWEB, JAK reluctantly remarks [M-1]: "We shall call this new version FWEB when necessary ...". And more recently: "I now think the choice of `F' in FWEB was a mistake. `F' stands for Fortran, which motivated this project, but the ability of FWEB to handle multiple languages is one of its most distinctive and useful features. But it's probably too late now." [31] How am I supposed to abbreviate "Literate Programming"? ============================================================ [Later, this item might move to the general FAQ by David B. Thompson.] There wasn't a clean vote on the mailing list. Most people seemed to agree that one should not misuse common abbreviations like "LP", "LPR" etc. Also, the acronym should be pronounceable (thus eliminating "LitPgm" e.g.). The list's name "LitProg", proposed by Cameron Smith, seems to be accepted by a majority now. This is also the acronym adopted for the FAQ list. General Questions/Bugs/Problems ******************************* A brief account of bugs and bug fixes according to the different versions of FWEB, can be found in the `READ_ME' file at `ftp.pppl.gov' (*note Where can I get FWEB?: Question 8.). [32] What if I think I found a bug in FWEB? =========================================== John Krommes actively supports FWEB - he must be considered the ultimate source of wisdom. Once you think you've found a bug, put it out on the list. If nobody responds, cut your file down to the smallest subfile that still exhibits the problem you encountered. Then, you may contact John. To be sure, you should also check with the `READ_ME' file at `ftp.pppl.gov' (*note Where can I get FWEB?: Question 8.) for additional information concerning your bug. [33] Problem opening a new output file for tangled code? ======================================================== If you're using FWEB's `@o' option in order to open a new output file for tangled code (with local scope - i.e. for the duration of the current section only [M-11.21]), there is no problem in the current version and the output should be correct. [34] Maximum number of equal characters in different section names? =================================================================== [Archive-Date: Tue, 22 Sep 1992 08:34:17 CDT] FWEB may have problems distinguishing section names, if one of them is an exact subset of a longer name rather than a length. This is a bug in the mind of some, but it may as well be regarded a good "feature" as it should be a warning that poor choices of names has happened. JAK: "I think it's a feature, not a bug. And unless I screwed something up, the behavior derives from CWEB." [35] Must I leave leading blanks in my fortran FWEB file? ========================================================= Yes, you should. This is proven by the following example coming from Bart Childs. @n @* The world is not perfect. This wonderfully short problem blows outputs garbage from fweave and ftangle if you don't have the leading six columns blank. Be careful, because in many cases FWEB works fine without the requisite leading blanks. @a program final_exam implicit none integer i, j do i = 1, 7, 2 do j = 6, 1, -1 write(*,*) i, j end do end do end To see the effect on fweave, indent with 4 leading blank spaces instead of 6. JAK: "The input reader for Fortran-77 *follows the rules* of Fortran-77--i.e., statement labels in columns 1-5, continuation character in column 6, columns 6-72 for code. However, note that Ratfor uses free-form syntax, and Fortran-90 also has a free-form syntax mode, which FWEB attempts to support." Index ***** * Menu: * #line: Question 21. * -PL, select pre-processor LaTeX: Question 13. * -s, statistics option (ftangle): Question 26. * -y, change allocation (ftangle): Question 26. * -Y, current allocation option (ftangle): Question 26. * .fweb: Question 13. * /anonymous@ftp.pppl.gov/pub/fweb/: Question 8. * /anonymous@niord.shsu.edu/FILESERV/FWEB: Question 8. * @(: Question 22. * @): Question 22. * @f: Question 20. * @o: Question 33. * @|, in LaTeX verbatim: Question 13. * Allocation, how to change: Question 26. * Allocation, how to see: Question 26. * Alternative to the huge manual: Question 5. * AMSTeX: Question 13. * Anonymous FTP: Question 8. * Anonymous FTP: Question 3. * Anonymous FTP, how to use: Information on FTP. * anonymous@dione.rz.uni-osnabrueck.de: Question 10. * anonymous@ftp.cs.widener.edu:/pub/zen: Information on FTP. * anonymous@ftp.pppl.gov: Question 10. * anonymous@ftp.uni-stuttgart.de: Question 10. * anonymous@ftp.uni-stuttgart.de/pub/soft/tex/web/fweb: Question 3. * anonymous@niord.shsu.edu/FILESERV/FWEB-FAQ: Question 3. * anonymous@niord.shsu.edu/[FILESERV.PC-WEB]: Question 10. * anonymous@verdi.imada.ou.dk/pub/emacs: Question 18. * anonymous@verdi.imada.ou.dk/pub/faq/fweb: Question 3. * ANSI C: Question 12. * Appendix H: Question 27. * Archive-Date: Question 6. * Bart Childs : Question 18. * Bart Childs : Question 13. * Bart Childs : Question 24. * Bart Childs : Question 34. * Bart Childs : Acknowledgements. * Brendan P. Kehoe: Information on FTP. * Bugs: General Questions/Bugs/Problems. * Bugs: Question 32. * C: Question 1. * C++: Question 1. * C++: Question 16. * Cameron Smith : Question 29. * Cameron Smith : Question 30. * Change files: Question 18. * Command line options: Question 21. * Contents page: Question 24. * CWEB: Question 1. * CWEB: Question 16. * CWEB, @i option in: Question 29. * D.E. Knuth (DEK): Question 1. * David A. Coker : (null). * David Thompson : Acknowledgements. * David Thompson : Question 1. * Debugger: Question 21. * Debugging: Question 22. * DEK (Donald E. Knuth): Question 1. * Design contributions: Question 1. * Distinguishing section names: Question 34. * Don Petcher : Acknowledgements. * Don Petcher : Question 19. * Double sided pagination: Question 19. * FAQ for FWEB: Question 6. * FAQ Writer's Guide: Question 6. * FAQ, General: Question 6. * FILESERV: Question 6. * Floating bodies: Question 13. * Footnotes in LaTeX: Question 15. * Formatting: Question 1. * Fortran: Question 1. * Fortran-77: Question 35. * Fortran-90: Question 35. * Fortran90: Question 1. * Ftangle: Question 33. * ftangle, change allocation: Question 26. * ftangle, current allocation: Question 26. * ftangle, see statistics: Question 26. * ftn.sty: Question 15. * Function pointer: Question 20. * fweave: Question 28. * FWEB executables: Question 26. * FWEB for the PC: Question 10. * FWEB for the PC, precompiled files: Question 10. * FWEB reference guide: Question 5. * FWEB sources: FWEB sources/Manual/Installation. * FWEB User's Manual: (null). * FWEB User's Manual, quoting: Question 5. * FWEB, future enhancements: Question 29. * FWEB, latest version: Question 9. * FWEB, painful work with: Question 11. * FWEB, v1.40-beta: Question 9. * Fweb-faq: Question 6. * fweb-faq.dvi: Question 4. * fweb-faq.info: Question 4. * fweb-faq.ps: Question 4. * fweb-faq.texi: Question 4. * fwebmac.sty: Question 28. * fwebmac.sty: Question 19. * GCC: Question 12. * gcc-2.2.2: Question 11. * General Questions: General Questions/Bugs/Problems. * George D. Greenwade : Question 6. * GNU C compiler (GCC): Question 1. * GNU Emacs editor: Question 18. * GNU Emacs editor: Question 4. * Hans-Hermann Bode : Question 10. * Hewlett-Packard: Question 12. * How can I contribute?: Question 6. * How to see allocation: Question 26. * How to see allocation: Question 26. * How to see statistics: Question 26. * How to use anonymous FTP: Information on FTP. * HP: Question 12. * Ian Kluft : Question 6. * Information on FTP: Information on FTP. * Initialization file: Question 13. * Intel 80386: Question 11. * Introduction and Editorial: Introduction and Editorial. * JAK (John A. Krommes): Question 29. * JAK (John A. Krommes): (null). * JAK, quoted: Question 28. * JAK, quoted: Question 35. * JAK, quoted: Question 34. * JAK, quoted: Question 11. * JAK, quoted: Question 9. * JAK, quoted: Question 1. * JAK, quoted: Question 22. * Joachim Schrod : Acknowledgements. * Johannes Muller : Acknowledgements. * Johannes Muller : Question 22. * John A. Krommes (JAK): (null). * John Krommes : Question 1. * John Krommes : Acknowledgements. * John Krommes : Question 32. * John Krommes : Question 11. * Journal files: Question 18. * Language-specific: Question 20. * LaTeX: Question 13. * Lewis Perin : Question 14. * Lewis Perin : Question 15. * lex: Question 14. * limbo, style-file parameter: Question 24. * limbo.material: limbo.material. * limbo.material: Question 24. * limbo.sty: Question 24. * limbo.sty: limbo.sty. * Linux-096c: Question 11. * Literate Programming, abbreviation for: Question 31. * LitProg Mailing List: (null). * LitProg-Request@shsu.edu: Question 2. * Local scope: Question 33. * Macro preprocessor: Question 1. * Macro preprocessor: Question 22. * mail-server@rtfm.mit.edu: Question 8. * Make: Question 12. * Makefile: Question 17. * Makefile: Question 6. * Makefiles, FWEB support: Question 17. * Marcus Speh (MS): (null). * Mark Motl : Question 18. * Marmion, canto 6, verse xvii: Question 30. * Meta-comment: Question 22. * Microsoft C 6.00: Question 11. * MS (Marcus Speh): (null). * MS-DOS: Question 21. * Multilingual WEB variant: Question 1. * Nathan Torkington : Question 6. * Native speaker: Question 30. * Nelson H. F. Beebe : Question 1. * niord.shsu.edu/FILESERV/LITPROG: (null). * Object-Oriented Literate Programming: Question 16. * Paul Lyon : Question 28. * PC: Question 1. * prep.ai.mit.edu:/pub/gnu: Question 4. * Programming, Literate (!): Question 1. * Question for the General FAQ: Question 29. * Question for the General FAQ: Question 1. * Question for the General FAQ: Question 30. * Question for the General FAQ: Question 31. * Ratfor: Question 35. * Ratfor: Question 1. * Ratfor processor: Question 26. * README.fweb-faq: Question 4. * READ_ME, bugs and bug fixes: Question 32. * READ_ME, bugs and bug fixes: General Questions/Bugs/Problems. * Reference guide to syntax: Question 5. * Referencing: Question 23. * Reserved words: Question 20. * Richard Palais: Question 30. * Robert J. Chassell : Acknowledgements. * Sam Houston State University: Question 6. * Section names, referencing of: Question 23. * Silvio Levy : Question 1. * Silvio Levy : Question 16. * Sir Walter Scott : Question 30. * Statistics, how to see: Question 26. * Steve Avery : Question 23. * SUBSCRIBE LITPROG: Question 2. * support porting FWEB: Question 11. * Sync lines: Question 21. * table: Question 13. * tabular: Question 13. * Tangle: Question 16. * Tero Laakkonen : Question 11. * TeX: Question 1. * Texinfo system: Question 4. * Thorbjoern Ravn Andersen : Acknowledgements. * Thorsten Ohl : Acknowledgements. * time.tex: Question 24. * time.tex: time.tex. * Title: Question 24. * Titlepage: Question 24. * To-do-list: Question 7. * Turbo C: Question 11. * UNIX: Question 1. * version 1.30a: Question 33. * VMS: Question 1. * Weave: Question 20. * WEB: Question 1. * WEB preprocessor: Question 22. * web-mode.el: Question 18. * webmode-1.61, shell archive: Question 18. * William Shakespeare: Question 30. * yacc: Question 14. * Zdenek Wagner : Question 15. * ZEN--A Beginner's Guide to the Internet: Information on FTP. * [M-10.2]: Question 17. * [M-11.12]: Question 20. * [M-11.21]: Question 33. * [M-11.38]: Question 22. * [M-14.2]: Question 26. * [M-14.2]: Question 21. * [M-1]: Question 1. * [M-2.3]: Question 1. * [M-20.7.18]: Question 23. * [M-20.7.22]: Question 13. * [M-20.8]: Question 27. * [M-7.5]: Question 22. * \footnote, LaTeX: Question 15. * \identicalpageheadstrue: Question 19. * \modlabel: Question 23. * \output: Question 13. * \ref: Question 23. * \WEBsection: Question 23. * |, in LaTeX verbatim: Question 13. -- __________________________________________________________________________ |o| |o| | | David A. Coker coker@cherrypit.princeton.edu | | |o| |o| ================================================================================ Archive-Date: Thu, 15 Sep 1994 13:51:41 CDT Sender: owner-litprog@SHSU.edu Subject: FWEB FAQ Information Message-ID: <1994Sep14.144010.19078@Princeton.EDU> From: coker@cherrypit.Princeton.EDU (David A. Coker) Date: Wed, 14 Sep 1994 14:40:10 GMT Reply-To: LitProg@SHSU.edu, coker@cherrypit.Princeton.EDU (David A. Coker) To: LitProg@SHSU.EDU Hello, I've just posted a new version of the FWEB FAQ. This is a slight update of the FAQ previously maintained by Marcus Speh. This FAQ is only current through version 1.30a of FWEB. I have not included any references to version 1.40 as it is not officially finished. Please send any suggestions and helpful hints to me at coker@astro.sunyit.edu This is my first time managing a FAQ so I would appreciate any help in this matter. I would like to thank Marcus Speh for providing me with his old FAQ files that made providing this version of the FAQ relatviely painless. Over the next couple of months I will be updating the FAQ to bring it more up to date. Therefore, new versions will not appear on a regular basis until January 1995. I hope this helpls. Sincerely, David A. Coker -- __________________________________________________________________________ |o| |o| | | David A. Coker coker@cherrypit.princeton.edu | | |o| |o| ================================================================================ Archive-Date: Thu, 15 Sep 1994 16:11:31 CDT Sender: owner-litprog@SHSU.edu From: scherer@informatik.rwth-aachen.de (Andreas Scherer) Reply-To: LitProg@SHSU.edu, scherer@INFORMATIK.RWTH-AACHEN.DE Subject: CWEB 3.2 - Help wanted Date: Thu, 15 Sep 1994 18:22:47 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Keywords: CWEB, Multilinguality, Translations To: LitProg@SHSU.EDU Hello everyone, I'm seeking for help in adding "catalog translations", localized header files, and macro files to future patch levels of CWB32P10. Not only AMIGA users of this distribution will take profit out of any additional language support. At the time of writing, I have support for English (of course the original), German (included in the current version), and Italian (not yet released, but already included in p10a). The next release of CWB32P11 will contain a major change in the language support. The former command line option "+g" for CWEAVE will be replaced by the "language switch" "+lX", where "X" denotes any legal single character, which will be prepended to "cwebmac.tex" in the first line of TeX output. If you call CWEAVE, i.e., with "+li", the Italian macros "icwebmac.tex" will be used for processing the documentation. Any other language may be added into this scheme with a unique national character. If you would like to volunteer in this task, look at the files CWEB:arexx/catalogs/cweb_arexx.cd CWEB:arexx/catalogs/cweb_arexx.e.ct CWEB:bin/catalogs/cweb.cd CWEB:bin/catalogs/cweb.d.ct CWEB:bin/catalogs/cweb.h CWEB:bin/catalogs/gcweb.h CWEB:macros/gcwebmac.tex for clues what there needs to be done. You find CWB32P10 at any CTAN host as CTAN:/pub/tex/web/c_cpp/cwb32p10/cwb32p10.zip (possibly *.lha) Many thanks in advance! Andreas Scherer ================================================================================ Archive-Date: Thu, 15 Sep 1994 17:11:14 CDT Sender: owner-litprog@SHSU.edu Date: Thu, 15 Sep 1994 17:07:24 -0500 Message-ID: <199409152207.RAA27406@audumla.students.wisc.edu> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: LitProg@SHSU.EDU From: nadair@students.wisc.edu (Nick Adair) Reply-To: LitProg@SHSU.edu, nadair@STUDENTS.WISC.EDU Subject: unsub litprog Nick Adair ==================== Nikolas Adair nadair@students.wisc.edu ==================== ================================================================================ Archive-Date: Fri, 16 Sep 1994 08:08:24 CDT Sender: owner-litprog@SHSU.edu From: cgra@se.alcbel.be (Chris Gray) Subject: Looking for complexity analysis sw Date: 16 Sep 1994 12:51:31 GMT Message-ID: <35c4cj$jgd@btmplq.god.bel.alcatel.be> Reply-To: LitProg@SHSU.edu, cgra@se.bel.alcatel.be To: LitProg@SHSU.EDU Sorry this is not the right place to ask this but I can't find any more relevant groups by searching with `quality' or `metric'... could anyone point me at some software which will perform complexity analysis on C programs, including the dreaded McCabe? GNUish stuff would do fine. No McCabe flames please, save them for my Software Quality Assurance Manager. __________________________________________________________________________ Chris Gray cgra@btma74.se.bel.alcatel.be Compu$erve: 100065,2102 __________________________________________________________________________ ================================================================================ Archive-Date: Fri, 16 Sep 1994 09:23:31 CDT Sender: owner-litprog@SHSU.edu From: scherer@informatik.rwth-aachen.de (Andreas Scherer) Reply-To: LitProg@SHSU.edu, scherer@INFORMATIK.RWTH-AACHEN.DE Subject: WEB-2-CWEB conversion Date: Fri, 16 Sep 1994 16:05:42 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Keywords: Literate Programming, WEB, CWEB, Language translation To: LitProg@SHSU.EDU Recently, I received the following question from Italy in a non-LP context: "Why doesn't Donald Knuth convert his TeX/MetaFont programs from WEB to CWEB?" Of course, I do know the answer(s) to this, but it lead me to the following: "Is there a simple tool for converting Pascal-WEB programs into C-CWEB sources, which keep the documentation around?" Can anybody answer this or provide such a tool? Thanks and Greetings Andreas Scherer ================================================================================ Archive-Date: Mon, 19 Sep 1994 08:50:01 CDT Sender: owner-litprog@SHSU.edu From: weaver@hubble.sheridanc.on.ca (len weaver) Reply-To: LitProg@SHSU.edu, weaver@HUBBLE.SHERIDANC.ON.CA Subject: test Message-ID: Date: Mon, 19 Sep 1994 13:13:13 GMT To: LitProg@SHSU.EDU -- ************************************************************************* * InterNet: weaver@hubble.sheridanc.on.ca RIME: ->1564 SFNet: 0519007 * ************************************************************************* ================================================================================ Archive-Date: Mon, 19 Sep 1994 11:36:16 CDT Sender: owner-litprog@SHSU.edu To: LitProg@SHSU.edu From: "Andreas Scherer" Date: 19 Sep 94 18:35:55 +0100 Subject: Re: test Reply-To: LitProg@SHSU.edu, scherer@genesis.informatik.rwth-aachen.de Message-ID: > From: weaver@hubble.sheridanc.on.ca (len weaver) > Reply-to: LitProg@SHSU.edu, weaver@HUBBLE.SHERIDANC.ON.CA > Subject: test > Date: Mon, 19 Sep 1994 13:13:13 GMT > To: LitProg@SHSU.EDU > > > -- > ************************************************************************* > * InterNet: weaver@hubble.sheridanc.on.ca RIME: ->1564 SFNet: 0519007 * > ************************************************************************* > > SHUT UP! ================================================================================ Archive-Date: Tue, 20 Sep 1994 03:27:06 CDT Sender: owner-litprog@SHSU.edu From: asteindl@mch2ws2.tuwien.ac.at (Alois Steindl) Reply-To: LitProg@SHSU.edu, asteindl@MCH2WS2.TUWIEN.AC.AT Subject: FWEB: TeX-output of f90-lines Date: 20 Sep 1994 08:19:52 GMT Message-ID: To: LitProg@SHSU.EDU Hello, After some troubles to tell FWEB-1.40 to get a f90-file tangled properly, I tried to look at it's TeX-output: Most of the source was output as a continous spaghetti-code, without proper linebreaks. Exceptions were lines with short comments and sometimes lines ended with semicolons. Do I have to put semicolons at the end of the lines as in Ratfor? I really would like to follow the f90-rules of syntax also in the web-files. A second question: FWEAVE changes all short comments to //s. Since I mainly use FWEB to communicate Fortran-problems to students, who are just beginning to look at Fortran, I would prefer a style which looks more like Fortran; otherwise I have to tell them: "Comments in Fortran start with !; but in the handouts you will find //-s instead." Last year I experienced some students to try to use //-s for comments. Thanks Alois -- ___________________________________________________________________________ Alois Steindl, Tel.: +43 (1) 58801 / 5529 Inst. for Mechanics II, Fax.: +43 (1) 5875863 TU Vienna, A-1040 Wiedner Hauptstr. 8-10 Email: asteindl@mch2ws2.tuwien.ac.at ___________________________________________________________________________ ================================================================================ Archive-Date: Tue, 20 Sep 1994 05:51:16 CDT Sender: owner-litprog@SHSU.edu From: maavl@cwi.nl (Marc van Leeuwen) Reply-To: LitProg@SHSU.edu, maavl@CWI.NL Subject: Re: WEB-2-CWEB conversion Message-ID: Keywords: Literate Programming, WEB, CWEB, Language translation Date: Tue, 20 Sep 1994 10:17:05 GMT To: LitProg@SHSU.EDU Lines : :- In article , Andreas Scherer writes: |> Recently, I received the following question from Italy in a non-LP context: |> |> "Why doesn't Donald Knuth convert his TeX/MetaFont programs from WEB to |> CWEB?" |> |> Of course, I do know the answer(s) to this, but it lead me to the following: A slightly more pertinent question is of course why doesn't someone else do the conversion. I think it would be particularly useful if anyone thinks of making variants/extensions of TeX. I have heard a rumour that someone had hand-converted TeX to C and had thus obtained a very fast TeX on some particular platform. Unfortunately I have no precise indication of who or what; probably some of the features of high reliability and portability were sacrificed in the process. |> "Is there a simple tool for converting Pascal-WEB programs into C-CWEB |> sources, which keep the documentation around?" Not that I know of, since web2c operates on TANGLEd Pascal rather than directly on web, despite its name. It would be a good starting point for making a conversion program as suggested, though. Since web2c uses strict Pascal syntax in its yacc description, there are some problems to be solved. One is obviously to exclude the commentary fragments from the translation process (except pieces in `|...|', although as a first approximation you may wish to leave these as well), and to escape WEB-specific interjections (such as @^...@>) from the translation process; my first suggestion would be to replace the lex-generated lexical analyser by a hand-written one (I don't like lex anyway), probably best based on the original WEAVE, which already does much of this. Another problem is to make the syntax analyser flexible enough that it can recognise pieces of stuff without knowing their syntax category a-priori (just like WEAVE must); a possible advantage is that for module bodies only very few syntax categories will occur in practice. Two approaches are possible here: use yacc but add new categories that simply choose betwen a number of options without knowing beforehand (after all, yacc generates a bottom-up parser, so it should be possible to handle this to a certain extent), or to stick to WEAVE completely, and to modify its grammar in such a way that instead of TeX output it will produce CWEB output (a rather significant change of perspective). Both possibilities would make an interesting programming project, any voluteers? I would not expect that a completely automatic WEB->CWEB conversion will be feasible either way (web2c does not handle all of Pascal either), but a semi-automatic system for a significant subset of Pascal with some hand-editing of the result might be possible. Marc van Leeuwen CWI, Amsterdam ================================================================================ Archive-Date: Tue, 20 Sep 1994 06:43:30 CDT Sender: owner-litprog@SHSU.edu Date: Tue, 20 Sep 94 13:37:13 +0200 From: kaufmann@analog.shraero.co.at (Roland Kaufmann SCHRACK AEROSPACE) Reply-To: LitProg@SHSU.edu, kaufmann@ANALOG.SHRAERO.CO.AT Message-ID: <9409201137.AA03006@analog.co.at.> To: LitProg@SHSU.edu Subject: WEB-2-CWEB conversion Hello, Marc van Leeuwen and Andreas Scherer were discussing the how and why of converting Pascal WEB to CWEB code. Another way to do this conversion would be to run a Pascal to C converter on individual code chunks, leaving the TeX part of the WEB as it is (apart from web2c, there is Dave Gillespie's p2c, but I haven't tried it, let alone the significant amount of tinkering to get the web conversion to work). What I am very sceptical about is what one could expect from such an automatic conversion, isn't it a contradiction to the tenets of literate programming? Who would like to read a work of literature passed through an automatic translation (I myself try to avoid even human translators when I can understand the original language)? While this comparison might be a bit far-fetched, I still believe that a web will require a substantial amount of editing performed by a reader with the necessary insight, computers aren't smart enough to do that. If the reason for changing from Pascal to C is the (non)availability of the necessary compilers, the automated translation of the tangled code (as successfully demonstrated by TeX/METAFONT and web2c) might be all what's really necessary. ========================================================================== Roland Kaufmann Tel.: +43 1 81100 5563 Systems Engineer Fax: +43 1 81100 5577 Studies Group e-mail: kaufmann@shraero.co.at Signal Processing SCHRACK Aerospace Breitenfurterstr. 106-108 A-1120 Vienna, AUSTRIA IEEE Member 8542359 ========================================================================== ================================================================================ Archive-Date: Tue, 20 Sep 1994 07:05:19 CDT Sender: owner-litprog@SHSU.edu Date: Tue, 20 Sep 1994 14:06:45 +0200 From: Thomas.Herter@mch.sni.de Reply-To: LitProg@SHSU.edu, Thomas.Herter@MCH.SNI.DE Message-ID: <199409201206.AA06783@pgtd0143.mch.sni.de> To: LitProg@SHSU.edu Subject: Re: WEB-2-CWEB conversion Content-Type: text rk> From: kaufmann@analog.shraero.co.at (Roland Kaufmann SCHRACK AEROSPACE) rk> rk> Hello, rk> Marc van Leeuwen and Andreas Scherer were discussing the how and why rk> of converting Pascal WEB to CWEB code. Another way to do this rk> conversion would be to run a Pascal to C converter on individual code rk> chunks, leaving the TeX part of the WEB as it is (apart from web2c, rk> there is Dave Gillespie's p2c, but I haven't tried it, let alone the rk> significant amount of tinkering to get the web conversion to work). Hallo, you can not convert chunks of Pascal into C due to procedure nesting in Pascal, which is not present in C. For this reason (and some others) p2c need the _whole_ context information about the Pascal code to do the work. Thomas. ------------------------------------ Thomas Herter, SNI Muenchen (thomas.herter@mch.sni.de) tel +89 636 49973 ================================================================================ Archive-Date: Tue, 20 Sep 1994 23:02:12 CDT Sender: owner-litprog@SHSU.edu From: j_mcarthur@BIX.com (Jeffrey McArthur) Reply-To: LitProg@SHSU.edu, j_mcarthur@BIX.COM Subject: Programmer Needed Date: Tue, 20 Sep 1994 23:41:58 Message-ID: <35oaul$pm0@news.delphi.com> To: LitProg@SHSU.EDU Subject: Programming Position. ATLIS Publishing is looking for programmers with "can-do" attitudes. All levels of experience will be considered. Salary is negotiable. If you know, or would like to learn, any of the following we would like to hear from you: Pascal, Modula-2, Lisp, C, TeX, Paradox, dBase, SGML ATLIS Publishing is located in Beltsville, Maryland. Just a few minutes from the District of Columbia. Send resume and salary requirement to: ATLIS Publishing Attn: Melissa Colbert 12001 Indian Creek Court Beltsville, MD 20705 Or via fax to (301) 210-4999, (301) 210-4998, or (301) 210-4997. Or via email to j_mcarthur@bix.com ---- Jeffrey M\kern-.05em\raise.5ex\hbox{\b c}\kern-.05emArthur a.k.a. Jeffrey McArthur email: j_mcarthur@bix.com phone: (301) 210-6655 ATLIS Publishing fax: (301) 210-4999 12001 Indian Creek Court home: (410) 290-6935 Beltsville, MD 20705 ================================================================================ Archive-Date: Wed, 21 Sep 1994 11:50:07 CDT Sender: owner-litprog@SHSU.edu From: trashy@icicle.winternet.com (Barry Schwartz) Reply-To: LitProg@SHSU.edu, trashy@ICICLE.WINTERNET.COM Subject: Re: Programmer Needed Date: 21 Sep 1994 16:29:36 GMT Message-ID: <35pn1g$as3@blackice.winternet.com> To: LitProg@SHSU.EDU In article <35oaul$pm0@news.delphi.com> j_mcarthur@BIX.com (Jeffrey McArthur) writes: ]ATLIS Publishing is looking for programmers with "can-do" attitudes. I'm waiting for the day a company advertises it wants "can't-do" applicants. Sorry. Back to your regularly scheduled processes. -- Barry Schwartz at MedGraphics trashy@winternet.com ================================================================================ Archive-Date: Wed, 21 Sep 1994 23:25:07 CDT Sender: owner-litprog@SHSU.edu From: j_mcarthur@BIX.com (Jeffrey McArthur) Reply-To: LitProg@SHSU.edu, j_mcarthur@BIX.COM Subject: Re: Programmer Needed Date: Wed, 21 Sep 1994 21:48:52 Message-ID: <35r0do$iti@news.delphi.com> To: LitProg@SHSU.EDU >I'm waiting for the day a company advertises it wants "can't-do" >applicants. I guess I could have worded my posting a little better. We do so many different things it is difficult to describe in a short messages. ---- Jeffrey M\kern-.05em\raise.5ex\hbox{\b c}\kern-.05emArthur a.k.a. Jeffrey McArthur email: j_mcarthur@bix.com phone: (301) 210-6655 fax: (301) 210-4999 home: (410) 290-6935 The opinions express are mine. They do not reflect the opinions of my employer. My access to the Internet is not paid for by my employer. ================================================================================ Archive-Date: Thu, 22 Sep 1994 09:31:05 CDT Sender: owner-litprog@SHSU.edu Message-ID: <199409221431.KAA17752@mail.med.cornell.edu> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Thu, 22 Sep 1994 10:37:19 -0400 To: LitProg@SHSU.edu, coker@cherrypit.Princeton.EDU (David A. Coker) From: perin@med.cornell.edu (Lewis Perin) Reply-To: LitProg@SHSU.edu, perin@MED.CORNELL.EDU Subject: Re: FWEB FAQ Information (not really) Are you the Dave Coker I knew at Telerate? If so, hi and what's new?! If not, oh well, sorry... ______________________________________________________ __ perin@med.cornell.edu (212)746-2946 | |_ \ / : Lew Perin |__ |__ \/\/ : Home: (201)435-2679 ================================================================================ Archive-Date: Fri, 23 Sep 1994 15:08:13 CDT Sender: owner-litprog@SHSU.edu From: ma@sundance.sundance.com (Mark Ainsworth) Subject: CliP Reply-To: LitProg@SHSU.edu, ma@sundance.com Date: Fri, 23 Sep 1994 18:16:51 +0000 Message-ID: <780344211snz@sundance.sundance.com> To: LitProg@SHSU.EDU Hi all, I'm looking for a copy of CliP to use on a PC. Can anyone point me to an ftp site? Many Thanks Mark Ainsworth. -- Mark Ainsworth support@sundance.com Sundance Multiprocessor Technology Ltd. ma@sundance.com ================================================================================ Archive-Date: Fri, 23 Sep 1994 15:23:38 CDT Sender: owner-litprog@SHSU.edu Date: Fri, 23 Sep 1994 15:23:34 CDT From: "George D. Greenwade" Reply-To: LitProg@SHSU.edu, bed_gdg@SHSU.EDU To: LitProg@SHSU.edu, ma@sundance.com Message-ID: <00984E7F.89DA06C0.107@SHSU.edu> Subject: RE: CliP On Fri, 23 Sep 1994 18:16:51 +0000, ma@sundance.sundance.com (Mark Ainsworth) asked: > I'm looking for a copy of CliP to use on a PC. Can anyone point me to an > ftp site? Look in tex-archive/web/clip/ms_dos on ftp.shsu.edu (or any of the CTAN hosts or mirrors). --George ================================================================================ Archive-Date: Fri, 23 Sep 1994 19:03:12 CDT Sender: owner-litprog@SHSU.edu From: st94dsh8@dunx1.ocs.drexel.edu (David C. Hunt) Reply-To: LitProg@SHSU.edu, st94dsh8@DUNX1.OCS.DREXEL.EDU Subject: Portable Multithreading Date: Fri, 23 Sep 1994 19:25:47 -0500 Message-ID: To: LitProg@SHSU.EDU Greetings, All : I am currently working on a DCE project which will require relatively simple portability between multiple operating systems and machines. Initial specifications are being worked out in C++ and the program will eventually be transported out to ANSI/ISO C. The section I need input on deals with multithreading : what should I use in a "thread" object to insure portability? Currently I have this : THD_ERR thread::thread ( void *infunc, int priority ); /* This is the constructor. It currently takes a pointer to a function and an integer priority level for the thread to run at. System dependent devices such as allocating stack space can ( hopefully ) be handled without passing parameters */ THD_ERR thread::~thread(); /* This is the destructor. It destroys the thread. */ THD_ERR thread::lock(); THD_ERR thread::unlock(); /* These two functions provide for indicating critical sections on a preemptive system. On a cooperative multitasking system, they would do nothing. */ THD_ERR thread::sliceout(); /* This function is designed to help with cooperative multitasking. It indicates that the current thread is done, for the time being. */ That's it. Remember, THD_ERR and thread are both system dependent, so they are not explicitly declared here. Also, the object is just a framework, not code. Any suggestions? ================================================================================ Archive-Date: Fri, 23 Sep 1994 19:23:35 CDT Sender: owner-litprog@SHSU.edu From: kap1@wimpy.cpe.uchicago.edu (Dietrich J. Kappe) Reply-To: LitProg@SHSU.edu, kap1@WIMPY.CPE.UCHICAGO.EDU Subject: Nonliterate (Illiterate :-) to literate Message-ID: Date: Sat, 24 Sep 1994 01:11:27 GMT To: LitProg@SHSU.EDU I've been using some simple perl scripts to convert old C and perl source into basic nuweb documents. Is anyone else automating the conversion? With many programs I've found it easier to simply rewrite the things from scratch (not an option with 1000+ line IMHO). (On a related note...) Also, whats the attitude on including makefiles and configuration scripts in the nuweb document. I myself prefer to keep all non source code elements outside of the nuweb doc. And how about manual pages? I've tried generating manual pages inside of the nuweb document, but documenting documentation makes my head hurt. I find it far more convenient using c2man and including comments before my function prototypes. Well, enough rambling., (Where are all the literati hiding? This used to be a high volume mailing.) -- Dietrich "The man who squared the SPC" Kappe kap1@wimpy.cpe.uchicago.edu -finger for PGP public key- ================================================================================ Archive-Date: Sun, 25 Sep 1994 09:07:15 CDT Sender: owner-litprog@SHSU.edu From: marcus@x4u2.desy.de (Marcus Speh) Subject: Literate Programming on the World Wide Web [Revised 25 September 1994] Date: 25 Sep 1994 13:52:19 GMT Message-ID: Reply-To: LitProg@SHSU.edu, marcus@x4u.desy.de To: LitProg@SHSU.EDU Archive-name: www/resources/literate-programming Last-modified: 25 September 1994 Posting-Frequency: monthly ----------------------------------------------------------------------------- * Recent Changes ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- * Literate Programming on the World Wide Web ----------------------------------------------------------------------------- FYI, there is a wealth of information on Literate Programming, the art of structured programming and documentation [like WEB-like systems with (La)TeX formatting] available on the World Wide Web [WWW], a distributed HyperText system, a network of documents connected by links which can be activated electronically. Examples for LitProg environments are WEB for Pascal (DEK), CWEB for C/C++ (Levy/Knuth), FWEB for C/C++/Fortran/ratfor/TeX (Krommes), various language independent tools...and many more. The WWW resource can be searched for keywords. The latest version of this resource info sheet is available via anonymous FTP to rtfm.mit.edu in file /pub/usenet/news-answers/www/resources/literate-programming. ----------------------------------------------------------------------------- * How to get to the Web ----------------------------------------------------------------------------- If you have a WWW browser up and running, try going to http://info.desy.de/general/users.html and look for "Literate Programming" in the panel which appears. The precise URL is http://info.desy.de/user/projects/LitProg.html If you have no clue what WWW is, you can go over the Internet with telnet info.cern.ch which brings you to the WWW Home Page at CERN. You are now using the simple line mode browser. To move around the Web, enter the numbers given after an item. To go to the Literate Programming documents, enter go http://info.desy.de/user/projects/LitProg.html This is what you should see now: ----------------------------------------------------------------------------- * What you will see here ----------------------------------------------------------------------------- LITERATE PROGRAMMING LIBRARY Recent Changes[1] -- Mail additions to this list to You can also search for keyword on this server.[2](Here is help on searching[3].) ___________________________________ Getting Start(l)ed[4] A first look into Literate Programming with WEB Virtual Course[5] Planned GNA[6] Internet course on Literate Programming Editing[7] GNU Emacs mode for WEB programming Tools[8] Common, freely available Literate Programming environments Examples[9] Literate Programming archives and selected examples Discussion[10] Discussion on LitProg takes place on a mailing list and a newsgroup Program Library[11] George D. Greenwade's Literate Programming Library at Niord.shsu.edu. Experimental service: Archive Search[12] FAQs[13] Lists of Frequently Asked Questions: General and FWEB Further Reading Nelson Beebe's Literate Programming bibliography at ftp.math.utah.edu in directory /pub/tex/bib[14](files litprog.*) HyperLitProg[15] Literate Programming using HyperText[16] Techniques OO-LitProg[17] Opinions and examples on Object-Oriented[18] Literate Programming [[Now you can continue climbing down the documentation tree by entering numbers 1-18 and follow your own interests]] ----------------------------------------------------------------------------- * More on Browsing the Web ----------------------------------------------------------------------------- A very nice way of "browsing" through WWW uses X-based tools like "tkWWW" or "NCSA Mosaic". For the latter, binaries for many platforms (ready for use) and sources are available via anonymous FTP from ftp.ncsa.uiuc.edu in directory Web/Mosaic-binaries. For vt100 terminals there is a much-used browser called "Lynx" which can be obtained by FTP from ftp2.cc.ukans.edu in the pub/lynx directory. Emacs users will like the "W3" browser, FTP to cs.indiana.edu:/pub/elisp/w3. There is a FTP repository for browser software at info.cern.ch (including a hypertext browser/editor for NeXTStep 3.0 and tkWWW). If you cannot go through TELNET, you can still retrieve WWW documents by e-mail: send Email to test-list@info.cern.ch with one or more lines of the form send [http-address] e.g. send http://info.desy.de/user/projects/LitProg.html at the bottom of the page you'll find all links of that document listed. Your mail system must have a mail gateway to internet mail. ----------------------------------------------------------------------------- * Contact for Further Information ----------------------------------------------------------------------------- Please feel free to contact me for questions, suggestions and further contributions, or just to tell me whether you found this information useful in any way. For questions related to WWW, consult the WWW-FAQ: available via anonymous FTP from rtfm.mit.edu in directory pub/usenet/news.answers/www/faq, or on WWW at URL http://sunsite.unc.edu/boutell/faq/www_faq.html Enjoy! Marcus Speh for GNA. ***************************************************************************** Copyright 1993-94 Globewide Network Academy, Inc. Distributed under the terms of the GNU Public License. Permission is granted to copy this document for free distribution so long as it remains intact and unmodified. See more on WWW at http://uu-gna.mit.edu:8001/uu-gna/index.html or get the GNA FAQ via anonymous FTP to rtfm.mit.edu as file pub/usenet/news.answers/globewide-network-academy-faq ------------------------------------------------------------------------- END -- Marcus Speh, DESY Theory & Computing, Notkestr.85, D-22603 Hamburg,Germany Phone: +49-40 8998 3753, Fax: +49-40 8994 4429, Private: +49-40 4203206 -- Email: marcus@x4u.desy.de --- WWW: http://info.desy.de/www/marcus.html --- ================================================================================ Archive-Date: Sun, 25 Sep 1994 09:07:17 CDT Sender: owner-litprog@SHSU.edu From: marcus@x4u2.desy.de (Marcus Speh) Subject: Literate Programming on the World Wide Web [Revised 25 September 1994] Date: 25 Sep 1994 13:55:47 GMT Message-ID: Reply-To: LitProg@SHSU.edu, marcus@x4u.desy.de To: LitProg@SHSU.EDU Archive-name: www/resources/literate-programming Last-modified: 25 September 1994 Posting-Frequency: monthly ----------------------------------------------------------------------------- * Recent Changes ----------------------------------------------------------------------------- - The FWEB FAQ has been updated for FWEB v1.30 - only as plain text for now - HTML version to come soon). ----------------------------------------------------------------------------- * Literate Programming on the World Wide Web ----------------------------------------------------------------------------- FYI, there is a wealth of information on Literate Programming, the art of structured programming and documentation [like WEB-like systems with (La)TeX formatting] available on the World Wide Web [WWW], a distributed HyperText system, a network of documents connected by links which can be activated electronically. Examples for LitProg environments are WEB for Pascal (DEK), CWEB for C/C++ (Levy/Knuth), FWEB for C/C++/Fortran/ratfor/TeX (Krommes), various language independent tools...and many more. The WWW resource can be searched for keywords. The latest version of this resource info sheet is available via anonymous FTP to rtfm.mit.edu in file /pub/usenet/news-answers/www/resources/literate-programming. ----------------------------------------------------------------------------- * How to get to the Web ----------------------------------------------------------------------------- If you have a WWW browser up and running, try going to http://info.desy.de/general/users.html and look for "Literate Programming" in the panel which appears. The precise URL is http://info.desy.de/user/projects/LitProg.html If you have no clue what WWW is, you can go over the Internet with telnet info.cern.ch which brings you to the WWW Home Page at CERN. You are now using the simple line mode browser. To move around the Web, enter the numbers given after an item. To go to the Literate Programming documents, enter go http://info.desy.de/user/projects/LitProg.html This is what you should see now: ----------------------------------------------------------------------------- * What you will see here ----------------------------------------------------------------------------- LITERATE PROGRAMMING LIBRARY Recent Changes[1] -- Mail additions to this list to You can also search for keyword on this server.[2](Here is help on searching[3].) ___________________________________ Getting Start(l)ed[4] A first look into Literate Programming with WEB Virtual Course[5] Planned GNA[6] Internet course on Literate Programming Editing[7] GNU Emacs mode for WEB programming Tools[8] Common, freely available Literate Programming environments Examples[9] Literate Programming archives and selected examples Discussion[10] Discussion on LitProg takes place on a mailing list and a newsgroup Program Library[11] George D. Greenwade's Literate Programming Library at Niord.shsu.edu. Experimental service: Archive Search[12] FAQs[13] Lists of Frequently Asked Questions: General and FWEB Further Reading Nelson Beebe's Literate Programming bibliography at ftp.math.utah.edu in directory /pub/tex/bib[14](files litprog.*) HyperLitProg[15] Literate Programming using HyperText[16] Techniques OO-LitProg[17] Opinions and examples on Object-Oriented[18] Literate Programming [[Now you can continue climbing down the documentation tree by entering numbers 1-18 and follow your own interests]] ----------------------------------------------------------------------------- * More on Browsing the Web ----------------------------------------------------------------------------- A very nice way of "browsing" through WWW uses X-based tools like "tkWWW" or "NCSA Mosaic". For the latter, binaries for many platforms (ready for use) and sources are available via anonymous FTP from ftp.ncsa.uiuc.edu in directory Web/Mosaic-binaries. For vt100 terminals there is a much-used browser called "Lynx" which can be obtained by FTP from ftp2.cc.ukans.edu in the pub/lynx directory. Emacs users will like the "W3" browser, FTP to cs.indiana.edu:/pub/elisp/w3. There is a FTP repository for browser software at info.cern.ch (including a hypertext browser/editor for NeXTStep 3.0 and tkWWW). If you cannot go through TELNET, you can still retrieve WWW documents by e-mail: send Email to test-list@info.cern.ch with one or more lines of the form send [http-address] e.g. send http://info.desy.de/user/projects/LitProg.html at the bottom of the page you'll find all links of that document listed. Your mail system must have a mail gateway to internet mail. ----------------------------------------------------------------------------- * Contact for Further Information ----------------------------------------------------------------------------- Please feel free to contact me for questions, suggestions and further contributions, or just to tell me whether you found this information useful in any way. For questions related to WWW, consult the WWW-FAQ: available via anonymous FTP from rtfm.mit.edu in directory pub/usenet/news.answers/www/faq, or on WWW at URL http://sunsite.unc.edu/boutell/faq/www_faq.html Enjoy! Marcus Speh for GNA. ***************************************************************************** Copyright 1993-94 Globewide Network Academy, Inc. Distributed under the terms of the GNU Public License. Permission is granted to copy this document for free distribution so long as it remains intact and unmodified. See more on WWW at http://uu-gna.mit.edu:8001/uu-gna/index.html or get the GNA FAQ via anonymous FTP to rtfm.mit.edu as file pub/usenet/news.answers/globewide-network-academy-faq ------------------------------------------------------------------------- END -- Marcus Speh, DESY Theory & Computing, Notkestr.85, D-22603 Hamburg,Germany Phone: +49-40 8998 3753, Fax: +49-40 8994 4429, Private: +49-40 4203206 -- Email: marcus@x4u.desy.de --- WWW: http://info.desy.de/www/marcus.html --- ================================================================================ Archive-Date: Mon, 26 Sep 1994 18:11:09 CDT Sender: owner-litprog@SHSU.edu From: trashy@icicle.winternet.com (Barry Schwartz) Reply-To: LitProg@SHSU.edu, trashy@ICICLE.WINTERNET.COM Subject: Re: Nonliterate (Illiterate :-) to literate Date: 26 Sep 1994 22:53:29 GMT Message-ID: <367jd9$eq1@blackice.winternet.com> To: LitProg@SHSU.EDU In article kap1@wimpy.cpe.uchicago.edu (Dietrich J. Kappe) writes: ]Also, whats the attitude on including makefiles and configuration ]scripts in the nuweb document. I myself prefer to keep all non source ]code elements outside of the nuweb doc. I have put the makefile into a noweb (not nuweb) source, but only for a very small program where the text needed fleshing out, and where the makefile had some literate merit of its own. (It generated an MS-DOS .com file rather than a .exe file, so someone might not figure that out if it were not there to read.) If a makefile is included, it should be as an example, rather than as a hard-and-fast-part-of-the-program, because makefiles are unstable. Configuration files, I believe, can benefit from being near the code to which they apply. This is especially the case if the configuration language is cryptic. Someone may hack with a configuration, though, so the configuration should be thought of as an example, rather than a necessary part (much as with makefiles). Test programs and test scripts should also be along with the code, or they are prone to get lost or go out of sync. I don't know about nuweb, but noweb lets you extract only those parts that you need at the moment, and you can use the cpif command to get some automatic control over selective extraction. So these ideas (humbly held) are easy to put into practice. ] And how about manual pages? ]I've tried generating manual pages inside of the nuweb document, but ]documenting documentation makes my head hurt. I find it far more ]convenient using c2man and including comments before my function ]prototypes. The noweb programs I've seen that included man pages all \iffalsed out the man pages from the printout. This is evidence that there is something subtly wrong with putting a man page in a noweb source. Not having the need to write man pages myself, I haven't dealt with this issue. I had thought about it, though, thinking more about Texinfo documents than nroff'd man pages. My opinion is that a Texinfo document is a piece of literature on the same level as a literate program, but with a different (though complementary) purpose, and so should be written as a separate document. I arrive at this view on literary grounds, rather than through arguments an illiterate programmer might make. There is a serious practical difficulty of keeping the Texinfo manual in sync, but that's life. There is also the possibility that the programmer may neglect the documentation of the code, saying that it will be taken care of in the Texinfo work. That, however, is exactly how program and manual may get out of sync. Ideally, there should be little information in the Texinfo document that is not also in the literate program, though the styles of writing may be very different. That way, you can verify that the Texinfo is correct, and also the program remains fully literate. I'll make an exception for the case of a large program with an elaborate function. For instance, it is reasonable not to replicate the contents of "The TeXbook" inside "TeX: The Program". But suppose instead you are writing a grep program. Then I think the literate program should tell you how to run it; in other words, there should be instructions, probably near the beginning. The Texinfo manual, then, is a separate document, with a less terse set of instructions for running the program. I've only thought about these things, not practiced them. Except for the part about including instructions in the program. That's the approach, by the way, that the LaTeX 2e guys have taken. If you look at the tools packages, they all tell you how they are used, and then present the implementation. ](Where are all the literati hiding? This used to be a high volume mailing.) Literate programming is so successful, that they are all busy writing reams of literate programs rather than up here begging for help. -- Barry Schwartz at MedGraphics trashy@winternet.com ================================================================================ Archive-Date: Mon, 26 Sep 1994 19:12:44 CDT Sender: owner-litprog@SHSU.edu From: Multimedia@cce.ubc.ca (Charles Tremewen) Reply-To: LitProg@SHSU.edu, Multimedia@CCE.UBC.CA Subject: MULTICOMM'94 - FINAL UPDATE Date: Mon, 26 Sep 1994 15:10:26 -0800 Message-ID: To: LitProg@SHSU.EDU MultiComm'94 UPDATE (Version September 26, 1994) *****This Notice Includes the conference and Vendor Expo, schedule, speakers and topics for this years event ***** _____________________________________________ * Please Assist Us by * * Distributing this to your colleagues * _____________________________________________ ******************************************* * MULTICOMM '94 * ******************************************* * The Third Annual * * Conference and Exposition on * * Exploring Multimedia Solutions * * in Business and Education * * * * KEYNOTE: Nicholas Negropont * * * *Opening Plenary: Kristina Hooper Woolsey * * * * * * November 2 & 3, 1994 * * * * The Westin Bayshore * * Vancouver, British Columbia * * CANADA * ******************************************* Hosted by The University of British Columbia Continuing Studies in Association with The Centre of Image and Sound Research Emily Carr Institute for Art and Design The International Interactive Communications Society Media and Graphics Interdisciplinary Centre ________________________________________________________ THIS YEAR'S THEME: "Advancing the Art of Communication with New Media" Attend this international, cutting edge multimedia event and learn what researchers and industry visionaries have to say about the future of multimedia products. Interact with leading multimedia software and hardware manufacturers and explore the possibilities of this emerging technology. ________________________________________________________ OVERVIEW MultiComm`94 focuses on the innovations being made in today's technology which will affect the exchange of information in the future. This informative two-day conference will identify how existing multimedia solutions are influencing the ways in which we work, learn and communicate. ________________________________________________________ SCHEDULE OF EVENTS: ________________________________________________________ PRE-CONFERENCE - Tuesday, November 1, 1994- Evening Exhibit - Young Producers-Productions of excellence by students in (6:30-10:00pm) grades 7 thru 12 6:30-9:30 pm - Pre-registration and Opening Reception ________________________________________________________ DAY 1 - Wednesday, November 2, 1994 8-8:45 am Registration/Refreshments - Vendor Area 9-10 am Opening Address - Kristina Hooper Woolsey 10:15-11am Concurrent Sessions 11:15 am-12pm Concurrent Sessions 12 noon-1 pm Lunch Break 1-2:00 pm Afternoon Plenary - Kim Veltman 2:15-3:00 pm Concurrent Sessions 3:15-4:00 pm Concurrent Sessions 4:00-4:30 pm Afternoon Coffee/Tea - Vendor Area 4:30-5:45 pm Panel Discussion on Education and Multimedia - Topic TBA 5:45-6:45 pm Visit with the Vendors (No Host Bar) 6:30-10 pm Keynote Dinner with Nicholas Negroponte, Founder and Director, MIT's Media Lab ________________________________________________________ DAY 2 - Thursday, November 3, 1994 8-8:45 am Registration/Refreshments - Vendor Area 9-10 am Opening Address - Keneth Lim 10:15-11am Concurrent Sessions 11:15 am-12pm Concurrent Sessions 12 noon-1 pm Lunch Break 1-2:00 pm Afternoon Plenary - Duncan Card 2:15-3:00 pm Concurrent Sessions 3:15-4:00 pm Concurrent Sessions 4:00-4:30 pm Afternoon Coffee/Tea - Vendor Area 4:30-5:45 pm Panel Discussion on Business and Multimedia - Topic TBA 5:45-6:45 pm Visit with the Vendors (No Host Bar) Day 3 (optional) November 4, 1994 9:00am-4:30pm (seperately priced event) Special Workshop with Catharine Arnston MBA "Strategic Marketing for Multimedia" _______________________________________________________ KEYNOTE ADDRESS, PLENARY AND CONCURRENT PRESENTATIONS: _______________________________________________________ KEYNOTE ADDRESS _______________________________________________________ ÒInventing the FutureÓ Evening Dinner Presentation Day 1 Dr. Nicholas Negroponte, Director, Massachusetts Institute of Technology, Cambridge, Massachusetts, U.S.A. Nicholas Negroponte is a founder and the director of the Massachusetts Institute of TechnologyÕs uniquely innovative Media Laboratory. The six-year-old Media Lab, an interdisciplinary, multi-million dollar research centre of unparalleled intellectual and technological resources, is focused exclusively on study and experimentation with future forms of human communication, from entertainment to education. Programs include: Television of Tomorrow, School of the Future, Information and Entertainment Systems, and Holography. Media Lab research is supported by federal contracts as well as by more than seventy-five corporations world-wide.Negroponte studied at MIT, where as a graduate student he specialized in the then-new field of computer-aided design. He joined the InstituteÕs faculty in 1966, and for several years thereafter divided his teaching time between MIT and visiting professorships at Yale, Michigan and the University of California at Berkeley.In 1968 he also founded MITÕs pioneering Architecture Machine Group, a combination lab and think tank responsible for many radically new approaches to the human-computer interface. Out of this experience came several influential texts by Negroponte, including The Architecture Machine, Soft Architecture Machine and Computer Aids to Design and Architecture.In 1980, he served a term as founding chairman of the International Federation of Information Processing SocietiesÕ Computers in Everyday Life program in Amsterdam, the Netherlands. Two years later, Negroponte accepted the French governmentÕs invitation to become the first executive director of the Paris based World Centre for Personal Computation and Human Development, an experimental project originally designed to explore computer technologyÕs potential for enhancing primary education in underdeveloped countries.Since then, Negroponte has travelled extensively throughout the world as a lecturer. He has delivered hundreds of presentations, including the prestigious Murata ÒPeople TalkÓ address in Kyoto in 1990.In addition, he consults to both government and industry, serves as an active member of several corporate boards of directors and is a special general partner in a venture capital fund dedicated to new technologies for information and publishing. He also is senior columnist for Wired magazine. _______________________________________________________ PLENARY SPEAKERS: _______________________________________________________ ÒVIZAbility: A central literacy for the information ageÓ Opening - Day 1 Dr. Kristina Hooper Woolsey, Distinguished Scientist, Apple Computer, Inc., Cupertino, California, USA Abstract - Visual representations of ideas are often critical for learning and for inventing. New technologies make these available to more people, as multimedia exploration environments and construction tools are becoming more fluid. And yet if our culture is to take advantage of these tools, if we expect these new technologies to realize the potential which a number of us have acknowledged, each of us need to be fluent with visual materials and techniques. We need to have good seeing and drawing abilities, good diagramming and imagining abilities. This talk will include a prototype of an upcoming product Ñ VIZAbility Ñ which has been designed to address this issue. This prototype includes interviews with visual thinkers, and lessons and exercises to develop oneÕs visual skills. ÒHow the Information Highway will Transform EducationÓ Afternoon Plenary Day 1 Dr. Kim Henry Veltman, Director, Perspective Unit, The McLuhan Program in Culture and Technology, University of Toronto, Toronto, Ontario, Canada Abstract - Most persons now talk about the electronic highway or Infobahn with very little idea of what it means in practice. Amidst discussions of interactivity, we hear bout home shopping, video on demand, 500 channels of television, and dangers of becoming couch potatoes. This address will provide both practical and philosophical reflections concerning just how we gain access to knowledge in new ways but also how this will affect our definitions of knowledge itself. The presentation will address these issues, and thequestion of Marshall McLuhan's lasting legacy. A demonstration of the System for Universal Media Searching (SUMS , copyright 1994) prototype will be given. ÒFrom Infobahn to Interactivity - Who is going to pay for it?Ó Morning Plenary - Day 2 Kenneth Lim, Chairman & Chief Futurist, CyberMedia Group Cupertino, California, USA Abstract - There are many technical issues regarding ÒInfo SuperhighwayÓ and Interactive TV that are obvious and are being widely explored. Other issues are more subtle or difficult, such as security, privacy and effects on the Òrich-poor gap.Ó This address will consider the economic questions. WhoÕs going to pay for it? How much? Who makes money at it and how? ÒWhere Rubber Hits the Information HighwayÓ Afternoon Plenary - Day 2 Duncan C. Card, Barrister & Solicitor, Lang Michener, Toronto, Ontario, Canada Abstract - This paper discusses the legal and commercial issues surrounding the distribution, licensing, publishing, and international exploitation of multimedia content. _______________________________________________________ CONCURRENT SESSIONS - Day 1 & 2 (Alphabetic by Author): _______________________________________________________ ÒSeeing the Forest and the Trees: Implementing Decentralized Multimedia TrainingÓ Janet Adams, Manager, Mapping and Design Section, B.C. Ministry of Forests, Victoria, British Columbia, Canada Abstract - This paper will discuss the usage of multimedia as one tool in a larger decentralized training initiative, and the problems and benefits encountered in its delivery. ÒCommunication and the Collaborative ProcessÓ Beth Agnew, Writer, Editor, Multimedia Designer, Agnew Communications, Victoria, British Columbia, Canada Abstract - The creation of multimedia is a collaborative process: writers, artists, animators, designers, sound engineers, programmers, testers, all play a part in making multimedia work. This paper will explore techniques in communication and team building in a collaborative effort. ÒMarketing Multimedia - a Toolkit for the 90ÕsÓ Catharine Arnston, President - Software Studio, Boston, Massachusetts, USA Abstract - This paper will provide a snapshot of the essential marketing tools and concepts that you should have at your side to be a success in the multimedia market. The subjects covered will include the importance of public relations, direct marketing, distribution, partnerships and more. ÒConsumer Centered CommunicationsÓ Alan W. Aylward, President - Forevergreen Television and Film Productions Inc., Toronto, Ontario, Canada Abstract - Fourth Wave advents in information delivery and access has created the Òcitizen punditsÓ who will - by virtue of their increasing demand for integrity, credibility, relevance and all subsequent consumer decisions - ultimately control the exploration and discovery of multimedia solutions. This session will explore the consumer trends that strongly suggest we reinvent the very foundation upon which we create and design our messages - regardless of the hardware delivery systems - in the image of our consumers. ÒDesigning by wire - an end to frequent flyer pointsÓ Gary Blakeley, Graphic Designer/Faculty - Emily Carr Institute of Art and Design, Vancouver, British Columbia, Canada Abstract - This multimedia presentation will focus on three main areas: repackaging and selling the existing SuperCard inventory, repositioning the company and product within an extremely competitive market place, and designing, testing and delivering the tutorial. ÒThe Back End of a Multimedia TitleÓ Bob Boiko, President - Bobko Industries, Inc., Seattle, Washington, USA Abstract - Behind every amazing multimedia title there is an even more amazing system for gathering, organizing, processing and editing text, pictures, video and sound. This session will explore the issues and challenges of amassing and preparing multimedia data. ÒA New Spin on TrainingÓ Marie Burlinson, President - RJM Multimedia Inc., Vancouver, British Columbia, Canada Abstract - This presentation focuses on interactive multimedia CD-ROM as a methodology for training and education. Examples of interactive multimedia CD-ROM safety training programs will be featured along with discussion of North American training case studies. Special emphasis will be given to training accountability - i.e., how do you measure and manage safety training in your organization. ÒArt and Technology in PracticeÓ Kathleen Chmelewski/Nan Goggin/Joseph Squier, Faculty members University of Illinois at Urbana-Champaign, Illinois, USA Abstract - The authors formed a collaborative study group to address the serious rupture in art practice, art education, and the distribution and viewing of art as a consequence of digital technologies. Our paper presents a step by step review of negotiations and funding for two on-line electronic galleries, the curation of an electronic art exhibition scheduled for November 1995 at the Krannert Art Museum, and a collaborative electronic document utilizing still and moving images, sound, and text. ÒBotswana Life! A Five-Week MiracleÓ Alan Dickeson, Jan Miers, Media Production,Coordinator/Technical Support Analyst University of Victoria, Victoria, British Columbia, Canada Abstract - This session will discuss actual costs, time-lines and possible pitfalls of designing a multimedia production. ÒEnsuring Learning When Using Technology For Instruction: The medium is not the messageÓ Kerry Elfstrom, Instructional Development Specialist, BC TEL Burnaby, British Columbia, Canada Abstract -The challenge for educators-corporate or academic-considering the use of technology to delivery courses to their audiences is not to see how many different technologies they can utilize, how many courses they can shove down the pipe or how many students they can reach at a distance. This paper elaborates upon the challenge to ensure that whoever receives training will learn something. ÒThe Differences Between CD-ROMs and VideodiscsÓ Peter Fenrich, Interactive Multimedia Development Centre Vancouver, British Columbia, Canada Abstract - This paper summarizes both the similarities and differences between CD-ROM and videodisc technology. The differences discussed include storage capacity, motion video image quality, future possibilities, audio, graphics, and text quality, data access and retrieval, data storage, uses, and the hardware base. This information will help you make an informed decision when deciding to adopt or develop with either or both technologies. ÒA Distributed Multimedia Architecture for Intent-Based Video Authoring and PresentingÓ Kellog S. Booth, Andrew Csinger, Steve Gribble, Department of Computer SciencesUniversity of British Columbia, Vancouver, British Columbia, Canada Abstract - The traditional authoring paradigm is fraught with difficulties and limitations, foremost of which is the compile-time binding of form and content of a document. By contrast, the intent-based authoring paradigm allows the form and content of a document to be determined at run-time, which is achieved through the decoupling of content and intent. A prototypical distributed multimedia platform (Valhalla) is introduced. Agents inhabiting the Valhalla framework are members of one of three classes: client applications, media servers, and other service providers (such as an artificial intelligence based reasoning engine to support intent-based authoring). Implementations of members of these classes are introduced through the description of a department hyperbrochure application. ÒPliable Authoring Tools for Interactive Media: An Investigation into Design, Application and ValueÓ Paul D. Hibbitts, Republic Software Design, Vancouver, British Columbia, Canada Abstract - One of the features that differentiates current multimedia authoring environments is the ability to actually modify or add development tools in the authoring environment. This ability not only helps with the production of the interactive, but can actually be a valuable source of learning for the software designer. This paper describes the opportunities and applications of custom tools as required for the development of interactive media projects. Two fully functional tools, that have been created by the author, will be examined. ÒATIE: An Interactive Learning Environment Using Multimedia, Database Technology, and Artificial IntelligenceÓ Russell R. Irving, Computer Scientist, GE Corporate Research and Development, Schenectady, New York, USA Abstract - This paper describes the Audience Tailored Instruction Environment (ATIE). This environment provides the software and disciplined methodology to build interactive multimedia training systems. This session will offer information on a production system for building Interactive Electronic Technical Manuals (IETMs), a student program for viewing IETMs, a tool for building course curriculum and the question bank used to test the studentÕs knowledge of the curriculumÕs objectives. An instructor software system for an electronic classroom that generates exams, distributes exams to the students, grades the exams, analyzes exam results, and provides record tracking of trainee performance will be discussed. ÒCollaborative Learning: Teaching Ethical Theory in a Computerized Case-Study FormatÓ Dr. Patrick Kelly, Christopher G. Smith, Mark W. Bridges, Professor / Research Scientist I / Research Assistant School of International Affairs, Georgia Institute of Technology, Atlanta, Georgia, USA Abstract - A continuing problem faced by instructors in academia is how best to enable their students to learn and understand course material. This challenge is especially difficult for courses with large class sizes that stretch instructional resources (an increasingly common situation in todayÕs circumstances). However, the evolution of technology is enabling instructors to choose from a wide variety of instructional methods which would otherwise be infeasible. The authors present a method they have devised and implemented which utilizes collaborative writing as an integral learning component of Georgia TechÕs ethical theory course. This paper and presentation will describe the more interesting, and often unexpected, results from our three years of experience with this computerized, case study approach to collaborative learning and classroom use of online materials. ÒCustomization and Delivery of Multimedia InformationÓ Dr. Bob Kummerfeld, Janet Kay, Associate Professor / Senior Lecturer, Basser Department of Computer Science, University of Sydney, Sydney, Australia Abstract - Current research into architecture for delivery of multimedia (video, audio and data) to the home have concentrated on real-time Òvideo-on-demandÓ. This paper describes a project that treats multimedia objects as messages and uses a Òstore-and-multicastÓ delivery system for multimedia objects. The system uses a directory service to store descriptions of objects. These descriptions are then processed by filters that use a model of the user of the system to discover objects of interest. An ÒIndividualized News ServiceÓ then takes the filtered object descriptions and constructs a composite news program for presentation to the user. The actual objects (movies, TV shows, news programmes, radio shows) are then transferred to the user system using a multicast message delivery protocol. ÒWho put the Hype in HyperMedia?Ó Shane Lunny, President, Lunny Communications Group, Vancouver, British Columbia, Canada Biography - Shane is widely regarded as one of CanadaÕs most innovative and accomplished communicators and has built an international reputation as a leader in the development of highly effective programs for entertainment, education and marketing. An award-winning producer, Shane has put together a team of talented creators and communicators to produce interactive programs, dramas, documentaries, commercials, exhibits, museum attractions, world expositions and Òvirtual experienceÓ environments. Abstract - TBA ÒCreating CD ROMs Means Creating PartnershipsÓ Debra McAdam, Communications Officer, Education Program Greater Vancouver Regional District, Burnaby, Canada Abstract - This session will explore the creation and utilization of partnerships for the production of multimedia applications as well as the progress and pitfalls which can accompany a collaborative effort. ÒReal World WritingÓ Sam McMillan, Interactive designer, Copywriter, Project Manager, San Francisco, California, USA Abstract - Whether your goal is to design an interactive cookbook, get into interactive advertising, produce a childrenÕs game, or write the great American interactive novel, this session will introduce you to the tips, techniques, and skills you will need bring your vision to the small screen. ÒIÕNetÕs Multimedia Information eXchange (MiX)Ó David Metcalf, DM2> DESIGN, New York, NY, USA Abstract - This session will review Multimedia Information eXchange (MIX), a multimedia information system that accommodates multiple data types and provides consistency across platforms. Information from all over the world can be accessed quickly and efficiently with the Internet-based system. Guidelines and procedures for other areas of importance in information systems design such as security, system administration, support and cost are also addressed. ÒExpertise Modeling: A Transparent Tool for LearningÓ Myra Peterson, Instructional Designer, Ministry of Forests Victoria, British Columbia, Canada Abstract - This session will discuss the use of expert models to create a blueprint of cognitive structures for learning. Expert Models are silent partners which encourages accelerated understanding and supports performance. By creating a synergy of sound, movement, colour and visual placement, it encourages deep and natural learning. ÒPractical Applications of Three Dimensional ImagingÓ Dr. Griff Richards, Interactive Media Projects Leader, British Columbia Institute of Technology, Burnaby, British Columbia, Canada Abstract - Three-dimensional images add volume representation to otherwise flat displays. This presentation will provide an overview of 3D technology illustrated with applications in areas such as architecture, surgery and training. ÒThe Information Explosion - a Bomb or a Source of Power?Ó Rick Sharpe, President, Sharpe MetaMedia Inc., Vancouver, British Columbia, Canada Abstract - The convergence of key technologies accompanied by shifting economic trends is leading up to a big bang in the dissemination of information, which will make some people (and countries) very wealthy while others will be relegated to ÒdevelopingÓ status. Using examples to illustrate, this provocative presentation will focus on how we are expected to fare economically as well as identifying probable winners, losers, and opportunities for entrepreneurs. ÒSoftware Escrow: A Solution to Multimedia Legal IssuesÓ Bea Strickland, SOURCEFILE, San Francisco, California, USA Abstract - The practice of software escrow emerged as a response to the dangerously dependent relationships within the software industry: OEMs, VARs, strategic partners, venture capital firm and software publishers. This presentation will detail the importance of Escrow as the most appropriate means for a licensor to have a clear audit trail of the product development. ________________________________________________________ "YOUNG PRODUCERS" AWARDS In recognition of the growing number of young, talented producers in grades 7 to 12, a special series of concurrent sessions will be included in this year's event for "Young Producers." For details, please contact the Conference Chair, Charles Tremewen, at (604) 822-0692. ________________________________________________________ VENDOR EXPOSITION Opportunities to see over 60 leading multimedia software and hardware manufacturers will be possible in the Vendor Exposition which runs in parallel to the conference. It is an excellent opportunity to see and work with the "latest and greatest" ________________________________________________________ COMMENTS FROM PAST ATTENDEES "Lots of good information, high quality speakers." "Thanks for a great two days! See you next year." "Great overview of the topics." "Very enjoyable and thought provoking." "Lots to think about!" "Good deal!" "...outstanding symposium." " Ted Nelson was terrific! You might be hard pressed to top or even equal his presentation. I'm sure you will think of something." ________________________________________________________ NEED MORE INFORMATION Conference Registrations - MultiComm`94 The University of British Columbia Continuing Studies 5997 Iona Drive, Vancouver, B.C., Canada, V6T 1Z1 Phone: (604) 222-5256 or (604) 222-5251 Fax: (604) 222-5249 E-mail: multicomm@cce.ubc.ca ________________________________________________________ REGISTRATION FORM ---Cut along this line and return with Payment--- ************************************************** REGISTRATION FORM <<<<<<<<<<<<<<<<<<<< PERSONAL INFORMATION: Name______________________________________________ Company___________________________________________ Address___________________________________________ City______________________________________________ Province/State____________________________________ Zip_____________________________ PHONE: Day________________________________ Evening____________________________ FAX________________________________ E-mail Address________________________________ REGISTRATION FEES: (All fees quoted are CANADIAN FUNDS) ________________________________________________________ FULL REGISTRATION PACKAGE: Includes two days of seminars, one pass to the Keynote Address Dinner(evening of November 2, 6:30-10pm),unlimited access to the Vendor Exposition, Continental Breakfasts, Lunches and Breaks on November 2 & 3. Before October 3, 1994 $295 $________ After October 3, 1994 $325 $________ IICS/CISR Current Member discount:-$50* - $________ *Please identify membership chapter to validate member discount: _________________________________ ________________________________________________________ SPECIAL STUDENT REGISTRATION FEE: I am a full-time registered student at an accredited educational institution eligible for the student rate of $175 (Canadian) $________ Institution:_____________________________________ Department/Degree Program:_______________________ ________________________________________________________ KEYNOTE ADDRESS DINNER ONLY: (evening of November 2, 7-10pm) With Nicholas Negroponte, Director, MIT's Media Lab (see biography above) Before October 14th: $65 $________ After October 14th: $75* $________ *Please call (604)222-5251 or 222-5256 after October 14 for information on availability. Seating for this dinner is limited. ________________________________________________________ VENDOR EXPOSITION ONLY (one day) - $10 $________ ________________________________________________________ **SPECIAL ONE DAY SEMINAR ON FRIDAY, NOVEMBER 4, 1994 YES, I wish to attend the special one day seminar: "Strategic Marketing for Multimedia" with Catharine Arnston MBA (includes continental breakfast, lunch, breaks and a valuable list of strategic contacts)-$250 $________ Catharine Arnston MBA- For eight years Ms Arnston served as Commercial Attache for the Ontario Government in their Manhattan and Boston Offices. She is presently the President of Software Studio of Boston Massachusetts, a consulting firm providing. She is a Canadian and has a MBA from the University of Western Ontario and a BA Hon from Queens University. She is well published in US Newspapers and publications for her work in the arts and multimedia. For more information contact us at (604) 222-5256 ________________________________________________________ SPECIAL OFFER: ________________________________________________________ REGISTER FOR BOTH MULTICOMM'94 and "Strategic Marketing for Multimedia" for only $495.00 ($445 for IICS Members) $_________ =================================================== TOTAL FEES (sum the above selected amounts) $___________ =================================================== ________________________________________________________ METHOD OF PAYMENT: ___Cheque/Money Order (payable to UBC) ___Cash (for pre-registration in person) ____Visa __ __ __ __-__ __ __-__ __ __-__ __ __ ____MasterCard __ __ __ __-__ __ __ __-__ __ __ __-__ __ __ __ Valid Date____________________ Expiry Date____________________ I authorize UBC to charge the above amount to my credit card Signature: _________________________________________________ MAIL REGISTRATIONS WITH PAYMENT TO: Conference Registrations - MultiComm`94 The University of British Columbia Continuing Studies 5997 Iona Drive, Vancouver, B.C., Canada, V6T 1Z1 Phone: (604) 222-5256 or (604) 222-5251 Fax: (604) 222-5249 E-mail: multicomm@cce.ubc.ca Attn: Vicki Ayerbe ________________________________________________________ CANCELLATION POLICY Notice of cancellation must be in writing and must be received by Continuing Studies 10 days prior (October 21) to the event starting date to qualify for a partial refund (less $50). No refund will be made for cancellation received after that time. Registrations are transferable. We reserve the right to cancel or reschedule events, refuse admission, or change speakers, location or content. ________________________________________________________ HOTEL ACCOMMODATION Special conference room rates have been arranged at the conference hotel, the Westin Bayshore, a well appointed hotel in the heart of downtown Vancouver with breathtaking views of the surrounding mountains and inner harbour. Rates start at $95. To arrange reservations please call the Westin Bayshore directly at (604) 682-3377 or 1-800-228-3000 and quote you wish to book a room for the conference - MultiComm`94. Special rates will be in effect until October 1, 1994. ________________________________________________________ IICS MEMBERSHIP INFORMATION For more information about the International Interactive Communications Society (IICS) and obtaining an international membership, contact the membership chair, Marilyn Galati at (604) 893-5433 or (604) 985-6866. ________________________________________________________ CONFERENCE CHAIR: Charles Tremewen, UBC, Vancouver, B.C. ================================================================================ Archive-Date: Tue, 27 Sep 1994 07:47:33 CDT Sender: owner-litprog@SHSU.edu From: schrod@iti.informatik.th-darmstadt.de (Joachim Schrod) Reply-To: LitProg@SHSU.edu, schrod@ITI.INFORMATIK.TH-DARMSTADT.DE Subject: Re: CliP Date: 27 Sep 1994 12:41:49 GMT Message-ID: <3693ud$tjb@rs18.hrz.th-darmstadt.de> To: LitProg@SHSU.EDU In article <780344211snz@sundance.sundance.com>, ma@sundance.sundance.com (Mark Ainsworth) writes: > > I'm looking for a copy of CliP to use on a PC. Can anyone point me to an ftp > site? The Literate Programming Archive at Darmstadt should have everything available that can be freely distributed. If you miss something, please contact me. ftp.th-darmstadt.de [130.83.55.75] directory pub/programming/literate-programming/machines/ms-dos/ file clip.zip Enjoy, Joachim -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Joachim Schrod Email: schrod@iti.informatik.th-darmstadt.de THD Literate Programming Archive, maintainer ftp.th-darmstadt.de:/pub/programming/literate-programming/ ================================================================================ Archive-Date: Tue, 27 Sep 1994 08:04:41 CDT Sender: owner-litprog@SHSU.edu From: asteindl@mch2ws2.tuwien.ac.at (Alois Steindl) Reply-To: LitProg@SHSU.edu, asteindl@MCH2WS2.TUWIEN.AC.AT Subject: 2nd try: Linebreaks in FWEAVES (1.40) F90-output Date: 27 Sep 1994 12:58:15 GMT Message-ID: To: LitProg@SHSU.EDU Hello all! Since the response to my first question hasn't been overwhelming, I try it again: I am shifting slowly to f90 and try to do it together with FWEB. If I don't end my code lines with ;-s, I get really unreadable spaghetti-output from FWEAVE. Also with semicolons the linebreaks don't seem to be always correct. (just my impression) Questions: Are there some switches to control FWEAVEs linebreaking? 2nd Problem: Would it be very difficult to replace the '//'s for comments by '!'s? This would avoid some misunderstandings for Fortran-beginners. Thanks for your attention! Alois -- ___________________________________________________________________________ Alois Steindl, Tel.: +43 (1) 58801 / 5529 Inst. for Mechanics II, Fax.: +43 (1) 5875863 TU Vienna, A-1040 Wiedner Hauptstr. 8-10 Email: asteindl@mch2ws2.tuwien.ac.at ___________________________________________________________________________ ================================================================================ Archive-Date: Tue, 27 Sep 1994 16:25:06 CDT Sender: owner-litprog@SHSU.edu From: marcus@x4u2.desy.de (Marcus Speh) Reply-To: LitProg@SHSU.edu, marcus@X4U2.DESY.DE Subject: FWEB FAQ version for WWW Date: 27 Sep 1994 19:42:15 GMT Message-ID: To: LitProg@SHSU.EDU The FWEB FAQ updated 07/94, now maintained by David A. Coker (coker@astro.sunyit.edu) is now available in the formats DVI, PS, ASCII and HTML again at the Virtual Literate Programming Library on the World-Wide Web, URL http://info.desy.de/user/projects/LitProg.html in http://info.desy.de/user/projects/LitProg/fweb-faq/top.html [and ftp://ftp.desy.de/pub/faq/web/fweb/] Thanks to David for taking the FAQ over! ms -- Marcus Speh. DESY Theory & Computing, Notkestr.85, D-22603 Hamburg,Germany Phone: +49-40 8998 3753, Fax: +49-40 8994 4429, Private: +49-40 4203206 -- Email: marcus@x4u.desy.de --- WWW: http://info.desy.de/www/marcus.html --- ================================================================================ Archive-Date: Wed, 28 Sep 1994 01:13:40 CDT Sender: owner-litprog@SHSU.edu From: kap1@wimpy.cpe.uchicago.edu (Dietrich J. Kappe) Reply-To: LitProg@SHSU.edu, kap1@WIMPY.CPE.UCHICAGO.EDU Subject: tonu: a simple pre-literate to literate converter Message-ID: Date: Wed, 28 Sep 1994 07:01:18 GMT To: LitProg@SHSU.EDU What follows is a simple tool that converts a marked up source code file into a nuweb format file. It is trivial to get the program to produce output for other web tools. I leave that as an excercise to the reader. There follows the nuweb file. ---------snip----------------- \documentstyle[rcs,times2,9pt,fullpages]{article} \RCS$Id: tonu.w,v 1.1 1994/09/28 05:51:38 kap1 Exp $ \RCS$Date: 1994/09/28 05:51:38 $ \title{Tonu\\ Going From Pre-Literate to Literate} \author{\sl Dietrich Kappe} \date{(Version \RCSId )\\ Generated on \RCSDate} \begin{document} \pagestyle{myheadings} \markboth{tonu}{\today} \maketitle \tableofcontents \section{Introduction} I often convert pre-literate programs to literate ones. By cutting and pasting like a madman, I reorganize the source into the beginnings of a web-like document. It occurred to me that walking through the code and marking up which portions belonged in which scraps, was a far more efficient process. All I needed now was a tool that would read my marked up copy and produce a web-like document from it. I chose perl as the implementation language, both for its excellent text handling capabilities and its wide availability. I chose {\tt nuweb} as the Literate Programming tool, because it is what I use. Marking up a source text is best explained by providing a simple example. The following is the original source text: @o example.c @{ #include main() { printf("Hello with an @@ sign.\n"); } @} Here is a markup of the file: @o example.tonu @{ <> #include <<>> <
> main() { <> printf("Hello with an @@ sign.\n"); <<>> } <<>> @} When run through the {\tt tonu} processor, we get the following: @o example.w @{ @@d Includes for example.c @@{ #include @@} @@d Print the message @@{ printf("Hello with an @@@@ sign.\n"); @@} @@d Main program @@{ main() { @@ } @@} @@o example.c @@{ @@ @@
@@} @} Scrap delimiters begin in the first column of a line with \verb|<<|, followed by the scrap name, and ended by a \verb|>>|. The delimiter must fit on one line. The end of scrap delimiter is \verb|<<>>| at the beginning of a line, and ends the innermost (or most recently opened) scrap. When a scrap is ended, it is output as a {\tt nuweb} format scrap. Note that the \verb|@@| signs are escaped for \{\tt nuweb}. \subsection{File Names} {\tt Tonu} operates by taking a file name from the command line, and writing the converted file to standard out. The \verb|@@o| scrap name comes from the name of the original file. \section{The Algorithm} I decided to use a primitive PDA for this job. As we read in lines, we push them onto a stack. When we run into a beginning of scrap marker, we push its location in the line stack onto a separate marker stack. When we run into a end of scrap mark, pop the last marker off the marker stack and use it to index to print out the top of the line stack from that index on. Finally we pop off that same portion of the line stack, and replace it with a {\tt nuweb} reference to that scrap. @d Push them lines @{ while () { s/\@@/\@@\@@/g; # safety first to escape nuweb special character push(@@lines,$_); # push line onto stack if (m/^<<.+>>/) { # begin scrap (ignore trailing garbage after >>) push(@@markers,$#lines); # save begin marker } elsif (m/^<<>>/) { # end of scrap (ignore trailing garbage) @ @ } } @ @ @} If we don't have any markers on the marker stack, that means we have no open scraps. Thats a fatal error. Otherwise, \verb|$marker| contains the line stack location of the beginning of scrap tag. @d Pop off marker and handle error @{ $marker = pop(@@markers); if (!defined($marker)) { # no open scrap print STDERR "No open scrap to be closed at line ",$#lines+1, " in file $prog.\n"; exit(1); # No point in going on } @} We want to name the scrap we are printing out. That information, the name, is buried in the beginning of scrap marker. We have to extract it, print a nuweb style scrap header with it, substitute a nuweb style reference into its original location, and wipe out the rest of the stack following it. Piece of cake, eh? In perl it is. Note that we do not print out the last line, as that contains the end of scrap marker. @d Print out the scrap and substitute a reference for it @{ $lines[$marker] =~ m/^<<(.+)>>/; # get the name $name = $1; print "\@@d $name\n\@@{\n"; # header for ($i=$marker+1;$i < $#lines;$i++) { # don't do the last, end of scrap line print $lines[$i]; # print out the scrap } print "\@@}\n\n"; # close scrap # replace with ref and wipe the stack $lines[$marker] = "\@@<" . $name . "\@@>\n"; # replace it with the ref $#lines = $marker; # wipe out the rest of the stack @} When we reach an end of file, we verify that all scraps were closed, by checking that the marker stack is empty, then print out the line stack inside of the \verb|@@o| scrap. @d Verify that all scraps were closed @{ if ($#markers > -1) { # the marker stack is not empty print STDERR "There were ", $#markers +1, " open scraps in file ", $prog, ".\n"; exit(1); } @} @d Print out file scrap @{ print "\@@o $prog\n\@@{\n"; # print the header for $elt (@@lines) { print $elt; # output the lines } print "\@@}\n\n"; # close scrap @} \section{The Command Line} Now for the usual business of grabbing command line arguments, opening files, and printing out a usage message. @d Try to open the file and set the file name @{ $usage = "Usage: tonu filename\n"; if ($#ARGV != 0) { # we want an array of one file name print STDERR $usage; exit(1); } if (!open(PROG,$ARGV[0])) { # unsuccessful open print STDERR "Couldn't open file $ARGV[0]. $!\n"; exit(1); } # set the file name $ARGV[0] =~ m,([^/]+)$,; # get all but path $prog = $1; # set the file name to that @} \section{Tonu: the File} Lets put it all together in one happy Perl script. @o tonu @{#!/usr/local/bin/perl @ @ exit(0); @} \section{Conclusions} The program isn't perfect but provides me with a useful tool for converting pre-literate programs into literate ones. I release this code into the puiblic domain in the hopes that someone will find it useful, and perhaps improve upon it. \section{Index} \subsection{Files} @f \subsection{Macros} @m \end{document} --------------snip------------ -- Dietrich "The man who squared the SPC" Kappe kap1@wimpy.cpe.uchicago.edu -finger for PGP public key- ================================================================================ Archive-Date: Wed, 28 Sep 1994 23:03:18 CDT Sender: owner-litprog@SHSU.edu From: kap1@wimpy.cpe.uchicago.edu (Dietrich J. Kappe) Reply-To: LitProg@SHSU.edu, kap1@WIMPY.CPE.UCHICAGO.EDU Subject: tonu: the perl source Message-ID: Date: Thu, 29 Sep 1994 04:48:04 GMT To: LitProg@SHSU.EDU As I've had several requests for the resultant perl code, here it is: -----------snip----------- #!/usr/local/bin/perl $usage = "Usage: tonu filename\n"; if ($#ARGV != 0) { # we want an array of one file name print STDERR $usage; exit(1); } if (!open(PROG,$ARGV[0])) { # unsuccessful open print STDERR "Couldn't open file $ARGV[0]. $!\n"; exit(1); } # set the file name $ARGV[0] =~ m,([^/]+)$,; # get all but path $prog = $1; # set the file name to that while () { s/\@/\@\@/g; # safety first to escape nuweb special character push(@lines,$_); # push line onto stack if (m/^<<.+>>/) { # begin scrap (ignore trailing garbage after >>) push(@markers,$#lines); # save begin marker } elsif (m/^<<>>/) { # end of scrap (ignore trailing garbage) $marker = pop(@markers); if (!defined($marker)) { # no open scrap print STDERR "No open scrap to be closed at line ",$#lines+1, " in file $prog.\n"; exit(1); # No point in going on } $lines[$marker] =~ m/^<<(.+)>>/; # get the name $name = $1; print "\@d $name\n\@{\n"; # header for ($i=$marker+1;$i < $#lines;$i++) { # don't do the last, end of scrap line print $lines[$i]; # print out the scrap } print "\@}\n\n"; # close scrap # replace with ref and wipe the stack $lines[$marker] = "\@<" . $name . "\@>\n"; # replace it with the ref $#lines = $marker; # wipe out the rest of the stack } } if ($#markers > -1) { # the marker stack is not empty print STDERR "There were ", $#markers +1, " open scraps in file ", $prog, ".\n"; exit(1); } print "\@o $prog\n\@{\n"; # print the header for $elt (@lines) { print $elt; # output the lines } print "\@}\n\n"; # close scrap exit(0); ---------------snip----------- -- Dietrich "The man who squared the SPC" Kappe kap1@wimpy.cpe.uchicago.edu -finger for PGP public key- ================================================================================ Archive-Date: Thu, 29 Sep 1994 06:05:06 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: Nonliterate (Illiterate :-) to literate Date: 25 Sep 1994 03:35:03 GMT Message-ID: <362r57$qno@lowell.bellcore.com> CC: To: LitProg@SHSU.EDU In article , Dietrich J. Kappe wrote: >Also, whats the attitude on including makefiles and configuration >scripts in the nuweb document. Value of this practice grows with size and complexity of makefiles and configuration stuff. Can also be valuable for distribution; sometimes you can ship a single file. >And how about manual pages? >I've tried generating manual pages inside of the nuweb document, but >documenting documentation makes my head hurt. I have a new trick that seems to work well for this, but I'm not sure you can use it with nuweb. The trick is to put man pages, reference manuals, and the like in code chunks with special names (for example, names matching `refman:*'). The troff goes into these chunks, and I use noweave -filter elide 'refman:*' to make these chunks magically disappear when creating a source-code document. (The manual I just extract with notangle.) I'm not wildly ecstatic over this strategy, but it works much better than anything else I've tried. Norman ================================================================================ Archive-Date: Thu, 29 Sep 1994 10:22:40 CDT Sender: owner-litprog@SHSU.edu From: al2s@kelvin.seas.Virginia.EDU (Arie Lapidot) Reply-To: LitProg@SHSU.edu, al2s@KELVIN.SEAS.VIRGINIA.EDU Subject: Looking for a C/C++ Programmer Message-ID: Date: Thu, 29 Sep 1994 14:36:08 GMT To: LitProg@SHSU.EDU ************************************************************************* *** *** *** ARE YOU A C / C++ PROGRAMMING GENIUS ??? *** *** *** ************************************************************************* So, you want to be a software "Star"? Well have I got the right place for you! If you posses the following skills, please read on: o C and C++ programming skills (4+ years) o Strong mathematical and analytical background o BS (or higher) in mathematics, CS, or engineering If you do not possess the following traits, please do not bother to respond: o Ability to work on a team and take constructive criticism o Ability to work with minimal specifications o Ability to complete projects on time o Willing to relocate to Charlottesville, Virginia o Are a hard worker who is self motivated and self disciplined I am posting this ad for a friend, please e-mail me a resume and I will forward all replies to him. Thank you very much and good luck. ================================================================================ Archive-Date: Fri, 30 Sep 1994 17:32:06 CDT Sender: owner-litprog@SHSU.edu Subject: NOWEB cross-referencing for TeX (And perl variable identifying) Message-ID: <36glk5$4c7@m1.cs.man.ac.uk> From: partingr@p4.cs.man.ac.uk (Robert Partington) Reply-To: LitProg@SHSU.edu, partingr@P4.CS.MAN.AC.UK Date: 30 Sep 1994 09:26:29 GMT To: LitProg@SHSU.EDU Have any of the people I mailed this too actually used it yet? I'd like some feedback if possible, just to see if it's worth my mailing out bug fixes and the several updates I've written since then. In addition, I have a C program that parses perl programs and creates an index of identifiers used in the program. It creates a file with a specific format and I have a perl post processor that converts this file into TeX. Other formatters should be easy to write. The program is still a bit rough round the edges and it has some limitations, but if anyone would like to test/hack it, then mail me and I'll mail you a copy quick smartish. The IO part is seperate from the parsing part so it can be easily adapted for different forms of input (there are 2 versions- one for plain perl files, the other for noweb markup files-both use the same code to parse the lines of code.) If anyone wants a copy of this, or anything else, or to discuss what I want to add to my program (proper indexes, relative typesetter independence) then mail me. (As well as bug reports...) Rob Partington --- partingr@cs.man.ac.uk (I can be reached from E.S.Partington@dcs.hull.ac.uk if *absolutely* necessary) -- Robert Partington partingr@cs.man.ac.uk Computer Science, 3rd year 25MHz ARM3,80MB HD,4MB A5000 running RO3.11 - but no Settlers or Emacs! 7MHz 68000,40MB HD,7MB A2000 running WB2.1 - Settlers *and* Emacs. Joy. "Hi, my name's Rob - and I'm an emacholic." ================================================================================ Archive-Date: Fri, 30 Sep 1994 18:10:47 CDT Sender: owner-litprog@SHSU.edu Subject: Re: NOWEB cross-referencing for TeX (And perl variable identifying) From: James McCarron Reply-To: LitProg@SHSU.edu, jmccarro@JEEVES.UWATERLOO.CA To: LitProg@SHSU.edu, partingr@t9.cs.man.ac.uk Date: Fri, 30 Sep 1994 19:10:29 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Message-ID: <94Sep30.191037edt.63710-1@jeeves.uwaterloo.ca> > > Have any of the people I mailed this too actually used it yet? mailed WHAT to...? :-) > I'd like some feedback if possible, just to see if it's worth my > mailing out bug fixes and the several updates I've written since then. > > In addition, I have a C program that parses perl programs and creates > an index of identifiers used in the program. It creates a file with > a specific format and I have a perl post processor that converts this > file into TeX. Other formatters should be easy to write. The program is > still a bit rough round the edges and it has some limitations, but if > anyone would like to test/hack it, then mail me and I'll mail you a > copy quick smartish. The IO part is seperate from the parsing part so it > can be easily adapted for different forms of input (there are 2 versions- > one for plain perl files, the other for noweb markup files-both use the > same code to parse the lines of code.) > > If anyone wants a copy of this, or anything else, or to discuss what I > want to add to my program (proper indexes, relative typesetter independence) > then mail me. (As well as bug reports...) > Hi: This sounds interesting. I am looking for literate prog. tools for Perl, so if you have something, I would love to try it, and I will let you know how it goes. So, if you would be so kind, please do send this to me. Thanks very much in advance... James -- James McCarron Department of Pure Mathematics Internet: jmccarron@jeeves.uwaterloo.ca University of Waterloo Waterloo, Ontario CANADA N2L 3G1 ~ ~ ~ ~ ~ ~ ================================================================================ Archive-Date: Fri, 30 Sep 1994 18:39:38 CDT Sender: owner-litprog@SHSU.edu From: schrod@iti.informatik.th-darmstadt.de (Joachim Schrod) Reply-To: LitProg@SHSU.edu, schrod@ITI.INFORMATIK.TH-DARMSTADT.DE Subject: Contents of the LitProg Archive (monthly posting) Date: 1 Oct 1994 00:20:05 +0100 Message-ID: <36i6f5INN7lt@spice.iti.informatik.th-darmstadt.de> To: LitProg@SHSU.EDU # literate-programming/Contents 04 May 94 -*- Indented-Text -*- #------------------------------------------------------------ The material available from the Literate Programming Archive is categorized, each category is put in a directory tree. While this structure (which is described in the README files) supports browsing, the need for quick access to a specific Literate Programming tool remains. This file shall assist you in this need. It presents the *WEB systems and tools available, in an alphabetic order, and names the directory where you can find it. In addition to the systems mentioned below, the LitProg Archive features texts in the directory Documentation: FAQs, papers, and an extensive bibliography in BibTeX format. Since this file is updated manually, I cannot guarantee that it's up to date. Send reports about inconsistencies of description and reality to Joachim Schrod . SYSTEM DIRECTORY REMARK ------ --------- ------ APLWEB apl w/o source, but under the GPL! [this was an error by the author] AWEB ada/aweb not supported any more cfa Tools Change File Analyzer CLiP any language, any formatter, any -- source independent wordprocessor. Hypertext -- for DOS machines/ms-dos integration possible -- for VMS machines/vms CWEB (Levy/Knuth) C++, ANSI C, K&R C -- source c.c++ -- Amiga port machines/amiga -- Atari TOS port machines/atari-tos an old version [2.4 p5b] -- DOS port machines/ms-dos -- Mac port machines/mac -- Mac CTANGLE machines/mac Impact: CTANGLE & Apple-Events cweb style c.c++ CWEB programs as LaTeX documents CWEB (van Leeuwen) c.c++ CWEB for ANSI C, in ANSI C CWEB (Schrod) not supported any more send me mail if you have historic interests :-) Funnelweb independent FWEB multi-lingual WEB -- source fweb -- DOS port machines/ms-dos -- MS-Windows port machines/ms-windows Impact machines/mac CTANGLE & Apple-Events Knit pascal not supported any more lit2x independent [????] from Glasgow LPW machines/mac Literate Programming Workshop CAVEAT: Shareware! MapleWEB spiderweb MWEB (Schrod/Detig) modula-2 not supported any more MWEB (Sewell) modula-2 not supported any more noweb uses the UNIX toolbox paradigm -- source independent -- DOS port machines/ms-dos nuweb lean system, written in C -- source independent -- Amiga port machines/amiga -- DOS port machines/ms-dos ProTex independent WEB system based on TeX RWEB spiderweb for Reduce smlweb spiderweb for Standard ML SpiderWEB WEB generator, in awk -- source spiderweb -- DOS port machines/ms-dos -- OS/2 port machines/os2 -- Mac port machines/mac TIE Tools Change File Merger WEB The basis, it started with it... -- source pascal -- DOS port machines/ms-dos WEB mode Tools for GNU Emacs WinWordWEB machines/ms-dos WEB with Word for Windows Literate Documentation Systems ------------------------------ (or LitDoc systems for short): Tools that do not support refinements but enable the use of usual document preparation systems (e.g., LaTeX) in program comments. cnoweb c.c++ doc package /pub/tex/latex CAVEAT: No LitProg A directory! oriented towards TeX code; part of the LaTeX2e distrib. MAKEPROG independent is here for my own convenience :-) SchemeWEB lisp wbuild /pub/X11/other/fwf CAVEAT: No LitProg A directory! creating new X widget classes -- The Literate Programming Archive, or LitProg Archive for short, resides at ftp.th-darmstadt.de [130.83.55.75], directory pub/programming/literate-programming/. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Joachim Schrod Email: schrod@iti.informatik.th-darmstadt.de Literate Programming Archive, maintainer Technical University of Darmstadt, Germany ================================================================================ Archive-Date: Fri, 30 Sep 1994 18:39:42 CDT Sender: owner-litprog@SHSU.edu From: schrod@iti.informatik.th-darmstadt.de (Joachim Schrod) Reply-To: LitProg@SHSU.edu, schrod@ITI.INFORMATIK.TH-DARMSTADT.DE Subject: Diff to Contents of the LitProg Archive (monthly posting) Date: 1 Oct 1994 00:20:10 +0100 Message-ID: <36i6faINN7lv@spice.iti.informatik.th-darmstadt.de> To: LitProg@SHSU.EDU There were no changes in the last month. -- The Literate Programming Archive, or LitProg Archive for short, resides at ftp.th-darmstadt.de [130.83.55.75], directory pub/programming/literate-programming/. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Joachim Schrod Email: schrod@iti.informatik.th-darmstadt.de Literate Programming Archive, maintainer Technical University of Darmstadt, Germany ================================================================================ Archive-Date: Fri, 30 Sep 1994 19:11:01 CDT Sender: owner-litprog@SHSU.edu Subject: Makefile in cweb file -- Whats the best way? Message-ID: <1994Sep30.131924.11069@afterlife.ncsc.mil> From: jsrobin@afterlife.ncsc.mil (John S. Robinson) Reply-To: LitProg@SHSU.edu, jsrobin@AFTERLIFE.NCSC.MIL Date: Fri, 30 Sep 1994 13:19:24 GMT To: LitProg@SHSU.EDU The subject line says it all. Since cweb has a tendency to remove tabs and to insert #line statements, it seems a bit difficult to specify Makefile definitions after "@(Makefile@>=" directives. Do any users have any suggests, or perhaps I should use another tool. I am usually programming in C++. -- ------------------------------------------------------------------------ Friends don't let friends do DOS. ================================================================================ Archive-Date: Fri, 30 Sep 1994 21:07:18 CDT Sender: owner-litprog@SHSU.edu Subject: comp.programming.literate FAQ Message-ID: From: thompson@sun1.coe.ttu.edu Date: 30 Sep 1994 01:35:16 GMT Reply-To: LitProg@SHSU.edu, thompson@sun1.coe.ttu.edu To: LitProg@SHSU.EDU Archive-name: literate-programming-faq Last-modified: 1994/08/23 Version: 1.1.10 Welcome to the Literate Programming Frequently Asked Questions List ------------------------------------------------------------------- This version was created Tuesday, August 23, 1994, and should considered stale after 90 days. Information contained in this document is the best available at preparation. The original file was dated October 15, 1993 (just for historical purposes). Disclaimer: "This FAQ is presented with no warranties or guarantees of ANY KIND including correctness or fitness for any particular purpose. The author of this document has attempted to verify correctness of the data contained herein; however, slip-ups can and do happen. If you use this data, you do so at your own risk." Copyright 1993, 1994 David B. Thompson. All rights reserved worldwide. Permission is granted to copy this document for free distribution so long as it remains intact and unmodified. For other arrangements, contact the author/maintainer via email: thompson@sun1.coe.ttu.edu. What's New? ----------- + Add Fold2Web entry. + Correct noweb.el entry. (Thanks Dominique!) + Update nuweb.el entry. + Update SchemeWEB entry. + Update WWW and literate programming entry. + Update c2cweb entry. = ====================================================================== * Introduction or "What's this all about?" ------------------------------------------ This document is for new and experienced users of literate programming tools. The purpose is to explain the concept of literate programming and to provide a resource for locating files of interest to literate programmers and those interested in literate programming. The Literate Programming (LitProg) Frequently Asked Questions (FAQ) list is maintained by Dave Thompson, who can be reached at: thompson@sun1.coe.ttu.edu * Preferred mailing address for FAQ related comments/questions. wqdbt@ttacs1.ttu.edu * Forwarded to my pc. Comment and constructive criticism is welcome. Direct flames to /dev/null (or > nul if you're a msdos user! ;-) If you find an error, please report it. I'm particularly interested in establishing the locations of generally available literate programming tools. If you are the author of such a tool and wish to have it included in this list, please send email. Please note this is a work-in-progress. It is *not* complete, and probably will not be complete for some months. Nevertheless, the information contained herein may be useful to some. Use it as it is intended. - ---------------------------------------------------------------------- - Typography ------------ Major sections of the FAQ are divided by double lines (====). Minor sections and other divisions are separated by single lines (----). Major topics use a "* " as a leader. Minor topics use a "- " as a leader. This should simplify searching for topics. = ====================================================================== Table of Contents: ------------------ * Introduction, or "What's this all about?" - Typography * How do I get the FAQ? - Literate Programming FAQ - FWEB FAQ * Is there a newsgroup? (The comp.programming.literate newsgroup) * What internet nodes are of interest to literate programmers? * What is literate programming? * How do I begin literate programming? * What literate programming tools are available and where are they? - APLWEB - AWEB - CLiP - CWEB - FunnelWeb - FWEB - IMPACT - lit2x - Literate Programmer's Workshop (LPW) - MapleWEB - MWEB (Schrod/Detig) - MWEB (Sewell) - noweb - nuweb - ProTeX - RWEB - SchemeWEB - Spidery WEB - WEB - WinWordWEB * Are there other tools I should know about? - C2LaTeX - c2cweb - c2man - cnoweb - Fold2web - FunnelWeb mode - noweb.el - nuweb.el - TIE - Web mode * What other resources are available? - World Wide Web - TeX Resources - Virtual Coursework * Are there any code examples? - Examples included with developer's tools - Cameron Smith's KR-CWEB - Stanford GraphBase * Bibliographies. * How to anonymously ftp. * Acknowledgements. * End notes. = ====================================================================== * How do I get the FAQ? ----------------------- - Literate Programming FAQ -------------------------- You have many ways to get a current copy of this FAQ. One is to use anonymous ftp (if you don't know how, see a later section in this FAQ) to connect to one of the Comprehensive TeX Arvchive Network (CTAN) sites or the Literate Programming Archive and retrieve a copy of the file. Open an ftp connection to one of the CTAN sites and retrieve the file: help/LitProg-FAQ (For more information on CTAN and the literate programming archive, see the section below entitled "Internet Nodes of Interest to Literate Programmers.") An alternative is to use the fileserver at Sam Houston State University (SHSU). Send a message to FILESERV@SHSU.EDU and include in your message: SENDME LITPROG.FAQ The file server will forward a copy of the file to you via email. - ---------------------------------------------------------------------- - FWEB FAQ ---------- Marcus Speh maintains the FWEB FAQ. The current version number is 1.29. It can be retrieved in the same way as this FAQ; either by anonymous ftp or through the SHSU file server. On the SHSU server, the file name is FAQ.FWEB. Invoke your ftp software, open a connection to NIORD.SHSU.EDU [192.92.115.8], attach to the directory FAQ, and transfer the file FAQ.FWEB. Alternatively, send a message to the file server, FILESERV@SHSU.EDU, and include the following text in a one line message: SENDME FAQ.FWEB The file server will send the current version of the file via email. The FWEB FAQ exists in various formats, including HyperText (see other resources below). In Europe, the complete distribution can also be obtained from ftp.desy.de [131.169.10.115] in directory /pub/faq/web/fweb/. It is also available from the literate programming archive (LPA) in the directory LPA/Documentation/faq/fweb (see the references to LPA below for more information). Also, Marcus Speh is looking for someone willing to take over the FWEB FAQ. The text of his email message follows... "Please add to the FWEB FAQ the note that I am looking for someone to take the maintenance of the FAQ over - I am ready to assist in any way whatsoever, including tons of mail, notes for v1.29->v1.30, Texinfo sources, a WWW server and Hypertextification etc." If you're interested, send mail to marcus@x4u2.desy.de and express your willingness to serve. = ====================================================================== * Is there a newsgroup? ----------------------- One of the most important resources is the literate programming newsgroup, comp.programming.literate. You can read this newsgroup using your standard reader. Altenatively, the newsgroup is gated to a mailing list hosted by George Greenwade and Sam Houston State University. You can subscribe by sending mail to the list-server, LISTSERV@SHSU.EDU, and include in the message one line of text: SUBSCRIBE LITPROG "your name in quotes" The list is unmoderated; messages sent to litprog@shsu.edu are automatically distributed to all subscribers and cross-posted to comp.programming.literate. Archives of the mailing list and newsgroup are maintained on niord.shsu.edu [192.92.115.8] in the directory litprog. = ====================================================================== * 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. The CTAN sites are: ftp host IP CTAN root Institution and Sponsor ------------------------------------------------------------------------- ftp.tex.ac.uk 134.151.79.32 pub/archive Aston Univ./UK TeX U.G. ftp.dante.de 129.206.100.192 soft/tex DANTE e.V. ftp.shsu.edu 192.92.115.10 tex-archive Sam Houston State Univ. Other nodes and directories of interest include: Node: niord.shsu.edu [192.92.115.8] Directory: various (do some snooping!) Notes: Has a gopher server. Node: ftp.desy.de [131.169.10.115] Directory: pub/web. Various documents, samples, and the FWEB FAQ. Notes: Has a www server, http://info.desy.de:80/ = ====================================================================== * What is Literate Programming? ------------------------------- Literate programming is the combination of documentation and source together in a fashion suited for reading by human beings. In fact, literate programs should be enjoyable reading, even inviting! (Sorry Bob, I couldn't resist!) In general, literate programs combine source and documentation in a single file. Literate programming tools then parse the file to produce either readable documentation or compilable source. The WEB style of literate programming was created by D.E. Knuth during the development of his TeX typsetting software. All the original work revolves around a particular literate programming tool called WEB. Knuth says: The philosophy behind WEB is that an experienced system programmer, who wants to provide the best possible documentation of his or her software products, needs two things simultaneously: a language like TeX for formatting, and a language like C for programming. Neither type of language can provide the best documentation by itself; but when both are appropriately combined, we obtain a system that is much more useful than either language separately. The structure of a software program may be thought of as a web that is made up of many interconnected pieces. To document such a program we want to explain each individual part of the web and how it relates to its neighbours. The typographic tools provided by TeX give us an opportunity to explain the local structure of each part by making that structure visible, and the programming tools provided by languages such as C or Fortran make it possible for us to specify the algorithms formally and unambigously. By combining the two, we can develop a style of programming that maximizes our ability to perceive the structure of a complex piece of software, and at the same time the documented programs can be mechanically translated into a working software system that matches the documentation. Another author (Eric W. van Ammers) wrote me a short article treating his opinions on literate programming. The text follows: First observation on LP About 90% of the disussion on this list is about problems with applying some WEB-family member to a particular programming language or a special documentation situation. This is ridiculous, I think. Let me explain shortly why... Lemma 1: I have proposed for many years that programming has nothing to do with programming langauges, i.e. a good programmer makes good programs in any language (given some time to learn the syntax) and a bad programmer will never make a good program, no matter the language he uses (today many people share this view, fortunately). Lemma 2: Literate Programming has (in a certain way not yet completely understood) to do with essential aspects of programming. Conclusion 1: A LP-tool should be independent of programming language. Lemma 3: It seems likely that the so called BOOK FORMAT PARADIGM [ref. 1] plays an important role in making literate programs work. Lemma 4: There are very many documentation systems currently being used to produce documents in the BOOK FORMAT. Conclusion 2: A LP-tool should be independent of the documentation system that the program author whishes to use. My remark some time ago that we should discuss the generic properties of an LP-tool was based on the above observation. References: [1] Paul W. Oman and Curtus Cook. Typographical style is more than cosmetic. CACM 33, 5, 506-520 (May 1990) Second observation on LP The idea of a literate program as a text book should be extendend even further. I would like to see a literate program as an (in)formal argument of the correctness of the program. Thus a literate program should be like a textbook on mathematicics. A mathematical textbook explains a theory in terms of lemma and theorems. But the proofs are never formal in the sense that they are obtaind by symbol manipulation of a proof checker. Rather the proofs are by so called "informal rigour", i.e. by very precise and unambiguous sentences in a natural language. Eric W. van Ammers Department of Computer Science Wageningen Agricultural University Dreijenplein 2 E-mail: ammers@rcl.wau.nl 6703 HB Wageningen voice: +31 (0)8370 83356/84154 The Netherlands fax: +31 (0)8370 84731 = ====================================================================== * How do I begin literate programming? -------------------------------------- A recommended book is D.E. Knuth's collection of articles (1992) "Literate Programming," Center for the Study of Language and Information, Stanford University, ISBN 0-937073-80-6 (pbk). This book gives insight into Knuth's thoughts as he developed the web system of literate programming (and TeX for typesetting). It does not document methods for literate programming. A recommended book is Wayne Sewell's (1989) "Weaving a Program: Literate Programming in WEB," Van Nostrand Reinhold, ISBN 0-442-31946-0 (pbk). This book focuses on using Knuth's web system. Some talk exists in the newsgroup/mailing list for a Usenet University course in literate programming. I'm sure discussion of this topic will be welcomed. If you are interested, please participate. = ====================================================================== * What literate programming tools are available and where are they? ------------------------------------------------------------------- A significant number of tools for literate programming are available. Most have been ported from their original systems, so support multiple computer platforms. If you are the developer of such a tool, and would like to make the software freely available, please send me email and I'll reply with a form (like those below) for you to fill in. (Or short-circuit the process and kludge a form from below. :-) - ---------------------------------------------------------------------- - APLWEB -------- Developer: Christoph von Basum Version: Unknown Hardware: MSDOS Languages: IBM APL2 and STSC APL Formatter: Plain TeX Availability: Anonymous ftp from: LPA:/apl watserv1.uwaterloo.ca:/languages/apl/aplweb Readme: Unknown Description: None available. Support: Unknown Note: The status of this particular package is unknown. - ---------------------------------------------------------------------- - AWEB ------ Developer: Unknown Version: Unknown Hardware: Unknown Languages: Ada Formatter: Unknown Availability: Anonymous ftp from: LPA:/ada/web Readme: Unknown Description: None available Support: Not supported. - ---------------------------------------------------------------------- - CLiP ------ Developer: E.W. van Ammers and M.R. Kramer Version: Unknown Hardware: Vax/VMS, Unix, and MS-DOS Languages: Any programming language. Formatter: Any formatter (TeX, LaTeX, Troff, Runoff, etc) or any wordprocessor including WYSIWYG systems (Word Perfect, Win Word, Ami Pro, Word, etc.) Availability: Anonymous ftp from: sun01.info.wau.nl:/CLIP/ms_dos MS-DOS version sun01.info.wau.nl:/CLIP/vax_vms VAX/VMS version CTAN:/web/clip LPA:/machines/ms-dos LPA:/machines/vax Readme: With bundle above Description: CLiP does not use explicite commands to perform the extraction process. Rather it recognizes pseudostatemens written as comments in the programming language in question. CLiP distinguishes pseudostatments from ordinary comments because the former comply with a a particular style. This style can be adjusted to suit virtually any programming language. The CLiP approach to LP makes the system extremely versatile. It is independent of programming language and text processing environment. We designed CLiP to be compatible with hypertext systems as well but we have not yet experimented with this form of documentation. Features: + CLiP imposes virtually no limitations on the text-processing system used to produce the documentation. If the text-processor supports these items you can + structure the documentation according to your own taste. + include drawings, pictures, tables etc. + disclose your documentatio my means of X-ref tables, Indexes, Table of contents, Table of tables, Table of figures, etc. + typeset the documented code. + Extracts any number of modules from a maximum of 64 source files. + No pretty-printing. Code from the source files is copied "as is" to the module. + Appearance of code segments in the documentation matches those of the modules to ease the identification of code segements. + Supports partially specified data types. + Comprehensive user manual (preliminary version) and technical description. - No automatic generation of a X-ref table for program identifiers. Support: Bugs, problems and assistance by e-mail: ammers@rcl.wau.nl - ---------------------------------------------------------------------- - CWEB ------ Developer: Silvio Levy and D.E. Knuth Version: 3.0 Hardware: Unix systems (dos and amiga ports available) Languages: C and C++ Formatter: Plain TeX and LaTeX. Availability: Anonymous ftp from: labrea.stanford.edu:/pub/cweb LPA:/c.c++ CTAN:/web/c_cpp/cweb DOS version in CTAN:/web/c_cpp/cwb30p8c DOS version in LPA:/machines/ms-dos Amiga version CTAN:/web/c_cpp/AmigaCWEB Mac port of CTANGLE in LPA:/machines/mac LaTeX support in LPA:/c.c++ Readme: Bundled with above Description: No description provided. Support: Bugs to levy@math.berkeley.edu Note: A fork of CWEB 3.x was developed by Marc van Leeuwen which implements several changes to CWEB. It is available for anonymous ftp from ftp.cwi.nl:pub/cweb. The principle changes are: - Scans include files for typedef definitions - Grammar and formatting rules are well separated, allowing for run-time selection of a rule set (via command line option) - New manual. - ---------------------------------------------------------------------- - 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. - ---------------------------------------------------------------------- - FWEB ------ Developer: John A. Krommes Version: 1.30a (1.40 for the experienced, patient, and brave) Hardware: Unix, VMS, and DOS platforms (anything with ANSI C) Languages: C, C++, Fortran-77, Fortran-90, Ratfor, TeX; also, a language-independent mode. Formatter: Plain TeX and LaTeX. Availability: Anonymous ftp from: ftp.pppl.gov:/pub/fweb CTAN:/web/fweb LPA:/fweb DOS version in LPA:/machines/ms-dos Readme: In bundle with above. Description: It also has a well-developed user's manual and its own FAQ (see above). Beginning with 1.40, documentation is maintained in gnu texinfo format. It runs on most platforms: VMS, PC, UNIX, and pretty much anything that the GNU C compiler (GCC) is supported for. Features: + Processes multiple languages during a single run (so one can mix C and Fortran, for example). + Language-independent mode (v1.40). + Ability to turn off pretty-printing (v1.40). + Built-in Ratfor translator. + Built-in macro preprocessor (closely follows ANSI C, with extensions). + A style file that allows the user to adjust many parameters and behavior patterns of FWEB. + Various operator-overloading features that provide additional pretty-printing capabilities to languages such as C++ and Fortran-90. + Numerous miscellaneous features and command-line options. Support: Bug reports and suggestions to krommes@princeton.edu - ---------------------------------------------------------------------- - IMPACT -------- Developer: Timothy Larkin, from Levy/Knuth CWEB 3.1 Version: 1.0 Hardware: Macintosh; requires AppleEvents. Languages: C, C++ Formatter: TeX Availability: CTAN archives Readme: A short readme file is included in the SEA archive. Description: IMPACT implements CTangle from the Levy/Knuth CWEB 3.1. It operates as a foreground program, tangling files selected from the Mac File Picker. Or it can operate in the background, tangling files in response to odoc events sent by other applications, such as editors. Support: I welcome any reports of bugs. The product will be updated as new versions of the CWEB appear. Other features may be added as users suggest them. - ---------------------------------------------------------------------- - lit2x ------- Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/independent Readme: Unknown Description: None available Support: Unknown - ---------------------------------------------------------------------- - Literate Programmer's Workshop (LPW) -------------------------------------- Developer: Norbert Lindenberg Version: 1.1 Hardware: Apple Macintosh Languages: C++, Object Pascal & others Formatter: self-contained WYSIWYG system Availability: Anonymous ftp from: LPA:/machines/mac CTAN:/web/lpw ftp.apple.com:/pub/literate.prog Readme: With bundle above. Also comes with 38-page manual. Description: The Literate Programming Workshop is an environment for the integrated development of program source text and documentation in combined documents. It consists of a WYSIWYG word processor based on a style sheet approach, a mechanism to extract parts of the text in a document, and a project management system that handles multi-document projects. The system is designed to be used in conjunction with the Macintosh Programmer's Workshop: it prepares raw source text for the MPW compilers, accepts MPW error messages, and shows them in the context of the original documents. Automatic indexing and hypertext features allow for easy access to both source text and documentation. LPW is shareware. Support: Bugs, problems, and questions to lpw@aol.com. - ---------------------------------------------------------------------- - MapleWEB ---------- Developer: Unknown Version: Unknown Hardware: Unknown Languages: Maple Formatter: Unknown Availability: Anonymous ftp from: LPA:/maple Readme: Unknown Description: None Support: Unknown - ---------------------------------------------------------------------- - MWEB (Schrod/Detig) --------------------- Developer: Joachim Schrod Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. - ---------------------------------------------------------------------- - MWEB (Sewell) --------------- Developer: Sewell Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. - ---------------------------------------------------------------------- - noweb ------- Developer: Norman Ramsey Version: 2.6 Hardware: Unix and DOS platforms. Languages: All programming languages. Formatter: Plain TeX, LaTeX, and HTML (Mosaic) formatters. Availability: Anonymous ftp from: CTAN:/web/noweb LPA:/independent DOS version also in LPA:/machines/ms-dos also bart.kean.edu:/pub/leew Last recourse, use bellcore.com:/pub/norman Readme: With bundle above. Description: noweb is designed to meet the needs of literate programmers while remaining as simple as possible. Its primary advantages are simplicity, extensibility, and language-independence. noweb uses 5 control sequences to WEB's 27. noweb now supports indexing and identifier cross-reference, including hypertext ``hot links'' courtesy of Mosaic. The simple noweb manual is only 2 pages; documenting the full power of noweave and notangle requires another 3 pages. noweb works ``out of the box'' with any programming language, and its formatter-dependent part is a 60-line nawk program. The primary sacrifice relative to WEB is the loss of prettyprinting. Support: email to the author - ---------------------------------------------------------------------- - nuweb ------- Developer: Preston Briggs: preston@cs.rice.edu Version: 0.87 Hardware: Unix systems: Sparcs, RS/6000s, HPs; (!) MSDOS and Amiga. Languages: Any programming language or combination of programming languages. Formatter: Latex Availability: Anonymous ftp from: Unix: CTAN:/web/nuweb DOS: CTAN:/web/nuweb-pc LPA:/independent Amiga: CTAN:/web/nuweb/nuweb_ami Amiga: wuarchive.wustl.edu/pub/aminet Readme: Send mail to preston@cs.rice.edu Description: A single program that takes a web file written in a combination of latex and any programming language(s) and produces a latex file that can be pretty printed and a set of files containing code for compilation/interpretation by the appropriate language processors. Strengths include speed, simplicity, multiple languages, nice indices and cross-references, latex. Doesn't require any special macros or macro files. Drawbacks: latex-dependent, no code pretty printing, harder to make indices than cweb. More good stuff: nice support for make, doesn't reformat source files, so they're easy to debug. Lots of control without too much effort. That is, it doesn't do too much! Future directions... Very little change planned, except perhaps refinements in the indexing software. Support: Hack it yourself or send e-mail to preston@cs.rice.edu - ---------------------------------------------------------------------- - ProTeX -------- Developer: Eitan Gurari Version: 1.1 (AlProTeX 1.2) Hardware: Any platform with TeX (ProTeX is written in TeX) Languages: Any language Formatter: TeX and LaTeX Availability: Anonymous ftp from: ftp.cis.ohio-state.edu : pub/tex/osu/gurari/ LPA:/independent Readme: Unknown Description: There is a book published on using ProTeX, @Book{Gurari:TLD94, author = "Eitan M. Gurari", title = "{\TeX} and {\LaTeX}: Drawing and Literate Programming", publisher = pub-MH, year = "1994", address = pub-MH:adr, bibdate = "Wed Sep 29 17:55:14 1993", acknowledgement = ack-nhfb, } Support: gurari@cis.ohio-state.edu - ---------------------------------------------------------------------- - RWEB ------ Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/reduce Readme: Unknown Description: Web generator in AWK. Support: Unknown - ---------------------------------------------------------------------- - SchemeWEB ----------- Developer: John D. Ramsdell Version: 2.1 Hardware: Unix and DOS platforms Languages: Any dialect of Lisp. Formatter: LaTeX. Availability: The Unix version is in the Scheme Repository and it is available via anonymous ftp from: cs.indiana.edu:/pub/scheme-repository/utl/schemeweb.sh LPA:/lisp CTAN:/tex-archive/web/schemeweb The DOS version is part of the PCS/Geneva Scheme system which is available via anonymous ftp from: cui.unige.ch:/pub/pcs LPA:/machines/ms-dos Readme: In bundle with above. Description: SchemeWEB is a Unix filter that allows you to generate both Lisp and LaTeX code from one source file. The generated LaTeX code formats Lisp programs in typewriter font obeying the spacing in the source file. Comments can include arbitrary LaTeX commands. SchemeWEB was originally developed for the Scheme dialect of Lisp, but it can easily be used with most other dialects. Support: Bug reports to ramsdell@mitre.org. - ---------------------------------------------------------------------- - SpideryWEB ------------ Developer: Norman Ramsey Version: Unknown Hardware: Unix and DOS platforms Languages: Most Algol-like languages, including C, Ada, Pascal, Awk, and many others. Formatter: Plain TeX and latex for text formatters. Availability: Anonymous ftp from: CTAN LPA:/spiderweb Readme: In distribution. Description: A system for building language-dependent WEBs. Spider is frozen; no further development is planned. Support: Bug reports to spider-bugs@oracorp.com. - ---------------------------------------------------------------------- - WEB ----- Developer: Donald Knuth Version: Unknown Hardware: Unknown Languages: Pascal Formatter: TeX (of course! ;-) Availability: Anonymous ftp from: LPA:/pascal Readme: Unknown Description: This is the original software that started it all. The original TeX processor was written in WEB. Support: None known. - ---------------------------------------------------------------------- - WinWordWEB ------------ Developer: Lee Wittenberg Version: Unknown Hardware: Needs Microsoft Word for Windows, v.2.x, and, of course, MS-Windows 3.x. Languages: Any programming language. Formatter: Word for Windows 2.x for text formatting and file maintenance. Availability: Anonymous ftp from: bart.kean.edu:pub/leew LPA:/machines/ms-dos World-Wide Web (WWW) Readme: WORDWEB.DOC in the downloadable package describes the system. Description: WinWordWEB is a set of a Word for Windows macros (plus a paragraph style) that provide a crude literate programming environment. The ``look and feel'' of the system is based on Norman Ramsey's noweb, but can easily be modified to suit individual tastes. Support: None. WinWordWEB was written as a prototype to see if a WYSIWYG literate programming system was possible. It is intended as a jumping off point for future work by others. However, the system is surprisingly usable as it stands, and the author is interested in hearing from users (satisfied and dissatisfied). Anyone interested in actively supporting (and improving) the product should contact the author via email. = ====================================================================== * Are there other tools I should know about? -------------------------------------------- First of all, I'll list some not-quite-literate-programming tools. Some may consider these to be pretty-printers. Others may call them literate programming tools. In any event, they don't seem to be quite in the same category as the tools listed above, so I'll include them here. - C2LaTeX --------- Developer: John D. Ramsdell Version: Unknown Hardware: Unix Languages: C Formatter: LaTeX but it's easy to change the formatter. Availability: Anonymous ftp from omnigate.clarkson.edu:/pub/tex/tex-programs/c2latex. Readme: Absent. Documentation is in the C source for c2latex. Description: C2latex provides simple support for literate programming in C. Given a C source file in which the comments have been written in LaTeX, c2latex converts the C source file into a LaTeX source file. It can be used to produce typeset listings of C programs and/or documentation associated with the program. C2latex produces LaTeX source by implementing a small number of rules. A C comment that starts at the beginning of a line is copied unmodified into the LaTeX source file. Otherwise, non-blank lines are surrounded by a pair of formatting commands (\begin{flushleft} and \end{flushleft}), and the lines are separated by \\*. Each non-blank line is formatted using LaTeX's \verb command, except comments within the line are formatted in an \mbox. Support: Send bug reports to ramsdell@mitre.org. - ---------------------------------------------------------------------- - c2cweb -------- Developer: Werner Lemberg Version: 1.4 Hardware: DOS, OS/2, Unix (gcc) - CWEB source included Languages: C, C++ Formatter: TeX Availability: Anonymous ftp from CTAN:/web/c_cpp/c2cweb Readme: In distribution. Description: c2cweb will transform plain C or C++ code into a CWEB file to get a pretty formatted output. A modified CWEAVE (which transforms the CWEB file into a TeX file, see below) is included also. Support: Werner Lemberg - ---------------------------------------------------------------------- - c2man ------- Developer: Graham Stoney Version: 2.0 patchlevel 26 Hardware: Unix, MSDOS, OS/2. Languages: C Formatter: nroff -man, texinfo (requires yacc/byacc/bison, lex/flex, and nroff/groff/texinfo/LaTeX). Availability: Anonymous ftp from ftp.wustl.edu: /usenet/comp.sources.reviewed/volume03/c2man* ftp.informatik.uni-stuttgart.de: /pub/archive/comp.sources/reviewed/c2man* Readme: See distribution. Description: The primary philosophy here is to use the programming language as far as possible to express the programmer's intentions, and to use comments only when the programming language is not sufficiently expressive. A comment can then become part of the language grammar which is recognised by a "documentation compiler". This tool parses a superset of the programming language and can automatically generate documentation in human-readable form by associating the programmer's comments with the objects in the code by their context. Support: Actively supported; mailing list available: send "subscribe c2man " (in the message body) to listserv@research.canon.oz.au. - ---------------------------------------------------------------------- - cnoweb -------- Developer: Jim Fox Version: 1.4 (January 4, 1991) Hardware: Anything with C and TeX. Languages: C Formatter: Plain TeX. Availability: Anonymous ftp from: CTAN LPA:/c.c++ Readme: Unknown, cnoweb.tex contains documentation. Description: cnoweb is as it's name describes: write C, not web. No tangling or weaving is implemented. Documentation (between standard /* */ delimiteres) is written in TeX. cnoweb provides typesetting of documentation, an table of contents of routines, and pretty-printing of C source. Support: None known. - ---------------------------------------------------------------------- - Fold2Web ---------- Developer: Bernhard Lang Version: V0.8 Hardware: MSDOS Languages: All (must allow comment lines) Formatter: LaTeX Availability: Anonymous ftp from: kirk.ti1.tu-harburg.de (134.28.41.50) /pub/fold2web/readme /pub/fold2web/fold2web.zip Readme: In distribution Description: The idea behind the Fold2Web tool is the following: A programmer can write his program source with a folding editor and later map the folded source files automatically to WEB-files. The generated WEB-files can then be modified by inserting required documentations. The advantage by starting program developement with original sources is to get short design cycles during the compile/debug steps. By using a folding editor the global structuring information can be already captured in folds during this developement phase. Fold information is typically stored in comment lines and thus will not affect the efficiency of the compile/debug design cycle. Some folding editors and a folding mode for the emacs are available (e.g. see our FUE folding editor for MSDOS machines which is a modified micro emacs. Pick it at kirk in directory /pub/fold2web). After reaching a stable version of a program source its time to convert the source file to a WEB-file and do the program documentation. Fold2Web is written to convert folded source text of any programming language to nuweb files. The folded structure is kept by mapping folds to scraps. Fold markers which differ between languages due to different ways of specifying comments can be configured for each language. Good results can also achived when given but poor documented program sources have to be modified. Such sources can be folded using a folding editor to extract the global structures. This offers a global view to the program structures and help to understand its functionality. Furthermore the program code is not affected, only comment lines are inserted. Once folded the program source can be automatically translated to a WEB document using the above tool. Support: email to lang@tu-harburg.d400.de - ---------------------------------------------------------------------- - Funnelweb Mode ---------------- Developer: Daniel Simmons Version: Unknown Availability: Litprog archives (was in email) Anonymous ftp from: ftp.imada.ou.dk Description: The other day I did a quick hack to nuweb.el as included with the nuweb distribution so as to make a funnelweb-mode.el. I've only used it briefly, and I'm sure that it can be improved quite a bit. I've been thinking about adding support for folding on sections, a pull-down menu to select macro definitions (like the recent functions posted to gnu.emacs.sources for a C function definition pull-down menu) and some kind of tags support for funnelweb. Support: Unknown - ---------------------------------------------------------------------- - noweb.el ---------- Developer: Bruce Stephens Version: Unknown. Availability: LitProg archives (in an email message). Description: This is a very simple mode I just hacked up. There's a lot wrong with it, but I thought others may be interested, even as it stands. It *requires* text properties, and assumes those used in GNU Emacs 19.22; it'll quite likely work with Lucid Emacs, but I haven't tried it. I use it with auctex8.1 and cc-mode 3.229, both of which are loaded separately (I think my emacs is dumped with them, in fact). The idea is to have one mode (which calls itself c-mode, but actually has LaTeX-mode keybindings) generally (this means that the code is hilighted nicely), and have the code chunks use a different keymap. Support: Email to bruce@liverpool.ac.uk - ---------------------------------------------------------------------- - nuweb.el ---------- Developer: Dominique de Waleffe Version: 1.99 Availability: Anonymous ftp from: LPA CTAN Description: Provides a major mode extending Auctex for editing nuweb files. Main features (in 2.0): - Edit scrap bodies in a separate buffer in a different mode (selected using emacs defaults for files, specific indication -*-mode-*-, or a buffer-local variable) - Extends Auctex commands so that nuweb is called before LaTeX, - Easy navigation on scrap definition and use points. - Now creates an imenu (C-M-mouse1) with user index entries, macro definition positions and file definition positions. Support: Email to ddw@sunbim.be - ---------------------------------------------------------------------- - TIE ----- Developer: Unknown Version: Unknown Hardware: Unknown Availability: Anonymous ftp from: LPA:/Tools Readme: Unknown Description: This software merges change files. Support: Unknown - ---------------------------------------------------------------------- - Web mode ---------- Developer: Bart Childs Version: Unknown Tools supported: web, fweb, cweb, funnelweb Availability: Anonymous ftp from ftp.cs.tamu.edu:pub/tex-web/web/EMACS.web-mode thrain.anu.edu.au:pub/web/EMACS.web-mode Description: This version works with versions 18 and 19 of Emacs to be best of my knowledge. I have cleaned up a number of documentation items ... In the same directory is wm_refcard.tex which is an edited version of the famous one to include some web-mode commands. The files limbo* are related to its use and notice that half them have an uppercase L in them for LaTeX. The setup is based upon the fact that we (I am not alone here) primarily use FWEB for C and Fortran programming. We are using version 1.40 of FWEB although John Krommes warns that it is not mature and the manual is not yet updated. The info files are! We are using LaTeX almost exclusively. That will likely change and we will revert to version 1.30 if the final form of 1.40 cannot return to the simple section numbers and avoid the HORRIBLE LATEX 0.1.7.2.4.6 type section numbers. Support: Unknown = ====================================================================== * What other resources are available? ------------------------------------- - World Wide Web ---------------- An untapped resource (by me anyway ;-) is the World Wide Web. Marcus Speh has expended considerable effort in this regard. If you're connected to WWW, then access: http://info.desy.de:80/user/projects/LitProg.html If you aren't connected to WWW, telnet to info.cern.ch and explore. You can reach Marcus' literate programming pages by typing: go http://info.desy.de:80/user/projects/LitProg.html 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 ftp.desy.de [131.169.10.115] and get the file: /pub/userWWW/projects/Announce/LitProg.txt - ---------------------------------------------------------------------- - TeX Resources --------------- Another resource of interest to literate programmers is the info-tex mailing list. If you're using (La)TeX as your typsetting system and have access to internet, then you should investigate this mailing list. Mail list service is available through the SHSU list-server. To subscribe, send a message to LISTSERV@SHSU.EDU, and include in the message one line of text: SUBSCRIBE INFO-TEX "your name in quotes" The list is unmoderated; messages sent to info-tex@shsu.edu are automatically distributed to all subscribers and cross-posted to comp.text.tex. Archives of the mailing list and newsgroup are maintained on niord.shsu.edu [192.92.115.8] in the directory info-tex. 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. - ---------------------------------------------------------------------- - Virtual Coursework -------------------- Marcus Speh plans an introductory course on Literate Programming on the Internet, part of the first semester of "Global Network Academy" [GNA], a non-profit corporation incorporated in the state of Texas, affilated with the Usenet University project. The texts/sample programs for this class will be made available via the World-Wide Web. A special room on GNA Virtual Campus will be staffed by a consultant in one to two hour shifts. Students with questions can telnet to the virtual campus and ask questions of the staff there. If you are interested in registering for the course either as a student or as a consultant, please contact marcus@x4u.desy.de. You will receive a standard reply message; no further action will be taken until June 94. Interested parties can check the hypertext notes for the completed C++ Course done in a similar fashion, at URL http://info.desy.de:80/pub/uu-gna/html/cc/index.html [Editor's note: Because of workload, Marcus requests that email inquiries be limited to a statement of interest for either a student or consultant position until June 1994.] = ====================================================================== * Are there any code examples? ------------------------------ Examples of web programs are included with the FWEB, CWEB, and noweb distributions. nuweb is written in itself. Cameron Smith converted the K&R calculator program into a literate program. It can be retrieved by anonymous ftp from: niord.shsu.edu [192.92.115.8] directory kr-cweb-sample as krcwsamp.zip or from LPA/Documentation Ross Williams has released a funnelweb example. You can retrieve this file from node ftp.adelaide.edu.au [129.127.40.3] as /pub/funnelweb/examples/except.* This file should be on CTAN as well. Lee Wittenberg has posted a few litprog examples. They are available via anonymous ftp from: bart.kean.edu:/pub/leew/samples.LP The Stanford GraphBase is a large collection of programs by Don Knuth for doing all kinds of computations and games with graphs; it is written in (Levy/Knuth) CWEB. More details in the distribution. It is available via anonymous ftp from: labrea.stanford.edu:/pub/sgb = ====================================================================== * Bibliographies ---------------- Nelson Beebe has collected an extensive bibliography treating literate programming. His work is available for anonymous ftp from ftp.math.utah.edu [128.110.198.2] in directory /pub/tex/bib as files: litprog.bib litprog.ltx litprog.twx. Although I have not verified this, LPA is an alternate source for these files. Note that they are updated frequently (Nelson says several times each week), so be sure to get a fresh copy before extensive use. Joachim Schrod indicates that these files may be updated daily and can be retrieved via anonymous ftp at LPA/documentation. = ====================================================================== * How to anonymously ftp ------------------------ Pretty much everything mentioned here is available by anonymous FTP. FAQ lists cross-posted to news.answers and rec.answers can be gotten from rtfm.mit.edu [18.181.0.24], under /pub/usenet/news.answers or under /pub/usenet/more.specific.group.name "anonymous FTP" is just a way for files to be stored where anyone can retrieve them over the Net. For example, to retrieve the latest version of the literate programming FAQ, do the following: > ftp rtfm.mit.edu /* connect to the site; message follows */ > anonymous /* type this when it asks for your name */ > /* type your address as the password */ > cd /pub/usenet /* go to the directory you want to be */ > cd comp.programming.literate /* one level down (no slash). */ > dir /* look at what's there */ > get literate-progamming-faq /* get the file; case-sensitive */ > quit /* stop this mysterious thing */ If your FTP program complains that it doesn't know where the site you want to use is, type the numerical address instead of the sitename: > ftp 18.181.0.24 /* connect with numerical address */ If you don't have ftp access, send e-mail to mail-server@rtfm.mit.edu with the single word "help" in the body of the message. Getting binary files (executables, or any compressed files) is only slightly more difficult. You need to set binary mode inside FTP before you transfer the file. > binary /* set binary transfer mode */ > ascii /* set back to text transfer mode */ FAQs and spoiler lists are generally ascii files; everything else is generally binary files. Some common extensions on binary files in archive sites are: .Z Compressed; extract with uncompress .tar.Z Compressed 'tape archive'; uncompress then untar or tar -xvf .gz or .z Gnu gzip; use gunzip (available from prep.gnu.ai.mit.edu) .sit (Mac) StufIt archive .zip Extract with Zip or Unzip .zoo Yet another archive/compress program .lhe (Amiga) ? .lzh Lha archive program. .arj (PC) Arj archive program. .exe (PC) Sometimes self-extracting archives-just execute them. .uue or .UUE Transfer as text file; use uudecode to convert to binary .hqx (Mac) BinHex format; transfer in text mode Generic help can be found in the FAQs of comp.binaries. for how to transfer, extract, and virus-check binary files. (At rtfm.mit.edu) If you can't FTP from your site, use one of the following ftp-by-mail servers: ftpmail@decwrl.dec.com ftpmail@src.doc.ic.ac.uk ftpmail@cs.uow.edu.au ftpmail@grasp.insa-lyon.fr For complete instructions, send a message reading "help" to the server. If you don't know exactly what you're looking for, or exactly where it is, there are programs and servers that can help you. For more info, send e-mail to mail-server@rtfm.mit.with with the body of the message reading send usenet/news.answers/finding-sources Thanks to Aliza R. Panitz (the "buglady") for this text. I copied it verbatim from her post on faq-maintainers with only minor modifications. = ====================================================================== * Acknowledgements ------------------ This document would not have happened without the help of many people. Among them are Marcus Speh, George Greenwade, Rob Beezer, Joachim Schrod, Piet van Oostrum, and Ross N. Williams. A special thanks to Aliza R. Panitz for the text describing how to execute an anonymous ftp for files of interest. Any omissions from these acknowledgements should be considered an act of stupidity on my part. Of course, the authors of literate programming tools mentioned above all play a vital role in the vitality of literate programming. Furthermore, participants in the comp.programming.literate newsgroup (and associated mailing list) all contributed in various fashions. Thank all of you. = ====================================================================== * End notes ----------- This document will continue to evolve. I'm planning on adding entries for additional literate programming tools and will expand the sections on examples as more examples become available. Tools I will include are WEB (the original pascal version) for starters. Others will be added as I find and document them. Omission of a particular tool should not be considered a snub in any sense--simply an error or oversight on my part. = End of File ========================================================== ================================================================================ Archive-Date: Fri, 30 Sep 1994 21:33:53 CDT Sender: owner-litprog@SHSU.edu From: j_mcarthur@BIX.com (Jeffrey McArthur) Reply-To: LitProg@SHSU.edu, j_mcarthur@BIX.COM Subject: Programmer Needed: TPW + Paradox Engine in DC Area Date: Fri, 30 Sep 1994 21:36:58 Message-ID: <36ih6f$382@news.delphi.com> To: LitProg@SHSU.EDU ATLIS Publishing is looking for programmers with experience in developing applications using Turbo Pascal for Windows and the Paradox Engine. We would prefer applications for permanent positions; but we will consider those who only want a temporary (5-6 week) position. Because of the nature of the work, development must be done on-site. Telecommuting is not an option. This position is full time. We would prefer applicants who are willing to work more than 40 hours per week. Hours are very flexible. Experience with either Turbo Pascal for Windows, or Borland Pascal 7.0 in developing applications for Windows 3.1 is necessary. This would include undestanding of the object oriented provided by Turbo/Borland Pascal and the OWL programming interface. Experience with the Paradox Engine is very, very desirable. In addition to the above, knowlege and understanding of TeX and Literate Programming is also desirable. This position is open immediately. The position must be filled as soon as possible. Salary is negotiable. ATLIS Publishing is located in Beltsville, Maryland. Just a few minutes from the District of Columbia. Send resume and salary requirement to: ATLIS Publishing Attn: Melissa Colbert 12001 Indian Creek Court Beltsville, MD 20705 Or via fax to (301) 210-4999, (301) 210-4998, or (301) 210-4997. Or via email to j_mcarthur@bix.com No phone calls, please. ---- Jeffrey M\kern-.05em\raise.5ex\hbox{\b c}\kern-.05emArthur a.k.a. Jeffrey McArthur email: j_mcarthur@bix.com ATLIS Publishing 12001 Indian Creek Court Beltsville, MD 20705