Archive-Date: Mon, 01 Mar 1993 06:47:36 CST Date: Mon, 01 Mar 93 13:43:25 MDT From: Zdenek Wagner Reply-To: LitProg@SHSU.edu Subject: Re: Pascal file handling To: Literate Progaramming list I think that running tangle and weave without the change file is the question of operating system. You have to specify a dummy file. For MS DOS its name is "nul". On input it signals end of file, on output all bytes go somewhere. Hope this helps Regards , ,~~~/ /` / /| /~~~ / / |_/ /__/ ' | / / /~~/ /~~/ /~~/ /~~/ /\ | /| / /~~/ /~~/ /~~/ /~~/ /~~~ / , / / /~~~ / / /~~~ / \ |/ |/ / /_/ / / / /~~~ / ~~~~ ~~~ ~~~ ' ' ~~~ ' ` ~~~ ~~/ ' ' ~~~ Zdenek Wagner______/ ================================================================================ Archive-Date: Mon, 01 Mar 1993 07:43:31 CST Date: Mon, 1 Mar 93 08:08:58 -0500 From: ae1181t@stnfor.ae.ge.com (Osman F Buyukisik) Reply-To: LitProg@SHSU.edu Message-ID: <9303011308.AA26186@stnfor.ae.ge.com> To: LitProg@shsu.edu Subject: Re: WEB for Scheme There is a SchemeWEB, but has no macro expansion, just for pretty printing. I think your best bet is to use funnelweb. ================================================================================ Archive-Date: Mon, 01 Mar 1993 16:14:03 CST Date: 01 Mar 1993 23:06 +0000 (GMT) From: "Eric W. van Ammers, LUW, tel: (+31)8370-83356" Reply-To: LitProg@SHSU.edu Subject: Looking for E-mail address of Kees van der Laan To: LITPROG@shsu.edu Message-ID: <01GVB7MFLLC0AATXNP@RCL.WAU.NL> Dear Kees van der Laan, chair NTG, Please disclose your e-mail adress by writing me directly and not via the LITPROG distribution system. 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: Tue, 02 Mar 1993 09:43:02 CST Date: Tue, 2 Mar 93 16:37:37 +0100 From: coates@spectro.jussieu.fr Reply-To: LitProg@SHSU.edu Message-ID: <9303021537.AA03700@lutidine.spectro.jussieu.fr> To: LitProg@shsu.edu Subject: Re: Literate Programming without WEB & TeX In response to some of the suggestions that Word for Windows is a lesser medium for doing literate programming than is a combination like Emacs/TeX, I have to say that while I myself am an Emacs/LaTeX user, because of my need to typeset a lot of mathematical expressions, and my preference for the formatting that I get with LaTeX, I have many colleagues who far prefer Word for Windows because they find it easier to use, and like to see how it looks at the moment that it is written. The point is, if one compares the number of users of a program like WordPerfect or Word for Windows to the number of users for (La)TeX, I suspect that the former are firmly in the majority. In the same way, if literate programming is ever going to hit the *mainstream*, I suspect it will only be on the back of a commercial package which has some sort of WYSIWYG/hypertext/ browser front-end (throw in whatever other buzz-words are necessary) which combines the functions of current programming *environments* with the additions necessary to actually create literate programs. Sure, I prefer myself not to use proprietary programs, and will probably stay with the Emacs/(La)TeX brigade, but it's only one solution, and I suspect not the one that will prove to be the most popular in the long run. There has to be room for both approaches; if not, literate programming might just fade away as yet good idea that never caught the imagination of the world at large. Anyway, another 2c worth. Cheers, Tony. ________________________________________________________________________________ A.B.Coates (Tony) Laboratoire de Spectroscopie Hertzienne de l'ENS Universite Pierre et Marie Curie Case 74, 4 place Jussieu Email: coates@spectro.jussieu.fr F-75252 Paris CEDEX 05 Telephone: +33 1 44 27 44 09 France Fax: +33 1 44 27 38 45 "J'ai mes opinions. L'universite a ses opinions. L'intersection de ces deux ensembles est probablement vide." "I have my opinions. The university has its opinions. The intersection of these two sets is probably empty." ________________________________________________________________________________ ================================================================================ Archive-Date: Tue, 02 Mar 1993 15:34:43 CST Message-ID: <9303022131.AA24935@im4u.cs.utexas.edu> From: leew@cs.utexas.edu (Lee Wittenberg) Reply-To: LitProg@SHSU.edu Date: Tue, 2 Mar 1993 15:31:25 -0600 To: LitProg@shsu.edu Subject: Re: Literate Programming without WEB & TeX For what it's worth, I agree with Tony Coates' observations that the WinWord/WordPerfect/etc. crowd probably greatly outnumbers the La/TeX crowd and that if LP is ever going to go ``mainstream'' it will need to be available in a WYSIWYG form. I'm also with Tony in that I'm not likely to forsake my La/TeX tools for proprietary commercial ones. My 2d worth as well (why is `d' the symbol for `pence'?). -- Lee ================================================================================ Archive-Date: Tue, 02 Mar 1993 16:38:10 CST Date: Tue, 2 Mar 93 23:33:11 +0100 From: dak@POOL.Informatik.RWTH-Aachen.DE Reply-To: LitProg@SHSU.edu Message-ID: <9303022233.AA05905@rama> To: LitProg@SHSU.edu Subject: Re: Literate Programming without WEB & TeX >From: leew@cs.utexas.edu (Lee Wittenberg) ... > >My 2d worth as well (why is `d' the symbol for `pence'?). > Still stems from the time when there were 12 Shilling to a pound and 20 pence to a shilling. Or was it 16/20 or 12/16 or what? Anyhow, the currency made your stomach do somersaults, and that way it could read the 'd' as a 'p'. ================================================================================ Archive-Date: Tue, 02 Mar 1993 19:52:59 CST Date: Wed, 3 Mar 1993 11:46:31 +1100 From: Richard Walker Reply-To: LitProg@SHSU.edu Message-ID: <199303030046.AA25840@barnard.anu.edu.au> To: LitProg@SHSU.edu Subject: Re: Literate Programming without WEB & TeX > >From: leew@cs.utexas.edu (Lee Wittenberg) > ... > > > >My 2d worth as well (why is `d' the symbol for `pence'?). > > > Still stems from the time when there were 12 Shilling to a pound > and 20 pence to a shilling. Or was it 16/20 or 12/16 or what? > Anyhow, the currency made your stomach do somersaults, and that way it > could read the 'd' as a 'p'. > No way! 12 old pence to a shilling; 20 shillings to a pound. Richard. ================================================================================ Archive-Date: Tue, 02 Mar 1993 22:18:14 CST Date: Tue, 2 Mar 1993 22:09:26 -0600 From: Cameron Smith Reply-To: LitProg@SHSU.edu Message-ID: <199303030409.AA13177@symcom.math.uiuc.edu> To: LitProg@SHSU.edu Subject: d for pence (was Re: Literate Programming without WEB & TeX) The "d" abbreviation for "pence" comes from the "denarius", which my Webster's identifies as "a small silver coin of ancient Rome". In fact, when I looked up the entry for "pence", one of the meanings given was "denarius". Similarly the symbol for the pound sterling is a stylized L, derived from the Latin "libra", a unit of weight -- I assume that a monetary pound was supposed at one time to equal this weight of gold or some other precious metal? By the way, the word "pound" itself is identified as "from Latin 'pondo'=pound, akin to Latin 'pondus'=weight", so apparently that term was yet another unit of measure. All this of course has nothing to do with literate programming, but after three posts on the subject I couldn't resist throwing in my (ahem) 2d. --Cameron Smith cameron@symcom.math.uiuc.edu ================================================================================ Archive-Date: Wed, 03 Mar 1993 02:47:24 CST Date: 03 Mar 1993 09:47 +0000 (GMT) From: "Eric W. van Ammers, LUW, tel: (+31)8370-83356" Reply-To: LitProg@SHSU.edu Subject: Literate Programming without WEB & Tex To: LITPROG@shsu.edu Message-ID: <01GVD8B7ZETSAAU0XS@RCL.WAU.NL> Toney Coates writes: > The point is, if one compares the number of users of a program like >WordPerfect or Word for Windows to the number of users for (La)TeX, I suspect >that the former are firmly in the majority. In the same way, if literate >programming is ever going to hit the *mainstream*, I suspect it will only be >on the back of a commercial package which has some sort of WYSIWYG/hypertext/ >browser front-end (throw in whatever other buzz-words are necessary) which >combines the functions of current programming *environments* with the additions >necessary to actually create literate programs. I support Tony's vision. But it seems to me that it will be pretty laborious to desing and build an LP tool for every combination of programming language and text processing environment. Exactly for that reason I suggested some time ago to that we should work towards an LP tool that is independent of programming language and text processing environement... 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: Wed, 03 Mar 1993 09:19:31 CST Date: Wed, 03 Mar 1993 06:51:19 EST From: "Edward F. Keith" Reply-To: LitProg@SHSU.edu Message-ID: <2b949bbf.efkport@efkport.kew.com> To: "Literate Programming List" Subject: Re: d for pence (was Re: Literate Programming without WEB & TeX) On Tue, 2 Mar 1993 22:09:26 -0600, "Cameron Smith" wrote: > The "d" abbreviation for "pence" comes from the "denarius", which > my Webster's identifies as "a small silver coin of ancient Rome". > In fact, when I looked up the entry for "pence", one of the meanings > given was "denarius". Similarly the symbol for the pound sterling is > a stylized L, derived from the Latin "libra", a unit of weight -- > I assume that a monetary pound was supposed at one time to equal > this weight of gold or some other precious metal? By the way, the > word "pound" itself is identified as "from Latin 'pondo'=pound, > akin to Latin 'pondus'=weight", so apparently that term was yet > another unit of measure. Pounds and Ounces are still the primary units of weight in the U.S. I believe the English Pound was once the value of a pound of sterling silver. (I don't know why we use lbs. as the abbreviation for pounds.) Just my $0.02. (I've been told $ is a simplification of a superimposed 'U' and 'S'.) -Ed K. -- Ed Keith Telephone: 1(703)370-5217 U.S. Snail: 4535 Taney Ave. #201 Internet : ed@efkport.kew.com Alexandria, VA 22304 I am I, Don Quixote, The Lord of La Mancha . . . ================================================================================ Archive-Date: Wed, 03 Mar 1993 09:42:19 CST Subject: Re: Literate Programming without WEB & TeX From: "Paul (X) Prescod" Reply-To: LitProg@SHSU.edu To: LitProg@SHSU.edu Date: Wed, 3 Mar 1993 10:40:27 -0500 Message-ID: <93Mar3.104038est.246809-1@descartes.uwaterloo.ca> > The point is, if one compares the number of users of a program like > WordPerfect or Word for Windows to the number of users for (La)TeX, I suspect > that the former are firmly in the majority. In the same way, if literate > programming is ever going to hit the *mainstream*, I suspect it will only be > on the back of a commercial package which has some sort of WYSIWYG/hypertext/ > browser front-end (throw in whatever other buzz-words are necessary) which >combines the functions of current programming environments with the additions > necessary to actually create literate programs. > Sure, I prefer myself not to use proprietary programs, and will > probably stay with the Emacs/(La)TeX brigade, but it's only one solution, and > I suspect not the one that will prove to be the most popular in the long run. > There has to be room for both approaches; if not, literate programming might >just fade away as yet good idea that never caught the imagination of the world > at large. Anyway, another 2c worth. Perhaps we should be encouraging someone to make a Word4Windows-type program that produces TeX code. Perhaps someone could even write a document filter for Word4Windows to do it. The way document filters are implemented in W4Win is very extensible (they are dynamically loaded). ================================================================================ Archive-Date: Wed, 03 Mar 1993 10:11:18 CST Date: Wed, 3 Mar 1993 17:09:37 +0100 From: vdsfi!mav@relay.iunet.it Message-ID: <199303031609.AA25033@relay.iunet.it> Subject: please unsubscribe (with excuses) To: LitProg@SHSU.edu Reply-To: LitProg@SHSU.edu I cannot get unsubscribed through LitProg-requests@shsu.edu. Sorry for the inconvenience. Maurizio ================================================================================ Archive-Date: Wed, 03 Mar 1993 12:41:37 CST Date: Wed, 3 Mar 93 19:35:37 +0100 From: coates@spectro.jussieu.fr Reply-To: LitProg@SHSU.edu Message-ID: <9303031835.AA04440@lutidine.spectro.jussieu.fr> To: LitProg@shsu.edu Subject: Re: Literate Programming without WEB & Tex > From: "Eric W. van Ammers, LUW, tel: (+31)8370-83356" > Toney Coates writes: > > > The point is, if one compares the number of users of a program like > >WordPerfect or Word for Windows to the number of users for (La)TeX, I suspect > >that the former are firmly in the majority. In the same way, if literate > >programming is ever going to hit the *mainstream*, I suspect it will only be > >on the back of a commercial package which has some sort of WYSIWYG/hypertext/ > >browser front-end (throw in whatever other buzz-words are necessary) which > >combines the functions of current programming *environments* with the additions > >necessary to actually create literate programs. > > I support Tony's vision. But it seems to me that it will be pretty laborious > to desing and build an LP tool for every combination of programming language > and text processing environment. Exactly for that reason I suggested > some time ago to that we should work towards an LP tool that is independent of > programming language and text processing environement... Put it this way - I'm not suggesting that LP tools will be built for every editor/programming language combination. Quite the opposite, I'm suggesting that only the most popular combinations will win. I don't expect that most users *care* whether an LP tool is general or not - how many users use more that one word processor and one or maybe two languages? Most users don't need this, and so in my opinion the *winning* company in the future is unlikely to provide such generality. Oh, there will be some tools around that have this, for the small group of users who need it, but I can't see this really being a mainstream need. I won't start another currency argument this time :-) . Cheers, Tony. ________________________________________________________________________________ A.B.Coates (Tony) Laboratoire de Spectroscopie Hertzienne de l'ENS Universite Pierre et Marie Curie Case 74, 4 place Jussieu Email: coates@spectro.jussieu.fr F-75252 Paris CEDEX 05 Telephone: +33 1 44 27 44 09 France Fax: +33 1 44 27 38 45 "J'ai mes opinions. L'universite a ses opinions. L'intersection de ces deux ensembles est probablement vide." "I have my opinions. The university has its opinions. The intersection of these two sets is probably empty." ________________________________________________________________________________ ================================================================================ Archive-Date: Wed, 03 Mar 1993 13:04:41 CST Date: Wed, 03 Mar 93 18:10:00 GMT Message-ID: <1655@sktb.demon.co.uk> From: "Paul L. Allen" Reply-To: LitProg@SHSU.edu To: LitProg@shsu.edu Subject: Re: d for pence (was Re: Literate Programming without WEB & TeX) X-Mailer: ArcBM 1.11 In message <199303030409.AA13177@symcom.math.uiuc.edu> Cameron Smith writes: > Similarly the symbol for the pound sterling is a stylized L, derived from > the Latin "libra", a unit of weight -- I assume that a monetary pound was > supposed at one time to equal this weight of gold or some other precious > metal? By the way, the word "pound" itself is identified as "from Latin > 'pondo'=pound, akin to Latin 'pondus'=weight", so apparently that term was > yet another unit of measure. You've supplied enough information (pound sterling, weight, precious metal, pondus = weight) that you should have been able to figure this one out for yourself - a pound (monetary) sterling was originally worth one pound (weight) of sterling (92.5% pure) silver. Which just goes to show how badly inflation has devalued the pound over the years - I remember when you could get a room for the night at an inn, a good meal, your horse stabled, watered and fed, the landlord's daughter as a bedmate, and still get change from a farthing. :-) --Paul ================================================================================ Archive-Date: Wed, 03 Mar 1993 13:48:27 CST Message-ID: <9303031945.AA05538@im4u.cs.utexas.edu> From: leew@cs.utexas.edu (Lee Wittenberg) Reply-To: LitProg@SHSU.edu Date: Wed, 3 Mar 1993 13:45:42 -0600 To: LitProg@shsu.edu Subject: Re: d for pence (was Re: Literate Programming without WEB & TeX) Cameron Smith asks (in the midst the a wonderful answer to my previous question about "d == pence"): > I assume that a monetary pound was supposed at one time to equal > this weight of gold or some other precious metal? This one I know. The official name for the British Pound is ``pounds sterling,'' implying that at one time it was equivalent to a pound of sterling silver. -- Lee ================================================================================ Archive-Date: Wed, 03 Mar 1993 16:43:20 CST Message-ID: <199303032239.AA20451@mucket.vast.unsw.edu.au> To: LitProg@SHSU.edu Subject: $ symbols (absolutely nothing to do with literate programming) Date: Thu, 04 Mar 93 09:39:15 +1100 From: stevea@vast.unsw.edu.au Reply-To: LitProg@SHSU.edu > On Wed, 03 Mar 93 06:51:19 EST, "Edward F. Keith" said: ed> Just my $0.02. (I've been told $ is a simplification of a ed> superimposed 'U' and 'S'.) This is correct, which is why the correct "$" symbol has two bars for US currency, and only one bar for Australian currency. ObLitProg: ever noticed how much of a pain it is tracking down that missing bracket somewhere in the middle of your WEB? The compiler doesn't help much as I use a hierarchy in my WEBs, so the main module is at the front, and the guts trailing behind, so I end up with a message "insufficient } at line 105" when really I'm missing one at line 5000. cheers -steve ================================================================================ Archive-Date: Fri, 05 Mar 1993 00:17:40 CST Sender: LP-Mgr@SHSU.edu From: Gary Casterline Reply-To: LitProg@SHSU.edu Message-ID: <9303050616.AA25748@are.Berkeley.EDU> Subject: fweb's auto insert macro in ratfor To: LitProg@SHSU.edu (Literate Programming List) Date: Thu, 4 Mar 1993 22:16:48 -0800 (PST) Hello Am I doing something wrong here? I'm trying to use fweb's automatic insertion feature for ratfor described in section 9.3.2 of the 1.30-beta (jan 1, 1993) manual. This little web shows the problem. ------- @r/ @ First Section. This program simply prints {\tt Hello, world.} to standard output. @ Try to define the automatic macro. @m[pfs] AUTO implicit undefined(a-z) @ The main program. @a program hello { @; stop; } @ This is the little print section. @= print *, "Hello, world." @ Index. ------- Apparently fweave doesn't grok the '['. ------- This is FWEAVE [SunOS/UNIX version 1.30--beta (February 3, 1993)]. Reading fweb.sty... Reading autobug.web... *1 *5 Writing autobug.tex... *1 ! (WEAVE): Improper macro definition: expected identifier. (l. 8) @m[ pfs] AUTO implicit undefined(a-z) *5 Writing autobug.idx...autobug.scn... Done. CPU = 0.1 sec.; REAL = 0.3 sec. CPU/REAL = 45.9%. [FWEAVE: Pardon me, but I think I spotted something wrong.] ------ Can anyone see the error here? Or, should I send this on to John Krommes? BTW, ftangle does the right thing. Thanks. Gary Casterline Agricultural & Resource Economics casterln@are.Berkeley.EDU 207 Giannini Hall (510) 642-5583 UC Berkeley, CA 94720 ================================================================================ Archive-Date: Fri, 05 Mar 1993 09:44:20 CST Sender: LP-Mgr@SHSU.edu Message-ID: <9303051540.AA02253@im4u.cs.utexas.edu> From: leew@cs.utexas.edu (Lee Wittenberg) Reply-To: LitProg@SHSU.edu Date: Fri, 5 Mar 1993 09:40:38 -0600 To: LitProg@shsu.edu Subject: Re: $ symbols (absolutely nothing to do with literate programming) Steve Avery writes: > ObLitProg: ever noticed how much of a pain it is tracking down > that missing bracket somewhere in the middle of your WEB? The compiler > doesn't help much as I use a hierarchy in my WEBs, so the main module is > at the front, and the guts trailing behind, so I end up with a message > "insufficient } at line 105" when really I'm missing one at line 5000. I always try to make sure that the brackets (or braces or parens or whatever) match up within each section as I write it. Although I will admit that the #line directive can cause some problems with error messages in this regard. -- Lee ================================================================================ Archive-Date: Mon, 08 Mar 1993 12:26:17 CST Sender: LP-Mgr@SHSU.edu Date: Sat, 06 Mar 93 12:18:32 GMT Message-ID: <1970@apusapus.demon.co.uk> From: Trevor Jenkins Reply-To: LitProg@SHSU.edu To: LitProg@shsu.edu Subject: Errors in Knuth's "Literate Programming" compendium I'm very surprised that I've not seen anyone comment upon the "errors" in DEK's "Literate Programming" book. Okay that are not big errors but still they're there; two in the chapter "The Errors of TeX". :-) The most serious of these errors occurs on page 258 where text is missing. The second error in that chapter (page 271) is the reference to Frank Liang's thesis. The indicated reference [11] is not a citation of Liang's work. In fact there isn't a citation for it at all in the reference list to this chapter. (There is one in the "Further Reading" section at the end of the book. The other error I spotted is on page 48 where a reference number is wrong. The text says [94]; I think it should say [95]. (A example of an off-by-1 error to which we are so prevalent. :-)) However, this is all just nit-picking. What depressed me about the book that very little of outcome of Kunth's early research has been taken up in industry tools. :-( Regards, Trevor. --------------------------------------------------------------------------- Trevor Jenkins Re: "deemed!" 134 Frankland Rd, Croxley Green, RICKMANSWORTH, WD3 3AU, England email: tfj@apusapus.demon.co.uk phone: +44 (0)923 776436 radio: G6AJG "We need bigger and better books", Jimmy Tingle (Damned in the USA) ================================================================================ Archive-Date: Mon, 08 Mar 1993 12:38:24 CST Sender: LP-Mgr@SHSU.edu Date: Mon, 8 Mar 93 15:01:29 +0100 From: marcus@x4u.desy.de (Marcus Speh) Reply-To: LitProg@SHSU.edu Message-ID: <9303081401.AA26938@x4u.desy.de> To: Literate Programmers Mailing List Subject: Literate Programming entry to World Wide Web CC: www-bug@nxoc01.cern.ch, bed_gdg@shsu.edu, "John A. Krommes" [This is CC'd to www-bug@info.cern.ch, GDG, JAK, Levy for information] Since a few days, the DESY lab experiences a World Wide Web [aka WWW, W3, the Web] renaissance. Among the available HyperText documents, there is an entry for "Literate Programming". You can use one of the available browsers (xmosaic, viola, midas [xterm], or www [line mode]) to access the Web. All the necessary information is there. The Info Page for Literate Programming can be accessed directly: file://ftp.desy.de/pub/www/projects/LitProg.html Appended below is a formatted copy of the Info page. With WWW, you will be able in the future to access all the LitProg FAQs, sample files and information for beginners from _one_ panel. The WWW Overview Page [from CERN] contains a pointer sequence Computing -> Languages -> TeX -> GDG's archives at Niord, as I discovered recently. You can also access it from the DESY Home Page: file://ftp.desy.de/pub/www/default.html [going to the "LitProg" entry point from there]. Since this service is experimental, I would very much appreciate some feedback from Literate Programmers, as well as suggestions and contributions. There is no restriction as to what format the document can have. The link may even simply be a pointer to an FTP archive [such as for Nelson Beebe's bibliography, or a couple of C++ files I wrote]. Write to me if you have problems of any kind with this information service. WWW is compatible with the gopher and WAIS protocols as well. Thanks to Tim Berners-Lee (CERN-CN/WWW) for putting the pointers and giving lots of useful advice! --Marcus Speh -- [WWW] file://ftp.desy.de/pub/www/people/marcus.html [PS: the IMO nicest XTerm browser for the WWW is "xmosaic". To avoid work, binaries for version 0.9 for SGI, HP, Sun, ibm, dec, are available via anon FTP from /anonymous@ftp.ncsa.uiuc.edu:/Web/xmosaic] The following is copied from the LitProg info page in the Desy Web. The important informatin is hidden in so-called links (->), and does not appear if you dont use a WWW browser; e.g. clicking with your mouse on the marked word "->freeHEP" brings you straight to ftp.freehep.scri.fsu.edu's Info page on the freeHEP project, clicking on "->CWEB" gives you a database quick info on CWEB etc. Thus, the document below in fact branches to several [remote] documents. No delay, no using zillions of different tools anymore. ----------------------------------------------------------------- Literate Programming ******************** At ->DESY, some tools for so-called "Literate Programming" in a "WEB-like" environment are installed for the public. These tools are ->CWEB for Literate Programming in C or C++, and ->FWEB for Literate Programming in Fortran-77, Fortran-90, Ratfor, C, C++ or ->TeX. A couple of sample files for CWEB can be retrieved from the -> freeHEP server (in directory -> pub/freehep/languages/cweb) as well. ->Why I must write readable programs. A philosophical warm-up for non-believers. ->What the heck is this "WEB" thing? A tidbit of technical information on the WEB environment. ->Further Reading. Access to Nelson H. Beebe's LitProg bibliography. ->LITPROG Mailing List. Information on the Literate Programming Mailing List. ->FWEB FAQ. A list of Frequently Asked Questions (FAQs) on the LitProg mailing list for the FWEB system of Literate Programming. Last updated: March 8, 1993, by ->marcus ->Go back to DESY Home Page. --------------------------------------------------------------- ================================================================================ Archive-Date: Wed, 17 Mar 1993 10:19:26 CST Sender: LP-Mgr@SHSU.edu Date: 17 Mar 1993 17:18 +0000 (GMT) From: "Eric W. van Ammers, LUW, tel: (+31)8370-83356" Reply-To: LitProg@SHSU.edu Subject: CLiP for MS_DOS is available To: LITPROG@shsu.edu Message-ID: <01GVX857NIYOAAUDF7@RCL.WAU.NL> The CLiP system for literate programming has been briefly described in a previous posting (24-feb-1993). CLiP for MS_DOS platforms is now anonymously FTP-able from the directory clip\ms_dos on sun01.info.wau.nl. Note that a manual does not yet exist. This is partly compensated by the information in the file READ_ME.TXT (or its postscript version READ_ME.PS) together with the description of the CLiP system by the paper "The CLiP Style of Literate Programming" (available as the files CLIP_STYLE.PS, CLIP_STYLE_A.PS and CLIP_STYLE_B.PS from the directory CLIP). ============================================================================ 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: Wed, 17 Mar 1993 10:35:52 CST Sender: LP-Mgr@SHSU.edu Message-ID: <9303171632.AA05987@im4u.cs.utexas.edu> From: leew@cs.utexas.edu (Lee Wittenberg) Reply-To: LitProg@SHSU.edu Date: Wed, 17 Mar 1993 10:32:49 -0600 To: litprog@shsu.edu Subject: Typesetting C assertions I'm trying to build a web in which assertions don't look like just another procedure call. In particular, I'd like them to look something like this: * Assertion: where the * represents a bullet. In CWEB I'd like to be able to "@f assert TeX" and "\def\assert(#1){\bullet\ {\rm Assertion:}\quad #1}". Unfortunately, this doesn't work since the assertion may have parentheses in it, and TeX doesn't nest parentheses in macro args (so the first right paren will end the argument). I _could_ use ");" as the argument-end delimeter, but I'd also like to be able to generalize the technique so that I can weave "sqrt(x)" into "\sqrt{x}", and the ); technique won't work there. Anyone out there got the TeXpertise to figure this one out? Thanks in advance. -- Lee ================================================================================ Archive-Date: Wed, 17 Mar 1993 14:03:01 CST Sender: LP-Mgr@SHSU.edu Date: Wed, 17 Mar 1993 14:00:21 CST From: "George D. Greenwade" Reply-To: LitProg@SHSU.edu To: LitProg@SHSU.edu Message-ID: <00969A54.F6E60B00.8675@SHSU.edu> Subject: RE: CLiP for MS_DOS is available On 17 Mar 1993 17:18 +0000 (GMT), "Eric W. van Ammers" posted: > The CLiP system for literate programming has been briefly described in a > previous posting (24-feb-1993). CLiP for MS_DOS platforms is now > anonymously FTP-able from the directory > > clip\ms_dos > on > sun01.info.wau.nl. > > Note that a manual does not yet exist. This is partly compensated by the > information in the file READ_ME.TXT (or its postscript version READ_ME.PS) > together with the description of the CLiP system by the paper "The CLiP > Style of Literate Programming" (available as the files CLIP_STYLE.PS, > CLIP_STYLE_A.PS and CLIP_STYLE_B.PS from the directory CLIP). I have also copied the files to Niord.SHSU.edu (192.92.115.8) and placed them in [FILESERV.CLIP] for access. The files are available individually, as on Eric's machine, or as a ZIP file (CLIP-1_0.ZIP) of the entire distribution. You can also retrieve the distribution by including: SENDME CLIP in the body of a mail message to FILESERV@SHSU.BITNET (FILESERV@SHSU.edu) and you will retrieve a 7-part UUENCODEd copy of the ZIP archive. The files should also propagate to the web directory of the TeX archive area on both ftp.tex.ac.uk and ftp.uni-stuttgart.de once they poll my Unix host. I am attempting to get the other literate programming tools in this directory of the Comprehensive TeX Archive Network (CTAN) on a mirrored basis. Regards, George %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% George D. Greenwade, Ph.D. Bitnet: BED_GDG@SHSU Department of Economics and Business Analysis THEnet: SHSU::BED_GDG College of Business Administration Voice: (409) 294-1266 P. O. Box 2118 FAX: (409) 294-3612 Sam Houston State University Internet: bed_gdg@SHSU.edu Huntsville, TX 77341 bed_gdg%SHSU.decnet@relay.the.net %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ================================================================================ Archive-Date: Thu, 18 Mar 1993 09:56:44 CST Sender: LP-Mgr@SHSU.edu From: dentato@minerva.ing.uniroma1.it Reply-To: LitProg@SHSU.edu Message-ID: <9303181600.AA16829@minerva.ing.uniroma1.it> Subject: Re: CLiP for MS_DOS is available To: LitProg@SHSU.edu Date: Thu, 18 Mar 1993 17:00:41 +0100 (NFT) According to Eric W. van Ammers, LUW, tel:: >> CLiP for MS_DOS platforms is now anonymously FTP-able from the directory What's the problem of having a Unix-CLiP? I read the first post on CLiP and it looks intresting. May we unix-people hope? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ___ __ //_/// \ e-mail: mc9275@mclink.it // \//__/ dentato@cadgroup.ing.uniroma1.it Remo Dentato ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ================================================================================ Archive-Date: Thu, 18 Mar 1993 18:35:01 CST Sender: LP-Mgr@SHSU.edu Date: Thu, 18 Mar 93 19:33:44 -0500 From: norman@bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu Message-ID: <9303190033.AA24865@wind.bellcore.com> To: LITPROG@SHSU.edu Subject: ``Official'' noweb announcement Although noweb has been available outside Princeton for more than two years, I am now officially announcing its release. What's ``official'' about this release is that I now have time to support noweb and I promise to fix bugs. noweb is available via anonymous ftp from bellcore.com in file ~ftp/pub/norman/noweb.shar.Z or from csservices.princeton.edu in file ~ftp/pub/noweb.shar.Z. DOS code with binaries is available in the same locations as dosnoweb.zip. I do NOT support the DOS code and it may or may not be the same as the supported source code. The rest of this announcement repeats information in the noweb README file; it contains a short sales pitch and a description of what you get and on what terms. I'm posting a longer article that contains a more in-depth description and sales pitch. Norman Ramsey INTRODUCTION -- WHAT IS NOWEB? 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 4 control sequences to WEB's 27, and its manual is only two pages. noweb works ``out of the box'' with any programming language, and its formatter-dependent part is under 50 lines. The primary sacrifice relative to WEB is the loss of the language-dependent features: prettyprinting and an index of identifiers. noweb provides extensibility by using the Unix toolkit philosophy. The ``notangle'' and ``noweave'' commands are built from pieces, which are then assembled in pipelines using shell scripts. The pieces are: markup convert noweb file from human syntax to tool syntax unmarkup inverse of markup nt `tangle' the tool form of the noweb file noxref insert cross-reference information for latex These pieces are combined by the scripts in the shell directory to provide more than just weaving and tangling: notangle analog of TANGLE noweave analog of WEAVE nountangle tangle, but keep interleaved documentation in comments noroots print names of all root chunks in a noweb file nocount count number of lines of code and documentation. noweb has been used for three years both at Princeton and elsewhere. It has been used for tens of thousands of lines of code in such languages as awk, C, C++, Icon, Modula-3, Promela, and Standard ML. If you already know you want to use noweb, you need only install it and read the manual page. If you're just curious about noweb, a sales pitch appears in the technical report in doc/ieee.tex. WHAT YOU GET IN THIS DISTRIBUTION This distribution contains the following directories: contrib software contributed by noweb users doc man pages and a technical report examples parts of noweb programs in different languages icon Icon code for nonstandard weave and cross-referencer lib noweave's cross-referencer shell all the shell scripts that make up the actual commands src source code for nt and markup tex supporting tex code for /usr/local/lib/tex/macros where appropriate, these directories have README files of their own. WEAVING The worst aspect of literate programming is the enormous amount of time wasted wrangling over what prettyprinted output should look like. Although noweb does no prettyprinting, it is not entirely immune--- several people have complained about noweave's output or have sent me changes that add more options to noweave. Having been down that road with Spider, I won't be fooled again. noweb doesn't try to be all things to all programmers, but it is very easy to change. If you don't like noweave's formatting, you can easily throw away noweave and make your own. To help you get started, the shell directory in the distribution contains three versions of noweave: noweave the standard (supposed to be latex-proof) noweave.nr what I use (handles 90 columns of code) noweave.simple simple, uses no special TeX hacking The simple version can't handle code with @ signs. The article in doc/ieee.tex explains the intermediate language that noweb uses to represent literate programs. noweb comes with two cross-referencers for use with noweave. The standard one is written in awk, because that's what everybody has. There is also a somewhat better cross-referencer written in Icon. Neither cross-referencer has been thoroughly exercised. See the INSTALL file for more details. noweb is designed to be extended with a language-dependent prettyprinter and indexer. I haven't written one because my experience with Spider taught me that prettyprinting is far more trouble than it's worth. If someone else wants to write one, I will be happy to help and advise. NOTES doc/ieee.* contains a paper that has been submitted to IEEE Software. You must `make install' before attempting to format the paper, since it uses the noweb document style option. The paper documents the representation of noweb files that is used by the noweb tools, in case you want to write any tools of your own. Simple tools (e.g. count the number of lines of interleaved documentation) are trivial. If you write any tools, or you want tools written (e.g. prettyprinters, index generators), let me know. The icon directory contains Icon programs that do most of the job of noweave.sh and noxref. If you want to adapt noweb to work with a text processor other than TeX or latex, they might provide a better starting point. I confess that the whole system should have been written in Icon from the beginning, but I'm not going to do it over. Icon is available by anonymous ftp from cs.arizona.edu. Thanks to Dave Hanson for cpif. Thanks to Joseph Reynolds for prodding me to fix [[...]]. Thanks to Lee Wittenberg for the DOS binaries. Thanks to Gary Leavens and Lee Wittenberg for testing this version, especially the installation process. I am, as always, responsible for errors and awkwardness that remain. Send comments or questions to norman@bellcore.com. I enjoy hearing from noweb users; if you have enjoyed noweb, why not send me a local postcard for my collection? My address is: Norman Ramsey Bellcore 445 South Street Morristown, New Jersey 07960 USA COPYRIGHT Noweb is copyright 1989-1993 by Norman Ramsey. All rights reserved. You may use and distribute noweb for any purpose, for free. You may modify noweb and create derived works, provided you retain the copyright notice, but the result may not be called noweb without my written consent. You may not sell noweb itself, but you may do anything you like with programs created with noweb. ================================================================================ Archive-Date: Thu, 18 Mar 1993 18:40:03 CST Sender: LP-Mgr@SHSU.edu Date: Thu, 18 Mar 93 19:37:56 -0500 From: norman@bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu Message-ID: <9303190037.AA24936@wind.bellcore.com> To: LITPROG@SHSU.edu Subject: noweb in-depth article or sales pitch This message contains an ASCII version of the technical report that describes noweb and why you might care to use it. The article may one day be published in IEEE Software (it's been under review for more than a year), but don't hold your breath. If you get noweb from csservices.princeton.edu, you get the TeX source for this article, and you can make a version you might actually be able to read. Norman Ramsey Literate-Programming Tools Need Not Be Complex Norman Ramsey Department of Computer Science, Princeton University 35 Olden Street, Princeton, New Jersey 08544 August 1992 Abstract When it was introduced, literate programming meant WEB. Desire to use WEB with languages other than Pascal led to the implementation of many versions. WEB is complex, and the difficulty of using WEB cre- ates an artificial barrier to experimentation with literate programming. noweb provides much of the functionality of WEB, with a fraction of the complexity. noweb is independent of the target programming language, and its formatter-dependent part is less than 40 lines. noweb is extensi- ble, because it uses two representations of programs: one easily edited by authors and one easily manipulated by tools. This paper explains how to use the noweb tools and gives examples of their use. It sketches the implementation of the tools and describes how new tools are added to the set. Because WEB and noweb overlap, but each does some things that the other cannot, this paper enumerates the differences. Key words: literate programming, readability, programming environments Introduction When literate programming was introduced, it was synonymous with WEB, a tool for writing literate Pascal programs [6, Chapter 4]. The idea attracted attention; several examples of literate programs were published, and a spe- cial forum was created to discuss literate programming [1, 2, 6, 13]. WEB was adapted to programming languages other than Pascal [3, 7, 8, 10, 12]. With experience, many WEB users became dissatisfied [9]. Some found WEB not worth the trouble, as did one author of the program appearing in Ap- pendix C of Reference 11. Others built their own systems for literate pro- gramming. The literate-programming forum was dropped, on the grounds 1 that literate programming had become the province of those who could build their own tools [14]. WEB programmers interleave source code and descriptive text in a sin- gle document. When using WEB, a programmer divides the source code into modules. Each module has a documentation part and a code part, and mod- ules may be written in any order. The programmer is encouraged to choose an order that helps explain the program. The code parts are like macro definitions; they have names, and they contain both code and references to other modules. A WEB file represents a single program; TANGLE extracts that program from the WEB source. One special module has a code part with no name, and TANGLE expands the code part of that module to extract the program. WEAVE converts WEB source to TEX input, from which TEX can produce high-quality typeset documentation of the program. WEB is a complex tool. In addition to enabling programmers to present pieces of a program in any order, it expands three kinds of macros, pret- typrints code, evaluates some constant expressions, provides an integer rep- resentation for string literals, and implements a simple form of version control. The manual for the original version documents 27 "control se- quences" [5]. The versions for languages other than Pascal offer slightly different functions and different sets of control sequences. Significant effort is required to make WEB usable with a new programming language, even when using a tool designed for that purpose [8]. WEB's shortcomings make it difficult to explore the idea of literate pro- gramming; too much effort is required to master the tool. I designed a new tool that is both simple and independent of the target programming language. noweb is designed around one idea: writing named chunks of code in any order, with interleaved documentation. Like WEB, and like all literate-programming tools, it can be used to write a program in pieces and to present those pieces in an order that helps explain the program. noweb's value lies in its simplicity, which shows that the idea of literate programming does not require the complexity of WEB. noweb A noweb file contains program source code interleaved with documentation. When notangle is given a noweb file, it writes the program on standard output. When noweave is given a noweb file, it reads the noweb source and produces, on standard output, TEX source for typeset documentation. 2 _________ _________ | foo.c|_________-cc|-cffoo.coo.o|_-ldEfoo.ox:::ecutable a.out |________| |________| notangle foo.nw > foo.c _________ | foo.nw| |________| A A noweave foo.nw > foo.tex ___AU____ _________ | foo.tex|________-tex|foofoo.dvi|_-dviTfooypeset documentation for foo |________| |________| Figure 1: Using noweb to build code and documentation Figure 1 shows how to use notangle and noweave to produce code and documentation for a C program contained in the noweb file foo.nw. A noweb file is a sequence of chunks, which may appear in any order. A chunk may contain code or documentation. Documentation chunks begin with a line that starts with an at sign (@) followed by a space or newline. They have no names. Code chunks begin with <>= on a line by itself. The double left angle bracket (<<) must be in the first column. Chunks are terminated by the beginning of another chunk, or by end of file. If the first line in the file does not mark the beginning of a chu* *nk, it is assumed to be the first line of a documentation chunk. Documentation chunks contain text that is ignored by notangle and copied verbatim to standard output by noweave (except for quoted code). noweave can work with LaTEX, or it can use a TEX macro package, supplied with noweb, that defines commands like "chapter and "section. Code chunks contain program source code and references to other code chunks. Several code chunks may have the same name; notangle concate- nates their definitions to produce a single chunk, just as TANGLE does. Code chunk definitions are like macro definitions; notangle extracts a program by expanding one chunk (by default the chunk named <<*>>). The defini- tion of that chunk contains references to other chunks, which are themselves expanded, and so on. notangle's output is readable; it preserves the inden- tation of expanded chunks with respect to the chunks in which they appear. 3 @ This program has no input, because we want to keep it simple. The result of the program will be to produce a list of the first thousand prime numbers, and this list will appear on the [[output]] file. Since there is no input, we declare the value [[m = 1000]] as a compile-time constant. The program itself is capable of generating the first [[m]] prime numbers for any positive [[m]], as long as the computer's finite limitations are not exceeded. <>= program print_primes(output); const m = 1000; <> var <> begin <> end. Figure 2: Sample noweb input, from prime number program Code may be quoted within documentation chunks by placing double square brackets around it ([[...]]). These double square brackets are ignored by notangle, but they are used by noweave to give code special typographic treatment. If double left and right angle brackets are not paired, they are treated as literal "<<" and ">>". Users can force any such brackets, even paired brackets, to be treated as literal by preceding the brackets by an at sign (e.g. "@<<"). Figure 2 shows a fragment of a noweb program that computes prime numbers. The program is derived from the example used in Reference 6, Chapter 4, and Figure 2 should be compared with Figure 2b of that paper. Figure 3 shows the program after processing by noweave and LaTEX. Figure 4 shows the beginning of the program as extracted by notangle. A complete example program accompanies this paper. 4 This program has no input, because we want to keep it simple. The result of the program will be to produce a list of the first thousand prime numbers, and this list will appear on the output file. Since there is no input, we declare the value m = 1000 as a compile-time constant. The program itself is capable of gen- erating the first m prime numbers for any positive m, as long as the computer's finite limitations are not exceeded. program print_primes(output); const m = 1000; var begin end. Figure 3: Output produced by noweave and LaTEX from Figure 2 5 program print_primes(output); const m = 1000; rr = 50; cc = 4; ww = 10; ord_max = 30; - p_ord_max squared must exceed p_m " var p: array [1..m] of integer; - the first m prime numbers, in increasing order " page_number: integer; .. . Figure 4: Part of primes program as written by notangle Using noweb Experimenting with noweb is easy. noweb has little syntax: definition and use of code chunks, marking of documentation chunks, quoting of code, and quoting of brackets. noweb can be used with any programming language, and its manual fits on two pages. On a large project, it is essential that compilers and other tools be able to refer to locations in the noweb source, even though they work with notangle's output [9]. Giving notangle the -L option makes it emit prag- mas that inform compilers of the placement of lines in the noweb source. It also preserves the columns in which tokens appear. If notangle is not given the -L option, it respects the indentation of its input, making its output easy to read. Large programs may also benefit from cross-reference infor- mation. If given the -x option, noweave uses LaTEX to show on what pages each chunk is defined and used. WEB files map one to one with to both programs and documents. The mapping of noweb files to programs is many to many; the mapping of files to documents is many to one. Source files are combined by listing their names on notangle's or noweave's command line. Many programs may be extracted from one source by specifying the names of different root chunks, using notangle's -R command-line option. The simplest example of a one-to-many mapping of programs is that of putting C header and program in a single noweb file. The header comes from 6 the root chunk
, and the program from the default root chunk, <*>. The following rules for make automate the process:1 foo.c: foo.nw notangle -L foo.nw > foo.c foo.h: foo.nw notangle -Rheader foo.nw > xfoo.h -cmp -s xfoo.h foo.h __ cp xfoo.h foo.h A more interesting example is using noweb to interleave different languages in one source file. I wrote an awk script that read a machine description and emitted a disassembler for that machine, and I used noweb to combine the script and description in a single file, so I could place each part of the input next to the code that processed that input. The machine description was in the root chunk , and the awk script in the default root chunk. The processing steps were: notangle opcodes.nw > opcodes.awk notangle -R'opcode table' opcodes.nw _ awk -f opcodes.awk > disassem.sml Many-to-one mapping of source to program can be used to obtain effects similar to those of Ada or Modula-3 generics. Figure 5 shows generic C code that supports lists. The code can be "instantiated" by combining it with another noweb file. pair_list.nw, shown in Figure 6, specifies lists of integer pairs. The two are combined by applying notangle to them both: notangle pair_list.nw generic_list.nw > pair_list.c noweb has no parameter mechanism, so the "generic" code must refer to a fixed set of symbols, and it cannot be checked for errors except by compiling pair_list.c. These restrictions make noweb a poor approximation to real generics, but useful nevertheless. I have used noweb for small programs written in various languages, in- cluding C, Icon, awk, and Modula-3. Larger projects have included a code generator for Standard ML of New Jersey (written in Standard ML) and a multi-architecture debugger, written in Modula-3, C, and assembly lan- guage. A colleague used noweb to write an experimental file system in C++. ____________________1 Using cmp avoids touching the header file when its contents haven't changed.* * This trick is explained on pages 265-266 of Reference 4. 7 This list code supports circularly-linked lists represented by a pointer to the last element. It is intended to be combined with other noweb code that defines (the fields found in an element of a list) a* *nd that uses and . typedef struct list - struct list *_link; " *List; extern List singleton(void); /* singleton list, uninitialized fields */ extern List append(List, List); /* destructively append two lists */ #define last(l) (l) #define head(l) ((l) ? (l)->next : 0) #define forlist(p,l) for (p=head(l); p; p=(p==last(l) ? 0 : p->next)) List append (List left, List right) - List temp; if (left == 0) return right; if (right == 0) return left; temp = left->_link; left->_link = right->_link; right->_link = temp; return right; " .. . Figure 5: Generic code for implementing lists in C <*> int x; int y; Figure 6: Program to instantiate lists of integer pairs 8 The sizes of these programs are Program Documentation linesTotal lines markup and nt 400 1,200 ML code generator 900 2,600 Debugger 1,400 11,000 File system 4,400 27,000 Representation of noweb files The noweb syntax is easy to read, write, and edit, but it is not easily manipu- lated by programs. To make it easy to extend noweb, I have written markup, which converts noweb source to a representation that is easily manipulated by commonly used Unix tools like sed and awk. In this representation, every line begins with @ and a key word. The possibilities are: @begin kind nStart a chunk @end kind n End a chunk @text stringstring appeared in a chunk @nl A newline @defn name The code chunk named name is being defined @use name A reference to code chunk named name @quote Start of quoted code in a documentation chunk @endquote End of quoted code in a documentation chunk @file filenameName of the file from which the chunks came @literal textnoweave copies text to output markup numbers each chunk, starting at 0. It also recognizes and undoes the escape sequence for double brackets, e.g. converting "@<<" to "<<". markup's output represents a sequence of files. Each file is represented by a "@file filename" line, followed by a sequence of chunks. The representation of a documentation chunk is @begin docs nwhere n is the chunk number. docline repeated an arbitrary number of times. @end docs n where docline may be @text, @nl, @quote, or @endquote. Every @nl corre- sponds to a newline in the original file. markup guarantees that quotes are balanced and not nested. 9 The representation of a code chunk is @begin code nwhere n is the chunk number. @defn name name of this chunk. @nl The newline following <>= in the original file codeline repeated an arbitrary number of times. @end code n where codeline may be @text, @nl, or @use. The noweb tools are implemented by piping the output of markup to other programs. notangle is a Unix shell script that builds a pipeline be- tween markup and nt, which reads and expands definitions of code chunks. noweave pipes the output of markup to a 24-line awk script that inserts appropriate TEX or LaTEX formatting commands. Having a format easily read by programs makes noweb extensible; one can manipulate literate programs using Unix shell scripts and filters. To be able to share programs with colleagues who don't enjoy literate program- ming, I modified notangle by adding to its pipeline a stage that places each line of documentation in a comment and moves it to the succeeding code chunk. The resulting script, nountangle, transforms a literate pro- gram into a traditional commented program, without loss of information and with only a modest penalty in readability. Figure 7 shows the results of applying nountangle to the prime-number program shown in Figure 2. noweave's cross-reference generation is also implemented as an extension; the output of markup is piped through an awk script that uses @literal to insert LaTEX cross-reference commands. Another simple tool finds all the roots in a noweb file, making it easy to find definitions where chunk names have been misspelled. Comparing WEB and noweb Unlike WEB, noweb is independent of the target programming language. WEB tools can be generated for many programming languages, but those lan- guages must be lexically similar to C. For example, WEB can't handle the awk regular-expression notation "/:::/"; every such expression must quoted using WEB's "verbatim" control sequence. The effort required to generate WEB tools is significant; the prospective user must write a specification of several hundred lines. Being independent of the target programming language makes noweb simpler, but it also means that noweb can do less. Most of the differences 10 - This program has no input, because we want to keep it " - simple. The result of the program will be to produce a " - list of the first thousand prime numbers, and this list " - will appear on the [[output]] file. " .. . - = " program print_primes(output); const m = 1000; - "section-The output phase- " - " - = " rr = 50; cc = 4; ww = 10; - = " ord_max = 30; - p_ord_max squared must exceed p_m " var - How should table [[p]] be represented? Two possibilities " - suggest themselves: We could construct a sufficiently " .. . Figure 7: Output produced by nountangle from Figure 2 11 between WEB and noweb arise because WEB has language-dependent features that are not present in noweb. These features include prettyprinting, type- setting comments using TEX, generating an index of identifiers, expanding macros, evaluating constant expressions, and converting string literals to indices into a "string pool." Among these features, noweb users are most likely to miss prettyprinting and the index of identifiers. Some differences arise because WEB and noweb implement similar features differently. WEB's original TANGLE removed white space and folded lines to fill each line with tokens, making its output unreadable [6, Chapter 4, Figure 3]. Later adaptations preserved line breaks but removed other white space. By default, notangle preserves whitespace and maintains indentation when expanding chunks. It can therefore be used with languages like Miranda and Haskell, in which indentation is significant. TANGLE cannot. WEB's WEAVE assigns a number to each chunk, and its cross-reference information refers to chunk numbers, not page numbers. noweb uses LaTEX to emit cross-reference information that refers to page numbers. Anyone who has read a large literate program will appreciate the difference. WEB works poorly with LaTEX; LaTEX constructs cannot be used in WEB source, and getting WEAVE output to work in LaTEX documents requires te- dious adjustments by hand. noweb works with both plain TEX and LaTEX. Both WEAVE and noweave depend on the text formatter in two ways: the source of the program itself, and the supporting macros. WEAVE's source (written using WEB for C) is several thousand lines long, and the formatting code is not isolated. noweave's source is a 57-line shell script, and only 31 of those lines have to do with formatting. Both WEAVE and noweave use about 200 lines of supporting macros for plain TEX. noweb uses another 80 lines to support LaTEX, most of which is used to eliminate duplicate page numbers in cross-reference lists. noweb has two features that weren't in the original WEB, but that ap- peared in some of WEB's later adaptations. They are the ability to inform the compiler of the original locations of source lines and the ability to extra* *ct more than one program from a single source file. Reviewers have had many expectations of literate-programming tools [13, 14]. The most important is verisimilitude: a single input should produce both compilable program and publishable document, warranting the correct- ness of the document. Others include flexible order of elaboration, ability to develop program and documentation concurrently in one place, cross- references, and indexing. WEB satisfies all these expectations, and noweb satisfies all but one (it does not provide automatic indexing). 12 Discussion WEB takes the monolithic approach to literate programming_it does every- thing. noweb's approach is to compose simple tools that manipulate files in the noweb format. Existing Unix tools provide some of the WEB features that aren't found in noweb. Unix supplies two macro processors: the C pre- processor and the m4 macro processor. xstr extracts string literals. patch provides a form of version control similar to WEB's change files. Few of WEB's remaining features will be missed; for example, many compilers evaluate constant expressions at compile time. Experience with WEB has suggested that prettyprinting may be more trouble than it is worth, and that the index of identifiers, while useful, is not a necessity [9]. Three things distinguish noweb from previous work. noweb takes as simple as possible a view of literate programming and the tools needed to implement it. Instead of relying on a generator or re-implementation to support different programming languages, noweb is independent of the target programming language. noweave's dependence on its typesetter is small and isolated, instead of being distributed throughout a large implementation. Experimenting with noweb is easy because the tools are simple and they work with any language. If the experiment is unsatisfying, it is easy to abandon, because notangle's output, unlike TANGLE's, is readable. noweb is simpler than WEB and is easier to use and understand, but it does less. I argue, however, that the benefit of WEB's extra features is outweighed by cost of the extra complexity, making noweb better for writing literate programs. noweb can be obtained by anonymous ftp from csservices.princeton.edu, in file pub/noweb.shar.Z. Acknowledgements Mark Weiser's invaluable encouragement provided the impetus for me to write this paper, which I did while visiting the Computer Science Labo- ratory of the Xerox Palo Alto Research Center. Comments from David Hanson and from the anonymous referees stimulated me to improve the pa- per. The development of noweb was supported by a Fannie and John Hertz Foundation Fellowship. 13 References [1]P. J. Denning. Announcing literate programming. Communications of the ACM, 30(7):593, July 1987. [2]D. Gries and J. Bentley. Programming pearls: Abstract data types. Communications of the ACM, 30(4):284-290, April 1987. [3]K. Guntermann and J. Schrod. WEB adapted to C. TUGboat, 7(3):134- 137, October 1986. [4]B. W. Kernighan and R. Pike. The UNIX Programming Environment. Prentice-Hall, 1984. [5]D. E. Knuth. The WEB system of structured documentation. Technical Report 980, Stanford Computer Science, Stanford, California, Septem- ber 1983. [6]D. E. Knuth. Literate Programming, volume 27 of Center for the Study of Language and Information Lecture Notes. Leland Stanford Junior University, Stanford, California, 1992. [7]S. Levy. WEB adapted to C, another approach. TUGBoat, 8(1):12-13, 1987. [8]N. Ramsey. Literate programming: Weaving a language-independent WEB. Communications of the ACM, 32(9):1051-1055, September 1989. [9]N. Ramsey and C. Marceau. Literate programming on a team project. Software_Practice & Experience, 21(7):677-683, July 1991. [10]W. Sewell. How to MANGLE your software: the WEB system for Modula-2. TUGboat, 8(2):118-128, July 1987. [11]W. Sewell. Weaving a Program: Literate Programming in WEB. Van Nostrand Reinhold, New York, 1989. [12]H. Thimbleby. Experiences of `literate programming' using cweb (a variant of Knuth's WEB). Computer Journal, 29(3):201-211, 1986. [13]H. Thimbleby. A review of Donald C. Lindsay's text file difference utility, diff. Communications of the ACM, 32(6):752-755, June 1989. 14 [14]C. J. Van Wyk. Literate programming: An assessment. Communica- tions of the ACM, 33(3):361-365, March 1990. 15 ================================================================================ Archive-Date: Fri, 19 Mar 1993 06:31:37 CST Sender: LP-Mgr@SHSU.edu Date: Fri, 19 Mar 93 13:26:37 MEZ From: Peter Schmitt Reply-To: LitProg@SHSU.edu Subject: Re: Typesetting C assertions To: leew@cs.utexas.edu, litprog@SHSU.edu On Wed, 17 Mar 1993 10:32:49 -0600 you said: >I'm trying to build a web in which assertions don't look like just >another procedure call. In particular, I'd like them to look something like >this: > > * Assertion: > >where the * represents a bullet. In CWEB I'd like to be able to >"@f assert TeX" and "\def\assert(#1){\bullet\ {\rm Assertion:}\quad #1}". >Unfortunately, this doesn't work since the assertion may have parentheses >in it, and TeX doesn't nest parentheses in macro args (so the first right >paren will end the argument). I _could_ use ");" as the argument-end >delimeter, but I'd also like to be able to generalize the technique so >that I can weave "sqrt(x)" into "\sqrt{x}", and the ); technique won't work >there. > The following macros solve the problem by counting parentheses until pairs are matched. This approach may not work in every case, but it can be used for the two cases mentioned. Hope this helps! Peter %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcount\unmatched \let\(=( \let\)=) \catcode`\(\active \catcode`\)\active \def({\ifnum \unmatched=0 \LEFT \else \(\fi \advance\unmatched by 1 } \def){\advance\unmatched by -1 \ifnum \unmatched=0 \RIGHT \endgroup \else \)\fi } \catcode`\( 12 \catcode`\) 12 \def\START{\begingroup \catcode`\(\active \catcode`\)\active \unmatched=0 } \def\sqrtLEFT{\setbox0=\hbox\bgroup$} \def\sqrtRIGHT{$\egroup $\Sqrt{\box0}$} \let\Sqrt\sqrt \def\sqrt{\START \let\LEFT\sqrtLEFT \let\RIGHT\sqrtRIGHT} \def\assert{\START \let\LEFT\relax \let\RIGHT\egroup \noindent$\bullet$\quad\rm Assertion: \bgroup\it } \sqrt(1)---a \sqrt (1(2))---b \sqrt (1(2)3(4(5)))---c \assert(1)---a \assert (1(2))---b \assert (1(2)3(4(5)))---c \bye Peter Schmitt a8131dal@awiuni11.edvz.univie.ac.at schmitt@awirap.bitnet ----------------------------------------------------------------------------- Institute of Mathematics Strudlhofgasse 4 University of Vienna A-1090 Wien Austria ================================================================================ Archive-Date: Fri, 19 Mar 1993 09:47:30 CST Sender: LP-Mgr@SHSU.edu Date: Fri, 19 Mar 1993 09:45:45 CST From: "George D. Greenwade" Reply-To: LitProg@SHSU.edu To: M.Piff@sheffield.ac.uk CC: info-tex@SHSU.edu, litprog@SHSU.edu, ctan@SHSU.edu Message-ID: <00969BC3.BAA4F820.16137@SHSU.edu> Subject: PP on FILESERV/Niord Mike Piff forwarded me a utility he has written which converts Pascal and Modula-2 programs into input for LaTeX and TeX files. I am appending the description file for your reference. In addition to SHSU, these files should propagate to ftp.tex.ac.uk and ftp.uni-stuttgart.de in the support areas of their TeX archive areas. Regards and my thanks to Mike for his contribution, George =========================================================================== PP -- The PP package includes a UUENCODEd ZIP archive of Mike Piff's utility to convert a free-standing Modula-2 or Pascal program into a Pretty-Printed LaTeX/plain TeX file ready to input into your document. This is more attractive than a verbatim listing. The source code is included in this distribution, together with an MS-DOS executable. The output of PP is similar to that of WEB, say, but your program is free-standing and you do not need to learn to use WEB. To retrieve the single 59 512-byte block UUENCODEd ZIP archive, include: SENDME PP in the body of a mail message to FILESERV@SHSU.BITNET (FILESERV@SHSU.edu). The ZIP file itself may be retrieved via anonymous ftp from Niord.SHSU.edu (192.92.115.8) in [FILESERV.PP]. Files in PP.ZIP: Length Method Size Ratio Date Time Name ("^" ==> case ------ ------ ---- ----- ---- ---- ---- conversion) 0 Stored 0 0% 03-19-93 09:12 pp/ 37824 Deflate 13118 65% 03-18-93 15:12 pp/pp.exe 19884 Deflate 5397 73% 03-18-93 15:12 pp/pp.mod 463 Deflate 177 62% 12-12-90 13:47 pp/pas.res 536 Deflate 202 62% 09-26-90 15:43 pp/mod.res 3329 Deflate 1588 52% 03-19-93 09:12 pp/README ------ ------ --- ------- 62036 20482 67% 6 ================================================================================ Archive-Date: Sat, 20 Mar 1993 04:23:15 CST Sender: LP-Mgr@SHSU.edu Date: Sat, 20 Mar 93 11:21:57 +0100 From: marcus@x4u.desy.de (Marcus Speh) Reply-To: LitProg@SHSU.edu Message-ID: <9303201021.AA27178@x4u.desy.de> To: Literate Programmers Subject: More LitProg Documents on the World Wide Web CC: "Eric W. van Ammers" , Norman Ramsey , "John A. Krommes" , "George D. Greenwade" , Silvio Levy I put a link to the CLiP and NOWEB (*) documents which I could access into the Literate Programming Page on the World Wide Web. If you have access to the Web, try the address http://x4u.desy.de:/ or directly http://x4u.desy.de:/gnu/ftp/pub/www/projects/LitProg.html or via http://info.cern.ch/hypertext/DataSources/bySubject/Computing/Languages.html (feed one of these to your WWW browser) and tell me what you think. From the DESY Home Page you have to choose the "Literate Programming" entry point, and from there the menu "Tools". I'd be eager to put some processed example (maybe PostScript) into the "Examples" menu, too. I'd be glad if other authors of WEB or general LitProg systems would contribute something to the Web, too. At the moment I put a link to the UK TeX Archive (Ada, APL,...) and the freeHEP Database (FWEB, CWEB). Contact me for more information. --Marcus Speh -- [WWW] http://x4u.desy.de:80/gnu/ftp/pub/www/people/marcus.html (*) Norman: I'd like to obtain an FTP address for the PS version of the 1992 document whose plain version was sent to the list. Thanks in advance. ================================================================================ Archive-Date: Sat, 20 Mar 1993 10:40:42 CST Sender: LP-Mgr@SHSU.edu Date: Sat, 20 Mar 93 17:31:45 +0100 From: marcus@x4u.desy.de (Marcus Speh) Reply-To: LitProg@SHSU.edu Message-ID: <9303201631.AA00461@x4u.desy.de> To: grodecki@informix.com (Don Grodecki) Subject: WWW References: <9303201526.AA10782@lenexa.pd> CC: Literate Programmers Stephen Cross More than one person has asked me, so I CC to LitProg. |> What is the World Wide Web? Some sort of HyperText thing? Is the |> browser for it available? The World Wide Web is a wide-area hypermedia information retrieval initiative aiming to give universal access to a large universe of documents (FTP, HTTP, gopher, WAIS protocols). It was developped mainly at CERN. There is a couple of browsers available, the most comfortable being Xmosaic (from: ftp.ncsa.uiuc.edu:/Web/xmosaic, also binaries for some machines)...all the info is on the Web, but if you are not connected yet, look at info.cern.ch:/pub or just say telnet info.cern.ch which will invoke the (dumb, but universal) WWW line mode browser. From there, using the HEP link, you can go to DESY, and from there to LITERATE PROGRAMMING (Just one possiblility). Or go out elsewhere to the Web [and never be confused about "the Web" and our "WEB"]. |> Could this tool be used for linking together |> function & design & code documents? I think to explore this possibility will be one of the outcomes of Stephen Cross' work which he outlined on this list some time ago. If there is a way for using HyperText for Literate Programming, we can undoubtedly use the universal capabilites of the World Wide Web. HyperText can now also be produced with FrameMaker. Info is on info.cern.ch. --Marcus Speh -- [WWW] http://x4u.desy.de:80/gnu/ftp/pub/www/people/marcus.html ================================================================================ Archive-Date: Mon, 22 Mar 1993 07:40:29 CST Sender: LP-Mgr@SHSU.edu Message-ID: <199303221338.AA15641@yggdrasil> To: litprog@shsu.edu Subject: Spidery WEB for Macintosh (MPW) available Date: Mon, 22 Mar 1993 14:38:48 +0100 From: Matthias Ulrich Neeracher Reply-To: LitProg@SHSU.edu A version if Spidery WEB for the Apple Macintosh is available by anonymous ftp Site: nic.switch.ch [130.59.1.40] File: software/mac/src/mpw_c/MPW_SpiderWEB_21Mar93.sit.bin This file, stored in *MacBinary* format (don't forget to use binary mode for transferring it), contains sources and binaries for Awk, ANSI C, and C++ tangle and weave. You need the Macintosh Programmers Workshop to run the binaries or compile the sources. Matthias ----- Matthias Neeracher neeri@iis.ee.ethz.ch "And that's why I am going to turn this world upside down, and make of it a fire so *bright* that someone real will notice" -- Vernor Vinge, _Tatja Grimm's World_ ================================================================================ Archive-Date: Mon, 22 Mar 1993 07:44:52 CST Sender: LP-Mgr@SHSU.edu Message-ID: <9303221343.5902@bhars173.bnr.co.uk> From: S.C.Cross@bnr.co.uk Reply-To: LitProg@SHSU.edu Date: Mon, 22 Mar 93 13:43:20 GMT To: LitProg@SHSU.edu Subject: Re: WWW > > |> Could this tool be used for linking together > |> function & design & code documents? > > I think to explore this possibility will be one of the outcomes > of Stephen Cross' work which he outlined on this list some time > ago. If there is a way for using HyperText for Literate Programming, > we can undoubtedly use the universal capabilites of the World Wide > Web. > HyperText can now also be produced with FrameMaker. Info is on > info.cern.ch. > > --Marcus Speh > -- > [WWW] http://x4u.desy.de:80/gnu/ftp/pub/www/people/marcus.html > > FYI I have a couple of references on Hypertext and Literate Programming "A Hypertext System for Literate C++ Programming" J. Sametinger, Journal of Object Oriented Programming, Vol. 4, No. 8, January 1992, pp 24-29 "A Hypertext for Literate Programming" M. Brown, Lecture Notes in Computer Science, Vol 468, 1990, pp 250-259 ---------------------------------------------- Stephen Cross, Systems & Software Engineering BNR Europe Ltd, Harlow, Essex, England Email: scc@bnr.co.uk Internal Tel : 742 2861 External Tel : +44 (0)279 402861 ================================================================================ Archive-Date: Wed, 24 Mar 1993 18:09:38 CST Sender: LP-Mgr@SHSU.edu Date: Wed, 24 Mar 93 16:17:02 CST From: grodecki@informix.com (Don Grodecki) Reply-To: LitProg@SHSU.edu Message-ID: <9303242217.AA20122@lenexa.pd> To: x4u.desy.de!marcus@uunet.pa.dec.com Subject: HyperWeb CC: litprog@shsu.edu Marcus Speh writes: > If there is a way for using HyperText for Literate Programming, > we can undoubtedly use the universal capabilites of the World Wide > Web. Please read the article by Vista Technologies on HyperWeb Literate Programming in ACM-SDE-12/92/VA. Does anyone have any information on this interesting LitProg project? ================================================================================ Archive-Date: Wed, 24 Mar 1993 22:33:24 CST Sender: LP-Mgr@SHSU.edu Date: Wed, 24 Mar 93 23:31:33 -0500 From: norman@bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu Message-ID: <9303250431.AA06617@wind.bellcore.com> To: LitProg@SHSU.edu, x4u.desy.de!marcus@uunet.pa.dec.com Subject: Re: HyperWeb what in the world is ACM-SDE-12/92/VA? ================================================================================ Archive-Date: Thu, 25 Mar 1993 08:15:50 CST Sender: LP-Mgr@SHSU.edu Date: 25 Mar 1993 15:08 +0000 (GMT) From: "Eric W. van Ammers, LUW, tel: (+31)8370-83356" Reply-To: LitProg@SHSU.edu Subject: Provisional CLiP manual To: LITPROG@shsu.edu Message-ID: <01GW89X0YGG0AAUPTU@RCL.WAU.NL> A provisional manual for the CLiP/MS-DOS system has now been prepared. The type-set version can be retrieved anonymously by FTP as the file CLIP_MAN.PS from the directory clip\ms_dos on sun01.info.wau.nl. I have also prepared and ASCII version as CLIP_MAN.ASC. But this is only meant as an escape in case the type-set version does not print properly on your laserprinter. ============================================================================ 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, 26 Mar 1993 17:03:15 CST Sender: LP-Mgr@SHSU.edu Message-ID: <9303262259.AA27434@im4u.cs.utexas.edu> From: leew@cs.utexas.edu (Lee Wittenberg) Reply-To: LitProg@SHSU.edu Date: Fri, 26 Mar 1993 16:59:36 -0600 To: LitProg@shsu.edu Subject: Announcing a WinWord WEB (such as it is) I have just completed a crude (repeat crude) WEB system that works with Microsoft Word for Windows (v2.0). Anyone who wants to play with it is welcome to get the file pub/leew/wordweb.zip via anonymous ftp to bart.kean.edu. The distribution includes a Word template with special macros, menu items, and a paragraph style defined (WORDWEB.DOT), a mercifully brief description of the system and how to use it (WORDWEB.DOC), and a trivial example program (EXAMPLE1.DOC). This distribution is really a case of what you see is all you get. I do not intend on supporting this product (I don't use it myself; I'm still an unrepentant TeXXie), but there was such an extended discussion on the network about such an animal that it seems worthwhile to make my efforts generally available. If anyone is interested in supporting WinWordWEB on a regular basis, please let me know. Ironically, the reason I ended up ``belling the cat'' myself (and being hoist by my own petard) is due to a colleague's success using noweb. I'd finally convinced one of my coworkers here to try literate programming. Once he got used to it, he was so ecstatic that everyone else was interested in trying it, but no one wanted to learn a new tool. WinWordWEB is the result. I'll be very interested in the experiences of anyone who tries using the package, particularly if you're interested in taking over this project. The program has a number of flaws, but is definitely usable. I will respond to all bug reports, but I don't promise to fix any of them. Happy hunting. -- Lee ================================================================================ Archive-Date: Sat, 27 Mar 1993 09:38:33 CST Sender: LP-Mgr@SHSU.edu Date: Sat, 27 Mar 93 22:25:20 +0100 From: baardk@lie.uit.no (Baard Krane) Reply-To: LitProg@SHSU.edu Message-ID: <9303272125.AA29694@lie.uit.no> To: litprog@shsu.edu Subject: subscribe litprog ================================================================================ Archive-Date: Sun, 28 Mar 1993 11:12:47 CST Sender: LP-Mgr@SHSU.edu Date: Sun, 28 Mar 1993 11:12:37 CST From: "George D. Greenwade" Reply-To: LitProg@SHSU.edu To: LitProg@SHSU.edu Message-ID: <0096A2E2.5A719460.16599@SHSU.edu> Subject: RE: Announcing a WinWord WEB (such as it is) On Fri, 26 Mar 1993 16:59:36 -0600, leew@cs.utexas.edu (Lee Wittenberg) announced: > I have just completed a crude (repeat crude) WEB system that works with > Microsoft Word for Windows (v2.0). Anyone who wants to play with it is > welcome to get the file pub/leew/wordweb.zip via anonymous ftp to > bart.kean.edu. The distribution includes a Word template with special > macros, menu items, and a paragraph style defined (WORDWEB.DOT), a > mercifully brief description of the system and how to use it (WORDWEB.DOC), > and a trivial example program (EXAMPLE1.DOC). I have placed the original ZIP distribution in [FILESERV.WORDWEB] as WORDWEB-0_00.ZIP on Niord.SHSU.edu (192.92.115.8) for anonymous ftp retrieval from here, and have UUENCODEd the ZIP file such that the command: SENDME WORDWEB in the body of a mail message to FILESERV@SHSU.BITNET (FILESERV@SHSU.edu) will also retrieve it via e-mail. Regards, George %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% George D. Greenwade, Ph.D. Bitnet: BED_GDG@SHSU Department of Economics and Business Analysis THEnet: SHSU::BED_GDG College of Business Administration Voice: (409) 294-1266 P. O. Box 2118 FAX: (409) 294-3612 Sam Houston State University Internet: bed_gdg@SHSU.edu Huntsville, TX 77341 bed_gdg%SHSU.decnet@relay.the.net %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ================================================================================ Archive-Date: Mon, 29 Mar 1993 02:02:50 CST Sender: LP-Mgr@SHSU.edu Date: Mon, 29 Mar 93 09:59:41 +0200 From: se_haux@rcvie.co.at (Michael Haux) Reply-To: LitProg@SHSU.edu Message-ID: <9303290759.AA11434@rcsun1.rcvie.co.at> To: litprog@shsu.edu Subject: Request for WEB information Hello, I'm quite new on this mailing list and would appreciate some information. - Is there an overview over available WEBS? I only know of CWEB, FWEB and the newly announced WinWord-WEB. - Has anyone created a WEB for Interleaf? - Are there any literate programming systems (WEBS?) using hypertext features available? Thanks and regards, Michael Haux, Internet: Michael.Haux@rcvie.co.at =================================================================================== V Software Engineering Department +-----------------------+ Alcatel Austria Forschungszentrum GmbH | A L C A T E L | Ruthnergasse 1-7, A-1210 Vienna, Austria/EUROPE +-----------------------+ Voice: +43 1 39 16 21 362 Fax: +43 1 39 14 52 ================================================================================ Archive-Date: Tue, 30 Mar 1993 15:28:25 CST Sender: LP-Mgr@SHSU.edu Date: 30 Mar 1993 23:25 +0000 (GMT) From: "Eric W. van Ammers, LUW, tel: (+31)8370-83356" Reply-To: LitProg@SHSU.edu Subject: Problems with postscript files of CLiP To: LITPROG@shsu.edu Message-ID: <01GWFQR6MRBKAAV1OA@RCL.WAU.NL> Some people have problems with the postscript files of the CLiP system residing in the directory "ms_dos" of ftp node "sun01.info.wau.nl". I have replaced these file by postscript files prepared with a different driver. Hopefully this resolves the printing problems. Should you continue to have problems with these postscript files you can send me also your conventional mail adress and I will mail copies of the desired files by conventional mail. Of course fax-ing is also a possibility but due to the poor quality I only recommended this if you are really in a hurry. 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: Wed, 31 Mar 1993 00:49:50 CST Sender: LP-Mgr@SHSU.edu Date: Wed, 31 Mar 1993 16:31:14 +1000 From: Richard Walker Reply-To: LitProg@SHSU.edu Message-ID: <199303310631.AA23991@barnard.anu.edu.au> To: LitProg@SHSU.edu Subject: Mini-indexes in TeX: The Program & METAFONT: The Program Dear LitProgrammers: `TeX: The Program' and `METAFONT: The Program' have `mini-indexes' on the bottom right of each double page. How were they done? I weaved tex.web but I didn't get any of these indexes in the output. I'm surprised this isn't an FAQ. (Or am I just na\"\i ve?) Richard. -- Richard Walker richard@cs.anu.edu.au Department of Computer Science Aust: (06) 249 5687 The Australian National University Intl: +61 6 249 5687 GPO Box 4, Canberra, ACT 2601, Australia ================================================================================ Archive-Date: Wed, 31 Mar 1993 02:37:08 CST Sender: LP-Mgr@SHSU.edu From: stephan@stack.urc.tue.nl (Stephan Eggermont) Reply-To: LitProg@SHSU.edu Message-ID: <9303310829.AA02261@blade.stack.urc.tue.nl> Subject: Re: Mini-indexes in TeX: The Program & METAFONT: The Program To: LitProg@SHSU.edu Date: Wed, 31 Mar 1993 10:29:20 +0200 (MET DST) > `TeX: The Program' and `METAFONT: The Program' have > `mini-indexes' on the bottom right of each > double page. How were they done? I weaved tex.web but I > didn't get any of these indexes in the output. > > I'm surprised this isn't an FAQ. (Or am I just na\"\i ve?) Well, some time ago I asked the same question, so it might be... Anyway, the answer I got was: by hand. I suppose there is too much hand-tuning needed to get it working ok. groetjes, Stephan Eggermont ================================================================================ Archive-Date: Wed, 31 Mar 1993 07:34:28 CST Sender: LP-Mgr@SHSU.edu Date: Wed, 31 Mar 1993 08:18:49 -0500 From: sanjeev@theory.cs.psu.edu (Sanjeev Y. Dharap) Reply-To: LitProg@SHSU.edu Message-ID: <9303311318.AA06451@omega.theory.cs.psu.edu> To: LitProg@SHSU.edu Subject: Re: Mini-indexes in TeX: The Program & METAFONT: The Program You wrote: | Dear LitProgrammers: | | `TeX: The Program' and `METAFONT: The Program' have | `mini-indexes' on the bottom right of each | double page. How were they done? I weaved tex.web but I | didn't get any of these indexes in the output. | | I'm surprised this isn't an FAQ. (Or am I just na\"\i ve?) | I inquired about this a couple of years ago on comp.text.tex. They (especially Don Hosek) said that Knuth did them by hand. thanx sanjeev ================================================================================ Archive-Date: Wed, 31 Mar 1993 08:45:44 CST Sender: LP-Mgr@SHSU.edu Message-ID: <9303311444.AA22148@math.berkeley.edu> To: LitProg@shsu.edu Subject: Re: Mini-indexes in TeX: The Program & METAFONT: The Program CC: levy@math.berkeley.edu Date: Wed, 31 Mar 93 06:44:17 -0800 From: Silvio Levy Reply-To: LitProg@SHSU.edu > `TeX: The Program' and `METAFONT: The Program' have > `mini-indexes' on the bottom right of each > double page. How were they done? I weaved tex.web but I > didn't get any of these indexes in the output. Knuth has a program "ctwill" that works in two passes to make the mini-indexes. However, it takes a large amount of hand intervention, and for that reason he has not been distributing it. Some people on the list might have it, though. Silvio ================================================================================ Archive-Date: Wed, 31 Mar 1993 10:10:48 CST Sender: LP-Mgr@SHSU.edu Date: Wed, 31 Mar 93 11:08:10 -0500 From: ras@skanda.zko.dec.com (Bob Surtees) Reply-To: LitProg@SHSU.edu Message-ID: <9303311608.AA08984@skanda.zko.dec.com> To: LitProg@SHSU.edu Subject: Mini-indexes in TeX: The Program & METAFONT: The Program Silvio> Knuth has a program "ctwill" that works in two passes to make the Silvio> mini-indexes. However, it takes a large amount of hand intervention, Silvio> and for that reason he has not been distributing it. Some people on Silvio> the list might have it, though. Silvio> Silvio What does ``large amount of hand intervention'' mean. I would also be very interested in getting my hands on this program if it is available. Bob Surtees (ras@zkanda.zko.dec.com) ================================================================================ Archive-Date: Wed, 31 Mar 1993 10:32:38 CST Sender: LP-Mgr@SHSU.edu Date: Wed, 31 Mar 93 09:29:35 MST From: "Nelson H. F. Beebe" Reply-To: LitProg@SHSU.edu To: LitProg@SHSU.edu CC: beebe@math.utah.edu Subject: Re: Mini-indexes in TeX: The Program & METAFONT: The Program Message-ID: The story I got from David Fuchs, who wrote the code to do the mini-indexes on each page of Volumes B and D of Computers and Typesetting, was that the coding was a hack done just for those books, using a variety of non-portable tools to get the job done. I think those indexes are terrific, and keep hoping that someday, someone will write an extended set of changes for weave that will provide them. ======================================================================== Nelson H. F. Beebe Tel: +1 801 581 5254 Center for Scientific Computing FAX: +1 801 581 4148 Department of Mathematics, 105 JWB Internet: beebe@math.utah.edu University of Utah Salt Lake City, UT 84112, USA ======================================================================== ================================================================================ Archive-Date: Wed, 31 Mar 1993 10:33:52 CST Sender: LP-Mgr@SHSU.edu Date: Wed, 31 Mar 93 18:30:59 +0200 From: dak@POOL.Informatik.RWTH-Aachen.DE Reply-To: LitProg@SHSU.edu Message-ID: <9303311630.AA00819@messua> To: LitProg@SHSU.edu Subject: Re: Mini-indexes in TeX: The Program & METAFONT: The Program Regardless of how they were done, they make the "added value" the books have over the free WEB sources. Note that unlike the TeXbook and the METAFONTbook, which you are not allowed to reproduce the WEBsources can be made into printable form as much as you like (they are free!). But you will not get the little indexes that way. ================================================================================ Archive-Date: Wed, 31 Mar 1993 13:59:08 CST Sender: LP-Mgr@SHSU.edu Date: Wed, 31 Mar 93 19:46 GMT From: Frank Pappas <0004238973@mcimail.com> Reply-To: LitProg@SHSU.edu To: LitProg Subject: ctwill Message-ID: <81930331194618/0004238973NA1EM@mcimail.com> I would like to get a copy of ''ctwill'' to use with the Ada web I'm working on. If someone could send me an e-mail address to get it from or if someone could just mail a copy of it to me I would appreciate it. Frank Pappas e-mail: fpappas@mcimail.com phone: (215) 789-3206 ================================================================================ Archive-Date: Wed, 31 Mar 1993 17:10:13 CST Sender: LP-Mgr@SHSU.edu Date: Wed, 31 Mar 1993 17:08:25 CST From: "George D. Greenwade" Reply-To: LitProg@SHSU.edu To: info-tex@SHSU.edu, litprog@SHSU.edu, twg@SHSU.edu Message-ID: <0096A56F.8E62F040.31607@SHSU.edu> Subject: SHSU to be down Thursday, 1 April 1993 A quick note to everyone: Our T1 line was brought in on Monday and this afternoon we received the necessary hardware to actually use it. I cannot say exactly when, but tomorrow (1 April -- what a great day to do this -- no this is NOT an April Fool's joke [at least to the best of my knowledge]), we will have to take down our network services while we move a few wires and coordinate a changeover from the 56kB line to the T1 line with the University of Texas Health Sciences Center in Houston (where we connect to T3 speed). Exactly how long we are to be down is anyone's guess at the moment, but it shouldn't be more than a few hours. I sincerely hope (and expect!) that this upgrade to our connectivity will radically improve our connection speeds since we have literally saturated the existing 56kB line. Finally (gotta have a teaser to close, right?), within a few days (after I see what kind of mess we've wrought for ourselves), watch for a major announcement related to the mystical letters CTAN (pronounced see-tan). Regards, George %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% George D. Greenwade, Ph.D. Bitnet: BED_GDG@SHSU Department of Economics and Business Analysis THEnet: SHSU::BED_GDG College of Business Administration Voice: (409) 294-1266 P. O. Box 2118 FAX: (409) 294-3612 Sam Houston State University Internet: bed_gdg@SHSU.edu Huntsville, TX 77341 bed_gdg%SHSU.decnet@relay.the.net %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ================================================================================ Archive-Date: Wed, 31 Mar 1993 19:09:52 CST Sender: LP-Mgr@SHSU.edu Date: Thu, 1 Apr 1993 11:05:58 +1000 From: Richard Walker Reply-To: LitProg@SHSU.edu Message-ID: <199304010105.AA01807@barnard.anu.edu.au> To: LitProg@SHSU.edu Subject: Re: Mini-indexes in TeX: The Program & METAFONT: The Program \begin{naive} Would it be so hard to make the necessary modifications to weave and to cwebmac.tex? Actually, wouldn't LaTeX make the job easier? (Hint hint - I am eagerly awaiting CWEB 3.0.) \end{naive} Should we work towards producing these indexes? I read the first 125+ sections of TeX: The Program recently, and those mini-indexes made it just *so* much easier. Richard. richard@cs.anu.edu.au