Archive-Date: Fri, 01 Apr 1994 10:27:36 CST Sender: owner-litprog@SHSU.edu From: kaelin@bridge.com (Kaelin Colclasure) Reply-To: LitProg@SHSU.edu, kaelin@BRIDGE.COM Subject: Noweb for DOS sans MKS??? Message-ID: Date: 31 Mar 94 20:27:19 GMT To: LitProg@SHSU.EDU I seem to recall seeing a post recently which stated that a new port of noweb was available for DOS systems, and that this version used the Icon translator in place of MKS awk. However, the version I just retrieved from the SHSU archive is the old MKS-dependent one. Is there in fact a new version, or was that whole article simply a late-night hallucination induced by sleep deprivation and day-old pizza? -- // Kaelin Colclasure --------------------------------------------------------- // EMail: kaelin@bridge.com Mail: Bridge Information Systems, Inc. // Voice: (314)567-8463 717 Office Parkway // Fax: (314)432-5391 St. Louis, MO 63141 ================================================================================ Archive-Date: Fri, 01 Apr 1994 10:58:40 CST Sender: owner-litprog@SHSU.edu Date: Fri, 1 Apr 94 09:24:14 CST From: thompson@sun1.coe.ttu.edu (Dave Thompson (3/1/93)) Reply-To: LitProg@SHSU.edu, thompson@SUN1.COE.TTU.EDU Message-ID: <9404011524.AA16213@sun1.coe.ttu.edu> To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: Seeking account of experiences with noweb CC: dthompson@coe2.coe.ttu.edu, thompson@sun1.coe.ttu.edu > If you've used noweb on a project that mattered to you (only you know > what's important), I'd like to talk to you. I'm publishing an article > about noweb, and the editorial staff of IEEE Software would like to > hear more about how people (other than me and my colleagues) have used > noweb. They're especially interested to hear about using noweb in > ``practical'' situations. (Again, if you think it was practical, then > it was.) I've used noweb on a project just recently. It is a FORTRAN (don't laugh) program to read meteorological data from a couple of files and compute evapotranspiration using FAO-24 Penman. The programs comprise somewhere between 1000-2000 lines; the documentation (woven) is over 50 pages. I learned a lot about literate programming with this experience. On review, I think that I have some conceptual errors in my web because I was forced to study the tangled code to find some not-too-subtle errors in the algorithms. Of course (although if pinned I'll deny all knowledge of the following statement ;-), I was forced to resort to my rather archaic and traditional debugging technique of using write statements to determine some errors in the code. I'll have to produce another module for this program to read data from a different format file and recompute evapotranspiration values for a longer period-of-record for the project. This will probably be simple because all of the hard work is already done. For the record, I'm no professional programmer---I'm an engineer and researcher. My subjective evaluation is that I produce (at least) better documented code using literate techniques. The woven output will eventually be published as a Water Resources Center technical report. I'll probably do some cleanup prior to publishing, but the essentials will remain unchanged. Hope this helps...call me if you like at (806) 742-3485. I've also used nuweb to a more limited extent. I like that ability to concatanate chunks so I can develop the code and logic simultaneously; nuweb doesn't provide for this (at least that I can tell). Regards, -=d ======================================================================= David B. Thompson internet: thompson@sun1.coe.ttu.edu Civil Engineering Dept. internet: dthompson@coe2.coe.ttu.edu Texas Tech University internet: wqdbt@ttacs1.ttu.edu P.O. Box 41023 Lubbock, Texas 79409-1023 "Get a haircut and get a *real* job." ======================================================================= ================================================================================ Archive-Date: Fri, 01 Apr 1994 14:14:28 CST Sender: owner-litprog@SHSU.edu Date: Fri, 1 Apr 94 14:15:58 CST From: thompson@sun1.coe.ttu.edu (Dave Thompson (3/1/93)) Reply-To: LitProg@SHSU.edu, thompson@SUN1.COE.TTU.EDU Message-ID: <9404012015.AA16718@sun1.coe.ttu.edu> To: LitProg@SHSU.edu, kaelin@BRIDGE.COM Subject: Re: Noweb for DOS sans MKS??? Nope, there is a new port of noweb. Try CTAN again in the directory: ftp.shsu.edu:/tex-archive/web/independent/noweb That should get it for you. -=d ======================================================================= David B. Thompson internet: thompson@sun1.coe.ttu.edu Civil Engineering Dept. internet: dthompson@coe2.coe.ttu.edu Texas Tech University internet: wqdbt@ttacs1.ttu.edu P.O. Box 41023 Lubbock, Texas 79409-1023 "Get a haircut and get a *real* job." ======================================================================= ================================================================================ Archive-Date: Sat, 02 Apr 1994 05:01:16 CST Sender: owner-litprog@SHSU.edu From: ramsdell@linus.mitre.org (John D. Ramsdell) Subject: HTML from nuweb version 0.87a Date: 02 Apr 1994 10:41:33 GMT Message-ID: Reply-To: LitProg@SHSU.edu, ramsdell@mitre.org To: LitProg@SHSU.EDU I have modified nuweb so that it generates HTML, the HyperText Markup Language used in the World Wide Web. The new version is called nuweb0.87a, and its behavior is identical to nuweb0.87's, except when it is presented with a file whose name ends in ".hw". In that case, it produces scraps with HTML formatting commands instead of LaTeX commands. Authors of ".hw" files must use HTML commands for documentation, not LaTeX commands. The file is available from CTAN in at least the following location: ftp.shsu.edu:/tex-archive/web/nuweb/nuweb0.87a.tar.gz In the short amount of time I have used the program, I have found I write HTML webs differently than LaTeX webs. For example, one immediately notices that one should document scraps after they are presented due to the way viewers treat hyperlinks. I am very interested in collecting other similar words of advice from users. Please send the tricks you learn to ramsdell@mitre.org. By the way, I have noticed it is nice to produce HTML from LaTeX webs, because the hypertext links are so useful. Give it a try on nuweb.w. The descriptions will be jumbled, but the scraps will be readable when viewed with Mosaic. Enjoy! John ================================================================================ Archive-Date: Sat, 02 Apr 1994 14:27:43 CST Sender: owner-litprog@SHSU.edu Date: Sat, 2 Apr 94 15:27:41 EST From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET To: LitProg@shsu.edu, kaelin@bridge.com Subject: Re: Noweb for DOS sans MKS??? Message-ID: Kaelin Colclasure writes: > I seem to recall seeing a post recently which stated that a new port > of noweb was available for DOS systems, and that this version used the > Icon translator in place of MKS awk. However, the version I just > retrieved from the SHSU archive is the old MKS-dependent one. Is > there in fact a new version, or was that whole article simply a > late-night hallucination induced by sleep deprivation and day-old > pizza? I don't know about the hallucinatory powers of day-old pizza, but there *is* a new one that is not dependent on Awk or anything else. I have it on good authority that the new version is at the official noweb site bellcore.com under the pub/norman directory. If that fails, there is a copy of the new dosnoweb.zip in the pub/leew directory of bart.kean.edu. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Computer Science Department | Do we not feast upon trivialities to Kean College of New Jersey | divert attention from the truly portentous Union, NJ 07083 | issues that engulf us? USA | | -- Stephen Jay Gould (1994) leew@pilot.njin.net | ------------------------------------------------------------------------ ================================================================================ Archive-Date: Sun, 03 Apr 1994 20:04:39 CST Sender: owner-litprog@SHSU.edu From: sjwright@cix.compulink.co.uk ("Simon Wright") Reply-To: LitProg@SHSU.edu, sjwright@CIX.COMPULINK.CO.UK Subject: Re: Seeking account of experiences with noweb Message-ID: Date: Sun, 3 Apr 1994 20:42:58 GMT To: LitProg@SHSU.EDU Dave Thompson (3/1/93) (thompson@sun1.coe.ttu.edu) wrote: [...] > Hope this helps...call me if you like at (806) 742-3485. I've also > used nuweb to a more limited extent. I like that ability to > concatanate chunks so I can develop the code and logic simultaneously; > nuweb doesn't provide for this (at least that I can tell). The nuweb I have here certainly seems to do this, on the simple test I've just done. I've written a couple of programs in cweb (a newbie here), but like and need the ability to handle multiple program & language files in the one web. The thing that bothers me, in prospect, is the interaction between nuweb & make; it's not practical to make the tangled output files depend explicitly on the web file, I think. I suppose the technique used by nuweb itself is the answer here? all: $(MAKE) $(TARGET).tex $(MAKE) $(TARGET) -- Simon Wright Ferranti International, Defence Systems Integration (in administrative receivership :-) ================================================================================ Archive-Date: Tue, 05 Apr 1994 10:07:55 CST Sender: owner-litprog@SHSU.edu Date: Tue, 05 Apr 1994 16:53 +0000 (GMT) From: "Eric W. van Ammers, LUW, tel: (+31)8370-83356" Reply-To: LitProg@SHSU.edu, AMMERS@RCL.WAU.NL Subject: LP and Hypertext (Mosaic) To: LITPROG@shsu.edu Message-ID: <01HATN6AIBO0F6WBB5@RCL.WAU.NL> Content-Transfer-Encoding: 7BIT Literate Programming, HTML and Mosaic If you are curious for literate programming in hypertext systems, you are invited to anonymously ftp from node sun01.info.wau.nl all the files in directory /clip/html The directory contains three HTML-file (extension .HTM) which together document a CLiP type of literate program. In addition there is a READ.ME explaining the module extraction process in detail. Literate programming with hypertext and CLiP implies the following procedure: a. Construct the hypertext files (HTML in this case) with any editor of your choice. b. Use an appropriate hypertext browser (e.g. Mosaic) to fool around with the hypertext. c. To obtain the actual program 1. Extract ascii files from the hypertext files using the appropriate browser options. 2. Use CLiP on the ascii files to extract the actual program. Preliminary conclusions: - To define the hyperlinks is quite time consuming and to define an optimal hyperlink strategy (i.e. where should I define a link to what) is not trivial. - Hypertext does not eliminate the need for hard-copy versions of the documentation. Thus the hypertext documentation system should have sufficient features to prepare an adequate hard-copy. - CLiP works seamlessly in combination with HTML. ============================================================================ 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, 05 Apr 1994 11:16:22 CST Sender: owner-litprog@SHSU.edu From: jmb29@cus.cam.ac.uk (Julian Birch) Reply-To: LitProg@SHSU.edu, jmb29@CUS.CAM.AC.UK Subject: Re: CWEB by Knuth - where can I find doc or demo? Date: 5 Apr 1994 16:10:33 GMT Message-ID: <2ns2hp$qj1@lyra.csx.cam.ac.uk> To: LitProg@SHSU.EDU I've cross-posted this to comp.programming.literate where this sort of thing resides. In article <2nnk8v$lgn@emory.mathcs.emory.edu>, Alan Watts wrote: >I just finished an interiew with Donald Knuth on a new language CWEB. >He says its integrated with C's good features doubling productivity, >and is a pleasure to use. > >Where can I find more info on it? Well, CTAN for one place, the comp.programming.literate faq is a good starting point for more general information on such matters and where to get them. Knuth was responsible for the idea, but I think others have done it better (I use noweb rather than cweb for example.) I'm not convinced about Knuth's claims - it would be nice if they were true. Try reading Norman Ramsey's excellent article on his experience with web. I'm afraid I can't remember the reference, but it ought to be in the faq (but, as far as I recall, isn't.) Essentially, it's just a macro processor designed in such a way as to make you think in a different way about how you write code. It works to some extent, but is a royal pain in others. Tools such as noweb make this obvious, tools like cweb confuse matters, imho. Julian. PS Is this going to become a webwar? Thought so. 8-) -- For my curriculum vitae, type finger jmb29@hermes.cam.ac.uk ================================================================================ Archive-Date: Tue, 05 Apr 1994 11:16:29 CST 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: Refinements is bad terminology Date: 5 Apr 1994 16:06:48 GMT Message-ID: <2ns2ao$ogr@rs18.hrz.th-darmstadt.de> To: LitProg@SHSU.EDU In article , maavl@cwi.nl (Marc van Leeuwen) writes: > In article <2ncfkg$hih@rs18.hrz.th-darmstadt.de>, > schrod@iti.informatik.th-darmstadt.de (Joachim Schrod) writes: > > |> Yes, here I agree with you. And I don't see the contradiction: A > |> piece of code is more concrete than a placeholder that notes the pre- > |> and post-conditions. > > Sorry about my ignorance on this point but what is all this talk about pre- > and post-conditions about? Has anyone ever seen a real (as opposed to toy) > pre- or post-condition? Yes, in the interface specifications of my modules. Actually, I don't use _formal_ conditions very often. Sometimes, they tend to be as complex as the programs themselves and they don't raise the abstraction level necessarily. In particular, formal conditions for user interface modules are notoriously difficult to formulate; and that's where my current work focuses on. Nevertheless semi-formal conditions are very helpful. With `semi-formal' I mean that they are mandatory; they have to use a kind of prose that explains the changes in state, i.e., they have to be verbal expressions of predicates that hold before and/or after the activation of that interface. It is also of interest to preclude this kind of specification with a description of the general model one has in mind of the abstraction a component is responsible to represent. If one's analysis and design method is data-driven, it's useful to use prose that orients on the equations and restrictions formalism of algebraic specifications (one can neglect errors and exceptions since they are covered in the interface specification part). In connection with abstract functions and representation invariants this provides very good documentation on the basic assumptions one has used in the contract (ie, the specs) and the implementation. Of course, for critical modules formal specs might be in order, too. Personally, I prefer the Larch framework in that case. For a longer discussion on the background of this posting you might want to read @book{spec:liskov:abstraction, author = {Barbara H. Liskov and John V. Guttag}, title = {Abstraction and Specification in Program Development}, publisher = mit, year = 1986, isbn = {0-262-12112-3}, library = {D.1/Lis}, annote = {\js{} Well written introductionary book on abstraction entities and specification. Uses CLU and Larch (ie, LSL \& Larch/CLU) for formal expressions.} } @string{ mit = "MIT Press"} % isbn: 0-262 I can only recommend this book, it features one of best discussions about the pros and cons of formal specification and presents the ideas on `semi-formal' specifications I outlined above. (Well, but I'm biased since I consider Liskov's work on abstractions and Guttag's work on formal specifications among the most important ones in this area.) Concerning the idea of distinguishing the specification of the abstract model of a component and its interface; this was presented first in the two-tier model of Larch. A good overview may be found in @inproceedings{spec:guttag:two-tiered, author = {John V. Guttag and Jim J. Horning}, title = {Formal Specifications as a Design Tool}, booktitle = {Proceedings of the 7th ACM Symposium on Principles of Programming Languages}, address = {Las Vegas, NV}, month = jan, year = 1980, pages = {251-261}, organization = acm, publisher = sig-plan, note = {Published as } # sigplan # { 15(??), 1980 \unskip. {\bf SIGPLAN number is missing} }, annote = {\js{} Presents the first idea on the ``two-tiered approach,'' which became later the basic principle of the Larch project. Note that it was Jeannette Wing who really worked out the whole paradigm.} } @article{spec:guttag:larch, author = {John V. Guttag and Jim J. Horning and Jeannette M. Wing}, title = {The {Larch} Family of Specification Languages}, journal = ieee-sw, volume = 2, number = 5, month = oct, year = 1985, pages = {24-36}, library = {HeLaHoBi Zb 7098}, annote = {\js{} Special section on the two-tiered approach and on the specification language Larch. These are the basic papers.} } @string{ ieee-sw = "IEEE Software"} There is also a new book on Larch that I haven't read yet: @book{spec:horning:larch-book, author = {Jim J. Horning and John V. Guttag}, title = {Larch: Languages and Tools for Formal Specification}, publisher = springer, year = 1993, isbn = {0-387-94006-5}, library = {}, annote = {} } Cheers, Joachim -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Joachim Schrod Email: schrod@iti.informatik.th-darmstadt.de Computer Science Department Technical University of Darmstadt, Germany ================================================================================ Archive-Date: Tue, 05 Apr 1994 12:19:20 CST 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: 5 Apr 1994 18:59:10 +0200 Message-ID: <2ns5cuINNi7u@spice.iti.informatik.th-darmstadt.de> To: LitProg@SHSU.EDU *** Contents Tue Mar 1 00:20:06 1994 --- /common/ftp/pub/programming/literate-programming/Contents Thu Mar 24 15:10:08 1994 *************** *** 1,3 **** ! # literate-programming/Contents 25 Feb 94 -*- Indented-Text -*- #------------------------------------------------------------ --- 1,3 ---- ! # literate-programming/Contents 24 Mar 94 -*- Indented-Text -*- #------------------------------------------------------------ *************** *** 74,85 **** ! Systems without support of refinements ! -------------------------------------- cnoweb c.c++ MAKEPROG independent is here for my own convenience :-) SchemeWEB lisp ! wbuild /pub/X11/other/fwf CAVEAT: Not in the LitProg ! Archive area! For creating ! new X widget classes. --- 74,91 ---- ! 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: Tue, 05 Apr 1994 12:19:35 CST 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: 5 Apr 1994 18:59:06 +0200 Message-ID: <2ns5cqINNi7t@spice.iti.informatik.th-darmstadt.de> To: LitProg@SHSU.EDU # literate-programming/Contents 24 Mar 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 -- 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 independent lean system, written in C 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: Tue, 05 Apr 1994 16:27:10 CST Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: Noweb for DOS sans MKS??? Message-ID: CC: leew@pilot.njin.net (Lee Wittenberg), kaelin@bridge.COM (Kaelin Colclasure) Date: Tue, 5 Apr 1994 20:10:32 GMT To: LitProg@SHSU.EDU >> I seem to recall seeing a post recently which stated that a new port >> of noweb was available for DOS systems, and that this version used the >> Icon translator in place of MKS awk. However, the version I just >> retrieved from the SHSU archive is the old MKS-dependent one. Is >> there in fact a new version, or was that whole article simply a >> late-night hallucination induced by sleep deprivation and day-old >> pizza? AAAAAARRRRRRRRGRGGGGGGGGHHHHHH! CTAN is mirroring the noweb distribution incorrectly. They have two different distributions of noweb, neither of which is correct. >I have it on good authority that the new version is at the official >noweb site bellcore.com under the pub/norman directory. This is *not* the official noweb site. CTAN is the official noweb site. The bellcore.com site exists for the convenience of the CTAN administrators. Its existence is an open secret, but I may move noweb at any time without notifying anyone other than the CTAN people. In particular, this site contains several other noweb-related files that some users may find confusing. Given the temporary chaos with CTAN, you might want to look at bellcore.com anyway even though it has no official standing :-(. Please accept my apology for not having identified this problem before--- no user should have to suffer through this sort of thing. Norman -- Norman Ramsey norman@bellcore.com ================================================================================ Archive-Date: Tue, 05 Apr 1994 16:38:15 CST Sender: owner-litprog@SHSU.edu Date: Tue, 05 Apr 1994 16:37:55 CST From: "George D. Greenwade" Reply-To: LitProg@SHSU.edu, bed_gdg@SHSU.EDU To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Message-ID: <0097C82A.9868DDA0.151@SHSU.edu> Subject: Re: Noweb for DOS sans MKS??? On Tue, 5 Apr 1994 20:10:32 GMT, norman@flaubert.bellcore.com (Norman Ramsey) posted: > CTAN is mirroring the noweb distribution incorrectly. They have two > different distributions of noweb, neither of which is correct. > >...... > Given the temporary chaos with CTAN, you might want to look at bellcore.com > anyway even though it has no official standing :-(. > > Please accept my apology for not having identified this problem before--- > no user should have to suffer through this sort of thing. Hell, there's no need for Norman to have to apologize for my hosing the distribution. I have just completed a mirroring of his collection (everything as of right now is exactly as on his server), and have ensured that a check on changes in this directory is made daily (and updates immediately forwarded to me so I can check them manually if need be). I messed up the CTAN mirroring in North America (and quite a bit of the CTAN) when I lost connectivity to Aston (now restored, but via the IP number and not the name). My apologies for the mess to everyone, but especially to those kind enough to provide their work for inclusion in the CTAN. --George ================================================================================ Archive-Date: Wed, 06 Apr 1994 03:50:16 CST Sender: owner-litprog@SHSU.edu From: jmb29@cus.cam.ac.uk (Julian Birch) Reply-To: LitProg@SHSU.edu, jmb29@CUS.CAM.AC.UK Subject: Re: Noweb for DOS sans MKS??? Date: 6 Apr 1994 08:37:42 GMT Message-ID: <2ntscm$co9@lyra.csx.cam.ac.uk> To: LitProg@SHSU.EDU In article , Norman Ramsey wrote: >Given the temporary chaos with CTAN, you might want to look at >bellcore.com anyway even though it has no official standing :-(. Well, I've two more reasons: i) as far as I recall, CTAN doesn't have a shared or tarred and feathered copy of noweb, which makes life tedious. I'd have checked my facts but for ii) ftp.tex.ac.uk doesn't seem to be a recognized name in Cambridge anymore - I'll have to annoy my sysadmins and get the story on that and iii) I seem to recall someone's WWW (or gopher) page grabbing the shar down - of course, that's probably their own stupid fault. Julian. -- For my curriculum vitae, type finger jmb29@hermes.cam.ac.uk ================================================================================ Archive-Date: Wed, 06 Apr 1994 06:26:47 CST Sender: owner-litprog@SHSU.edu From: thompson@sun1.coe.ttu.edu Subject: comp.programming.literate FAQ Date: 6 Apr 1994 11:13:12 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/03/30 Version: 1.1.4 Welcome to the Literate Programming Frequently Asked Questions List ------------------------------------------------------------------- This version was created Wednesday - March 30, 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? ----------- + Added the "what's new" section. + Update stuttgart CTAN node from uni-stuttgart to dante. + Update virtual coursework. + Make ProTeX a litprog tool. + Added Stanford GraphBase to examples. + Added references to Amiga CWEB and Amiga nuweb ports. + Updated noweb entry. + Added c2cweb entry. + Updated web-mode.el entry. + Added noweb mode entry. + Updated SchemeWEB 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 - 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 - 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. (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 (FILESERV@SHSU.BITNET) 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 (FILESERV@SHSU.BITNET), 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). = ====================================================================== * 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 (or LISTSERV@SHSU.BITNET), 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. = ====================================================================== * 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 - ---------------------------------------------------------------------- - 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: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/machines/mac CTAN:/web/lpw ftp.apple.com:/pub/literate.prog Readme: Unknown 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 MPW: 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. Support: Shareware ($50 US), so I assume that the author will support his product. - ---------------------------------------------------------------------- - 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.5a Hardware: Unix and DOS platforms. Languages: All programming languages. Formatter: Plain TeX and LaTeX formatters. Availability: Anonymous ftp from: bellcore.com:/pub/norman CTAN:/web/independent/noweb LPA:/independent DOS version in LPA:/machines/ms-dos also bart.kean.edu:/pub/leew 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. 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, and (!) MSDOS. 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: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: TeX Availability: Anonymous ftp from: LPA:/independent Readme: Unknown Description: Unknown Support: Unknown - ---------------------------------------------------------------------- - 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.0 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/new/schemeweb.sh LPA:/lisp CTAN: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@triad.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.1 Hardware: DOS, OS/2, Unix (presumed) -- source included Languages: C, C++ Formatter: TeX Availability: Anonymous ftp from CTAN:/web/c_cpp 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: Unknown Hardware: Presumably anything with a C compiler. Languages: C Formatter: nroff -man, texinfo 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: Unknown 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: Unknown. - ---------------------------------------------------------------------- - 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. - ---------------------------------------------------------------------- - 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 ddw@sunbim.be - ---------------------------------------------------------------------- - nuweb.el ---------- Developer: Dominique de Waleffe Version: 1.15 (2.0 RSN) 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. 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/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/user/projects/LitProg.html Help for people who have only Email and neither WWW nor telnet, can be obtained by Email from LISTSERV@INFO.CERN.CH by sending a message containing the command HELP. Instructions will be returned by email. For literate programming documents, you can try anonymous ftp to ftp.desy.de [131.169.10.115] and attach to directory: /pub/userWWW/projects/Announce - ---------------------------------------------------------------------- - 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 (LISTSERV@SHSU.BITNET), 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 teh hypertext notes for the ongoing C++ Course done in a similar fashion, at URL http://info.desy.de/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.70.0.209], 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.70.0.209 /* 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 be evolving over the next few months. 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. History: First release: Fri 10/15/1993 -- Yep, I finally did it! Thu 10/21/93 -- Minor change to ftp instructions. Fri 10/22/93 -- Minor change to stuttgart ip and fweb.faq version. Made reader-recommended changes, lots of re- organization, and added a few tools. Mon 11/01/93 -- Corrected typo in address. Thu 11/11/93 -- Minor change to www. Fri 11/12/93 -- Fixed CLiP entry, spiderweb entry. Wed 01/05/94 -- Lots of minor updates. Reformatting of tool entries deserves a minor revision update. Thu 01/06/94 -- Added Schrod's pointers for noweb, spideryweb, WinWordWeb. Fri 01/07/94 -- Updated nuweb.el and FWEB entries. = End of File ========================================================== ================================================================================ Archive-Date: Wed, 06 Apr 1994 10:01:22 CST Sender: owner-litprog@SHSU.edu Date: Wed, 06 Apr 1994 10:01:12 CST From: "George D. Greenwade" Reply-To: LitProg@SHSU.edu, bed_gdg@SHSU.EDU To: LitProg@SHSU.edu, jmb29@CUS.CAM.AC.UK Message-ID: <0097C8BC.57673EE0.76@SHSU.edu> Subject: Re: Noweb for DOS sans MKS??? On 6 Apr 1994 08:37:42 GMT, jmb29@cus.cam.ac.uk (Julian Birch) posted: > In article , > Norman Ramsey wrote: > >Given the temporary chaos with CTAN, you might want to look at > >bellcore.com anyway even though it has no official standing :-(. > > Well, I've two more reasons: i) as far as I recall, CTAN doesn't have a > shared or tarred and feathered copy of noweb, which makes life tedious. I'd > have checked my facts but for ii) ftp.tex.ac.uk doesn't seem to be a > recognized name in Cambridge anymore - I'll have to annoy my sysadmins and > get the story on that and iii) I seem to recall someone's WWW (or gopher) > page grabbing the shar down - of course, that's probably their own stupid > fault. Let's take this up point by point. As to i) -- true, the files on the CTAN are not pre-archived into some format (in this case because they're not on the host we mirror for the files). However, the CTAN servers can do this on the fly for you, as documented in README.archive-features upon login. For an archived set of noweb (for example), try the following: cd tex-archive/web bin get noweb.tar.gz and you get a recursive tar archive, gzip'ped, all on the fly, of whatever happens to be in the noweb directory there. Possible archive sets would include: get noweb.tar (non-compressed tar archive) get noweb.zip (zip archive) get noweb.zoo (zoo archive) get noweb.tar.z (gzip'ped tar archive supporting old gzip naming) get noweb.tar.Z (Unix compressed tar archive) In other words, what you say is true, but if you read the README's this can be overcome (why do you think we spent the time writing the README's anyway?). As to item ii) -- also true, ftp.tex.ac.uk doesn't seem to be very operational anywhere these days. This is part of what caused me more than slight problems here with our CTAN collections. I wish I could tell you precisely what's happening with the name server serving this site, but I can't. What I do know is that the people there are aware of the problem and I have been informed that something is being done about it. I don't know what's being done and I don't know it'll be done, but I know it is being attended to. In the interim, you can reach the UK CTAN at Aston via its IP number -- 134.151.79.32. Thus, there is no need to annoy your system administrator or anyone further -- that's the story. As to item iii) -- I haven't any clue what the phrase "someone's WWW (or gopher) page grabbing the shar down" means and if it's my or any of my colleagues' "stupid fault" then all it takes is you or someone else contacting someone associated with running the CTAN to get it fixed (we generally try to actually keep these things available for your use, believe it or not). Feel free to contact me directly or the address , which will get to whoever is looking after the CTAN at any specific point in time (generally me, but if I'm away, it goes to someone else). If it can be fixed, it will be fixed as expeditiously as possible, promise. In the interim, if you see a problem, unless we're notified (to borrow some Texan phrasology), quitsherbitchin. > Julian. > -- > For my curriculum vitae, type finger jmb29@hermes.cam.ac.uk Now this is a pretty slick application of finger! Neat idea, neat use. Regards, 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: Wed, 06 Apr 1994 10:56:59 CST Sender: owner-litprog@SHSU.edu Message-ID: To: "George D. Greenwade" CC: LitProg@SHSU.edu, jmb29@CUS.CAM.AC.UK Subject: Re: Noweb for DOS sans MKS??? Date: Wed, 06 Apr 94 16:56:08 +0100 From: "Ds. Julian Birch" Reply-To: LitProg@SHSU.edu, jmb29@CUS.CAM.AC.UK In message <0097C8BC.57673EE0.76@SHSU.edu> you write: >On 6 Apr 1994 08:37:42 GMT, jmb29@cus.cam.ac.uk (Julian Birch) posted: >Let's take this up point by point. As to i) -- true, the files on the CTAN >are not pre-archived into some format (in this case because they're not on >the host we mirror for the files). However, the CTAN servers can do this >on the fly for you, as documented in README.archive-features upon login. Gah. I'd forgetten about that - when I first used CTAN I was on an MVS system, which made these features a bit useless. Thanks also for the info on ftp.tex.ac.uk. The last bit isn't a problem with CTAN at all - it's just that I remember originally getting noweb through NCSA mosaic and I don't believe it used the official route for getting it. >> Julian. >> -- >> For my curriculum vitae, type finger jmb29@hermes.cam.ac.uk > >Now this is a pretty slick application of finger! Neat idea, neat use. Thanks! Julian. ================================================================================ Archive-Date: Wed, 06 Apr 1994 15:21:57 CST Sender: owner-litprog@SHSU.edu From: fiehler@eads.umsl.edu (Greg Fiehler) Reply-To: LitProg@SHSU.edu, fiehler@EADS.UMSL.EDU Message-ID: <9404061941.AA03959@eads> Subject: Info on LItPROG Date: Wed, 6 Apr 1994 14:41:17 -0500 (CDT) To: LitProg@SHSU.EDU Greetings, I was introduced to LitProg late last year and have been attempting to learn CWEB and LitProg practices since then. First I would like to thank everyone here that has helped me out by answering my past questions. I'm a undergraduate at University of Missouri St. Louis and my advisor would like me to address our ACM student chapter on LitProg to try and generate some interest in its use on our campus. I have myself just started to realize the potential of using these methods and am convinced that they are worth pursuing. But I feel that besides talking about the advantages that I've seen in my own limited work and those that I have read about in Knuth's Literate Programming book I would also like to tell my fellow students that these methods and tools are actually being used in the programming community and not just as an acedemic exercise. I see the potential that these methods could have but I also think it will be difficult to convince a group to learn these methods in order to use them in a large project. If anyone can give me some examples of actual usage of LitProg or how you convinced a group to utilize these methods I would appreciate it very much. Also since I am still new at this if anyone has some "top 10" points I should mention in a talk on LitProg or any other ideas to help generate interest I would also appreciate this . As a personal side I was wondering what other schools are doing to promote the use of LitProg tools and practices. Thankyou, Gregg Fiehler fiehler@eads.umsl.edu University of MO-St. Louis ================================================================================ Archive-Date: Wed, 06 Apr 1994 19:52:27 CST Sender: owner-litprog@SHSU.edu From: tmconlan@ucdavis.edu (Tye M. Conlan) Reply-To: LitProg@SHSU.edu, tmconlan@UCDAVIS.EDU Subject: convert DBASE IV ver. 2.0 to Foxpro Message-ID: Date: Thu, 7 Apr 1994 00:01:43 GMT To: LitProg@SHSU.EDU help wanted; Need assistance in converting a custom DBASE IV version 2.0 database application ( approx. 15,000 lines of code) to FoxPro for windows. Need to match the windows standard interface. Call Charlie Hoes Hoes Engineering (916)-756-3999 Davis California, USA. ================================================================================ Archive-Date: Wed, 06 Apr 1994 19:52:42 CST Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: Noweb for DOS sans MKS??? Message-ID: CC: Julian Birch Date: Wed, 6 Apr 1994 23:07:40 GMT To: LitProg@SHSU.EDU In article <2ntscm$co9@lyra.csx.cam.ac.uk>, Julian Birch wrote: >CTAN doesn't have a shared >or tarred and feathered copy of noweb, which makes life tedious. CTAN *automatically* tars and feathers directories on request. Just get noweb.tar.gz. Norman ================================================================================ Archive-Date: Wed, 06 Apr 1994 20:24:36 CST Sender: owner-litprog@SHSU.edu Date: Wed, 6 Apr 94 18:19:30 PDT From: bos@mdd.comm.mot.com (Mary Bos) Reply-To: LitProg@SHSU.edu, bos@MDD.COMM.MOT.COM Message-ID: <9404070119.AA09106@bb37c.mdd.comm.mot.com> To: LitProg@SHSU.edu, fiehler@EADS.UMSL.EDU Subject: Re: Info on LItPROG Message replied to: From owner-litprog@SHSU.edu Wed Apr 6 15:41:19 1994 From: fiehler@eads.umsl.edu (Greg Fiehler) Reply-To: LitProg@SHSU.edu, fiehler@EADS.UMSL.EDU Subject: Info on LItPROG Date: Wed, 6 Apr 1994 14:41:17 -0500 (CDT) Hi Gregg, I'm in a graduate software engineering program at Seattle University in Seattle Washington. One of my classes looked at literate programming as a curosity (I presented a preselected paper that presented an algorithm in literate programming). I happen to be interested in lit programming but my classmates mostly pooh-poohed the idea. On the otherhand, I introduced lit programming where I worked. And now there is an internal tools group developing software using literate programming and they believe they are producing higher quality work (an internal paper will be presented on this at an internal conference). This group consists of about 3 or 4 people working in several programming languages. If the paper is released for public consumption, I'll post the reference. Mary Bos "All statements are my own and do not represent Motorola" mary bos Motorola Wireless Data Group bos@mdd.comm.mot.com Bothell WA 98011 (near the Emerald City) "I don't think we're in Kansas anymore Toto" - Dorothy ================================================================================ Archive-Date: Thu, 07 Apr 1994 04:41:38 CST Sender: owner-litprog@SHSU.edu From: jmb29@cus.cam.ac.uk (Ds. Julian Birch) Reply-To: LitProg@SHSU.edu, jmb29@CUS.CAM.AC.UK Subject: Re: Web Tools for FrameMaker? Date: 7 Apr 1994 09:38:53 GMT Message-ID: <2o0kbd$cmo@lyra.csx.cam.ac.uk> To: LitProg@SHSU.EDU In article <2nuv6g$9p9@argo.hks.com>, Uttam Narsu wrote: > >[ I'm posting this here because I don't have access to the newsgroup >comp.programming.literate. Could some kind soul forward this post >to that group? Thanks. ] Done. > >Does anyyone know of any Web (literate programming) tools for >FrameMaker? > >We need to be able to keep mathematical equations, >graphics and code together. I've taken a look through the FAQ, >but didn't see anything that would really help us. > >Most Web tools won't be acceptable to our programmers because >the tools demand some knowledge of TEX (especially for formatting >equations and pictures). Since Frame is already used >for much of our documentation, it seems to be a natural choice for >a front-end to a Web. > >The FAQ mentions two tools that would almost be useful: CLiP and WordWeb. >Alas, CLiP is written in ISO Pascal, which is useless to me since I don't >have a Pascal compiler for my SGI. WordWeb is completely dependent on >Microsoft Word, so no help there. > >As a last resort, if anyone knows of any filters between TEX and Frame MIF >files, that would be helpful. > >Thanks again. > >-- > >Uttam M. Narsu E-mail: narsu@hks.com > >Hibbitt, Karlsson & Sorensen, Inc. Tel: (401) 727-4200 x 4442 >1080 Main Street, Pawtucket RI 02860 Fax: (401) 727-4208 Julian. -- For my curriculum vitae, type finger jmb29@hermes.cam.ac.uk ================================================================================ Archive-Date: Thu, 07 Apr 1994 07:02:57 CST Sender: owner-litprog@SHSU.edu From: jacojn@inet.uni-c.dk (Jacob Nielsen) Reply-To: LitProg@SHSU.edu, jacojn@INET.UNI-C.DK Subject: Re: Web Tools for FrameMaker? Date: Thu, 7 Apr 1994 11:36:34 GMT Message-ID: <76571859420841@inet.uni-c.dk> To: LitProg@SHSU.EDU [...] > >Does anyyone know of any Web (literate programming) tools for >FrameMaker? Some time back, there was someone who had done literate programming using FrameMaker, anyone got that posting?. In the meantime take a look at nuweb. You can tell nuweb to only produce the code files and *not* output the documentation. The downside is that you have to look at scraps like this in the FrameMaker document: @o test.c @{ @ @ @ @} If you can save the FrameMaker document, so that you have text like this, you should be home free using nuweb :-) [...] > >As a last resort, if anyone knows of any filters between TEX and Frame MIF >files, that would be helpful. > >Thanks again. > You're welcome. >-- > >Uttam M. Narsu E-mail: narsu@hks.com > >Hibbitt, Karlsson & Sorensen, Inc. Tel: (401) 727-4200 x 4442 >1080 Main Street, Pawtucket RI 02860 Fax: (401) 727-4208 /Jacob -- Jacob Nielsen Email: jacojn@inet.uni-c.dk (my private account) or bc898574@bbar.dth.dk (my account at the university) ================================================================================ Archive-Date: Fri, 08 Apr 1994 19:37:32 CST Sender: owner-litprog@SHSU.edu From: sriram@glock.tcs.com (Sriram Srinivasan) Reply-To: LitProg@SHSU.edu, sriram@GLOCK.TCS.COM Subject: Re: Web Tools for FrameMaker? Date: 9 Apr 1994 00:05:15 GMT Message-ID: <2o4rfs$5st@tcsi.tcs.com> To: LitProg@SHSU.EDU For those with access to framemaker, this is what I propose: 1. Have a paragraph tag called 'Code', and write all your code in this format. 2. Save as a mif file (or use fmbatch). 3. Run this thru the following awk script BEGIN { code = 0 } / # Strip junk in front sub(/^[ ]*$/,"") # Convert smart quotes to standard quotes sub(/\\xd2/,"\"") sub(/\\xd3/,"\"") print next } 4. If you want pieces of code to go to different files, one can always have a special paragraph type ("File") that identifies a specific file type. -Sriram Srinivasan (sriram@tcs.com) ================================================================================ Archive-Date: Tue, 12 Apr 1994 04:46:56 CST Sender: owner-litprog@SHSU.edu From: nike@indirect.com (Laurence Canter) Reply-To: LitProg@SHSU.edu, nike@INDIRECT.COM Subject: Green Card Lottery- Final One? Date: 12 Apr 1994 07:56:23 GMT Message-ID: <2odk77$377@herald.indirect.com> To: LitProg@SHSU.EDU Green Card Lottery 1994 May Be The Last One! THE DEADLINE HAS BEEN ANNOUNCED. The Green Card Lottery is a completely legal program giving away a certain annual allotment of Green Cards to persons born in certain countries. The lottery program was scheduled to continue on a permanent basis. However, recently, Senator Alan J Simpson introduced a bill into the U. S. Congress which could end any future lotteries. THE 1994 LOTTERY IS SCHEDULED TO TAKE PLACE SOON, BUT IT MAY BE THE VERY LAST ONE. PERSONS BORN IN MOST COUNTRIES QUALIFY, MANY FOR FIRST TIME. The only countries NOT qualifying are: Mexico; India; P.R. China; Taiwan, Philippines, North Korea, Canada, United Kingdom (except Northern Ireland), Jamaica, Domican Republic, El Salvador and Vietnam. Lottery registration will take place soon. 55,000 Green Cards will be given to those who register correctly. NO JOB IS REQUIRED. THERE IS A STRICT JUNE DEADLINE. THE TIME TO START IS NOW!! For FREE information via Email, send request to cslaw@indirect.com -- ***************************************************************** Canter & Siegel, Immigration Attorneys 3333 E Camelback Road, Ste 250, Phoenix AZ 85018 USA cslaw@indirect.com telephone (602)661-3911 Fax (602) 451-7617 ================================================================================ Archive-Date: Tue, 12 Apr 1994 16:58:52 CST Sender: owner-litprog@SHSU.edu From: tweek@netcom.com (Michael D. Maxfield) Reply-To: LitProg@SHSU.edu, tweek@NETCOM.COM Subject: Re: Green Card Lottery- Final One? Message-ID: Date: Tue, 12 Apr 1994 20:59:21 GMT To: LitProg@SHSU.EDU In article <2odk77$377@herald.indirect.com> posted to the Usenet Newsgroup(s) comp.programming.literate, megabozo.config nike@indirect.com (Laurence Canter) writes: >Green Card Lottery 1994 May Be The Last One! >THE DEADLINE HAS BEEN ANNOUNCED. Now this has got to be one of the oddest crosspostings ever. Anyone found any better? [folloups to alt.usenet.kooks] ================================================================================ Archive-Date: Wed, 13 Apr 1994 12:29:55 CST Sender: owner-litprog@SHSU.edu From: straussr@aol.com (StraussR) Reply-To: LitProg@SHSU.edu, straussr@AOL.COM Subject: Visual Basic Date: 13 Apr 1994 12:27:01 -0400 Message-ID: <2oh6gl$45g@search01.news.aol.com> To: LitProg@SHSU.EDU I'm not sure this is appropriate for this group but... Does anyone know of a newsgroup for Visual Basic? Please let me know. Thanks in advance Roy Strauss straussr@aol.com ================================================================================ Archive-Date: Wed, 13 Apr 1994 21:59:26 CST Sender: owner-litprog@SHSU.edu From: coates@kelvin.physics.uq.oz.au (Tony Coates) Subject: Re: CLiP example HTML sources Date: 14 Apr 94 12:10:57 Message-ID: Reply-To: LitProg@SHSU.edu, coates@physics.uq.oz.au To: LitProg@SHSU.EDU I had a look at the CLiP HTML files that Eric van Ammers posted about, and was quite impressed at the resulting documentation when using Xmosaic. If I had any reservations, it is about the way CLiP uses commands embedded in specially structured comment lines. While I can see that this is probably a choice that allows a high degree of portability, I would be interested to know whether the same effect couldn't be achieved by a series of HTML markups, which is the way I have always envisaged LitProg code being handled in SGML/HTML format. I would be interested to hear any comments about this, as I am thinking of added HTML output to FunnelWeb (my usual LitProg tool), but would like to know a bit of the compromises/experiences that CLiP users (or any others) have had in combining LitProg and hypertext. Anyway, just some thoughts. Cheers, Tony. -- _____________________________________________________________________________ A.B.Coates, Dept. of Physics, The University of Queensland QLD 4072 Australia. Email: coates@physics.uq.oz.au Phone: (07/+617) 365-3424 Fax: (07/+617) 365-1242 Disclaimer: The University is ignorant of my opinions, let alone guilty ... _____________________________________________________________________________ ================================================================================ Archive-Date: Thu, 14 Apr 1994 13:36:54 CST Sender: owner-litprog@SHSU.edu From: carroll@stimpy.eecis.udel.edu (Mark C. Carroll) Reply-To: LitProg@SHSU.edu, carroll@STIMPY.EECIS.UDEL.EDU Subject: Re: CLiP example HTML sources Date: 14 Apr 1994 18:17:04 GMT Message-ID: To: LitProg@SHSU.EDU >>>>> "Tony" == Tony Coates writes: In article coates@kelvin.physics.uq.oz.au (Tony Coates) writes: Tony> I had a look at the CLiP HTML files that Eric van Ammers posted Tony> about, and was quite impressed at the resulting documentation Tony> when using Xmosaic. If I had any reservations, it is about the Tony> way CLiP uses commands embedded in specially structured comment Tony> lines. While I can see that this is probably a choice that Tony> allows a high degree of portability, I would be interested to Tony> know whether the same effect couldn't be achieved by a series of Tony> HTML markups, which is the way I have always envisaged LitProg Tony> code being handled in SGML/HTML format. I would be interested Tony> to hear any comments about this, as I am thinking of added HTML Tony> output to FunnelWeb (my usual LitProg tool), but would like to Tony> know a bit of the compromises/experiences that CLiP users (or Tony> any others) have had in combining LitProg and hypertext. Tony> Anyway, just some thoughts. Cheers, Tony. -- There was actually a thread here a few months ago, about exactly what you're talking about. I've got a tool about halfway done, which does hypertext markup of literate programs. The current version is basically an extremely minimal tangle/weave; it handles chunks and cross references, but has absolutely no indexing, not does it handle references into other HTML files. The way my tools works is it adds new tags "chunk" and "cref" to HTML. The chunk tag is used for defining a new code chunk: body of chunk, possibly containing crefs, like this: other chunk or using SGML shorthand The program is in Icon, and is far too messy for me to permit anyone else to see it. Unfortunately, I have very little time to put into it (I ran out of time in the middle of rewriting the parser), so don't expect to see it before fall. I'd be glad to discuss my design ideas with you - just send me email. -- ================================================================================ Archive-Date: Fri, 15 Apr 1994 06:10:13 CST Sender: owner-litprog@SHSU.edu From: ramsdell@triad.mitre.org (John D. Ramsdell) Subject: SGML DTD for literate programming? Date: 15 Apr 1994 10:54:16 GMT Message-ID: Reply-To: LitProg@SHSU.edu, ramsdell@mitre.org To: LitProg@SHSU.EDU SGML enthusiasts claim that the logical structure of a document can be captured using SGML is a fashion that allows layout decisions to be made at a later date. In particular, with a carefully designed Document Type Definition (DTD), one could encode literate programs which can be displayed as printed text and hypertext. For literate programming, one would start with a DTD that encodes technical documents, presumably including facilities for tables and equations. The DTD would be modified so as to allow the inclusion of code scraps and their references. Documents using the literate programming DTD could be translated directly into LaTeX or HTML, or it could be translated into input for your favorite WEB program. For example, for C programs, the target of your translation could be CWEB, FWEB, or Nuweb. Has any one thought about using SGML for literate programming by producing a DTD tuned just for this purpose? John ================================================================================ Archive-Date: Fri, 15 Apr 1994 12:00:00 CST Sender: owner-litprog@SHSU.edu From: mcguire@cs.utexas.edu (Tommy Marcus McGuire) Reply-To: LitProg@SHSU.edu, mcguire@CS.UTEXAS.EDU Subject: Re: SGML DTD for literate programming? Date: 15 Apr 1994 11:47:47 -0500 Message-ID: <2omgfj$5bg@bovina.cs.utexas.edu> To: LitProg@SHSU.EDU In article , John D. Ramsdell wrote: [...] >In particular, with a carefully designed >Document Type Definition (DTD), one could encode literate programs >which can be displayed as printed text and hypertext. As an aside, this is not as simple as it appears. One of the recent flame wars^H^H^H^H^H^H^H^H^Htopics on the SGML mailing list has concerned the problem of getting both printed docs and hypertext from the same source. Doing this apparently requires compromises in at least one of the two products. >For literate programming, one would start with a DTD that encodes >technical documents, presumably including facilities for tables and >equations. The DTD would be modified so as to allow the inclusion of >code scraps and their references. > >Documents using the literate programming DTD could be translated >directly into LaTeX or HTML, or it could be translated into input for >your favorite WEB program. For example, for C programs, the target of >your translation could be CWEB, FWEB, or Nuweb. Has any one thought >about using SGML for literate programming by producing a DTD tuned >just for this purpose? > >John The QWERTZ DTD and application includes a simplified literate programming system. QWERTZ (also known as FORMAT at some ftp sites) is nearly a direct translation of LaTeX tags into a SGML DTD. It provides nearly direct translation into LaTeX as well as somewhat indirect translation into troff and HTML. (So I hear. I havn't actually seen the HTML output.) The literate programming environment involves a "code" tag. The code scraps are concatenated in the order that they appear in the source when producing a machine-usable file and are formatted similarly to nuweb in a LaTeX file. This works pretty well for things that are not structurally decomposed, such as the QWERTZ DTD itself. Also, it wouldn't be too hard to add an attribute or three to the code element for a scrap name, enabling reordering and embedding of scraps. I havn't tried this since I am rather fond of getting correct line numbers along with error messages from compilers, for example, and I havn't figured out a way to do that. Disclaimer: I havn't done much with SGML or HTML. I just like the flame wars on the SGML mailing list. ----- Tommy McGuire mcguire@cs.utexas.edu Internet---where it's September all year long mcguire@austin.ibm.com "...I will append an appropriate disclaimer to outgoing public information, identifying it as personal and as independent of IBM...." ================================================================================ Archive-Date: Mon, 18 Apr 1994 04:56:28 CST Sender: owner-litprog@SHSU.edu From: coates@kelvin.physics.uq.oz.au (Tony Coates) Subject: ISO-Latin-1 for \bullet and \diamond? Date: 16 Apr 94 16:15:40 Message-ID: Reply-To: LitProg@SHSU.edu, coates@physics.uq.oz.au To: LitProg@SHSU.EDU I need some help for my addition of HTML output to FunnelWeb; in particular I need translations for the following characters: (i) \bullet = black circle (ii) \diamond = hollow diamond shape Are there SGML/HTML/ISO-Latin-1 equivalents for these? I would be grateful for any help that anyone can give to me. Thanks very much in advance, Cheers, Tony. -- _____________________________________________________________________________ A.B.Coates, Dept. of Physics, The University of Queensland QLD 4072 Australia. Email: coates@physics.uq.oz.au Phone: (07/+617) 365-3424 Fax: (07/+617) 365-1242 Disclaimer: The University is ignorant of my opinions, let alone guilty ... _____________________________________________________________________________ ================================================================================ Archive-Date: Mon, 18 Apr 1994 21:58:14 CST Sender: owner-litprog@SHSU.edu From: rcp2@jaguar.uofs.edu Reply-To: LitProg@SHSU.edu, rcp2@JAGUAR.UOFS.EDU Subject: NEEDED: info on C Date: 18 Apr 94 21:41:44 EST Message-ID: <1994Apr18.214144.1@jaguar.uofs.edu> To: LitProg@SHSU.EDU hi, as usual I do not know if this is the right news group in which to ask what i am about ask, but here goes: I have just started doing some C programming for a class and i do not want to go out and buy a book on C just yet. What i am hoping to find is a small list of C instructions/variable-types/basic-format... whatever i can get. if there is such a file out there on the internet could you let me know where to get it or who to ask for it, or which news group i should post in. thanks in advance rhett rcp2@owl.cs.uofs.edu ================================================================================ Archive-Date: Tue, 19 Apr 1994 09:55:07 CST Sender: owner-litprog@SHSU.edu From: jscholes@kalva.demon.co.uk (John Scholes) Subject: Re: NEEDED: info on C Reply-To: LitProg@SHSU.edu, jscholes@kalva.demon.co.uk Date: Tue, 19 Apr 1994 13:37:32 +0000 Message-ID: <766762652snz@kalva.demon.co.uk> To: LitProg@SHSU.EDU In article <1994Apr18.214144.1@jaguar.uofs.edu> rcp2@jaguar.uofs.edu writes: > > hi, as usual I do not know if this is the right news group in which to ask > what i am about ask, but here goes: I have just started doing some C > programming for a class and i do not want to go out and buy a book on C just > yet. What i am hoping to find is a small list of C > instructions/variable-types/basic-format... whatever i can get. if there is > such a file out there on the internet could you let me know where to get it > or who to ask for it, or which news group i should post in. You might not guess it, but this group is supposed to be about Knuth's ideas for literate programming, most recently described in The CWEB System of Structured Documentation by Donald E Knuth and Silvio Levy Addison-Wesley 1994 Try comp.lang.c But surely you have access to a library, manual or something! -- John Scholes ================================================================================ Archive-Date: Tue, 19 Apr 1994 15:35:10 CST Sender: owner-litprog@SHSU.edu Date: Tue, 19 Apr 1994 21:26:00 -0800 (PST) From: "Stephen Boyan (510) 926-3291/fax 926-3604" Reply-To: LitProg@SHSU.edu, BOYANST@NCAL.KAIPERM.ORG Subject: Visual Languages and Web To: LITPROG@SHSU.EDU Message-ID: <01HBD0AMBN9I9387N3@mr.kaiperm.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Content-Transfer-Encoding: 7BIT Is there any work being done about webbing for languages like Visual Basic? Thank you. ================================================================================ Archive-Date: Tue, 19 Apr 1994 16:15:40 CST Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: noweb and HTML: your chance to comment Message-ID: CC: Date: Tue, 19 Apr 1994 20:30:35 GMT To: LitProg@SHSU.EDU The next distribution of noweb will have an HTML back end, so you can now browse noweb programs with Mosaic. Features include: -- click on any use of a chunk name or identifier to get the definition of that chunk or identifier -- chunk definitions contain hypertext links to their uses -- the list of chunks and index at the end of the document contain hypertext links to all definitions and uses. -- continued definitions (e.g., <>) are linked -- cooperates with latex2html to convert existing code marked up in LaTeX. This is your chance to comment on the format before I release the code. I've put two examples where you can get to them. Mosaic ftp://bellcore.com/pub/norman/wc.html will let you browse the noweb version of the word-count program that appears in Don's book. Mosaic ftp://bellcore.com/pub/norman/nuweb/nuweb.html will let you browse a noweb version of nuweb 0.84. There are a couple of things to notice: Browsing nuweb is slow because I put everything in one humongous file, for reasons explained below. I decided, as an experiment, to try to do without chunk numbers. There is no local identifier cross-reference. No such cross-reference is needed for uses, because you can just click on the use to get to the definition. To get to uses of defined identifiers, you have to go through the index. For now, I'm listing all defined identifiers, with hot links to their index entries. It might be better to eliminate that stuff entirely, since you can't put it in a small font or anything :-( I generated the examples by using an option to embed HTML markup in an existing program done with LaTeX, then running the results through latex2html. This approach is not adequate for the long term; on nuweb.tex, latex2html takes many minutes of CPU time and requires over 200MB of main memory. Also, latex2html generates the following uglies, which I have no intention of doing anything about: Fixed-width fonts are in surprising places. Bibreferences are empty. Latex references produce funny looking characters. Special characters aren't translated. For nuweb, I had the additional preprocessing step of converting the nuweb source to noweb syntax. Because nuweb uses \verb|scrap_ref| instead of [[scrap_ref]] to quote references to identifiers in the programs, you won't find any hot links in the nuweb documentation. There are a couple in the wc program. I welcome your comments on the layout and link structure of these programs. Tremendous thanks are due to Bill Trost, who prodded me to do this work by sending working code to support HTML. Norman Ramsey -- Norman Ramsey norman@bellcore.com ================================================================================ Archive-Date: Tue, 19 Apr 1994 17:11:35 CST Sender: owner-litprog@SHSU.edu Date: Tue, 19 Apr 94 18:10:31 EDT From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET To: LitProg@shsu.edu, BOYANST@ncal.kaiperm.org Subject: Re: Visual Languages and Web Message-ID: BOYANST@ncal.kaiperm.org asks: > Is there any work being done about webbing for languages like > Visual Basic? I've done some LP work in Paradox for Windows, which is also a visual programming environment, but I haven't done anything in VB. The problem with PfW (and, I suspect, with VB) is that it isn't very tolerant of outside tools. I ended up using noweb to create text files that I then imported into the text windows for attaching ``methods'' to ``objects'' (it was really attaching procedures to widgets). It was a bit of a hassle, but I found it to be several orders of magnitude more pleasant than working directly in PfW. If VB is a system where you ``drag & drop'' to create a screen interface and attach procedures to the widgets in the interface, you might find noweb helpful. I'll be glad to send you the details if you're interested. Write me directly, as there's no point boring the rest of the group :-). -- Lee ------------------------------------------------------------------------ Lee Wittenberg | After they had explored all the suns in Computer Science Department | the universe, and all the planets of all Kean College of New Jersey | the suns, they realized that there was no Union, NJ 07083 | other life in the universe, and that they USA | were alone. And they were very happy, | because then they knew it was up to them leew@pilot.njin.net | to become all the things they had imagined | they would find. | -- Lanford Wilson | "5th of July" (1978) ------------------------------------------------------------------------ ================================================================================ Archive-Date: Tue, 19 Apr 1994 17:33:09 CST Sender: owner-litprog@SHSU.edu From: kaelin@bridge.com (Kaelin Colclasure) Reply-To: LitProg@SHSU.edu, kaelin@BRIDGE.COM Subject: Re: noweb and HTML: your chance to comment Date: 19 Apr 1994 21:51:48 GMT Message-ID: To: LitProg@SHSU.EDU In article norman@flaubert.bellcore.com (Norman Ramsey) writes: I welcome your comments on the layout and link structure of these programs. I'm pleased to see that my favorite literate programming tool is evolving in this direction! I _do_ have some comments/questions about the formatting of the examples, though. I note that much of the visual distinction between code chunks and documentation dissappears in the HTML version. In LaTeX output, the chunk numbers in the left margin and the tt font make it obvious what's what. In Mosaic, the two fonts are similar enough to make indentification more difficult. Would it be possible to set the entire code chunk into a box or something? Also, I'd prefer to see a button [Uses] instead of This chunk is used here. ---- A group of buttons after each chunk would be less obtrusive than the present textual entries. The lack of small font support makes them too distracting. Norman Ramsey -- Norman Ramsey norman@bellcore.com -- // Kaelin Colclasure --------------------------------------------------------- // EMail: kaelin@bridge.com Mail: Bridge Information Systems, Inc. // Voice: (314)567-8463 717 Office Parkway // Fax: (314)432-5391 St. Louis, MO 63141 ================================================================================ Archive-Date: Tue, 19 Apr 1994 23:00:17 CST Sender: owner-litprog@SHSU.edu From: sngmedia@world.std.com Reply-To: LitProg@SHSU.edu, sngmedia@WORLD.STD.COM Subject: MARKET SURVEY Message-ID: Date: Wed, 20 Apr 1994 03:19:28 GMT To: LitProg@SHSU.EDU We are a small, dedicated group of people desperately trying to get a video production company off the ground. Recently, we secured enough financial backing to produce several videos on the subject of personal computing. Because we don't have the financial resources to perform a traditional market analysis, we considered several alternatives and concluded that we should consult the people of the Internet, who are technically proficient and tend to be enthusiastic personal computer users. We would like you to indicate which three of the below described videos would appeal to you most. Please note that each video synopsis is numbered. When you are ready to send your response, please specify the numbers corresponding to your three video selections, and use commas to separate the numbers. For example, if you choose selections four, eight, and eleven, the body of your letter would simply be: 4,8,11 and nothing more. When you send back your response, please specify "MARKET SURVEY" in the subject field. Then, direct your response back to sngmedia@world.std.com. Please realize that this is not an advertisement, or solicitation. We simply would like to know your response. You will not be contacted further. Thank you in advance for your help and cooperation. Tom and Randi Fecker sngmedia@world.std.com. Please select three videos that interest you most: 1. The Internet Pilot's Guide A plain English guide to getting around on the Internet by veteran users. How to use Internet resources to send/receive e-mail, and to search for documents and files relating to a particular subject. How to use LISTSERVs, GOPHER, ARCHIE, WWW and WAIS. How to use FTP and Telnet to access remote computers for file transfers, remote logins, etc. Also, learning how to observe Internet's "netiquette." And how to access multimedia Mosaic bulletin boards. 2. How to Make Money at Home With Your PC I -- Successful PC-Based Businesses Meet five successful entrepreneurs who started their own home-based businesses using a PC. Includes businesses that provide typing services, mailing list management, horoscopes, bookkeeping, and even a software developer who does not know how to program -- he hires other people to implement his software designs. Includes ideas for two dozen home-based businesses you can start using your PC. 3. How to Make Money at Home With Your PC II: Portfolio Management. Whether you manage your own portfolio for investment gains, or you take on clients for a consulting fee, a PC can give you powerful tools for portfolio management. Meet three successful home-based portfolio managers who use their PCs to maximize profits. They'll inspire you, and share some tricks of the trade that can help you land clients and get started. We'll also show you how to determine which software applications will meet your needs, and which online services will satisfy your requirements. 4. How to Make Money at Home With Your PC III: Telecommuting Learn how to use your PC to telecommute to companies across America that are looking for specialized consultants with skills like bookkeeping, software design and programming, editorial and script writing, technical proofreading, graphic design, copywriting, and more. Includes interviews with three successful telecommuters who use their PCs, faxes, modems and phones to serve distant clients, and information about a telecommuting referral service that could help you find employers. 5. How to Upgrade Your Hard Drive, Step-By-Step From choosing your new hard drive, through ordering, installing and testing it. This plain English video shows you how to do the job correctly, one simple step at a time. Using industry-wide standards, we'll show you what all hard drives have in common. Includes how to determine if your controller will support a particular hard drive. How to remove the old drive, and install, format and test the new drive. Includes a discussion on the differences between the various standards. 6. How to Design Your Own PC You don't have to be an engineer to design and build the PC of your dreams. This plain English video shows you how to figure out the PC design that is best for you, how to specify components, how to make sure they'll work together, and where to buy them. You'll end up with a top quality system that will save you money. 7. How to Build Your Own PC Once you've designed your PC, we'll show you how to build it. The actual process will take you only a few hours. Using an easy-to- understand method, we'll show you how to inspect, install and test components. Includes tips and tricks from computer production experts. The technical skills can be easily mastered by almost anyone, and you probably already own most of the tools you would need. 8. How to Increase Your Computer's Memory This plain English video shows you how to determine whether your computer memory can be increased, and how to do the job correctly, one step at a time. You'll learn about industry-wide standards for memory, how to configure additional RAM and cache, how and where to buy RAM chips, and three ways to eliminate low-quality RAM chips. Covers all phases of the process from opening your computer, to testing your memory. Includes discussions on how to ensure your DOS set-up is able to access all available memory, and how to use various memory management software applications. 9. How to Use MS-Windows 3.1 This powerful graphical user interface can help you work smarter and faster, but the manual and the online tutorial that come with Windows leave many questions unanswered. This plain English, step- by-step video will show you how to install Windows on your computer and set it up to get optimum performance. 10. How to Find a Job in the Information Age A PC can give you an incredible advantage when you're searching for a new job -- or even a new career. But you have to know just how it can help you. In this video, an experienced employment counselor will show you how to tap the power in your PC to find job leads, create a winning resume and customized cover letters, tap into databases and find bulletin boards that will lead you to job openings, and use online services to research potential employers. 11. How to Install a Sound Card in Your Computer Here's how to add incredible stereo sound to your computer with step-by-step help. In plain English, you'll learn how to determine if your computer can support a sound card, how and where to buy a high-quality sound card. How to open your computer, and install and test the sound card. 12. How to Install a CD-ROM Drive in Your Computer Using simple tools, this plain English video shows you how to install a CD-ROM Drive in your computer. You'll learn how to make sure your computer can support a CD-ROM drive -- and what to do if it can't. Covers internal vs. external drives, how and where to buy a high quality CD-ROM drive, what you need to know about differing industry standards, preparing the drive bay, testing and trouble-shooting. Covers SCSI and IDE. 13. How to Fix the Most Common Computer Problems Your computer serviceman may not want you to know this, but all you need is the know-how you'll get from this video, simple tools, and easily-obtainable diagnostic software -- and you can fix most common problems you'll ever encounter with a PC. 14. What to Do When a Virus Strikes Your Computer Viruses can come from almost anywhere: a colleague or friend's disks, a network, a bulletin board, even commercial software. If you ignore the first warning signs, a virus can wipe out your data and permanently damage your computer's memory. In plain English, this video will tell you how to scan disks for viruses, how to check downloaded files from bulletin boards, how to set up a virus prevention program for your home or office computer, and how and where to buy the best anti-virus software. We'll also cover the pros and cons of the antivirus software in DOS 6.X and Windows 3.X, how to use antivirus software, and more. 15. How Your PC Works: Inside the Case Here's a down-to-earth explanation of how your PC actually processes information, and what really goes on inside the case. You'll get a guided tour of the insides of a PC, learn about how the various components work and how they communicate with each other, and get a clear explanation of technical terms. A must for anyone who wants to really understand how to program, use and repair a PC. 16. How to Create Config.Sys, Autoexec.Bat and Batch Files These basic files can make it much easier to use your computer -- or cause incredible headaches if they are not written properly for your particular software and peripherals. Now you don't have to be at the mercy of murky tech manuals, because we'll show you how to create files that work for your system -- step-by-step, in plain English. You'll learn how to write, modify and test Autoexec.Bat and Config.Sys files; and how to create batch files. 17. How to Add a Modem or Faxmodem to Your Computer Here's the easy way to add a modem or faxmodem to your computer, with step-by-step guidance from this plain English video. You'll learn how to determine if your computer can support a modem or faxmodem, and what to do if it can't, how to choose and buy the best modem or faxmodem, how to open your computer, and install the modem or faxmodem, how to test it, how to quickly eliminate common problems, and how to set your modem or faxmodem correctly. 18. How to Make Money at Home With Your Computer The information age is opening up incredible new opportunities for PC owners to make undreamed of money, using skills and knowledge you may already have! Here's inside information on the ten most promising telecommuting jobs and 12 small businesses you can run right from your home, using your PC. Includes profiles of PC owners who are actually running PC-based home businesses. 19. The Super-Highway Roadmap This is your guide to where to go and what to see. You can make incredible contacts and gather powerful, valuable information on the Internet, but the problem is that most people can't begin to imagine the potential of something that seems so abstract. This plain English video will introduce you to the Internet, and make these opportunities concrete. Includes interviews with 7 people who did the impossible by gathering information and making contacts on the Internet. 20. How to Upgrade and Repair Your PC I: Basic This is the video your repairman doesn't want you to know about! Since the components of most PCs are highly modular, PC repair is easier than you think. Just pinpoint the problem component, unplug it, remove a few screws, replace it, and presto! You're in business again. This step-by-step video shows you how to pinpoint problems and replace your PC's components, using ordinary household tools. 21. How to Upgrade and Repair Your PC II: Multimedia Here's how to save big money on a PC with all the latest multimedia peripherals. You learn how to determine if your PC can be upgraded, how to upgrade your video card and bus, and how to add a CD-ROM drive, sound card, video accelerator, and more. Presented in plain English. The procedures you'll learn require ordinary household tools -- nothing fancy! 22. Plain English Guide to DOS 6+. The powerful sub-programs buried deep within DOS 6.0 and higher can help you work smarter and faster, but the manual and the online tutorial that come with DOS leave many questions unanswered. This plain English, step-by-step video will show you how to install DOS on your computer and set it up to get optimum performance. In addition to DOS commands, you'll learn how to use the shell, defragmentation, scan and antivirus programs that come with DOS. 23. Home Financial Management on a PC. Your computer can help you create and manage a budget, keep track of your credit card accounts, handle your tax deductions, and reconcile your bank accounts. But that's not all! You can also determine whether you should pay down your mortgage, finance a new car or pay cash, buy or rent your home, and how much you'll need for retirement. The financial information your computer can give you might mean the difference between just getting by and a very comfortable lifestyle -- if you ask the right questions and use your PC to develop a financial strategy. 24. The Online Bulletin Board Guide Bulletin boards can be the on-ramps to the Information Super Highway -- if you know how to access and use them. This step-by- step guide shows you how to find bulletin boards, set-up your modem, log on, find out what they have to offer, find bulletin board users who share your interests, search for information, and upload and download files. Thank you. ================================================================================ Archive-Date: Wed, 20 Apr 1994 04:17:57 CST Sender: owner-litprog@SHSU.edu From: linds@cs.uq.oz.au (Lindsay Bradford,,,Honours,exp199412) Subject: Style File Suitable for Source Code?? Date: 14 Apr 1994 23:26:43 GMT Message-ID: <2okjfj$oo2@uqcspe.cs.uq.oz.au> Reply-To: LitProg@SHSU.edu, linds@cs.uq.oz.au Keywords: Style Source To: LitProg@SHSU.EDU I have been told that the question I have posed is best answered in this news-group, so here it goes... < HM,HM,HM > For an assignemnt, I have been told to modify a Generic Language Editor for a small, simple language. Part of the requirements in this assignment is that we format the output in a Latex document. My major problem is that the standard Latex Style Files I have access to do not handle tabbing in a way that is useful for formatting the source. I was wondering if there was a (rather Generic) style file out there that would allow me to set margins and tabs alot more usefully than the ones I currently have acces to... Thanx in Advance, Linds' --- But Life was such a wheel that +-------------------+ no man could stand upon it for long, | linds@cs.uq.oz.au | and it always, at the end of things | | comes back to where it begins. +-------------------+ ================================================================================ Archive-Date: Wed, 20 Apr 1994 05:52:45 CST Sender: owner-litprog@SHSU.edu From: ramsdell@triad.mitre.org (John D. Ramsdell) Subject: nuweb0.87b released -- nuweb now works with LaTeX2HTML Date: 20 Apr 1994 10:32:24 GMT Message-ID: Reply-To: LitProg@SHSU.edu, ramsdell@mitre.org To: LitProg@SHSU.EDU Following Norman Ramsey's lead, I modified the nuweb HTML generator so that it creates a documentation file that can be processed by LaTeX2HTML. You can use nuweb0.87b with LaTeX2HTML to produce a version of the nuweb sources that can be viewed using an HTML viewer such as Mosaic. You might want to compare this with Norman's translation of the nuweb sources using noweb. You can get nuweb0.87b in the usual place: ftp.shsu.edu:/tex-archive/web/nuweb/nuweb0.87b.tar.gz John ================================================================================ Archive-Date: Wed, 20 Apr 1994 08:11:28 CST Sender: owner-litprog@SHSU.edu Date: Wed, 20 Apr 94 08:16:25 cdt From: gaow@vax1.siue.edu (Weiqi Gao) Reply-To: LitProg@SHSU.edu, gaow@VAX1.SIUE.EDU Message-ID: <9404201316.AA02279@vax1.siue.edu> To: BOYANST@NCAL.KAIPERM.ORG, LitProg@SHSU.edu Subject: Re: Visual Languages and Web Yesterday, this question was asked in the LitProg list: >Is there any work being done about webbing for languages like > Visual Basic? I don't know, and I don't think anybody mentioned it is being done. So I assume it is not being done. I seriously considered modifying one of the webs for use with windows programming (Borland C/C++, or Visual C++), but the number of keywords kepped me from doing it (take a look at windows.h). The DOS/- Windows environment simply don't have the memory required to handle it. I guess the Visual Basic situation is the same. \/\/eiqi Gao gaow@daisy.siue.edu ================================================================================ Archive-Date: Wed, 20 Apr 1994 12:41:56 CST Sender: owner-litprog@SHSU.edu From: sean_boyle@rainbow.mentorg.com (Sean Boyle x1542) Reply-To: LitProg@SHSU.edu, sean_boyle@RAINBOW.MENTORG.COM Date: Wed, 20 Apr 94 10:40:40 -0700 Message-ID: <9404201740.AA15901@porkface.mentorg.com> To: LitProg@SHSU.edu, ramsdell@mitre.org Subject: nuweb0.87b released -- nuweb now works with LaTeX2HTML Where can I get LaTeX2HTML? From: ramsdell@triad.mitre.org (John D. Ramsdell) Sender: owner-litprog@SHSU.edu To: LitProg@SHSU.edu Subject: nuweb0.87b released -- nuweb now works with LaTeX2HTML Date: 20 Apr 1994 10:32:24 GMT Following Norman Ramsey's lead, I modified the nuweb HTML generator so that it creates a documentation file that can be processed by LaTeX2HTML. You can use nuweb0.87b with LaTeX2HTML to produce a version of the nuweb sources that can be viewed using an HTML viewer such as Mosaic. You might want to compare this with Norman's translation of the nuweb sources using noweb. You can get nuweb0.87b in the usual place: ftp.shsu.edu:/tex-archive/web/nuweb/nuweb0.87b.tar.gz John ================================================================================ Archive-Date: Wed, 20 Apr 1994 13:44:15 CST Sender: owner-litprog@SHSU.edu Date: Wed, 20 Apr 1994 13:44:03 CST From: "George D. Greenwade" Reply-To: LitProg@SHSU.edu, bed_gdg@SHSU.EDU To: LitProg@SHSU.edu, sean_boyle@RAINBOW.MENTORG.COM Message-ID: <0097D3DB.CA6ABB40.730@SHSU.edu> Subject: RE: nuweb0.87b released -- nuweb now works with LaTeX2HTML On Wed, 20 Apr 94 10:40:40 -0700, sean_boyle@rainbow.mentorg.com (Sean Boyle x1542) asked: > Where can I get LaTeX2HTML? From any CTAN site (ftp.shsu.edu; ftp.tex.ac.uk; ftp.dante.de) in aftp:~/tex-archive/support/latex2html/ or in the various mirrors of the CTAN in their CTAN:/support/latex2html/ directories. A good first place to check for tools mentioned here is just about always the CTAN. If you login as anonymous and leave messaging on (i.e., you don't start your password with "-"), the command: quote site index latex2html (for example) will generally reveal where you might want to look. And, if we're missing any tool you think we ought to have, let me know and it will probably get included. Two quick comments about the nuweb distribution. John D. Ramsdell reported that the new nuweb files were at: ftp.shsu.edu:/tex-archive/web/nuweb/nuweb0.87b.tar.gz First, I have verified that these have propagated to Aston and DANTE so, if you have today's date on what you get, they're right. The CTAN mirror sites won't have these until they run their mirrors against us. An earlier release of this version was made yesterday with yesterday's date on it. Second, we have unpacked the files of the nuweb distribution on the CTAN -- the individual files are in /tex-archive/web/nuweb/nuweb0.87b/ and the ftp servers on the CTAN hosts can retrieve recursive archive sets (.tar, .zip, .zoo, .tar.gz, .tar.Z) of everything in the directories if you want a single file for retrieval. See README.archive-features at any CTAN site for details. --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: Thu, 21 Apr 1994 02:50:18 CST Sender: owner-litprog@SHSU.edu From: A7621GAC@AWIUNI11.EDVZ.UniVie.AC.AT Reply-To: LitProg@SHSU.edu, A7621GAC@AWIUNI11.EDVZ.UNIVIE.AC.AT Subject: ANNOUNCING c2cweb 1.2: c/c++ source code to CWEB Date: Thu, 21 Apr 94 09:23:52 MEZ Message-ID: <16F9F8428.A7621GAC@AWIUNI11.EDVZ.UniVie.AC.AT> Keywords: c, c++, cweb, TeX To: LitProg@SHSU.EDU I've uploaded c2cweb12.zip at ftp.dante.de -- It should be soon in the /tex-archive/web/c_cpp/c2cweb directory. Here is the readme file; a history of c2cweb is appended. Happy TeXing! Werner This is the c2cweb package Version 1.2 (13-Apr-1994) ==================================================== Copyright (C) 1994 Werner Lemberg [see below for a German introduction] 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. Some c2cweb highlights: variables and function names in italics reserved words (int, char, return etc.) in bold face strings in typewriter type comments in typwriter type or roman an index(!) of all variables, constants, function names etc. each function gets a section and more c2cweb.zip contains the following files: c2cweb.txt this file history.txt the history file diff.txt GNU diff between Ver. 1.2 and Ver. 1.1 Makefile a makefile to compile c2cweb for UNIX, OS/2, and DOS c2cweb.def definition file (needed for compiling under OS/2 only) copying the GNU Copying License c2cweb.w a CWEB file of the program you should use cweave +ai c2cweb.w (using this package's cweave) to produce a TeX-output c2cweb.exe an executable for DOS and OS/2 compiler.w compiler dependent formatting commands (an output of c2cweb reads this file) c2cweb.ger a small german `package' to demonstrate national language support example.c a C code example with inserted c2cweb control commands emx.exe the emx DOS-extender (ver. 0.8h) (for VCPI) rsx.exe the rsx DOS-extender (rev. 3a) (for DPMI) emx.dll the emx runtime library for OS/2 (ver 0.8h) cweb/cweave.exe a modified executable (for DOS and OS/2) of CWEAVE Ver. 3.1 with three important new features: o the switch +a causes CWEAVE to produce a different output format, basically if(a) {bla bla bla... } instead of if(a) { bla bla bla... } o the switch +i causes CWEAVE to append () after a function name in the index (this makes only sense if all names are unique) o the #define statement handling was basically enhanced to allow macros with parameters cweb/cweave.ch the change file for cweave.w (not included) cweb/common.h this is needed to build CWEAVE cweb/common.ch change file for common.w (not included) cweb/Makefile Makefile for CWEAVE (UNIX, OS/2, and DOS) cweb/cweave.def definition file (needed for compiling under OS/2 only) cweb/cwebmac.tex the standard cwebmac.tex file (slightly modified) cweb/cwebmaca.tex this alternative format file is read by TeX if you use the +a switch cweb/prod-alt.w this file is an include file of cweave.ch; it contains the alternative syntax rules of CWEAVE if the switch a is on You should get the original CWEB package for documentation and the master CWEAVE (and CTANGLE) files (cweave.w, common.w, etc.). It will contain change files for different operating systems also. Copying ------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Remarks for UNIX systems user ----------------------------- Because of the many different UNIX implementations, no executables are included. c2cweb should compile without great problems; you should say make unix in the c2cweb directory to build the executable. To build CWEAVE you need the CWEB package Version 3.1 (for example at labrea.stanford.edu): copy the files cweave.w and common.w into the cweb subdirectory of the c2cweb package and say again make unix in the cweb subdirectory. Both makefiles need CTANGLE (included in the CWEB package). How to use ---------- The only change the user has to do normally is to insert /*@@*/ starting an empty line outside of a comment or string before the first function block (normally main(){ ... }) in the C code. After this command c2cweb writes each function block into a section. Before /*@@*/ all stuff is written into a (possibly large) section. If you want to structure this further or if you have structure definitions between functions, use /*@*/ to start a new section without starting the function block algorithm (and of course /*@@*/ before the next function). The function algorithm simply counts paired braces; if none are open, a new section will begin. The file example.c has these control codes inserted already. The syntax is c2cweb [switches] csourcefile(s) | @responsefile(s) The possible switches are: -v: all comments are written in typewriter type. You will need this if you have already formatted your comments, for example /********************/ /* example.c */ /********************/. -t value: all tabs will be expanded, and the -t switch defines the tab length (default value is 4). -l: causes all linefeeds inside of C text to be output explicitly by inserting @/ (a CWEB control code) at the end of each code line. -o directory: sets the output directory which must exist already. -b "titlestring": defines a title with the titlestring enclosed in double quotes. This string will be passed directly to \TeX. -1: one-sided output (i.e. left header is the same as right header). The last steps are calling CWEAVE with the transformed master file and then calling TeX to get a printable .dvi-file. An example: your input files are header1.h, header2.h, file1.c, file2.c, file3.c you must call then c2cweb [options] header*.h file*.c to get the *.*w files. c2cweb will now process your files and tell you which file is the input file for CWEAVE (we'll assume file3.cw). After calling cweave [options] file3.cw you get a .tex file (and some additional auxiliary files) which should be processed further by PLAIN TeX (LaTeX is not supported): tex file3[.tex] Please read the `Hints and Tricks' section about enhancements and limitations of c2cweb in the file c2cweb.w (say `make documentation' to build the .dvi file). Author ------ Werner Lemberg (a7621gac@univie.ac.at) Please report any errors, comments or suggestions to this email-address. N.B.: If you like this program, send me a postcard ! Werner Lemberg Goldschlagstr. 52/14 A-1150 Vienna/Austria -------------------------------------------------------------------------------- c2cweb Paket Version 1.2 (13-Apr-1994) ====================================== Copyright (C) 1994 Werner Lemberg c2cweb verwandelt gewhnlichen C - oder C++ - Quellcode in eine CWEB-Datei, um einen gut formatierten Ausdruck zu erhalten. Dieses Paket enthlt auaerdem eine modifizierte Version von CWEAVE (welche die CWEB-Datei in eine TeX-Datei transformiert). Besonderheiten u.a.: Variablen und Funktionsnamen in Kursivschrift reservierte Wrter (int, char, return etc.) in Fettschrift Strings in Schreibmaschinenschrift Kommentare in Normal- oder Schreibmaschinenschrift ein Index(!) aller Variablen, Konstanten, Funktionsnamen etc. jede Funktion fllt einen eigenen Abschnitt c2cweb.zip enthlt folgende Dateien: c2cweb.txt diese Datei history.txt Entstehungsgeschichte von c2cweb diff.txt GNU diff zwischen Ver. 1.2 und Ver. 1.1 Makefile ein Makefile fr c2cweb (UNIX, OS/2 und DOS) c2cweb.def Definitionsdatei (wird nur fr die Kompilation unter OS/2 gebraucht) copying GNU Kopierlizenz c2cweb.w die CWEB-Realisation dieses Programms Um eine TeX .dvi-Datei zu erhalten sollte man cweave +ai c2cweb.w eingeben (mit der CWEAVE-Version dieses Pakets) c2cweb.exe ausfhrbares Programm fr DOS und OS/2 compiler.w Compiler-abhngige Formatierbefehle (von c2cweb erzeugte Dateien inkludieren diese Datei) c2cweb.ger ein kleines Deutsch-`Paket', um die Untersttzung von nichtenglischen Sprachen zu demonstrieren. example.c ein C-Code-Beispiel mit bereits eingefgten c2cweb- Kontrollbefehlen emx.exe emx DOS-Extender (Ver. 0.8h) (fr VCPI) rsx.exe rsx DOS-Extender (Rev. 3a) (fr DPMI) emx.dll emx Laufzeit-Bibliothek fr OS/2 (Ver. 0.8h) cweb/cweave.exe eine modifizierte Version von CWEAVE Version 3.1 (fr DOS und OS/2) mit drei wichtigen neuen Eigenschaften: o mit der Option +a formatiert CWEAVE den Quellcode anders, und zwar im Prinzip if(a) {bla bla bla... } anstelle von if(a) { bla bla bla... } o die Option +i veranlaat CWEAVE, jedem Funktionsnamen () im Index anzuhngen (nur sinnvoll, wenn alle Namen eindeutig sind) o die Behandlung von Prprozessorbefehlen (#define etc.) wurde entscheidend verbessert, um Makros mit Parametern zu ermglichen cweb/cweave.ch Change-Datei fr cweave.w (nicht inkludiert) cweb/common.h wird bentigt fr die Kompilation von cweave.exe cweb/common.ch Change-Datei fr common.w (nicht inkludiert) cweb/Makefile Make-Datei fr CWEAVE (UNIX, OS/2 und DOS) cweb/cweave.def Definitionsfile (wird nur fr die Kompilation unter OS/2 gebraucht) cweb/cwebmac.tex ursprngliche cwebmac.tex-Datei (leicht verndert) cweb/cwebmaca.tex diese alternative Formatdatei wird von TeX gelesen, wenn die +a-Option angegeben ist cweb/prod-alt.w diese Datei ist eine Include-Datei von cweave.ch; sie enthlt die alternativen Syntaxregeln, falls Option +a verwendet wird Es ist empfehlenswert, sich das originale CWEB-Paket zu besorgen, welches die Dokumentation und die CWEB-Dateien fr CWEAVE (und CTANGLE) enthlt (cweave.w, common.w, etc.). Auaerdem sind Change-Dateien fr andere Betriebssysteme enthalten. Bemerkungen fr UNIX Benutzer ----------------------------- Aufgrund der vielen verschiedenen UNIX-Systeme sind keine ausfhrbaren Dateien inkludiert. c2cweb sollte ohne graere Probleme kompilierbar sein mit dem Befehl make unix im c2cweb-Verzeichnis. Dagegen braucht man das CWEB-Paket Version 3.1 (zum Beispiel unter der Adresse labrea.stanford.edu) um CWEAVE zu erstellen: die Dateien cweave.w und common.w sind in das cweb-Unterverzeichnis des c2cweb-Pakets zu kopieren; mit make unix im cweb-Unterverzeichnis wird CWEAVE dann kompiliert. Beide Make-Dateien bentigen CTANGLE (aus dem CWEB-Paket). Verwendung ---------- Die einzige Vernderung, die der Anwender normalerweise machen mua, ist das Einfgen von /*@@*/ am Anfang einer leeren Zeile auaerhalb eines Kommentars oder Strings vor dem ersten Funktionsblock (das ist in der Regel main(){ ...}) im C-Quellcode. Nach diesem Befehl erzeugt c2cweb fr jede Funktion einen eigenen Abschnitt. Vor /*@@*/ wird alles in eine einzige (u.U. groae) Sektion geschrieben. Will man solche Abschnitte zustzlich strukturieren oder hat man Struktur-Definitionen zwischen Funktionen, sollte man /*@*/ verwenden, um einen neuen Abschnitt zu beginnen ohne den Funktionsalgorithmus einzuschalten (und natrlich /*@@*/ vor der nchsten Funktion). Der Funktionsalgorithmus zhlt einfach paarweise geschwungene Klammern; falls keine mehr offen, wird ein neuer Abschnitt begonnen. In der Beispieldatei example.c sind diese Kontrollcodes bereits enthalten. Aufruf: c2cweb [Optionen] C-Quelldatei(en) | @Response-Datei(en) Folgende Optionen sind mglich: -v: alle Kommentare werden in Schreibmaschinenschrift ausgegeben. Dieser Schalter ist notwendig, falls die Kommentare bereits formatiert sind, zum Beispiel /********************/ /* example.c */ /********************/. -t Wert: all Tabulator-Stopps werden expandiert; -t Wert definiert die Tabulatorweite (Grundeinstellung: Wert=4). -l: Zeilenumbrche in der Eingabe innerhalb von C-Text bleiben in der Ausgabe erhalten durch explizites Anhngen von @/ (einem CWEB Kontrollcode) an jede Code-Zeile. -o Verzeichnis definiert das Ausgabeverzeichis (mua bereits existieren). -b "Titel": definiert einen Titel (in doppelten Anfhrungszeichen). Dieser String wird direkt an TeX weitergegeben. -1: einseitige Ausgabe (d.h., linker Seitenkopf wird dem rechten Seitenkopf gleichgesetzt). Die letzten Schritte sind das Aufrufen von CWEAVE mit der transformierten Hauptdatei und danach der Aufruf von TeX, um eine druckfhige .dvi-Datei zu erhalten. Ein Beispiel: die Eingabedateien: header1.h, header2.h, file1.c, file2.c, file3.c Man mua jetzt c2cweb [Optionen] header*.h file*.c aufrufen, um die *.*w-Dateien zu erhalten. c2cweb bearbeitet jetzt alle Eingabedateien und teilt mit, welche Datei die Eingabedatei fr CWEAVE ist (hier im Beispiel sei es file3.cw). Nach dem Aufruf cweave [Optionen] file3.cw erhlt man eine .tex-Datei (und einige zustzliche Hilfsdateien), die mit PLAIN TeX weiterverarbeitet werden mua (LaTeX wird nicht untersttzt): tex file3[.tex] Im Abschnitt `Hints and Tricks' in der Datei c2cweb.w werden weitere Verbesserungen und Beschrnkungen von c2cweb beschrieben (der Aufruf `make documentation' erzeugt die .dvi-Datei). Autor ----- Werner Lemberg (a7621gac@univie.ac.at) Bitte alle Fehler, Kommentare oder Bemerkungen an obige email-Adresse schicken. N.B.: Wenn Ihnen das Programm gefllt, schicken Sie mir doch eine Postkarte ! Werner Lemberg Goldschlagstr. 52/14 A-1150 Vienna/Austria -------------------------------------------------------------------------------- History of the c2cweb package ============================= Version 1.0 : 1-Mar-1994 only two persons got it :-) Version 1.1 : 8-Mar-1994 initial release new: $ in identifiers are now allowed (CWEAVE) whitespaces before preprocessor commands are now allowed (CWEAVE) the concatenation operator ## added (CWEAVE) option -1 added (one-sided output) (c2cweb) minor changes affecting documentation only errors: Ver 1.0 erroneously reported `@' outside of a string (c2cweb) /*}*/ started a new code section at function block level if in /*@*/-mode (c2cweb) tabs were not handled correctly (c2cweb) Version 1.2: 13-Apr-1994 new: c2cweb and cweave should now compile smoothly under UNIX (tested with Linux) paper format definition moved from c2cweb to compiler.w some files renamed; makefile for c2cweb added errors: A serious bug introduced in Ver. 1.1 caused whitespaces be swallowed (c2cweb) ================================================================================ Archive-Date: Thu, 21 Apr 1994 15:42:38 CST Sender: owner-litprog@SHSU.edu From: afriar@aol.com (AFriar) Reply-To: LitProg@SHSU.edu, afriar@AOL.COM Subject: Programmer w/ 6 yrs exp. seeks remote work Date: 20 Apr 1994 16:38:03 -0400 Message-ID: <2p43rb$j0r@search01.news.aol.com> To: LitProg@SHSU.EDU I have extensive work experience in many programming languages and several system environments (see below). Most of my coding knowledge can be attributed to on the job training while working in a multi-tasking environment. I have 6 years programming experience in developing business applications within IBM's Accounting and Accounts Payable areas. I am a very motivated and goal-oriented individual. I can provide letters of recommendation from former managers. I wish to become part of a successful company. Not to sit back and watch it happen, but to become part of what makes it happen. If this is the kind of programmer your company is looking for, please contact me at (607)625-5236 or by Email (AFriar@AOL.COM) we can then discuss my qualifications in more detail. Thank you. William P. McManus * Languages: PL/I, PASCAL, CSP, FORTRAN77, COBOL, BASIC, JCL, CLIST Operating Systems: MVS/TSO, VM, CICS, DOS, OS/2, WINDOWS Database: DB2, SQL, QMF, SPUFI, PROEDIT Software/Testing: SDF2, EDF, SCRIPT/GML, INSPECT, INTERTEST ================================================================================ Archive-Date: Thu, 21 Apr 1994 15:52:23 CST Sender: owner-litprog@SHSU.edu Date: 21 Apr 94 16:40:09 EDT From: Reply-To: LitProg@SHSU.edu, PJENSEN@CSI.COMPUSERVE.COM To: Subject: Suggestion for function prototypes in CWEB Message-ID: Hello LitProg'ers, or more specifically CWEB users: I have implemented a small enhancement to CWEB on which I solicit comments. IMHO the necessity to predeclare functions is one of the misfeatures of C (compared to a `real' language like, say, Modula-3 ... but that's another subject). The inevitable sections that run: @ @= void silly_function(void); /* Hey compiler! Not an |int| function! */ are simply an annoyance. Therefore, what do y'all think about the following lightweight scheme to handle this. (BTW, you must be using ANSI C, i.e., with prototypes, for this...) Precede all function declarations with an extra control code `@~', thus: @~double sqrt(double N) { ... and so on At one place in the w file, use the control code `@n'; usually right after @. The function headers are collected and duplicated at the point where the @n occurs (and ctangle could be made to say just the way it now says ). The @~ construct does not need a closing delimiter, because the function header ends with the first un-nested right parenthesis. At the point where the prototypes are emitted, of course, each header is followed by . [ I know that one might come up with pathological return types that use parentheses; but it seems to me that the simplicity of this scheme is preferable: you can always use typedefs to avoid this pitfall. ] If anyone wants to play around with this in practice, I can send the .ch file. Phil Jensen :: pjensen@csi.compuserve.com ================================================================================ Archive-Date: Thu, 21 Apr 1994 20:58:07 CST Sender: owner-litprog@SHSU.edu Date: Fri, 22 Apr 1994 02:43:00 -0800 (PST) From: "Stephen Boyan (510) 926-3291/fax 926-3604" Reply-To: LitProg@SHSU.edu, BOYANST@NCAL.KAIPERM.ORG Subject: Where Can I Get Zip Files? To: LITPROG@SHSU.EDU Message-ID: <01HBG45NZX929389TZ@mr.kaiperm.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Content-Transfer-Encoding: 7BIT I ftp'd the C-Web files in pub/cweb at labrea.stanford.ed; however, I do not have access to a UNIX system, and it would be more convenient for me to get an equivalent set of files in a zip package. Can anyone suggest where I can obtain this? Thanks for any help. ================================================================================ Archive-Date: Thu, 21 Apr 1994 23:33:47 CST Sender: owner-litprog@SHSU.edu From: elemings@utm.edu (Eric Lemings) Reply-To: LitProg@SHSU.edu, elemings@UTM.EDU Subject: How do I begin literate programming? Message-ID: <1994Apr22.040710.12938@martha.utcc.utk.edu> Keywords: FAQ DOS TeX C C++ AIX Date: Fri, 22 Apr 1994 04:07:10 GMT To: LitProg@SHSU.EDU The FAQ did not answer my question. I don't have the books mentioned in the FAQ but I'd like to proceed without reading them first. I use a DOS system, C and C++ languages and I do not have any TeX or LaTeX tools. Which tools are the best? Which tools do I need? I would also like to be able to install the neccessary tools on an RS/6000 running AIX 3.2. Thanks in advance for any help. Eric Lemings ================================================================================ Archive-Date: Thu, 21 Apr 1994 23:49:16 CST Sender: owner-litprog@SHSU.edu From: thompson@sun1.coe.ttu.edu Subject: comp.programming.literate FAQ Date: 22 Apr 1994 00:13:10 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/04/19 Version: 1.1.5 Welcome to the Literate Programming Frequently Asked Questions List ------------------------------------------------------------------- This version was created Wednesday - April 13, 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? ----------- + Included brief article by van Ammers on literate programming. + Updated ProTeX entry. + Updated noweb entry. + Updated lpw entry. + Created impact entry. + Updated FWEB FAQ 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 - 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. (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 (FILESERV@SHSU.BITNET) 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 (FILESERV@SHSU.BITNET), 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 (or LISTSERV@SHSU.BITNET), 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.5a Hardware: Unix and DOS platforms. Languages: All programming languages. Formatter: Plain TeX and LaTeX formatters. Availability: Anonymous ftp from: CTAN:/web/independent/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. 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: Unknown Hardware: Unknown Languages: Unknown Formatter: TeX Availability: Anonymous ftp from: 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: Unknown - ---------------------------------------------------------------------- - 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.0 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/new/schemeweb.sh LPA:/lisp CTAN: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@triad.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.1 Hardware: DOS, OS/2, Unix (presumed) -- source included Languages: C, C++ Formatter: TeX Availability: Anonymous ftp from CTAN:/web/c_cpp 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: Unknown Hardware: Presumably anything with a C compiler. Languages: C Formatter: nroff -man, texinfo 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: Unknown 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: Unknown. - ---------------------------------------------------------------------- - 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. - ---------------------------------------------------------------------- - 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 ddw@sunbim.be - ---------------------------------------------------------------------- - nuweb.el ---------- Developer: Dominique de Waleffe Version: 1.15 (2.0 RSN) 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. 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/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/user/projects/LitProg.html Help for people who have only Email and neither WWW nor telnet, can be obtained by Email from LISTSERV@INFO.CERN.CH by sending a message containing the command HELP. Instructions will be returned by email. For literate programming documents, you can try anonymous ftp to ftp.desy.de [131.169.10.115] and attach to directory: /pub/userWWW/projects/Announce - ---------------------------------------------------------------------- - 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 (LISTSERV@SHSU.BITNET), 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 teh hypertext notes for the ongoing C++ Course done in a similar fashion, at URL http://info.desy.de/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.70.0.209], 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.70.0.209 /* 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, 22 Apr 1994 02:05:51 CST Sender: owner-litprog@SHSU.edu From: coates@kelvin.physics.uq.oz.au (Tony Coates) Subject: Re: How do I begin literate programming? Date: 22 Apr 94 16:43:17 Message-ID: Reply-To: LitProg@SHSU.edu, coates@physics.uq.oz.au To: LitProg@SHSU.EDU In article <1994Apr22.040710.12938@martha.utcc.utk.edu> elemings@utm.edu (Eric Lemings) writes: The FAQ did not answer my question. I don't have the books mentioned in the FAQ but I'd like to proceed without reading them first. I use a DOS system, C and C++ languages and I do not have any TeX or LaTeX tools. Which tools are the best? Which tools do I need? I would also like to be able to install the neccessary tools on an RS/6000 running AIX 3.2. Thanks in advance for any help. Oh boy, this is alwyas fun when someone asks which literate programming tool is *best*. It depends a bit on what you do, and what you want. Of course, when you start, you don't know what you want, which is a difficulty, but anyway, here are some comments: (i) Literate programming tools can generally be broken up into two groups - those which are aware of language grammar, and those which aren't. CWEB (for C/C++) and FWEB (for C,Fortran,others) are perhaps the most established grammar-aware tools. They can provide a degree of program checking before you reach the compiler. I have never used one of these tools. I prefer to use a language- insensitive tool, because I have documents which generate different types of files, e.g. C++ code and matching makefile code, and I prefer to have a tool which isn't going to be confused by different and arbitrary file types. Language insensitive tools include FunnelWeb (which I use), noweb, and nuweb (the latter two both have many followers). The language-independent tools are often considered to be simpler to use, but can't do clever formatting such as highlighting keywords. This doesn't matter to me, but it may to you. If you really do just want to work on C/C++ code, for instance, you might find the investment in using CWEB/FWEB worthwhile. If, like me, you find youself writing documents containing mixed code (e.g. for me Maple, C++, makefile, UNIX and OS/2 shell scripts) in the one file, then a language-independent file may be useful. (ii) Most tools output TeX/LaTeX, so it would be to your advantage to have one or the other installed. CLiP and noweb can generate HTML hypertext (which can be viewed with Mosaic) (I'm adding this to FunnelWeb at the moment, though note that I am not the author). However, for printed output, most tools support TeX/LaTeX because there aren't many other established text standards yet (SGML is yet to catch on enough, RTF (Microsoft) is a moving target). There is a simple tool, WinWordWeb, which works within Microsoft Word, if this is of interest. (iii) As to porting to the RS6000, I'm not aware which tools if any have been ported to the RS6000. Having ported FunnelWeb onto several platforms now, I can state that this tool is written with portability very much in mind (e.g. moving from a 32-bit to a 64-bit architecture involved little more than changing one definition in a header file; I wish my other programs would port so easily). If you wanted to port FunnelWeb to the RS6000, I'd be quite happy to provide any help that I can, and to integrate any necessary changes into my current development version (which I hope will eventually be integrated with the next official release of FunnelWeb). Currently, FunnelWeb runs under System 7, DOS 5.0, OS/2, SunOS, VMS, and OSF/1. Adding AIX would probably not be too hard. Anyway, I hope that some of this helps (excuse my FunnelWeb bias folks, but it is what I use every day in my work). Cheers, Tony. -- _____________________________________________________________________________ A.B.Coates, Dept. of Physics, The University of Queensland QLD 4072 Australia. Email: coates@physics.uq.oz.au Phone: (07/+617) 365-3424 Fax: (07/+617) 365-1242 Disclaimer: The University is ignorant of my opinions, let alone guilty ... _____________________________________________________________________________ ================================================================================ Archive-Date: Fri, 22 Apr 1994 06:41:19 CST Sender: owner-litprog@SHSU.edu From: thompson@sun1.coe.ttu.edu Subject: comp.programming.literate FAQ Date: 22 Apr 1994 11:18:46 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/04/19 Version: 1.1.5 Welcome to the Literate Programming Frequently Asked Questions List ------------------------------------------------------------------- This version was created Wednesday - April 13, 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? ----------- + Included brief article by van Ammers on literate programming. + Updated ProTeX entry. + Updated noweb entry. + Updated lpw entry. + Created impact entry. + Updated FWEB FAQ 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 - 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. (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 (FILESERV@SHSU.BITNET) 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 (FILESERV@SHSU.BITNET), 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 (or LISTSERV@SHSU.BITNET), 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.5a Hardware: Unix and DOS platforms. Languages: All programming languages. Formatter: Plain TeX and LaTeX formatters. Availability: Anonymous ftp from: CTAN:/web/independent/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. 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: Unknown Hardware: Unknown Languages: Unknown Formatter: TeX Availability: Anonymous ftp from: 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: Unknown - ---------------------------------------------------------------------- - 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.0 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/new/schemeweb.sh LPA:/lisp CTAN: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@triad.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.1 Hardware: DOS, OS/2, Unix (presumed) -- source included Languages: C, C++ Formatter: TeX Availability: Anonymous ftp from CTAN:/web/c_cpp 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: Unknown Hardware: Presumably anything with a C compiler. Languages: C Formatter: nroff -man, texinfo 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: Unknown 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: Unknown. - ---------------------------------------------------------------------- - 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. - ---------------------------------------------------------------------- - 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 ddw@sunbim.be - ---------------------------------------------------------------------- - nuweb.el ---------- Developer: Dominique de Waleffe Version: 1.15 (2.0 RSN) 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. 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/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/user/projects/LitProg.html Help for people who have only Email and neither WWW nor telnet, can be obtained by Email from LISTSERV@INFO.CERN.CH by sending a message containing the command HELP. Instructions will be returned by email. For literate programming documents, you can try anonymous ftp to ftp.desy.de [131.169.10.115] and attach to directory: /pub/userWWW/projects/Announce - ---------------------------------------------------------------------- - 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 (LISTSERV@SHSU.BITNET), 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 teh hypertext notes for the ongoing C++ Course done in a similar fashion, at URL http://info.desy.de/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.70.0.209], 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.70.0.209 /* 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, 22 Apr 1994 11:14:29 CST Sender: owner-litprog@SHSU.edu Date: Fri, 22 Apr 1994 11:14:01 CST From: "George D. Greenwade" Reply-To: LitProg@SHSU.edu, bed_gdg@SHSU.EDU To: LitProg@SHSU.edu, BOYANST@NCAL.KAIPERM.ORG Message-ID: <0097D559.29A083A0.490@SHSU.edu> Subject: RE: Where Can I Get Zip Files? On Fri, 22 Apr 1994 02:43:00 -0800 (PST), "Stephen Boyan (510) 926-3291/fax 926-3604" posted: > I ftp'd the C-Web files in pub/cweb at labrea.stanford.ed; however, I do > not have access to a UNIX system, and it would be more convenient for me > to get an equivalent set of files in a zip package. Can anyone suggest > where I can obtain this? Use anonymous ftp to ftp.shsu.edu [192.92.115.10] or whatever your closest CTAN host is and then: cd tex-archive/web/c_cpp/ binary get cweb.zip quit The ftp servers on the CTAN have the dynamic capability to recursively retrieve the files in a variety of archive formats -- just cd to one directory above where you want, then get the directory you want. Alternately, use gopher to any of the CTAN hosts, navigate your way to the desired directory and there should be an option present to get the contents of the directory in ZIP format. See the file README.archive-features on any of the CTAN hosts for more about this. --George ================================================================================ Archive-Date: Fri, 22 Apr 1994 13:37:38 CST Sender: owner-litprog@SHSU.edu From: preston@noel.cs.rice.edu (Preston Briggs) Reply-To: LitProg@SHSU.edu, preston@NOEL.CS.RICE.EDU Subject: Re: Suggestion for function prototypes in CWEB Date: 22 Apr 1994 15:57:09 GMT Message-ID: <2p8s4l$6l1@larry.rice.edu> To: LitProg@SHSU.EDU >IMHO the necessity to predeclare functions is one of the misfeatures of C >The inevitable sections that run: > @ @= > void silly_function(void); /* Hey compiler! Not an |int| function! */ >are simply an annoyance. Therefore, what do y'all think about the following >lightweight scheme to handle this. (BTW, you must be using ANSI C, i.e., >with prototypes, for this...) > >Precede all function declarations with an extra control code `@~', thus: > @~double sqrt(double N) > { > ... and so on >At one place in the w file, use the control code `@n'; usually right after >@. The way I usually handle these things is to collect all the prototypes in an appendix at the end of the document. This gives me a place to describe, cleanly, the interface for each routine, with types and means of each parameters. Inside the appendix, the prototypes for related groups of rotuines can be grouped together into subsections (sort of like the methods of a class). Overall, the hope is that it'll turn out something like another index that the reader or maintainer can refer to for quick answers. Of course, if your particular language doesn't require prototypes (or other interface specifications), you might still do this, as a matter of style. Preston Briggs ================================================================================ Archive-Date: Fri, 22 Apr 1994 18:46:53 CST Sender: owner-litprog@SHSU.edu Date: Fri, 22 Apr 94 19:46:58 -0400 From: gtk@walsh.med.harvard.edu (Gregory Tucker-Kellogg) Reply-To: LitProg@SHSU.edu, gtk@WALSH.MED.HARVARD.EDU Message-ID: <9404222346.AA17108@walsh.med.harvard.edu> To: Literate Programming , Info-TeX Mailing List Subject: WEB system for Perl Hello, I am new to the uses of literate programming. Has anyone built a WEB system for Perl? I would be interested in such a beast. If not: while I know that there are several language-independant WEB implementations, I don't know how popular or widely used they are. It's hard to get a sense from the FAQ about what people really prefer. I would like to get such a sense before compiling up a bunch of webs on my machine. Thanks, -- Gregory W. Tucker-Kellogg Department of Biological Chemistry and Molecular Pharmacology Harvard Medical School, Boston MA 02115 (617) 432-0930 or (617) 432-3212 ================================================================================ Archive-Date: Sat, 23 Apr 1994 00:21:41 CST Sender: owner-litprog@SHSU.edu From: krclements@aol.com (KRClements) Reply-To: LitProg@SHSU.edu, krclements@AOL.COM Subject: WANTED: Windows Print Driver/Manager/DB Report Writer Date: 22 Apr 1994 17:15:16 -0400 Message-ID: <2p9ep4$m0i@search01.news.aol.com> To: LitProg@SHSU.EDU Seeking MS-Windows Printer Driver/Print Manager or DB Report Writer with sophisticated simplex/duplex, signature, and multi-page up printing capabilities. Must be able to print sophisticated multi-page report formats in various sizes, layout formats, and binding configurations. Source code, libraries, or external application. Purchase or licensing agreement as appropriate (for use in application under development). Please respond by sending e-mail to KRClements@aol.com. Thank you. -Kenneth Clements DownEast Technology, Inc. Belfast, Maine USA ---------------------------------- AMERICA ONLINE: KRClements INTERNET: KRClements@aol.com ================================================================================ Archive-Date: Sat, 23 Apr 1994 01:32:56 CST Sender: owner-litprog@SHSU.edu From: Perry Tomasetti Reply-To: LitProg@SHSU.edu, mms@INTERACCESS.COM Subject: WANTED: Chicago Based MS Access Programmer Date: 23 Apr 1994 02:32:07 GMT Message-ID: <2pa1b7$6t3@mailhost.interaccess.com> To: LitProg@SHSU.EDU A medical equipment manufacturer in Northbrook, IL is looking for an experienced programmer to set up a product repair and history database in Microsoft Access format. If you are Microsoft Certified or if you have strong experience in this type of programming, we want to hear from you. Please contact us at the address below. Perry Tomasetti 708-565-0121 Phone Pensa Technologies 708-456-1489 Fax 7115 W. North Ave - Suite 134 Oak Park, IL 60302 ================================================================================ Archive-Date: Sat, 23 Apr 1994 07:26:45 CST Sender: owner-litprog@SHSU.edu Date: Sat, 23 Apr 94 8:26:57 EDT From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET To: LitProg@shsu.edu, elemings@utm.edu Subject: Re: How do I begin literate programming? Message-ID: Eric Lemings asks: > The FAQ did not answer my question. I don't have the > books mentioned in the FAQ but I'd like to proceed > without reading them first. I use a DOS system, C and > C++ languages and I do not have any TeX or LaTeX tools. > Which tools are the best? Which tools do I need? I > would also like to be able to install the neccessary > tools on an RS/6000 running AIX 3.2. Thanks in advance > for any help. Your question is likely to start a religious war, but I will do my best to provide a non-sectarian answer. As to TeX, there are a number of good DOS versions around. My personal favorite is Eberhard Mattes's emTeX, because it is a high quality implementation (I've had no problems with it, and I'm a bug magnet) and it's freeware (I'm cheap). emTeX, and most of the other DOS implementations, are available from the CTAN archives (address in the FAQ). [Note: The LaTeX macro package is usually included with a TeX distribution -- it is definitely included with emTeX. On the other hand, LaTeX is also available from the CTAN archive.] As to LP tools, I shall limit myself to listing the tools that I know will work under DOS for C/C++ programs. 1. Tools I use (under DOS) CWEB noweb 2. Tools I know (sic) work under DOS CLiP Nuweb FunnelWeb FWEB WinWordWEB The location of all these tools is in the FAQ -- Lee ------------------------------------------------------------------------ Lee Wittenberg | After they had explored all the suns in Computer Science Department | the universe, and all the planets of all Kean College of New Jersey | the suns, they realized that there was no Union, NJ 07083 | other life in the universe, and that they USA | were alone. And they were very happy, | because then they knew it was up to them leew@pilot.njin.net | to become all the things they had imagined | they would find. | -- Lanford Wilson | "5th of July" (1978) ------------------------------------------------------------------------ ================================================================================ Archive-Date: Sat, 23 Apr 1994 07:48:22 CST Sender: owner-litprog@SHSU.edu Date: Sat, 23 Apr 94 8:48:34 EDT From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET To: LitProg@shsu.edu, gtk@walsh.med.harvard.edu Subject: Re: WEB system for Perl Message-ID: Gregory Tucker-Kellogg writes: > I am new to the uses of literate programming. Has anyone > built a WEB system for Perl? I would be interested in such a beast. > > If not: while I know that there are several language-independant WEB > implementations, I don't know how popular or widely used they are. > It's hard to get a sense from the FAQ about what people really prefer. > I would like to get such a sense before compiling up a bunch of webs > on my machine. I think you're probably better off using a language-independent system. I don't think that popularity is quite as important as support and comfort (yours, not the tool's). To the best of my knowledge, CLiP, FunnelWeb, noweb, and Nuweb (in alphabetical order) are all well-supported and available. Just pick the one whose ``look and feel'' you prefer. My preference is noweb, but 9 out of 10 doctors recommend sugarless gum :-). -- Lee ------------------------------------------------------------------------ Lee Wittenberg | After they had explored all the suns in Computer Science Department | the universe, and all the planets of all Kean College of New Jersey | the suns, they realized that there was no Union, NJ 07083 | other life in the universe, and that they USA | were alone. And they were very happy, | because then they knew it was up to them leew@pilot.njin.net | to become all the things they had imagined | they would find. | -- Lanford Wilson | "5th of July" (1978) ------------------------------------------------------------------------ ================================================================================ Archive-Date: Sat, 23 Apr 1994 12:22:27 CST Sender: owner-litprog@SHSU.edu From: preston@noel.cs.rice.edu (Preston Briggs) Reply-To: LitProg@SHSU.edu, preston@NOEL.CS.RICE.EDU Subject: Re: WEB system for Perl Date: 23 Apr 1994 17:00:43 GMT Message-ID: <2pbk7r$eeq@larry.rice.edu> To: LitProg@SHSU.EDU gtk@walsh.med.harvard.edu (Gregory Tucker-Kellogg) writes: >While I know that there are several language-independant WEB >implementations, I don't know how popular or widely used they are. Many people use noweb, nuweb, and FunnelWeb. They're all language independent and should suit your purposes. Nuweb and noweb are slightly more refined, I think, offering nicer crossreferences and indexing. Noweb is more flexibly structured than the others (they're monolithic programs; noweb is a collection of smaller programs). Preston Briggs ================================================================================ Archive-Date: Mon, 25 Apr 1994 18:03:08 CST Sender: owner-litprog@SHSU.edu From: shf@netcom.com (Stuart Ferguson) Reply-To: LitProg@SHSU.edu, shf@NETCOM.COM Subject: Re: Suggestion for function prototypes in CWEB Message-ID: Date: Mon, 25 Apr 1994 20:17:38 GMT To: LitProg@SHSU.EDU +-- writes: | IMHO the necessity to predeclare functions is one of the misfeatures of C | (compared to a `real' language like, say, Modula-3 ... but that's another | subject). The inevitable sections that run: | @ @= | void silly_function(void); /* Hey compiler! Not an |int| function! */ | are simply an annoyance. Therefore, what do y'all think about the following | [resonable suggestion deleted] I too have found this a problem, and since I use a language-independent web, I can't use your extension. There is a problem with this extension as well in that some functions might be global and need to be in the external header file and some might be private, whereas your scheme only provides a single blob of prototypes. I have developed a style to deal with this problem. For the types of code I am writing, which is mostly libraries of tools, I break my document into two parts. The first part is an interface description which includes types and function declarations that the user of the library will need, and the second part is the implemetation which contains the actual code. I can usually just deliver the first part to my users and it acts as a reference. In the first part I define things of the type: << ExternalEntryPoint usage >> = void ExternalEntryPoint ( int arg1, Thingee arg2) @ I embed a bunch of these in appropriate text along with some << Public Type >> declarations and I have the user guide and an interface description from which to derive the implementational code. In the second part, the "usage" tags occur in two places: << Public Functions >> = << ExternalEntryPoint usage >> { << implementation code body >> } @ And: << Public Prototypes >> = extern << ExternalEntryPoint usage >>; @ I dislike having to write the prototype statement for each entry point, but once I do it the type for the function is written in one place and can easily be changed. For private functions which are present in a single module and not used outside, I try to organize them into an appropriate order in the source file so that they are defined before they are used. Three classes are usually enough. "Public Functions" (as shown above) come last since they all have prototypes. "Private Functions" come before them since they will be used by the public functions, and "Private Utilities" comes first. Public functions can use all types of functions; private functions can use public functions and private utilities; private utilities cannot use either of the other function types. With the exception of loops, this almost always gives me enough distinctions to have all functions defined before they are used. For loops -- A uses B and B uses A -- I code the prototypes manually. -- Stuart Ferguson (shf@netcom.com) "How do you compute that? Where on the graph do `must' and `cannot' meet?" ================================================================================ Archive-Date: Wed, 27 Apr 1994 15:31:13 CST Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: noweb and HTML: your chance to comment Message-ID: CC: young@mdd.comm.mot.com Date: Wed, 27 Apr 1994 16:34:01 GMT To: LitProg@SHSU.EDU >I am using [noweb] to generate an application in tcl/tk code, with sql >commands to create and load a database, complete system documentation, >an introductory paper to submit to a symposium, and a Makefile >to build all of it... I haven't figured out if I can generate >all of the output files in a single pass. If you set up the names of the root chunks to correspond to the file names, 'noweb -t' will generate all of the output files in one pass. (Tip of the hat to Preston Briggs.) It will also avoid updating output files that have not changed, so 'noweb -t; make' will do what you want. ================================================================================ Archive-Date: Wed, 27 Apr 1994 15:34:58 CST Sender: owner-litprog@SHSU.edu From: young@mdd.comm.mot.com (Gary Young) Reply-To: LitProg@SHSU.edu, young@MDD.COMM.MOT.COM Subject: Re: noweb and HTML: your chance to comment Date: 26 Apr 1994 10:55:10 -0700 Message-ID: <2pjkhu$bdb@hb39l.mdd.comm.mot.com> To: LitProg@SHSU.EDU In article , Norman Ramsey wrote: >The next distribution of noweb will have an HTML back end, so you can >now browse noweb programs with Mosaic. . . . . . . >This is your chance to comment on the format before I release the code. >I've put two examples where you can get to them. > > Mosaic ftp://bellcore.com/pub/norman/wc.html > >will let you browse the noweb version of the word-count program that >appears in Don's book. > > Mosaic ftp://bellcore.com/pub/norman/nuweb/nuweb.html > >will let you browse a noweb version of nuweb 0.84. . . . >I welcome your comments on the layout and link structure of these >programs. . . . >-- >Norman Ramsey >norman@bellcore.com Since I am behind a security firewall that does not allow me to follow webs into the outside world, I ftp'ed your examples to my local net. They work well. I agree with your comments on some uglies, but the concept works great. I also retrieved your noweb-2.6beta.shar.Z and have been experimenting with it. I have been using the 2.5a version of noweb since the beginning of the year. I am using it to generate an application in tcl/tk code, with sql commands to create and load a database, complete system documentation, an introductory paper to submit to a symposium, and a Makefile to build all of it. I have to extract the Makefile manually the first time, but I think it belongs in the document as the top reference for all the other files. I haven't figured out if I can generate all of the output files in a single pass. The latex2html may take cpu cycles to accomplish, but on a large document latex itself takes a long time. I put the noweave and latex steps last in the make, so that I can kill the make after the other files are created. I only let it complete occasionally during development to check the format of the document. The mosaic layout is not as nice as the printed output, but the link structure makes it all worth while. If we really believe in literate programming, the table of contents and the linkages amongst documentation sections are as valuable, if not more so, than the linkages among the code chunks, identifiers, and symbol indexes. I don't understand yet how you added the table of contents and section links, but that should be easy or automatic. I would also like to see an easy way to build a regular index on the documentation, and hypertext links to all of the entries. I haven't learned enough TeX/LaTeX yet to put one in my application document. Perhaps there is an addon or style file that lets one mark index entries in the text and then accumulates them into a general index. I haven't looked for it yet. My general comment is "KEEP UP THE GOOD WORK!" Gary Young -- +- Gary H. Young young@mdd.comm.mot.com Motorola Wireless Data ----+ | KF7WA fax: 206-483-3400 19807 North Creek Parkway | +---- telephone: 206-487-5921 Bothell, WA 98011, U.S.A. -+ All views expressed are my own and not necessarily those of Motorola. -- +- Gary H. Young young@mdd.comm.mot.com Motorola Wireless Data ----+ | KF7WA fax: 206-483-3400 19807 North Creek Parkway | +---- telephone: 206-487-5921 Bothell, WA 98011, U.S.A. -+ All views expressed are my own and not necessarily those of Motorola. ================================================================================ Archive-Date: Thu, 28 Apr 1994 05:58:37 CST Sender: owner-litprog@SHSU.edu From: Thorbjoern Ravn Andersen Reply-To: LitProg@SHSU.edu, ravn@IMADA.OU.DK Message-ID: <199404281058.AA02807@imada.ou.dk> Subject: Re: noweb and HTML: your chance to comment To: LitProg@SHSU.edu, young@mdd.comm.mot.com Date: Thu, 28 Apr 1994 12:58:50 +0200 (MET DST) MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Gary Young | | In article , | Norman Ramsey wrote: | >will let you browse the noweb version of the word-count program that | >appears in Don's book. | > | > Mosaic ftp://bellcore.com/pub/norman/nuweb/nuweb.html | > | >will let you browse a noweb version of nuweb 0.84. | . . . | >I welcome your comments on the layout and link structure of these | >programs. | . . . | Since I am behind a security firewall that does not allow me to follow | webs into the outside world, I ftp'ed your examples to my local net. | They work well. I agree with your comments on some uglies, but the | concept works great. For some reason xmosaic 2.4 keeps reloading the file when following references, so I had to ftp the nuweb lot here as well. It seems to work very well, but I second the notion of buttons instead of "This code is used here" and "Previous definition" etc. A few arrows for next/prev/index/uses would be very nice. Apparently I get a lot of teletype text as well. My guess is that the lists generated like this There are five possible command-line arguments:
-t
Suppresses generation of the .tex file.
-o
Suppresses generation of the output files.
-c should have an additional before the
's. I also like the crossreference of the individual variables which is very neat. For some reason does "This code is used here" occasionally have an asterisk after it (along with a lot of 's). | | My general comment is "KEEP UP THE GOOD WORK!" I fully agree. LitProg is suitable for hypertext and Mosaic is a good client, so it is only fair that good LitProg tools evolve towards this. Regards, -- Thorbjo/rn Andersen ravn@imada.ou.dk ================================================================================ Archive-Date: Thu, 28 Apr 1994 12:33:55 CST Sender: owner-litprog@SHSU.edu Date: Thu, 28 Apr 94 13:34:03 EDT From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET To: LitProg@shsu.edu, ravn@wagner.imada.ou.dk Subject: Re: noweb and HTML: your chance to comment Message-ID: Thorbjorn Andersen writes (wrt browsing noweb's html output): > Apparently I get a lot of teletype text as well. My guess is that the > lists generated like this > > There are five possible command-line arguments: >
-t >
Suppresses generation of the .tex file. >
-o >
Suppresses generation of the output files. >
-c I had a similar problem, but it wasn't due to the html file, it was due to the way I had set my Mosaic options. I can't remember what settings I used, but if you fiddle with the font settings (under, I think, the Options menu), you can get output displayed in something close to what printed noweb output looks like. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | After they had explored all the suns in Computer Science Department | the universe, and all the planets of all Kean College of New Jersey | the suns, they realized that there was no Union, NJ 07083 | other life in the universe, and that they USA | were alone. And they were very happy, | because then they knew it was up to them leew@pilot.njin.net | to become all the things they had imagined | they would find. | -- Lanford Wilson | "5th of July" (1978) ------------------------------------------------------------------------ ================================================================================ Archive-Date: Fri, 29 Apr 1994 01:07:32 CST Sender: owner-litprog@SHSU.edu From: elliottm@csulb.edu (Mike Elliott) Reply-To: LitProg@SHSU.edu, elliottm@CSULB.EDU Subject: Macro/scrap definition within a context? Date: 29 Apr 1994 05:56:13 GMT Message-ID: To: LitProg@SHSU.EDU In working with languages such as Ada and Modula-3 which already have good encapsulation, I find a need for using the same macro/scrap names I have used in previous contexts. For example -- in Modula-3 it is customary to declare the publicly available attributes and methods of a particular module in the type Public, so there would be a Bingo.Public for module Bingo, a Blap.Public for module Blap, and so forth. Ada and Modula-3 (and probably other languages, as well) have no problem keeping these definitions separate because they are declared within a particular package or module which is logically an extension of their name. I would like to be able to create an LP containing several such encapsulations and keep these declarations separate within each context. However, in my admittedly limited survey of LP systems I have found none in which the concept of declaring such a context (as a hidden uniqueifier for macros, I suppose) is straightforward. If necessary, I suspect I could make the requisite changes to nuweb or FunnelWeb, but before I take on such a project I'd like to have a greater confidence that I'm not missing something obvious. Any suggestions? -- ====================================================================== Mike Elliott elliottm@csulb.edu ====================================================================== ================================================================================ Archive-Date: Fri, 29 Apr 1994 02:22:14 CST Sender: owner-litprog@SHSU.edu From: gabe@netcom.com (Gabriel Grigorescu) Reply-To: LitProg@SHSU.edu, gabe@NETCOM.COM Subject: * Hello.cpp proggie in BC 4 !! * Message-ID: Keywords: borland c ++ 4.0 Date: Fri, 29 Apr 1994 06:51:59 GMT To: LitProg@SHSU.EDU Hello, After trying to compile the most basic program in C/C++, I got the following error: Linker Warning: No module definition file specified: using defaults Linker Error: Undefined symbol OwlMain(int, char far*far*) in library file e:\bc4\lib\owlwi.lib in module WinMain. I got the patches from Borland (BC4P0?.RTP) where ? is 1-4. Any suggestions are greatly appreciated. The program is just: ---- hello.cpp ------- #include void main() { cout << "Hello, world. Why doesn't this work? << endl; } ----hello.cpp ----- Gabe -- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=- Tovarasul Steion gabe@netcom.com gabe@uclink.berkeley.edu ._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._. ================================================================================ Archive-Date: Fri, 29 Apr 1994 06:24:05 CST Sender: owner-litprog@SHSU.edu From: han_lang@spirea.gih.no (Hans Lange) Reply-To: LitProg@SHSU.edu, han_lang@SPIREA.GIH.NO Subject: Re: * Hello.cpp proggie in BC 4 !! * Date: 29 Apr 1994 11:18:27 GMT Message-ID: <2pqqe3$3de@ratatosk.uninett.no> To: LitProg@SHSU.EDU Gabriel Grigorescu (gabe@netcom.com) wrote: :>Hello, :> :>After trying to compile the most basic program in C/C++, I got the following :>error: :> :>Linker Warning: No module definition file specified: using defaults :>Linker Error: Undefined symbol OwlMain(int, char far*far*) in library file :> e:\bc4\lib\owlwi.lib in module WinMain. :> :>I got the patches from Borland (BC4P0?.RTP) where ? is 1-4. :>Any suggestions are greatly appreciated. :> :>The program is just: :> :>---- hello.cpp ------- :>#include :>void main() { :> cout << "Hello, world. Why doesn't this work? << endl; :>} :>----hello.cpp ----- :> :> :>Gabe :> :> :> :> :> :>-- :>-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=- :>Tovarasul Steion gabe@netcom.com :> gabe@uclink.berkeley.edu :>._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._. :> Set the target do DOS EXE (Not Windows...) Hans Erik ================================================================================ Archive-Date: Fri, 29 Apr 1994 08:32:21 CST Sender: owner-litprog@SHSU.edu Date: Fri, 29 Apr 94 9:32:34 EDT From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET To: LitProg@shsu.edu, elliottm@csulb.edu Subject: Re: Macro/scrap definition within a context? Message-ID: Mike Elliott writes: > In working with languages such as Ada and Modula-3 which already have good > encapsulation, I find a need for using the same macro/scrap names I have > used in previous contexts. > > For example -- in Modula-3 it is customary to declare the publicly > available attributes and methods of a particular module in the type Public, > so there would be a Bingo.Public for module Bingo, a Blap.Public for module > Blap, and so forth. Ada and Modula-3 (and probably other languages, as > well) have no problem keeping these definitions separate because they are > declared within a particular package or module which is logically an > extension of their name. > > I would like to be able to create an LP containing several such > encapsulations and keep these declarations separate within each context. > However, in my admittedly limited survey of LP systems I have found none in > which the concept of declaring such a context (as a hidden uniqueifier for > macros, I suppose) is straightforward. > > If necessary, I suspect I could make the requisite changes to nuweb or > FunnelWeb, but before I take on such a project I'd like to have a greater > confidence that I'm not missing something obvious. Any suggestions? If you're considering Nuweb or FunnelWeb, and the Ada/Modula-3 mechanisms do the job, why don't you just use these mechanisms in your program and let the compiler (rather than the LP system) do the work? Maybe I don't completely understand the question (a highly probable situation), but it seems to me that LP constructs should *supplement* traditional language features, not replace them. If you are trying to use LP to bring a Modula-3 style of programming to Pascal (for example), then I think you're going to be disappointed -- that's really outside of the LP ``problem domain'' (IMO). I ran into the same thing recently when I tried to use LP programming to introduce Eiffel-style assertions and programming by contract to my C++ programs. I found no way to do this reliably and consistently, and I was (reluctantly) forced to the conclusion that, alas, there are some programming problems that LP cannot solve. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Most situations highly improved by being Computer Science Department | unfaced for a while, and there's no better Kean College of New Jersey | time for unfacing than Sunday morning. Union, NJ 07083 | USA | -- Shepherd Mead | "`DUDLEY, There *Is* No Tomorrow!' leew@pilot.njin.net | `Then How About This Afternoon?'" (1963) ------------------------------------------------------------------------ ================================================================================ Archive-Date: Fri, 29 Apr 1994 12:10:27 CST Sender: owner-litprog@SHSU.edu From: mcguire@cs.utexas.edu (Tommy Marcus McGuire) Reply-To: LitProg@SHSU.edu, mcguire@CS.UTEXAS.EDU Subject: Re: Macro/scrap definition within a context? Date: 29 Apr 1994 11:59:41 -0500 Message-ID: <2predt$bv4@latexo.cs.utexas.edu> To: LitProg@SHSU.EDU In article , Mike Elliott wrote: >In working with languages such as Ada and Modula-3 which already have good >encapsulation, I find a need for using the same macro/scrap names I have >used in previous contexts. [...] >Mike Elliott elliottm@csulb.edu [...] How about this for an argument that reusing scrap names is not necessarily a good idea: You mention using similar identifiers in different modules because, due to the design of the language, the name spaces of the modules are separate. This works well because the languages support a fine, detailed structure. However, producing a literate program means producing a document (an article, report, book, or whatever) in a natural language. In all of the natural languages I am familiar with, the language does not support such a structure in a document. The language may allow a complex structure in a particular document but heavy structuring is not required nor particularly common. As a result, the name space for things like section titles, chapter titles, and scrap names is not smaller than the whole document. If you reuse scrap names, you run the risk of confusing the reader as much as you would if you reused section names within chapters. The alternative to confusing him would seem to be using less meaningful, more generic scrap names similar to the ever popular "Introduction"-like sections, which I would prefer to avoid since the scraps are unique by definition and the ability to find a particular scrap is vital. All that being said, I must admit that in my own programs I have a large number of silly scraps like "Foo's variables," the proliferation of which might well be as confusing as anything else. ----- Tommy McGuire mcguire@cs.utexas.edu Internet---where it's September all year long mcguire@austin.ibm.com "...I will append an appropriate disclaimer to outgoing public information, identifying it as personal and as independent of IBM...." ================================================================================ Archive-Date: Fri, 29 Apr 1994 12:38:37 CST Sender: owner-litprog@SHSU.edu From: efg2@po.cwru.edu (Icon I. Ikenschlitzer) Subject: Re: * Hello.cpp proggie in BC 4 !! * Date: 29 Apr 1994 17:18:24 GMT Message-ID: <2prfh0$gkk@usenet.INS.CWRU.Edu> Reply-To: LitProg@SHSU.edu, efg2@po.cwru.edu (Icon I. Ikenschlitzer) To: LitProg@SHSU.EDU In , gabe@netcom.com (Gabriel Grigorescu) writes: >Hello, > >After trying to compile the most basic program in C/C++, I got the following >error: > >Linker Warning: No module definition file specified: using defaults >Linker Error: Undefined symbol OwlMain(int, char far*far*) in library file > e:\bc4\lib\owlwi.lib in module WinMain. > >I got the patches from Borland (BC4P0?.RTP) where ? is 1-4. >Any suggestions are greatly appreciated. > >The program is just: > >---- hello.cpp ------- >#include >void main() { > cout << "Hello, world. Why doesn't this work? << endl; >} >----hello.cpp ----- > > >Gabe > > Gabe- my understanding (IU don't use BC (yuk!) nor windows (yuk, yuk!)) but I understand that this program will only work under 3.1 because you need to doo all of the window c4reation code yourself, instead of just running it in a dos session My understanding is that 4.o can only make win-exe's Although, I hope I am wrong, because, as they say, that would be stupid! Don't flame me, I use os/2 and have no problems with it, just trying to help out. If I am worng, let me know becasue I wondered this same thing (why 4.0 can't run dos-exe's) Ike. > > > >-- >-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=- >Tovarasul Steion gabe@netcom.com > gabe@uclink.berkeley.edu >.._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._. > ================================================================================ Archive-Date: Fri, 29 Apr 1994 14:40:14 CST Sender: owner-litprog@SHSU.edu Date: Fri, 29 Apr 94 15:40:26 -0400 From: gtk@walsh.med.harvard.edu (Gregory Tucker-Kellogg) Reply-To: LitProg@SHSU.edu, gtk@WALSH.MED.HARVARD.EDU Message-ID: <9404291940.AA12153@walsh.med.harvard.edu> To: Literate Programming Subject: Two questions about noweb Thanks to all who pointed me to noweb for my literate programming needs. Question 1: is noidx broken, or is it my computer (SGI Irix 4.0.5)? noweave -x noidx.nw > noidx.tex gives me: /usr/people/gtk/lib/noweb/noidx: /usr/bin/nawk: arg list too long Is this a general problem? It happens regardless of the input file; I just thought noidx.nw would be a good example. I assume nuweb wouldn't solve it because nuweb doesn't appear to handle identifiers at all. (BTW, anyone who prefers nuweb to noweb and can tell me why should feel free to email me. I haven't tried nuweb, but its documentation looks very nice indeed.) Question 2: How do you edit your noweb files? I use FSF Emacs 19. It would seem natural to switch between two modes, (La)TeX and some other language. With my thanks in advance to responders, -- Gregory W. Tucker-Kellogg Department of Biological Chemistry and Molecular Pharmacology Harvard Medical School, Boston MA 02115 (617) 432-0930 or (617) 432-3212 ================================================================================ Archive-Date: Fri, 29 Apr 1994 19:54:57 CST Sender: owner-litprog@SHSU.edu Date: Fri, 29 Apr 94 20:54:55 -0400 From: gtk@walsh.med.harvard.edu (Gregory Tucker-Kellogg) Reply-To: LitProg@SHSU.edu, gtk@WALSH.MED.HARVARD.EDU Message-ID: <9404300054.AA13224@walsh.med.harvard.edu> To: Literate Programming Subject: macro preprocessing in language-independent WEBs I'm just learning noweb and nuweb. As I understand it, the original WEB distinguished between what Knuth called "sections" and what he called "macros". Both constructs added readability to the woven output. Later, CWEB did away with macros, since the C preprocessor handled them anyway. I'm just learning noweb and nuweb and trying to decide bewtween them; both NOWEB's "chunks" and NUWEB's "macros" seem analogous to WEB's "sections". Has Knuth's original "macro" construct vanished for good? I'm not sure in what sense macro expansion is a language-dependent feature. -- Gregory W. Tucker-Kellogg Department of Biological Chemistry and Molecular Pharmacology Harvard Medical School, Boston MA 02115 (617) 432-0930 or (617) 432-3212 ================================================================================ Archive-Date: Fri, 29 Apr 1994 22:10:39 CST Sender: owner-litprog@SHSU.edu From: amc@stortek.com (Alan McCartney (ACSLC)) Subject: Re: noweb and HTML: your chance to comment Message-ID: Reply-To: LitProg@SHSU.edu, amc@stortek.com Date: Fri, 29 Apr 1994 14:32:44 GMT To: LitProg@SHSU.EDU My comment: Excellent work! My questions: I caught this thread 'in progress', is this work continuing? Any thought given to using full WWW capabilities in this work? eg. image mapping system architecture diagrams httpd scripts for SCM system interfacing MIME specified viewers (eg. debuggers) dynamic MPEGs of control/data flow My statement: If you stare intently at this message you'll see me giving the author a standing ovation. Alan McCartney - "Guerrilla in the Midst" of Hypermedia Software Storage Technology, Inc Louisville, CO, USA ================================================================================ Archive-Date: Sat, 30 Apr 1994 06:43:42 CST Sender: owner-litprog@SHSU.edu From: andyt@alligin.demon.co.uk (Andy Turner) Subject: Re: * Hello.cpp proggie in BC 4 !! * Reply-To: LitProg@SHSU.edu, Andyt@alligin.demon.co.uk Date: Sat, 30 Apr 1994 10:48:34 +0000 Message-ID: <767702914snz@alligin.demon.co.uk> To: LitProg@SHSU.EDU In article gabe@netcom.com "Gabriel Grigorescu" writes: >Hello, > >After trying to compile the most basic program in C/C++, I got the following >error: > > You're trying to compile as a object windows app. Set the target type in the Target Expert as DOS application or EasyWin. -- Andy Turner ================================================================================ Archive-Date: Sat, 30 Apr 1994 09:24:28 CST Sender: owner-litprog@SHSU.edu Date: Sat, 30 Apr 1994 10:21:42 -0400 (EDT) From: j_mcarthur@BIX.com Reply-To: LitProg@SHSU.edu, j_mcarthur@BIX.COM Subject: Original WEB To: LitProg@SHSU.edu Message-ID: <9404301021.memo.71845@BIX.com> Content-Transfer-Encoding: 7BIT Gregory W. Tucker-Kellogg writes: >Has Knuth's original "macro" construct vanished for good? >I'm not sure in what sense macro expansion is a language-dependent >feature. Absolutely not. By choice, I am using WEB and Pascal. I won't say it is the original WEB designed by Knuth, because I have made some minor changes to it (unit, implementation, interface, and so on are reserved words and come out in bold when Woven and typeset; also some minor changes to Tangle). The original WEB had numerical macros. That is the tangle preprocessor would do math. This was to overcome the deficiency in Standard Pascal that you could not define a constant as a constant expression. For example, standard Pascal will not compile: CONST TWO = 1 + 1; Borland Pascal stole a lot from Modula-2 and now allows that. So numerical macros are going to pass from the scene. I don't think anyone is using them. Literate programming has profoundly changed the way I program. Now I get angry at myself if I run into a section of code I have not properly documented. ---- Jeffrey M\kern-.05em\raise.5ex\hbox{\b c}\kern-.05emArthur a.k.a. Jeffrey McArthur ATLIS Publishing phone: (301) 210-6655 12001 Indian Creek Court fax: (301) 210-4999 Beltsville, MD 20705 home: (410) 290-6935 email: j_mcarthur@bix.com The opinions express are mine and mine alone. They do not reflect the opinions of ATLIS Publishing or any part of ATLIS Systems. ATLIS does NOT pay for my access to the Internet. ================================================================================ Archive-Date: Sat, 30 Apr 1994 12:03:50 CST Sender: owner-litprog@SHSU.edu Date: Sat, 30 Apr 94 13:04:07 EDT From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET To: LitProg@shsu.edu, gtk@walsh.med.harvard.edu Subject: Re: macro preprocessing in language-independent WEBs Message-ID: Gregory W. Tucker-Kellog writes: > I'm just learning noweb and nuweb. As I understand it, the original > WEB distinguished between what Knuth called "sections" and what he > called "macros". Both constructs added readability to the woven > output. Later, CWEB did away with macros, since the C preprocessor > handled them anyway. > > I'm just learning noweb and nuweb and trying to decide bewtween them; > both NOWEB's "chunks" and NUWEB's "macros" seem analogous to WEB's > "sections". Has Knuth's original "macro" construct vanished for good? > I'm not sure in what sense macro expansion is a language-dependent > feature. Yes, noweb's ``chunks'' are analgous to CWEB's ``sections.'' I don't know about Nuweb. noweb is designed around the Unix idea of tools that work together. Macro processing is not part of noweb, but it can be provided by other, specialized tools. If you want to use C-type macros, you can pipe notangle's output through CPP or M4 before feeding it to your compiler. Of course, if you're using a language, like C, that supports macros directly, you don't need the extra step in the pipeline. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Most situations highly improved by being Computer Science Department | unfaced for a while, and there's no better Kean College of New Jersey | time for unfacing than Sunday morning. Union, NJ 07083 | USA | -- Shepherd Mead | "`DUDLEY, There *Is* No Tomorrow!' leew@pilot.njin.net | `Then How About This Afternoon?'" (1963) ------------------------------------------------------------------------ ================================================================================ Archive-Date: Sat, 30 Apr 1994 12:53:33 CST Sender: owner-litprog@SHSU.edu Date: Sat, 30 Apr 94 13:53:40 -0400 From: gtk@walsh.med.harvard.edu (Gregory Tucker-Kellogg) Reply-To: LitProg@SHSU.edu, gtk@WALSH.MED.HARVARD.EDU Message-ID: <9404301753.AA14181@walsh.med.harvard.edu> To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET Subject: Re: macro preprocessing in language-independent WEBs References: Lee Wittenberg kindly writes: > Gregory W. Tucker-Kellog writes: [..removed for brevity] >> I'm just learning noweb and nuweb and trying to decide bewtween >> them; both NOWEB's "chunks" and NUWEB's "macros" seem analogous to >> WEB's "sections". Has Knuth's original "macro" construct vanished >> for good? I'm not sure in what sense macro expansion is a >> language-dependent feature. > Yes, noweb's ``chunks'' are analgous to CWEB's ``sections.'' I > don't know about Nuweb. noweb is designed around the Unix idea of > tools that work together. Macro processing is not part of noweb, > but it can be provided by other, specialized tools. If you want to > use C-type macros, you can pipe notangle's output through CPP or M4 > before feeding it to your compiler. Of course, if you're using a > language, like C, that supports macros directly, you don't need the > extra step in the pipeline. One of the nicest features about TeX is its portability. Is a unix-dependent languge-independent WEB an oxymoron? I can certainly use m4, but I was wondering why macro expansion was not included in noweb and nuweb. At first blush, it could even be used as a sort of language-independent prettyprinting. Just italicize macro names in the woven output. The problem I'm working on is a collection of programs for controlling a spectrometer. The programs tend to be complex, but the final language is quite primitive, so a literate approach seem ideal. The language is so primitive, in fact, that macro expansion would give an enormous boost to code readability. -- Gregory W. Tucker-Kellogg Department of Biological Chemistry and Molecular Pharmacology Harvard Medical School, Boston MA 02115 (617) 432-0930 or (617) 432-3212 ================================================================================ Archive-Date: Sat, 30 Apr 1994 15:57:19 CST Sender: owner-litprog@SHSU.edu Date: Sat, 30 Apr 1994 23:08:31 +0200 From: "P. Huygen Heelkunde" Reply-To: LitProg@SHSU.edu, huygen@FGG.EUR.NL Subject: Re: MARKET SURVEY To: LitProg@SHSU.EDU, sngmedia@WORLD.STD.COM Message-ID: <9404302057.AA12481@mailgate.eur.nl> Content-Transfer-Encoding: 7BIT 1,10,18,19 ================================================================================ Archive-Date: Sat, 30 Apr 1994 17:27:38 CST 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 May 1994 00:20:04 +0200 Message-ID: <2pulikINNaj1@spice.iti.informatik.th-darmstadt.de> To: LitProg@SHSU.EDU # literate-programming/Contents 21 Apr 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 -- 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: Sat, 30 Apr 1994 17:27:41 CST 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 May 1994 00:20:06 +0200 Message-ID: <2pulimINNaj3@spice.iti.informatik.th-darmstadt.de> To: LitProg@SHSU.EDU *** Contents Fri Apr 1 00:20:05 1994 --- /common/ftp/pub/programming/literate-programming/Contents Thu Apr 21 13:12:14 1994 *************** *** 1,3 **** ! # literate-programming/Contents 24 Mar 94 -*- Indented-Text -*- #------------------------------------------------------------ --- 1,3 ---- ! # literate-programming/Contents 21 Apr 94 -*- Indented-Text -*- #------------------------------------------------------------ *************** *** 57,61 **** -- source independent -- DOS port machines/ms-dos ! nuweb independent lean system, written in C ProTex independent WEB system based on TeX RWEB spiderweb for Reduce --- 57,64 ---- -- 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 -- 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