Archive-Date: Fri, 01 Jul 1994 05:23:04 CDT Sender: owner-litprog@SHSU.edu From: maavl@cwi.nl (Marc van Leeuwen) Reply-To: LitProg@SHSU.edu, maavl@CWI.NL Subject: Re: Inserting #line directives (Was: CWEB formats C++ badly) Message-ID: Date: Fri, 1 Jul 1994 08:52:06 GMT To: LitProg@SHSU.EDU In article , coates@kelvin.physics.uq.oz.au (Tony Coates) writes: |> ... |> |> OK, I can see that this would be reasonable in most circumstances, |> though I wouldn't make FunnelWeb work this way myself. Why? Because in |> FunnelWeb, I can do things like |> |> @$@==@{The rain in Spain@} |> @$@==@{falls mainly in the plain.@} |> |> and then stick these definitions in the one string as |> |> @$@==@{"@ @@"} Are you sure you dont mean ... @"@} there? |> The compiler would probably choke on a line directive in a string. |> Not that I expect this to happen often, but equally there's no reason |> why someone shouldn't do it (I know that in ANSI C I might be able |> to get around it by splitting the string over two lines, but I don't |> know what the behaviour is if the two strings are separated by a #line |> directive. It should *probably* work, but I wouldn't trust all |> compilers to agree on that). Not knowing FunnelWeb too well I can't see whether this is explicit design or just consequence of the general language independent setup. In any case it wouldn't be possible in CWEB because strings are single tokens there, so at best such code would yield a string with "String 1" and "String 2" as substrings rather than "Spain" and "plain" (in fact the undoubled @-signs in the string would trigger error messages). You could get the intended effect using the (ANSI) C string break by writing @ @== "The rain in Spain" @ @== "falls mainly in the plain." @ @== @ " " @ which CTANGLEs to something like /*4:*/ #line 23 "src.w" /*2:*/ #line 21 "src.w" "The rain in Spain" /*:2*/ #line 23 "src.w" " "/*3:*/ #line 22 "src.w" "falls mainly in the plain." /*:3*/ #line 23 "src.w" /*:4*/ Despite all the intervening stuff the three string fragments get properly concatenated by the compiler, and since the order of transformations in the C preprocessor is quite strictly specified, this should not depend on the compiler used. |> I'm not sure whether the problem was caused primarily by the |> code being out of order in the FunnelWeb source files, or by some |> routines having components from different files, or by the fact that |> some macros are used multiple times. So if anyone *hasn't* had |> problems, I wonder if that isn't more through good luck than through |> having a debugger that genuinely can handle arbitrary #line directives |> in the original sources. My experience with #line directives introduced by CWEB is that they usually work like a charm with source code debuggers (I've used both gdb and a turbo C debugger), except that sometimes you very may briefly step to improper lines (e.g., documentation lines) after which you quickly return to the right place; I think this may be due to optimisations which make the correspondence of source code to compiled code not one-to-one, with the confusion being compunded by the many #line directives. In principle a debugger should have no more difficulty with #line directives then a compiler, and in fact it is probably not even aware of their presence: the compiler will have inserted source line indications into the compiled code, and the debugger cannot know whether these are truthful or have been influenced by #line directives. In one case there is a genuine problem, if the same source line is used multiply in the compiled code, namely when the debugger has to translate in the opposite direction, from source line to compiled code location. Suppose a source chunk is used three times and you decide to put a breakpoint in the chunk; what does the debugger do? This is really a general problem of the debugger, not of the producer of the #line directives; indeed it can occur even without those directives if a file is multiply #included. Chances are that only one occurrence of the source line really gets a breakpoint, probably the first or last occurrence. This would be inconvenient, but the situation is so rare that I never experienced it in practice. Marc van Leeuwen CWI, Amsterdam ================================================================================ Archive-Date: Fri, 01 Jul 1994 05:43:49 CDT Sender: owner-litprog@SHSU.edu From: marcus@x4u2.desy.de (Marcus Speh) Subject: Literate Programming on the World Wide Web [Revised 1 July 1994] Date: 01 Jul 1994 10:20:09 GMT Message-ID: Reply-To: LitProg@SHSU.edu, marcus@x4u.desy.de To: LitProg@SHSU.EDU Last-modified: 1 July 1994 Posting-Frequency: monthly ----------------------------------------------------------------------------- * Literate Programming on the World Wide Web ----------------------------------------------------------------------------- FYI, there is a wealth of information on Literate Programming, the art of structured programming and documentation [like WEB-like systems with (La)TeX formatting] available on the World Wide Web [WWW], a distributed HyperText system, a network of documents connected by links which can be activated electronically. Examples for LitProg environments are WEB for Pascal (DEK), CWEB for C/C++ (Levy/Knuth), FWEB for C/C++/Fortran/ratfor/TeX (Krommes), various language independent tools...and many more. ----------------------------------------------------------------------------- * How to get to the Web ----------------------------------------------------------------------------- If you have a WWW browser up and running, try going to http://info.desy.de/general/users.html and look for "Literate Programming" in the panel which appears. The precise URL is http://info.desy.de/user/projects/LitProg.html If you have no clue what WWW is, you can go over the Internet with telnet info.cern.ch which brings you to the WWW Home Page at CERN. You are now using the simple line mode browser. To move around the Web, enter the numbers given after an item. To go to the Literate Programming documents, enter go http://info.desy.de/user/projects/LitProg.html This is what you should see now: ----------------------------------------------------------------------------- * What you will see here ----------------------------------------------------------------------------- Getting Start(l)ed[2] A first look into Literate Programming with WEB Course[3] Planned GNA[4] Internet course on Literate Programming Editing[5] GNU Emacs mode for WEB programming Tools[6] Common, freely available Literate Programming environments Examples[7] Literate Programming archives and selected examples Discussion[8] Discussion on LitProg takes place on a mailing list and a newsgroup Program Library[9] George D. Greenwade's Literate Programming Library at Niord.shsu.edu. Experimental service: Archive Search[10] FAQs[11] Lists of Frequently Asked Questions: General and FWEB Further Reading Nelson Beebe's Literate Programming bibliography at ftp.math.utah.edu in directory /pub/tex/bib[12](files litprog.*) HyperLitProg[13] Literate Programming using HyperText[14] Techniques OO-LitProg[15] Opinions and examples on Object-Oriented[16] Literate Programming [[Now you can continue climbing down the documentation tree by entering numbers 1-16 and follow your own interests]] ----------------------------------------------------------------------------- * More on Browsing the Web ----------------------------------------------------------------------------- A very nice way of "browsing" through WWW uses X-based tools like "tkWWW" or "NCSA Mosaic". For the latter, binaries for many platforms (ready for use) and sources are available via anonymous FTP from ftp.ncsa.uiuc.edu in directory Web/Mosaic-binaries. For vt100 terminals there is a much-used browser called "Lynx" which can be obtained by FTP from ftp2.cc.ukans.edu in the pub/lynx directory. Emacs users will like the "W3" browser, FTP to cs.indiana.edu:/pub/elisp/w3. There is a FTP repository for browser software at info.cern.ch (including a hypertext browser/editor for NeXTStep 3.0 and tkWWW). If you cannot go through TELNET, you can still retrieve WWW documents by e-mail: send Email to test-list@info.cern.ch with one or more lines of the form send [http-address] e.g. send http://info.desy.de/user/projects/LitProg.html at the bottom of the page you'll find all links of that document listed. Your mail system must have a mail gateway to internet mail. ----------------------------------------------------------------------------- * Contact for Further Information ----------------------------------------------------------------------------- Please feel free to contact me for questions, suggestions and further contributions, or just to tell me whether you found this information useful in any way. For questions related to WWW, consult the WWW-FAQ: available via anonymous FTP from rtfm.mit.edu in directory pub/usenet/news.answers/www/faq, or on WWW at URL http://www.vuw.ac.nz:80/who/Nathan.Torkington/ideas/www-faq.html Enjoy! Marcus Speh for GNA. ***************************************************************************** Copyright 1993-94 Globewide Network Academy, Inc. Distributed under the terms of the GNU Public License. Permission is granted to copy this document for free distribution so long as it remains intact and unmodified. See more on WWW at http://uu-gna.mit.edu:8001/uu-gna/index.html or get the GNA FAQ via anonymous FTP to rtfm.mit.edu [18.70.0.209] as file pub/usenet/news.answers/globewide-network-academy-faq ------------------------------------------------------------------------- END -- ----------------------------------------------------------------------- Marcus Speh, DESY Theory Group, Notkestr. 85, D-22603 Hamburg, Germany Phone: +49-40 8998 3753, Fax: +49-40 8998 2777, Private: +49-40 4203206 Email: WWW: http://info.desy.de/www/marcus.html ================================================================================ Archive-Date: Fri, 01 Jul 1994 09:37:14 CDT Sender: owner-litprog@SHSU.edu Date: Fri, 01 Jul 1994 08:35:37 EDT Reply-To: LitProg@SHSU.edu, rdp@butler.cps.com From: rdp@butler.cps.com (Ronald David Parker) Message-ID: <2e140da0.butler@butler.cps.com> To: LitProg@shsu.edu Subject: HTML, What is it? I realize that I might be asking this in the wrong place, but I have seen some reference to HTML either on this list or a ``related'' list. What is HTML? I assume it stands for something like, HyperText Markup Language. Are there any hypertext systems that will run on DOS, Windows or NT which work with LitProg tools? -- Ron Parker Butler Manufacturing Company BMA Tower -- 4th Floor rdp@butler.cps.com Post Office Box 419917 Phone: (816) 968-3537 Kansas City, Missouri 64141-0917 ================================================================================ Archive-Date: Fri, 01 Jul 1994 09:56:24 CDT 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: Inserting #line directives (Was: CWEB formats C++ badly) Date: 1 Jul 1994 14:09:38 GMT Message-ID: <2v1832$kkf@larry.rice.edu> To: LitProg@SHSU.EDU @kelvin.physics.uq.oz.au> coates@physics.uq.oz.au writes: ^^^^^^ a classy machine name > With #line directives, we'd see > > foo + bar + > #line 123 "example.w" > quux > #line 1 "example.w" > + ... > >OK, I can see that this would be reasonable in most circumstances, >though I wouldn't make FunnelWeb work this way myself. Why? Because in >FunnelWeb, I can do things like > >@$@==@{The rain in Spain@} >@$@==@{falls mainly in the plain.@} > >and then stick these definitions in the one string as > >@$@==@{"@ @@"} Sure, these things are also possible in nuweb and noweb. The problem actually came up once here, so I can't argue that people don't ever want to do it. On the other hand, it's awfully easy to get around; hardly worth giving up nice error messages and source-level debugging. As I recall, the problem that came up here was slightly simpler, along the lines of fprintf(stderr, "@\n"); and @d Error message @{This'll break Preston's code!@} Preston Briggs ================================================================================ Archive-Date: Fri, 01 Jul 1994 10:17:53 CDT Sender: owner-litprog@SHSU.edu Date: Fri, 01 Jul 1994 09:39:40 EDT Reply-To: LitProg@SHSU.edu, rdp@butler.cps.com From: rdp@butler.cps.com (Ronald David Parker) Message-ID: <2e141ca3.butler@butler.cps.com> To: LitProg@shsu.edu Subject: LitProg My FTP connection is down. Is there a convienient way to retrieve any of the LitProg archives via e-mail. -- Ron Parker Butler Manufacturing Company BMA Tower -- 4th Floor rdp@butler.cps.com Post Office Box 419917 Phone: (816) 968-3537 Kansas City, Missouri 64141-0917 ================================================================================ Archive-Date: Fri, 01 Jul 1994 10:41:52 CDT Sender: owner-litprog@SHSU.edu From: schweiz@wam.umd.edu (Patrick Seeliger) Reply-To: LitProg@SHSU.edu, schweiz@WAM.UMD.EDU Subject: CWEB/Stanford GraphBase Date: 1 Jul 1994 15:37:49 GMT Message-ID: <2v1d8d$jl7@cville-srv.wam.umd.edu> Keywords: CWEB/Stanford GraphBase To: LitProg@SHSU.EDU Hello, I am writing a research paper about Donald E. Knuth's Stanford GraphBase which uses CWEB. Would somebody please tell me their experience (good or bad) about CWEB and/or Stanford GraphBase? BTW How old are the WEB languages? What are the main advantages/ disadvantages of CWEB compared to ANSI-C and C++? Is there a FAQ where I can find all the answers? (If so, where?) Please send info and comments to schweiz@glue.umd.edu. Thanks! Bye, Patrick Seeliger (schweiz@glue.umd.edu) ================================================================================ Archive-Date: Fri, 01 Jul 1994 13:39:24 CDT Sender: owner-litprog@SHSU.edu Date: Fri, 01 Jul 1994 13:39:18 CDT From: "George D. Greenwade" Reply-To: LitProg@SHSU.edu, bed_gdg@SHSU.EDU To: LitProg@SHSU.edu, rdp@butler.cps.com Message-ID: <00980C6F.0E6939E0.4398@SHSU.edu> Subject: RE: LitProg On Fri, 01 Jul 1994 09:39:40 EDT, rdp@butler.cps.com (Ronald David Parker) posted: > My FTP connection is down. Is there a convienient way to retrieve any of > the LitProg archives via e-mail. The LitProg/comp.programming.literate archives are available via e-mail by including the command: SENDME LITPROG.yyyy-mm in the body of a mail message to FILESERV@SHSU.edu, replacing "yyyy" with the year and "mm" with the numeric equivalent for the month. For example, the June, 1994, archives would be retrieved with the command: SENDME LITPROG.1994-06 --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: Sat, 02 Jul 1994 04:16:21 CDT Sender: owner-litprog@SHSU.edu From: sharmav@research.CS.ORST.EDU (vinod sharma) Reply-To: LitProg@SHSU.edu, sharmav@RESEARCH.CS.ORST.EDU Subject: book style Date: 2 Jul 1994 08:51:26 GMT Message-ID: <2v39qeINN1d0@flop.ENGR.ORST.EDU> To: LitProg@SHSU.EDU -- i am trying to create a web document for an ecosystem model written in C and in Mathematica. i have a few problems understanding how to design it: i could use fweb but i would like to use the book style instead of the article style that it provides as default. how do i change this? i dont completely understand the role of limbomaterial in the web-mode. can someone explain this. i understand i could have multiple source and target files for the web. could i use fweb to create mathematica .m files along with the Makefile, .c, .h and .tex files ? the other option would be to let fweave create the .tex files and then use the tex-mma mode in emacs to assemble a mathematica package (.m file). which would be more effecient? i would appreciate some pointers and suggestions. it would help to know the experiences of people who have used web to create a complex system, say 12,000 lines, with multiple languages where one of them is a non-standard language. any help is appreciated. thanks. -vinod______________________________________________________________ dearborn 311, c. science, osu corvallis OR 97331 gjfhkjfhletkpznxchaosvwmqpstormnwjxkvmo (503) 737 - 5566 hskgsskgisbdqmwaitpuxvlforazbuiformqxnk vinod@cs.orst.edu___________________________________________________ ================================================================================ Archive-Date: Sat, 02 Jul 1994 09:49:13 CDT Sender: owner-litprog@SHSU.edu Date: Sat, 02 Jul 1994 07:49:28 -0700 (MST) From: bauer@spock.AME.Arizona.EDU (Holger Bauer 8/93) Reply-To: LitProg@SHSU.edu, bauer@SPOCK.AME.ARIZONA.EDU Subject: Re: book style To: LitProg@SHSU.edu, sharmav@RESEARCH.CS.ORST.EDU, vinod@cs.orst.edu Message-ID: <9407021449.AA05961@AME.Arizona.edu> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Content-Transfer-Encoding: 7BIT I'd like to see vinod's (sp?) problem (FWEB w/ Mathematica, Makefile, C ...) being disussed in public. I'm also interested in some wizards' advice. Thanks Holger |==========================================================================| | _ _ _ | | Holger Bauer ... __o ( ) ( ) (_ ) _ | | 1426 E. 8th St. .. _`\<,_ | |_| | _ | | __ (_) | | Tucson, AZ 85719 ...(*)/ (*). | _ | /'_`\ | | /'_ `\ | | | | (602) 623-9003 | | | | ( (_) ) | | ( (_) | | | | | (_) (_) `\___/ (___)`\__ | (_) | |============================= bauer@spock.ame.arizona.edu === ( )_) | ====| "Experience comes from bad judgment" Mark Twain \___/' ================================================================================ Archive-Date: Sat, 02 Jul 1994 22:53:35 CDT Sender: owner-litprog@SHSU.edu From: coates@kelvin.physics.uq.oz.au (Tony Coates) Subject: Re: book style Date: 3 Jul 94 11:15:22 Message-ID: Reply-To: LitProg@SHSU.edu, coates@physics.uq.oz.au To: LitProg@SHSU.EDU In article <2v39qeINN1d0@flop.ENGR.ORST.EDU> sharmav@research.CS.ORST.EDU (vinod sharma) writes: i am trying to create a web document for an ecosystem model written in C and in Mathematica. [... some things deleted ...] i would appreciate some pointers and suggestions. it would help to know the experiences of people who have used web to create a complex system, say 12,000 lines, with multiple languages where one of them is a non-standard language. I have used FunnelWeb to create web sources that produce Maple and C++ files, as well as makefiles. All of the files are generated from the one FunnelWeb source. The FunnelWeb source file can be written in the form of a LaTeX file containing code fragments, and so the user can select any LaTeX format which is desired. I have found that this works very well for my own work. FunnelWeb is `language-independent', or `language-insensitive', so that it does not parse the sources the way programs like CWEB and FWEB do. The code is formatted in the way that the author writes it. Since I always lay my code out well, this is not a problem for me; it is more important for me at the moment to have a tool which handles all source types without any special recognition that to have a tool which does not understand all of the source types that I use. FunnelWeb also has parameterised macros, which I find very convenient. I'm believe that not all literate programming tools provide this (some would argue that there are other ways of doing this, and the LitProg tool need not provide it), but I do not know at all which do and which don't, other than that FunnelWeb does. So, having used FunnelWeb for multiple-language programming, and for projects with 40000 lines of code and 1000 pages of documentation, I would say that there are tools that can probably do what you want. I would suggest that FunnelWeb can do what you want, if you do not requried language-sensitive formatting, and I'm sure that a number of the other tools would do what you want (I just don't know the other tools well enough to give an authoritative answer). If you have any questions about FunnelWeb, by the way, email me at coates@physics.uq.oz.au and I will help as best I can. 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: Tue, 05 Jul 1994 12:17:28 CDT Sender: owner-litprog@SHSU.edu Subject: Joint Modular Languages Conference Message-ID: From: lupper@informatik.uni-ulm.de (Alfred Lupper) Reply-To: LitProg@SHSU.edu, lupper@INFORMATIK.UNI-ULM.DE Date: 5 Jul 1994 09:44:41 GMT To: LitProg@SHSU.EDU ============================================================================= Joint Modular Languages Conference "Modula-2, Oberon & Friends" September 28th-30th, 1994 University of Ulm Ulm, Germany ============================================================================= Conference Sessions September 28th-30th, 1994: ================================================ ->>Keynote: The History of Modula-2, Prof. N. Wirth, ETH Zuerich - Application & Education - Large Software Systems - Realtime Programming - Distributed Systems - From Modula-2 to Oberon - Object-oriented Development using BETA & Eiffel - Development Tools and Techniques - Implementation and Porting Projects - Language Design - Compiler Issues - Programming Models - Formal Methods and Theory Tutorials September 26th-27th, 1994: ====================================== - C++ Tutorial, Sean Smith, University of Southampton - Ada/Ada9x Tutorial, E. Schonberg & R. Drewar, University of New York - Oberon Tutorial, Hanspeter Moessenboeck, University of Linz ************************** Information & Registration ************************** JMLC Conference Secretary Verteilte Systeme, Informatik Universitaet Ulm Oberer Eselsberg O-27 D-89069 ULM, Germany Telephone: ++49 (731) 502-41 40 Telefax: ++49 (731) 502-41 42 E-mail: vsoffice@informatik.uni-ulm.de **************** Conference Theme **************** The decisions on programming languages, tools and environments are of crucial importance for the success of most scientific and commercial data processing organisations. These decisions must take into account local tradition but must also be based on broad and thoroughly researched perspectives of current programming languages. Modular and object-oriented languages will typically speed-up the process of program development, stimulate reuse of existing code and simplify maintenance or documentation of software systems. In practice, however, commercially viable languages differ substantially with respect to their implementation volume, programming performance and fields of application. The Joint Modular Languages Conference 1994 in Ulm provides an opportunity for data processing professionals, programmers, teachers and researchers to become aware of alternative and more recent developments in the field of modular and object-oriented languages. Relevant topics will be presented from both theoretical and practical perspectives and adequate time is allocated for discussions. We cordially invite professional programmers from all language communities together with Pascal, Modula-2 and Oberon programmers to join the conference and to share our and their experiences. *********************** Preconference Tutorials *********************** Three tutorials will introduce software engineers from one programming community to at least one alternative language environment (C++, Ada/Ada9x and Oberon). Each tutorial is a self contained course and discusses key concepts such as modularity, type consistency, classes, inheritance, and dynamic binding from a language specific point of view. The tutorials comprise 4 to 6 lecture hours and are augmented by laboratory exercises. We reserve the right to limit the number of participants for each course. All lecturers are experienced university teachers and language implementors, guaranteeing a high level of expertise and teaching efficiency. They will be available for in depth questions throughout the conference. The conference secretariat will gladly send you a detailed description of all three courses. ------------------------------------------------------------------ C++ Tutorial Monday, September 26, 1994 9.00 a.m. ------------------------------------------------------------------ Lecturer: Sean Smith, University of Southampton History and rationale of C++ Inheritance in C++ Polymorphism Classes in C++ C++ and the future Worked examples ------------------------------------------------------------------ Ada/Ada9x Tutorial Monday, September 26, 1994 9.00 a.m. ------------------------------------------------------------------ Lecturers: E. Schonberg & R. Drewar, University of New York Ada and Ada9x The type model Extension of types and classes Generic units Concurrency Packages and subunits Programming environment Exercises ------------------------------------------------------------------ Oberon Tutorial Tuesday, September 27, 1994 8.30 a.m. ------------------------------------------------------------------ Lecturer: Hanspeter Mšssenbšck, University of Linz The Oberon language The Oberon environment Common techniques Oberon-2 amendments Object-oriented programming in Oberon-2 Writing extensible software Examples, case studies Extensive laboratory exercises ******************** Conference Programme ******************** *************** Wednesday, September 28, 1994 ***************** ------------------------------------------------------------------ 09:00 - 10:15 From Modula-2 to Oberon, P. Schulthess ------------------------------------------------------------------ Welcome Address ->> Keynote: The History of Modula-2 N. Wirth, ETH Zuerich Process Visualisation with Oberon System 3 and Gadgets E. Templ, A. Stritzinger, G. Pomberger ------------------------------------------------------------------ 10:45 - 12:15 Programming Language Design, H. Mšssenbšck ------------------------------------------------------------------ Restricted Multiple Inheritance A.E. Nedorya, E.V. Tarasov, A.D. Hapugin Sequential and Parallel Exception Handling in Modula-3: A Unifying Semantics Specification E.A. Heinz A Class Mechanism Supporting Subtype-check L. Xuedong, Z. Guoliang Afternoon track 1: ------------------------------------------------------------------ 13:30 - 15:00 Formal Methods and Theory, J. Farre ------------------------------------------------------------------ Object Design with Formal Classes P. AndrŽ, D. Chiorean, J.C. Royer A Semantic Framework for Understanding the Behavior of Modules and Classes in Programming Languages M.H. Dodani, K.S. Gan Teaching a Systematic Method of Program Development C. Pronk, P.G. Kluit ------------------------------------------------------------------ 15:30 - 17:00 Compiler Issues, A. Borchert ------------------------------------------------------------------ Dynamic Polymorphism: An Ada-Based Approach J. Shen, G. Cormack, D. Duggan Compiler Optimizations Should Pay for Themselves M. Franz Building an Optimizing Compiler for Oberon: Implications on Programming Language Design M.M. Brandis Afternoon track 2: ------------------------------------------------------------------ 13:30 - 15:00 Development Tools and Techniques, A. Corradi ------------------------------------------------------------------ Post Mortem Debugger for Oberon M. Hof Using Oberon to Design a Hierachy of Extensible Device Drivers P.J. Muller STUDIO: A Modular, Compiled, Actor-Oriented Language, Based upon a Multitask Runtime System A. Hadjadji, L. FrŽcon ------------------------------------------------------------------ 15:30 - 17:00 Distributed Systems, P. Moylan ------------------------------------------------------------------ Object-Oriented Distributed Programming in the Oberon-PVM Environment E. Bugnion, M. Gitsels, B.A. Sanders Design of a Distributed Oberon System S. Traub Adding Parallel and Persistent Sets to Modula-3 L. Boeszoermenyi ------------------------------------------------------------------ 17:05 - 18:00 Modula-2 Standardisation Panel, H. Klaeren ------------------------------------------------------------------ M. Woodman (Convenor WG 13) and Panel Members ------------------------------------------------------------------ 19:00 - 20:30 Welcome Reception ------------------------------------------------------------------ *************** Thursday, September 29, 1994 ***************** ------------------------------------------------------------------ 09:00 - 10:15 O-O Development using BETA & Eiffel, J. Gutknecht ------------------------------------------------------------------ Part Objects in the BETA Programming Language B. Moller-Pedersen Model-View-Controller Classes in Eiffel M. Skipper ------------------------------------------------------------------ 10:45 - 12:15 Programming Models, G. Pomberger ------------------------------------------------------------------ An Object-Oriented Functional Logic Language for the Oberon System P. Dykstra Modular Inheritance of Objects through Mixin-Methods C. Lucas, P. Steyaert Combining Different Implementations of Types in a Program X. Franch ------------------------------------------------------------------ 13:30 - 15:00 Application and Education, F. Schweiggert ------------------------------------------------------------------ Modelling and Developing DSP Algorithms in C++ J. Middleton, M. Al-Akaidi, P. Urwin An Oberon-Based Implementation Tool J. Lampe Making the Transition from ADTs to Objects in Undergraduate Software Engineering: A CASE-Based Approach A.J. Peralta ------------------------------------------------------------------ 15:30 - 17:00 Realtime Programming, J. Cooling ------------------------------------------------------------------ A Distributed Real-Time Architecture in Oberon-2 B. Kirk, L. Nigro Writing Real-Time Applications in Modula-2 P.J. Moylan Timing as a Programming-In-The-Large Issue L. Nigro, F. Tisato ------------------------------------------------------------------ 17:05 - 18:00 Oberon Standardisation Panel, B. Kirk ------------------------------------------------------------------ ------------------------------------------------------------------ 20:00 - 23:00 Conference Banquet ------------------------------------------------------------------ *************** Friday, September 30, 1994 ***************** ------------------------------------------------------------------ 09:00 - 10:15 Oberon and beyond, M. Al-Akaidi ------------------------------------------------------------------ Oberon Đ Perspectives of Evolution J. Gutknecht Towards End-User Objects: The Gadgets User Interface System J.L. Marais ------------------------------------------------------------------ 10:45 - 12:15 Large Software Systems, L. Nigro ------------------------------------------------------------------ A New Approach to Modularization of Large Object-Oriented Systems A. Belkhelladi, B. Lazzerini, F. Marcelloni How to Structure Parallel Applications: Nested Local Aggregates A. Corradi, L. Leonardi, F. Zambonelli Capability Based Protection in a Persistent Object-Based Programming Language M. Hollins, J. Rosenberg, M. Hitchens ------------------------------------------------------------------ 13:30 - 15:00 Implementation and Porting Projects, St. Collins ------------------------------------------------------------------ Native Oberon on the PC Compatible (ISA) Platform F. Arickx, J. Broeckhove, T. Van den Eede, L. Vinck Alpha AXP/Open VMS (Modula|Oberon)-2 Compiler Project G. Dotzel Bringing the Oberon Language to the Macintosh J. Gesswein, R. Ondrus, O. Schirpf ****************** Product Exhibition ****************** Tools for application development, software systems and books will be demonstrated during the conference. ******************* Companion Programme ******************* Ulm is a city with a rich history and many resources. First mentioned in 854, it has attractions such as the gothic Cathedral with the worldŐs highest spire, the historic FishermenŐs Quarter, the picturesque Town Hall, and the Danube river where it is still blue. Other facets of Ulm include the giant federal fortress built around 1850, truck and bus factories, industrial research centers, and the University with a world famous medical faculty. You will be able to discover the treasures of Ulm on a guided tour. We will show you the place where the flight of Albrecht Berblinger, one of the first aviators, failed in 1811. Another tour will take you to a romantic little town and the natural beauties surrounding Ulm, above all the Blautopf, end point and climax of a system of underground rivers, hundreds of kilometers long. Another highlight will be the boat tour on the Danube river with striking views of the medieval city. We will try to share with you the beauty and culture of Ulm and make your time in Ulm worth remembering. ------------------------------------------------------------------ Wednesday, September 28, 1994 ------------------------------------------------------------------ 10:00 - 12:30 Tour of Ulm Đ historical city and gothic cathedral 14:30 - 16:00 Visit of baroque style library hall and Wiblingen Monastery ------------------------------------------------------------------ Thursday, September 29, 1994 ------------------------------------------------------------------ 09:00 - 15:00 Daytour to the Blautopf spring, prehistoric museum and sites ------------------------------------------------------------------ Friday, September 30, 1994 ------------------------------------------------------------------ 10:00 - 12:00 Boat tour on the Danube 14:00 - 16:00 Visiting the modern art sculptures on campus, tour of the science park and research institutes ******************* Programme Committee ******************* Andreas Borchert University of Ulm, Germany Antonio Corradi University of Bologna, Italy Brian Kirk Robinson Associates, UK Franz Schweiggert University of Ulm, Germany Gregor Snelting University of Braunschweig, Germany Guenther Dotzel ModulaWare, Germany Gustav Pomberger University of Linz, Austria Hanspeter Moessenboeck University of Linz, Austria Herbert Klaeren University of Tuebingen, Germany Jacques Farre University of Nice, France Jim Cooling University of Loughboruough, UK John Gough Queensland University of Technology, Australia Juerg Gutknecht ETH Zuerich, Switzerland Juergen Uhl IBM, Germany Libero Nigro University of Calabria, Italy Marjan Spegel Stefan Institute, Slovenia Marwan M. Al-Akaidi De Montfort University, UK Randy Bush PSG, USA Steven Collins Real Time Associates, UK Wolfgang Hanika Daimler Benz, Germany Wolfram Lippe University of Muenster, Germany ******************** Organizing Committee ******************** Peter Schulthess Chairman, University of Ulm, Germany Alfred Lupper OC Director, University of Ulm, Germany Franz Schweiggert University of Ulm, Germany Marwan Al-Akaidi De Montfort University, UK Andreas Borchert University of Ulm, Germany Jim Cooling University of Loughboruough, UK ******************** In Co-operation with ******************** Gesellschaft fuer Informatik e.V., Fachgruppe 2.1.3, 2.1.4 Schweizer Informatiker Gesellschaft, Fachgruppe Oberon British Computer Society, Modular Languages SIG Daimler Benz AG, Forschungszentrum Ulm NC-Gesellschaft fuer neue Technologien Forschungsinstitut fuer angewandte Wissensverarbeitung, Ulm IBM Deutschland, Entwicklungs GmbH ----------------------------------- Cut here --------------------------------- ****************************************************************************** Registration Form ****************************************************************************** Yes, I want to join the Joint Modular Languages Conference in Ulm. Name: Name on Badge: Affiliation: Mailing Address: Postal Code: City: Country: Daytime Phone Number: Fax Number: E-mail Address: [ ] Do not include my mailing address on meeting attendee lists. Please mark [X] the sessions you want to attend and calculate the total amount. ================================================================== | Tutorials | Regular | Authors and | Students** | | | | SIG Members* | | ------------------------------------------------------------------ | C++ | [ ] DM 220 | [ ] DM 220 | [ ] DM 220 | ------------------------------------------------------------------ | ADA | [ ] DM 220 | [ ] DM 220 | [ ] DM 220 | ------------------------------------------------------------------ | Oberon | [ ] DM 220 | [ ] DM 220 | [ ] DM 220 | ================================================================== | Conference | [ ] DM 360 | [ ] DM 320 | [ ] DM 50 | ================================================================== | Banquet | [ ] DM 60 | [ ] DM 60 | [ ] DM 60 | ================================================================== | Total | DM | DM | DM | ================================================================== *) Members of involved GI, SI, and BCS SIGs should indicate their affiliation number. **) Full time students are asked to present their original student card with picture at the conference registration desk. Student price does not include conference proceedings. ================================================================== | Companion Programme | all persons | ================================================================== | Wednesday | [ ] DM 20 | ------------------------------------------------------------------ | Thursday | [ ] DM 40 | ------------------------------------------------------------------ | Friday | [ ] DM 20 | ================================================================== | Total | DM | ================================================================== ------------------------------------------------------------------ | Total Conference, Tutorials, | DM | | Banquet | | ------------------------------------------------------------------ | Total Companion Programme | DM | ------------------------------------------------------------------ | After 25th of August add | DM | | 10% for late registration! | | ================================================================== | Total Amount | DM | ================================================================== Method of Payment: Payable to: JMLC Conference 1994, University of Ulm [ ] Transfer to: ULMV DE 66002 Illertisser Bank Sorting Code of Bank (BLZ): 731 915 00 Account No.: 702 505 005 [ ] Cheque enclosed [ ] Visa [ ] Diners Club [ ] American Express [ ] MasterCard/EuroCard Card Number: Expiration Date: Cardholder Name Signature: ----------------------------------- Cut here --------------------------------- Please send registration via surface mail to JMLC Conference Secretary Verteilte Systeme, Informatik Universitaet Ulm Oberer Eselsberg O-27 D-89069 ULM, Germany or by fax to: ++49 (731) 502-41 42 ================================================================== ================================================================================ Archive-Date: Tue, 05 Jul 1994 18:36:40 CDT Sender: owner-litprog@SHSU.edu From: bsimko@aol.com (BSimko) Reply-To: LitProg@SHSU.edu, bsimko@AOL.COM Subject: ***** LOTUS AND FOXPRO PROGRAMMING AVAILABLE Date: 5 Jul 1994 18:02:04 -0400 Message-ID: <2vcl8s$705@search01.news.aol.com> To: LitProg@SHSU.EDU Two programmers specializing in financial and membership tasking offer their services in Lotus 2.2 (DOS), 4.01 (Windows), or any version of Foxpro. Any sophistication is available. Attention to detail. Support for all products. Samples available. Either respond via e-mail or US Mail to: William Simko 2860 Stuart Drive Falls Church, VA 22042 MS Computer Science: George Washington University BA Economics/Sociology MA Sociology: George Mason University ================================================================================ Archive-Date: Thu, 07 Jul 1994 02:34:07 CDT Sender: owner-litprog@SHSU.edu From: dak@rama.informatik.rwth-aachen.de (David Kastrup) Reply-To: LitProg@SHSU.edu, dak@RAMA.INFORMATIK.RWTH-AACHEN.DE Subject: Where to get noweb.el? Date: 7 Jul 1994 07:21:57 GMT Message-ID: <2vgael$mof@urmel.informatik.rwth-aachen.de> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit To: LitProg@SHSU.EDU And don't tell me it's in the FAQ. The FAQ says, it should be in the Litprog archive, in some Email conversation. Super. I have got some of the archived files until the FAQs did not contain any pointers any more. Nothing. I have written Email to the given support address (I believe ddw and then something), no reply as to yet (probably on vacation or something). Besides, the support address is the same as with nuweb.el, and since they were developped by different people, there might even be some mistake involved there. So *does* anybody know where to get noweb.el, as described in the FAQ? -- David Kastrup dak@pool.informatik.rwth-aachen.de Tel: +49-241-72419 Fax: +49-241-79502 Goethestr. 20, D-52064 Aachen ================================================================================ Archive-Date: Thu, 07 Jul 1994 08:02:16 CDT Sender: owner-litprog@SHSU.edu From: freek@phil.ruu.nl (Freek Wiedijk) Reply-To: LitProg@SHSU.edu, freek@PHIL.RUU.NL Subject: Mona Lisa Corner Date: 7 Jul 1994 13:55:35 +0200 Message-ID: <2vgqfn$3dc@groucho.phil.ruu.nl> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit To: LitProg@SHSU.EDU It's not in the FAQ so: Is the lower-right corner-pixel of the canonical Mona Lisa white? If so: what's the reason for that? Freek -- To turn the Lisa into a Mac, all you need to do is make the screen ridiculously small and remove multi-tasking. ================================================================================ Archive-Date: Fri, 08 Jul 1994 09:38:40 CDT Sender: owner-litprog@SHSU.edu Date: Fri, 8 Jul 94 15:39:14 +0200 From: sigula@EB.se (Ulf Lagerqvist) Reply-To: LitProg@SHSU.edu, sigula@EB.SE Message-ID: <9407081339.AA29671@EB.se> To: litprog@shsu.edu signoff litprog ================================================================================ Archive-Date: Fri, 08 Jul 1994 11:58:16 CDT Sender: owner-litprog@SHSU.edu Date: Fri, 8 Jul 94 12:58:43 EDT From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET To: LitProg@shsu.edu, rdp@butler.cps.com Subject: Re: HTML, What is it? Message-ID: Ron Parker writes: > What is HTML? I assume it stands for something like, HyperText Markup Language. That's what it stands for. > Are there any hypertext systems that will run on DOS, Windows or NT which work > with LitProg tools? noweb 2.6 has a back-end that generates HTML, which can be viewed under Windows or NT using Mosaic (even without connecting to the net, in a local mode). Unfortunately, I haven't yet had the time to port noweb 2.6 to DOS, but I hope to get to it some time this summer. Also, it is relatively straightforward to modify the HTML back-end to generate a Windows Help file. If anyone is interested in completing the ``grunt work,'' I'll be glad to ship you my preliminary notes (as it will probably be quite some time before I can get to that project, if ever). -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Computer Science Department | He was an artist who made money, Kean College of New Jersey | But he signed his paintings `Rembrandt' Union, NJ 07083 | and `Van Gogh'. USA | | -- John Driver & Jeffrey Haddow leew@pilot.njin.net | "Scrambled Feet" (1979) ------------------------------------------------------------------------ ================================================================================ Archive-Date: Sun, 10 Jul 1994 14:20:04 CDT Sender: owner-litprog@SHSU.edu From: schrod@iti.informatik.th-darmstadt.de (Joachim Schrod) Reply-To: LitProg@SHSU.edu, schrod@ITI.INFORMATIK.TH-DARMSTADT.DE Subject: Re: Where to get noweb.el? Date: 7 Jul 1994 20:38:04 GMT Message-ID: <2vhp3c$jri@rs18.hrz.th-darmstadt.de> To: LitProg@SHSU.EDU In article <2vgael$mof@urmel.informatik.rwth-aachen.de>, dak@rama.informatik.rwth-aachen.de (David Kastrup) writes: > And don't tell me it's in the FAQ. The FAQ says, it should be in the Litprog > archive, ARGH! More is lost. Besides noweb.el, nuweb.el is not there, too. All other files from my index are still available. I try to get both .el files back from backups. (But this has to be done by the folks from the computing center, as they handle the hardware of our ftp server.) Btw, nuweb.el is in the Elisp archive -- mirrored daily at ftp.th-darmstadt.de -- but I don't know if it's the current version. -- Joachim [THD Literate Programming Archive, maintainer] =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Joachim Schrod Email: schrod@iti.informatik.th-darmstadt.de Computer Science Department Technical University of Darmstadt, Germany ================================================================================ Archive-Date: Tue, 12 Jul 1994 00:30:20 CDT Sender: owner-litprog@SHSU.edu From: thompson@sun1.coe.ttu.edu Subject: comp.programming.literate FAQ Date: 12 Jul 1994 05:07:26 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/06/16 Version: 1.1.9 Welcome to the Literate Programming Frequently Asked Questions List ------------------------------------------------------------------- This version was created Thursday - June 16, 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? ----------- + Update to ProTeX entry. + Update FAQ availability. + Update noweb 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. Open an ftp connection to one of the CTAN sites and retrieve the file: help/LitProg-FAQ (For more information on CTAN and the literate programming archive, see the section below entitled "Internet Nodes of Interest to Literate Programmers.") An alternative is to use the fileserver at Sam Houston State University (SHSU). Send a message to FILESERV@SHSU.EDU and include in your message: SENDME LITPROG.FAQ The file server will forward a copy of the file to you via email. - ---------------------------------------------------------------------- - FWEB FAQ ---------- Marcus Speh maintains the FWEB FAQ. The current version number is 1.29. It can be retrieved in the same way as this FAQ; either by anonymous ftp or through the SHSU file server. On the SHSU server, the file name is FAQ.FWEB. Invoke your ftp software, open a connection to NIORD.SHSU.EDU [192.92.115.8], attach to the directory FAQ, and transfer the file FAQ.FWEB. Alternatively, send a message to the file server, FILESERV@SHSU.EDU, and include the following text in a one line message: SENDME FAQ.FWEB The file server will send the current version of the file via email. The FWEB FAQ exists in various formats, including HyperText (see other resources below). In Europe, the complete distribution can also be obtained from ftp.desy.de [131.169.10.115] in directory /pub/faq/web/fweb/. It is also available from the literate programming archive (LPA) in the directory LPA/Documentation/faq/fweb (see the references to LPA below for more information). Also, Marcus Speh is looking for someone willing to take over the FWEB FAQ. The text of his email message follows... "Please add to the FWEB FAQ the note that I am looking for someone to take the maintenance of the FAQ over - I am ready to assist in any way whatsoever, including tons of mail, notes for v1.29->v1.30, Texinfo sources, a WWW server and Hypertextification etc." If you're interested, send mail to marcus@x4u2.desy.de and express your willingness to serve. = ====================================================================== * Is there a newsgroup? ----------------------- One of the most important resources is the literate programming newsgroup, comp.programming.literate. You can read this newsgroup using your standard reader. Altenatively, the newsgroup is gated to a mailing list hosted by George Greenwade and Sam Houston State University. You can subscribe by sending mail to the list-server, LISTSERV@SHSU.EDU, and include in the message one line of text: SUBSCRIBE LITPROG "your name in quotes" The list is unmoderated; messages sent to litprog@shsu.edu are automatically distributed to all subscribers and cross-posted to comp.programming.literate. Archives of the mailing list and newsgroup are maintained on niord.shsu.edu [192.92.115.8] in the directory litprog. = ====================================================================== * What internet nodes are of interest to literate programmers? -------------------------------------------------------------- The principal nodes of interest to literate programmers are the Literate Programming Archive (LPA hereafter) and the CTAN (Comprehensive TeX Archive Network). The Literate Programming Archive (LPA) is: Node: ftp.th-darmstadt.de [130.83.55.75] Directory: programming/literate-programming Notes: Fastest response during off-U.S. [yep] business hours. The CTAN sites are: ftp host IP CTAN root Institution and Sponsor ------------------------------------------------------------------------- ftp.tex.ac.uk 134.151.79.32 pub/archive Aston Univ./UK TeX U.G. ftp.dante.de 129.206.100.192 soft/tex DANTE e.V. ftp.shsu.edu 192.92.115.10 tex-archive Sam Houston State Univ. Other nodes and directories of interest include: Node: niord.shsu.edu [192.92.115.8] Directory: various (do some snooping!) Notes: Has a gopher server. Node: ftp.desy.de [131.169.10.115] Directory: pub/web. Various documents, samples, and the FWEB FAQ. Notes: Has a www server, http://info.desy.de:80/ = ====================================================================== * What is Literate Programming? ------------------------------- Literate programming is the combination of documentation and source together in a fashion suited for reading by human beings. In fact, literate programs should be enjoyable reading, even inviting! (Sorry Bob, I couldn't resist!) In general, literate programs combine source and documentation in a single file. Literate programming tools then parse the file to produce either readable documentation or compilable source. The WEB style of literate programming was created by D.E. Knuth during the development of his TeX typsetting software. All the original work revolves around a particular literate programming tool called WEB. Knuth says: The philosophy behind WEB is that an experienced system programmer, who wants to provide the best possible documentation of his or her software products, needs two things simultaneously: a language like TeX for formatting, and a language like C for programming. Neither type of language can provide the best documentation by itself; but when both are appropriately combined, we obtain a system that is much more useful than either language separately. The structure of a software program may be thought of as a web that is made up of many interconnected pieces. To document such a program we want to explain each individual part of the web and how it relates to its neighbours. The typographic tools provided by TeX give us an opportunity to explain the local structure of each part by making that structure visible, and the programming tools provided by languages such as C or Fortran make it possible for us to specify the algorithms formally and unambigously. By combining the two, we can develop a style of programming that maximizes our ability to perceive the structure of a complex piece of software, and at the same time the documented programs can be mechanically translated into a working software system that matches the documentation. Another author (Eric W. van Ammers) wrote me a short article treating his opinions on literate programming. The text follows: First observation on LP About 90% of the disussion on this list is about problems with applying some WEB-family member to a particular programming language or a special documentation situation. This is ridiculous, I think. Let me explain shortly why... Lemma 1: I have proposed for many years that programming has nothing to do with programming langauges, i.e. a good programmer makes good programs in any language (given some time to learn the syntax) and a bad programmer will never make a good program, no matter the language he uses (today many people share this view, fortunately). Lemma 2: Literate Programming has (in a certain way not yet completely understood) to do with essential aspects of programming. Conclusion 1: A LP-tool should be independent of programming language. Lemma 3: It seems likely that the so called BOOK FORMAT PARADIGM [ref. 1] plays an important role in making literate programs work. Lemma 4: There are very many documentation systems currently being used to produce documents in the BOOK FORMAT. Conclusion 2: A LP-tool should be independent of the documentation system that the program author whishes to use. My remark some time ago that we should discuss the generic properties of an LP-tool was based on the above observation. References: [1] Paul W. Oman and Curtus Cook. Typographical style is more than cosmetic. CACM 33, 5, 506-520 (May 1990) Second observation on LP The idea of a literate program as a text book should be extendend even further. I would like to see a literate program as an (in)formal argument of the correctness of the program. Thus a literate program should be like a textbook on mathematicics. A mathematical textbook explains a theory in terms of lemma and theorems. But the proofs are never formal in the sense that they are obtaind by symbol manipulation of a proof checker. Rather the proofs are by so called "informal rigour", i.e. by very precise and unambiguous sentences in a natural language. Eric W. van Ammers Department of Computer Science Wageningen Agricultural University Dreijenplein 2 E-mail: ammers@rcl.wau.nl 6703 HB Wageningen voice: +31 (0)8370 83356/84154 The Netherlands fax: +31 (0)8370 84731 = ====================================================================== * How do I begin literate programming? -------------------------------------- A recommended book is D.E. Knuth's collection of articles (1992) "Literate Programming," Center for the Study of Language and Information, Stanford University, ISBN 0-937073-80-6 (pbk). This book gives insight into Knuth's thoughts as he developed the web system of literate programming (and TeX for typesetting). It does not document methods for literate programming. A recommended book is Wayne Sewell's (1989) "Weaving a Program: Literate Programming in WEB," Van Nostrand Reinhold, ISBN 0-442-31946-0 (pbk). This book focuses on using Knuth's web system. Some talk exists in the newsgroup/mailing list for a Usenet University course in literate programming. I'm sure discussion of this topic will be welcomed. If you are interested, please participate. = ====================================================================== * What literate programming tools are available and where are they? ------------------------------------------------------------------- A significant number of tools for literate programming are available. Most have been ported from their original systems, so support multiple computer platforms. If you are the developer of such a tool, and would like to make the software freely available, please send me email and I'll reply with a form (like those below) for you to fill in. (Or short-circuit the process and kludge a form from below. :-) - ---------------------------------------------------------------------- - APLWEB -------- Developer: Christoph von Basum Version: Unknown Hardware: MSDOS Languages: IBM APL2 and STSC APL Formatter: Plain TeX Availability: Anonymous ftp from: LPA:/apl watserv1.uwaterloo.ca:/languages/apl/aplweb Readme: Unknown Description: None available. Support: Unknown Note: The status of this particular package is unknown. - ---------------------------------------------------------------------- - AWEB ------ Developer: Unknown Version: Unknown Hardware: Unknown Languages: Ada Formatter: Unknown Availability: Anonymous ftp from: LPA:/ada/web Readme: Unknown Description: None available Support: Not supported. - ---------------------------------------------------------------------- - CLiP ------ Developer: E.W. van Ammers and M.R. Kramer Version: Unknown Hardware: Vax/VMS, Unix, and MS-DOS Languages: Any programming language. Formatter: Any formatter (TeX, LaTeX, Troff, Runoff, etc) or any wordprocessor including WYSIWYG systems (Word Perfect, Win Word, Ami Pro, Word, etc.) Availability: Anonymous ftp from: sun01.info.wau.nl:/CLIP/ms_dos MS-DOS version sun01.info.wau.nl:/CLIP/vax_vms VAX/VMS version CTAN:/web/clip LPA:/machines/ms-dos LPA:/machines/vax Readme: With bundle above Description: CLiP does not use explicite commands to perform the extraction process. Rather it recognizes pseudostatemens written as comments in the programming language in question. CLiP distinguishes pseudostatments from ordinary comments because the former comply with a a particular style. This style can be adjusted to suit virtually any programming language. The CLiP approach to LP makes the system extremely versatile. It is independent of programming language and text processing environment. We designed CLiP to be compatible with hypertext systems as well but we have not yet experimented with this form of documentation. Features: + CLiP imposes virtually no limitations on the text-processing system used to produce the documentation. If the text-processor supports these items you can + structure the documentation according to your own taste. + include drawings, pictures, tables etc. + disclose your documentatio my means of X-ref tables, Indexes, Table of contents, Table of tables, Table of figures, etc. + typeset the documented code. + Extracts any number of modules from a maximum of 64 source files. + No pretty-printing. Code from the source files is copied "as is" to the module. + Appearance of code segments in the documentation matches those of the modules to ease the identification of code segements. + Supports partially specified data types. + Comprehensive user manual (preliminary version) and technical description. - No automatic generation of a X-ref table for program identifiers. Support: Bugs, problems and assistance by e-mail: ammers@rcl.wau.nl - ---------------------------------------------------------------------- - CWEB ------ Developer: Silvio Levy and D.E. Knuth Version: 3.0 Hardware: Unix systems (dos and amiga ports available) Languages: C and C++ Formatter: Plain TeX and LaTeX. Availability: Anonymous ftp from: labrea.stanford.edu:/pub/cweb LPA:/c.c++ CTAN:/web/c_cpp/cweb DOS version in CTAN:/web/c_cpp/cwb30p8c DOS version in LPA:/machines/ms-dos Amiga version CTAN:/web/c_cpp/AmigaCWEB Mac port of CTANGLE in LPA:/machines/mac LaTeX support in LPA:/c.c++ Readme: Bundled with above Description: No description provided. Support: Bugs to levy@math.berkeley.edu Note: A fork of CWEB 3.x was developed by Marc van Leeuwen which implements several changes to CWEB. It is available for anonymous ftp from ftp.cwi.nl:pub/cweb. The principle changes are: - Scans include files for typedef definitions - Grammar and formatting rules are well separated, allowing for run-time selection of a rule set (via command line option) - New manual. - ---------------------------------------------------------------------- - FunnelWeb ----------- Developer: Ross N. Williams: ross@guest.adelaide.edu.au Version: Unknown Hardware: MSDOS, Mac, VMS, Sun. Other ports reported. Languages: No restrictions. Formatter: Plain TeX for printing. Otherwise, no restrictions. Availability: Anonymous ftp from: CTAN:/web/funnelweb LPA:/independent ftp.adelaide.edu.au:/pub/funnelweb Readme: With bundle above. Description: FunnelWeb is a production-quality literate-programming tool that emphasises simplicity and reliability. Everything about FunnelWeb, from the simplicity of its language to the comprehensive tutorial in the user's manual, has been designed to make this as simple, as practical, and as usable a tool as possible. Features: + Provides a simple macro preprocessor facility. + Can produce typeset documentation. + Runs on Sun, VMS VAX, Macintosh, PC, and others. + Portable C source code distributed under GNU licence. + Comprehensive user's manual including tutorial. + Programming-language independent. + Can generate multiple output files. + Allows complete control over the output text. + Regression test suite with over 200 tests. + Fully worked example (in /pub/funnelweb/examples). - Requires TeX to produce typeset documentation. - Typesets program code using TT font only. Support: No formal support available. Mailing list maintained with about 50 subscribers. Informal assistance available from mailing list. - ---------------------------------------------------------------------- - FWEB ------ Developer: John A. Krommes Version: 1.30a (1.40 for the experienced, patient, and brave) Hardware: Unix, VMS, and DOS platforms (anything with ANSI C) Languages: C, C++, Fortran-77, Fortran-90, Ratfor, TeX; also, a language-independent mode. Formatter: Plain TeX and LaTeX. Availability: Anonymous ftp from: ftp.pppl.gov:/pub/fweb CTAN:/web/fweb LPA:/fweb DOS version in LPA:/machines/ms-dos Readme: In bundle with above. Description: It also has a well-developed user's manual and its own FAQ (see above). Beginning with 1.40, documentation is maintained in gnu texinfo format. It runs on most platforms: VMS, PC, UNIX, and pretty much anything that the GNU C compiler (GCC) is supported for. Features: + Processes multiple languages during a single run (so one can mix C and Fortran, for example). + Language-independent mode (v1.40). + Ability to turn off pretty-printing (v1.40). + Built-in Ratfor translator. + Built-in macro preprocessor (closely follows ANSI C, with extensions). + A style file that allows the user to adjust many parameters and behavior patterns of FWEB. + Various operator-overloading features that provide additional pretty-printing capabilities to languages such as C++ and Fortran-90. + Numerous miscellaneous features and command-line options. Support: Bug reports and suggestions to krommes@princeton.edu - ---------------------------------------------------------------------- - IMPACT -------- Developer: Timothy Larkin, from Levy/Knuth CWEB 3.1 Version: 1.0 Hardware: Macintosh; requires AppleEvents. Languages: C, C++ Formatter: TeX Availability: CTAN archives Readme: A short readme file is included in the SEA archive. Description: IMPACT implements CTangle from the Levy/Knuth CWEB 3.1. It operates as a foreground program, tangling files selected from the Mac File Picker. Or it can operate in the background, tangling files in response to odoc events sent by other applications, such as editors. Support: I welcome any reports of bugs. The product will be updated as new versions of the CWEB appear. Other features may be added as users suggest them. - ---------------------------------------------------------------------- - lit2x ------- Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/independent Readme: Unknown Description: None available Support: Unknown - ---------------------------------------------------------------------- - Literate Programmer's Workshop (LPW) -------------------------------------- Developer: Norbert Lindenberg Version: 1.1 Hardware: Apple Macintosh Languages: C++, Object Pascal & others Formatter: self-contained WYSIWYG system Availability: Anonymous ftp from: LPA:/machines/mac CTAN:/web/lpw ftp.apple.com:/pub/literate.prog Readme: With bundle above. Also comes with 38-page manual. Description: The Literate Programming Workshop is an environment for the integrated development of program source text and documentation in combined documents. It consists of a WYSIWYG word processor based on a style sheet approach, a mechanism to extract parts of the text in a document, and a project management system that handles multi-document projects. The system is designed to be used in conjunction with the Macintosh Programmer's Workshop: it prepares raw source text for the MPW compilers, accepts MPW error messages, and shows them in the context of the original documents. Automatic indexing and hypertext features allow for easy access to both source text and documentation. LPW is shareware. Support: Bugs, problems, and questions to lpw@aol.com. - ---------------------------------------------------------------------- - MapleWEB ---------- Developer: Unknown Version: Unknown Hardware: Unknown Languages: Maple Formatter: Unknown Availability: Anonymous ftp from: LPA:/maple Readme: Unknown Description: None Support: Unknown - ---------------------------------------------------------------------- - MWEB (Schrod/Detig) --------------------- Developer: Joachim Schrod Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. - ---------------------------------------------------------------------- - MWEB (Sewell) --------------- Developer: Sewell Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. - ---------------------------------------------------------------------- - noweb ------- Developer: Norman Ramsey Version: 2.6 Hardware: Unix and DOS platforms. Languages: All programming languages. Formatter: Plain TeX, LaTeX, and HTML (Mosaic) formatters. Availability: Anonymous ftp from: CTAN:/web/noweb LPA:/independent DOS version also in LPA:/machines/ms-dos also bart.kean.edu:/pub/leew Last recourse, use bellcore.com:/pub/norman Readme: With bundle above. Description: noweb is designed to meet the needs of literate programmers while remaining as simple as possible. Its primary advantages are simplicity, extensibility, and language-independence. noweb uses 5 control sequences to WEB's 27. noweb now supports indexing and identifier cross-reference, including hypertext ``hot links'' courtesy of Mosaic. The simple noweb manual is only 2 pages; documenting the full power of noweave and notangle requires another 3 pages. noweb works ``out of the box'' with any programming language, and its formatter-dependent part is a 60-line nawk program. The primary sacrifice relative to WEB is the loss of prettyprinting. Support: email to the author - ---------------------------------------------------------------------- - nuweb ------- Developer: Preston Briggs: preston@cs.rice.edu Version: 0.87 Hardware: Unix systems: Sparcs, RS/6000s, HPs; (!) MSDOS and Amiga. Languages: Any programming language or combination of programming languages. Formatter: Latex Availability: Anonymous ftp from: Unix: CTAN:/web/nuweb DOS: CTAN:/web/nuweb-pc LPA:/independent Amiga: CTAN:/web/nuweb/nuweb_ami Amiga: wuarchive.wustl.edu/pub/aminet Readme: Send mail to preston@cs.rice.edu Description: A single program that takes a web file written in a combination of latex and any programming language(s) and produces a latex file that can be pretty printed and a set of files containing code for compilation/interpretation by the appropriate language processors. Strengths include speed, simplicity, multiple languages, nice indices and cross-references, latex. Doesn't require any special macros or macro files. Drawbacks: latex-dependent, no code pretty printing, harder to make indices than cweb. More good stuff: nice support for make, doesn't reformat source files, so they're easy to debug. Lots of control without too much effort. That is, it doesn't do too much! Future directions... Very little change planned, except perhaps refinements in the indexing software. Support: Hack it yourself or send e-mail to preston@cs.rice.edu - ---------------------------------------------------------------------- - ProTeX -------- Developer: Eitan Gurari Version: 1.1 (AlProTeX 1.2) Hardware: Any platform with TeX (ProTeX is written in TeX) Languages: Any language Formatter: TeX and LaTeX Availability: Anonymous ftp from: ftp.cis.ohio-state.edu : pub/tex/osu/gurari/ LPA:/independent Readme: Unknown Description: There is a book published on using ProTeX, @Book{Gurari:TLD94, author = "Eitan M. Gurari", title = "{\TeX} and {\LaTeX}: Drawing and Literate Programming", publisher = pub-MH, year = "1994", address = pub-MH:adr, bibdate = "Wed Sep 29 17:55:14 1993", acknowledgement = ack-nhfb, } Support: gurari@cis.ohio-state.edu - ---------------------------------------------------------------------- - RWEB ------ Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/reduce Readme: Unknown Description: Web generator in AWK. Support: Unknown - ---------------------------------------------------------------------- - SchemeWEB ----------- Developer: John D. Ramsdell Version: 2.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: 2.0 patchlevel 26 Hardware: Unix, MSDOS, OS/2. Languages: C Formatter: nroff -man, texinfo (requires yacc/byacc/bison, lex/flex, and nroff/groff/texinfo/LaTeX). Availability: Anonymous ftp from ftp.wustl.edu: /usenet/comp.sources.reviewed/volume03/c2man* ftp.informatik.uni-stuttgart.de: /pub/archive/comp.sources/reviewed/c2man* Readme: See distribution. Description: The primary philosophy here is to use the programming language as far as possible to express the programmer's intentions, and to use comments only when the programming language is not sufficiently expressive. A comment can then become part of the language grammar which is recognised by a "documentation compiler". This tool parses a superset of the programming language and can automatically generate documentation in human-readable form by associating the programmer's comments with the objects in the code by their context. Support: Actively supported; mailing list available: send "subscribe c2man " (in the message body) to listserv@research.canon.oz.au. - ---------------------------------------------------------------------- - cnoweb -------- Developer: Jim Fox Version: 1.4 (January 4, 1991) Hardware: Anything with C and TeX. Languages: C Formatter: Plain TeX. Availability: Anonymous ftp from: CTAN LPA:/c.c++ Readme: Unknown, cnoweb.tex contains documentation. Description: cnoweb is as it's name describes: write C, not web. No tangling or weaving is implemented. Documentation (between standard /* */ delimiteres) is written in TeX. cnoweb provides typesetting of documentation, an table of contents of routines, and pretty-printing of C source. Support: None known. - ---------------------------------------------------------------------- - 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 TEST-LIST@INFO.CERN.CH by sending a message, SEND , for example, SEND http://info.desy.de/user/projects/LitProg.html to retrieve the LitProg library page. A help file can be retrieved by sending a message to the list server above with the text HELP in the body of the message. Instructions will be returned by email. For literate programming documents, you can try anonymous ftp to ftp.desy.de [131.169.10.115] and get the file: /pub/userWWW/projects/Announce/LitProg.txt - ---------------------------------------------------------------------- - TeX Resources --------------- Another resource of interest to literate programmers is the info-tex mailing list. If you're using (La)TeX as your typsetting system and have access to internet, then you should investigate this mailing list. Mail list service is available through the SHSU list-server. To subscribe, send a message to LISTSERV@SHSU.EDU, and include in the message one line of text: SUBSCRIBE INFO-TEX "your name in quotes" The list is unmoderated; messages sent to info-tex@shsu.edu are automatically distributed to all subscribers and cross-posted to comp.text.tex. Archives of the mailing list and newsgroup are maintained on niord.shsu.edu [192.92.115.8] in the directory info-tex. Another reason the TeX resources should be important is that so many of the literate programming tools rely on either plain TeX or LaTeX as their text formatter. (La)TeX software systems exist for most computing platforms. These systems can be found on CTAN and other major archive sites. Use archie to find them or simply ftp to one of the CTAN sites and browse. - ---------------------------------------------------------------------- - Virtual Coursework -------------------- Marcus Speh plans an introductory course on Literate Programming on the Internet, part of the first semester of "Global Network Academy" [GNA], a non-profit corporation incorporated in the state of Texas, affilated with the Usenet University project. The texts/sample programs for this class will be made available via the World-Wide Web. A special room on GNA Virtual Campus will be staffed by a consultant in one to two hour shifts. Students with questions can telnet to the virtual campus and ask questions of the staff there. If you are interested in registering for the course either as a student or as a consultant, please contact marcus@x4u.desy.de. You will receive a standard reply message; no further action will be taken until June 94. Interested parties can check 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.181.0.24], under /pub/usenet/news.answers or under /pub/usenet/more.specific.group.name "anonymous FTP" is just a way for files to be stored where anyone can retrieve them over the Net. For example, to retrieve the latest version of the literate programming FAQ, do the following: > ftp rtfm.mit.edu /* connect to the site; message follows */ > anonymous /* type this when it asks for your name */ > /* type your address as the password */ > cd /pub/usenet /* go to the directory you want to be */ > cd comp.programming.literate /* one level down (no slash). */ > dir /* look at what's there */ > get literate-progamming-faq /* get the file; case-sensitive */ > quit /* stop this mysterious thing */ If your FTP program complains that it doesn't know where the site you want to use is, type the numerical address instead of the sitename: > ftp 18.181.0.24 /* connect with numerical address */ If you don't have ftp access, send e-mail to mail-server@rtfm.mit.edu with the single word "help" in the body of the message. Getting binary files (executables, or any compressed files) is only slightly more difficult. You need to set binary mode inside FTP before you transfer the file. > binary /* set binary transfer mode */ > ascii /* set back to text transfer mode */ FAQs and spoiler lists are generally ascii files; everything else is generally binary files. Some common extensions on binary files in archive sites are: .Z Compressed; extract with uncompress .tar.Z Compressed 'tape archive'; uncompress then untar or tar -xvf .gz or .z Gnu gzip; use gunzip (available from prep.gnu.ai.mit.edu) .sit (Mac) StufIt archive .zip Extract with Zip or Unzip .zoo Yet another archive/compress program .lhe (Amiga) ? .lzh Lha archive program. .arj (PC) Arj archive program. .exe (PC) Sometimes self-extracting archives-just execute them. .uue or .UUE Transfer as text file; use uudecode to convert to binary .hqx (Mac) BinHex format; transfer in text mode Generic help can be found in the FAQs of comp.binaries. for how to transfer, extract, and virus-check binary files. (At rtfm.mit.edu) If you can't FTP from your site, use one of the following ftp-by-mail servers: ftpmail@decwrl.dec.com ftpmail@src.doc.ic.ac.uk ftpmail@cs.uow.edu.au ftpmail@grasp.insa-lyon.fr For complete instructions, send a message reading "help" to the server. If you don't know exactly what you're looking for, or exactly where it is, there are programs and servers that can help you. For more info, send e-mail to mail-server@rtfm.mit.with with the body of the message reading send usenet/news.answers/finding-sources Thanks to Aliza R. Panitz (the "buglady") for this text. I copied it verbatim from her post on faq-maintainers with only minor modifications. = ====================================================================== * Acknowledgements ------------------ This document would not have happened without the help of many people. Among them are Marcus Speh, George Greenwade, Rob Beezer, Joachim Schrod, Piet van Oostrum, and Ross N. Williams. A special thanks to Aliza R. Panitz for the text describing how to execute an anonymous ftp for files of interest. Any omissions from these acknowledgements should be considered an act of stupidity on my part. Of course, the authors of literate programming tools mentioned above all play a vital role in the vitality of literate programming. Furthermore, participants in the comp.programming.literate newsgroup (and associated mailing list) all contributed in various fashions. Thank all of you. = ====================================================================== * End notes ----------- This document will continue to evolve. I'm planning on adding entries for additional literate programming tools and will expand the sections on examples as more examples become available. Tools I will include are WEB (the original pascal version) for starters. Others will be added as I find and document them. Omission of a particular tool should not be considered a snub in any sense--simply an error or oversight on my part. = End of File ========================================================== ================================================================================ Archive-Date: Tue, 12 Jul 1994 19:52:51 CDT Sender: owner-litprog@SHSU.edu From: fiehler@eads.umsl.edu (Greg Fiehler) Reply-To: LitProg@SHSU.edu, fiehler@EADS.UMSL.EDU Message-ID: <9407130016.AA07859@eads> Subject: C++ with CWEB Date: Tue, 12 Jul 1994 19:16:36 -0500 (CDT) To: LitProg@SHSU.EDU I have written a few CWEB programs with C, but I am just learning C++ and I am trying to write some of my code in CWEB and I am running into a couple of problems. These are mainly formatting problems and may just be my lack of TeX experience but I would appreciate any comments. My first problem is with overloading operators, when I write a section definition as @@; the & confuses things. I also have the same problem with the | operator but this is even worse. I I have a section titled @ Overloading the | operator. The parser looks for a second | so that it can put the text in between in the C style format, I have tried to `\'escape the | char. and I have tried using $|$ hoping TeX's math mode would help, but both were unsuccessful. Also I ma not sure I like CWEB's practice of changing the ! to the math symbol and the ^ to the xor math symbol and the == to the triple equal (although that is not as bad as the others) to me this is confusing if the purpose of the output is to make the program more readable for program upkeep, or for the purpose of documenting a class so others may utilize it. In C it was ok, but when I overload an operator I think it would be more readable for a programmer if the symbol was left intact. Last I sometimes like to put comments in between code segments when they are different but not enough to warrant thier own section CWEB wants to put them after a line of code and not on the next line, i.e. code ... /* some comments */ code ... is formatted as: code... /* some comments */ code... I have tried the @; , @/ , and @#. None of these seem to work. My last problem is on designing a large CWEB program. I will be starting on some large projects soon and would like to use Literate Programming but I am not sure how to organize things. First I would normally use separate files for at least groups of like functions if not separate for each function. I know how to have my web file write the tangled code to separate files but my problem is in how do you manage a web file for a program that would normally take over 10,000 lines of code. And if you keep everything in one web file unless I am mistaken on how `make, works each time I make a revision every file will be compiled again instead of just the one in which the change was needed. I would appreciate any comments on how to handle these prooblems. Thank You, Gregg Fiehler University of Missouri - St. Louis fiehler@eads.umsl.edu ================================================================================ Archive-Date: Tue, 12 Jul 1994 20:46:48 CDT Sender: owner-litprog@SHSU.edu From: pharr-matthew@cs.yale.edu (Matthew Pharr) Reply-To: LitProg@SHSU.edu, pharr-matthew@CS.YALE.EDU Subject: CWEB: how to define pretty-printing for variables like "N"? Date: 12 Jul 1994 19:07:28 -0400 Message-ID: <2vv7ngINN5qm@RA.DEPT.CS.YALE.EDU> To: LitProg@SHSU.EDU Having discovered the fun of getting variables named omega, say, be printed out with real Greek symbols when my programs are woven and printed, I'm now trying to get arrows over my vector-based variables. This works just fine for variables named, for example, "Ng": @f Ng TeX \def\Ng{\vec{Ng}} but most of the upper-case versions of the letters in the alphabet have already been taken for other uses in cwebmac.tex, so I can't do the same with vectors named "N", or "V". For now, I've renamed my variables in my program (e.g. N became Nvec, \def\Nvec{\vec{N}}), but I'd really like to be able to have my arrows over my vectors without renaming the variables--is this possible, or am I out of luck? -matt -- Matt Pharr (pharr@cs.yale.edu) "It's funny how the colors of the real world only seem real when you see them on the screen" -- A Clockwork Orange ================================================================================ Archive-Date: Wed, 13 Jul 1994 16:36:25 CDT Sender: owner-litprog@SHSU.edu Date: Wed, 13 Jul 1994 16:39:12 -0500 From: "Stephen A. Fulling" Reply-To: LitProg@SHSU.edu, fulling@SARASTRO.MATH.TAMU.EDU Message-ID: <199407132139.QAA08775@sarastro.math.tamu.edu> To: LitProg@SHSU.edu, fiehler@eads.umsl.edu Subject: Re: C++ with CWEB CC: fulling@sarastro.math.tamu.edu >From: fiehler@eads.umsl.edu (Greg Fiehler) > > [...] I have a section titled > @ Overloading the | operator. >The parser looks for a second | so that it can put the text in between >in the C style format, I have tried to `\'escape the | char. and >I have tried using $|$ hoping TeX's math mode would help, but both >were unsuccessful. Try \vert or $\vert$ (depending on context). S. A. Fulling ================================================================================ Archive-Date: Thu, 14 Jul 1994 09:40:29 CDT Sender: owner-litprog@SHSU.edu Date: Thu, 14 Jul 94 10:40:50 EDT From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET To: LitProg@shsu.edu, fiehler@eads.umsl.edu Subject: Re: C++ with CWEB Message-ID: Gregg Fiehler writes: > My first problem is with overloading operators, when I write a > section definition as > @@; > the & confuses things. There are 2 ways to deal with this (depending on what you're trying to accomplish). Use @ or @<|operator&| member function@> > I also have the same problem with the | operator > but this is even worse. I I have a section titled > @ Overloading the | operator. Stephen Fulling's suggestion of \vert or $\vert$ is probably the best solution here. > Also I ma not sure I like CWEB's practice of changing the ! to the > math symbol and the ^ to the xor math symbol and the == to the triple equal > (although that is not as bad as the others) to me this is confusing > if the purpose of the output is to make the program more readable > for program upkeep, or for the purpose of documenting a class > so others may utilize it. In C it was ok, but when I overload an > operator I think it would be more readable for a programmer if > the symbol was left intact. Personally, I find, over time, that I much prefer the more mathematical symbols as a nearly language-independent ``publication language'' (as WEB, FWEB, and many Spidery webs print the same symbols for the same operations, even though the input languages are different). However, if you prefer something different, you can always redefine \R, \XOR, \E, etc. in your copy of cwebmac.tex (that way others -- such as me -- can typeset your webs using the standard symbols or whatever we find most readable). If you want to mix C & C++, you might also want to play around with a custom \if that allows you to specify whether segments are typeset normally or with your own versions. Yet another technique (trick?) that you might find useful in this situation is to use @d's and @f's in combination. For example, I sometimes like to be able to differentiate between multiplication and the pointer dereference operator (`*'). The declarations @d times * @f times TeX do the trick (as \times is already defined). Then I can type x = y times z; in my web and it will be typeset in TeX as $x \gets y \times z;$ (and the preprocessor will take care of turning the tangled `times' into `*'. > Last I sometimes like to put comments in between code segments > when they are different but not enough to warrant thier own > section CWEB wants to put them after a line of code and not > on the next line, i.e. > > code ... > /* some comments */ > code ... > > is formatted as: > code... /* some comments */ > code... > I have tried the @; , @/ , and @#. None of these seem to work. There may be an easier way, but code ... @t}\6{@> /* some comments */ code ... should do the trick. Substitute \7 for \6 to achieve the effect of @# and you can use \4 or \8 (after the \6 or \7) to make the comment stick out to the left. > My last problem is on designing a large CWEB program. I will > be starting on some large projects soon and would like to > use Literate Programming but I am not sure how to organize > things. First I would normally use separate files for at least > groups of like functions if not separate for each function. I > know how to have my web file write the tangled code to separate > files but my problem is in how do you manage a web file for > a program that would normally take over 10,000 lines of code. > And if you keep everything in one web file unless I am mistaken > on how `make, works each time I make a revision every file > will be compiled again instead of just the one in which the > change was needed. Judicious use of @i (along with appropriately modified dependencies in the makefile) may do the job. On the other hand, I find that the human time I save by using literate programming tools (even on large programs) more than outweighs the extra processor time involved even when I keep the entire web in a single .w file. And human time, after all, is more expensive (and precious) than computer time. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Computer Science Department | He was an artist who made money, Kean College of New Jersey | But he signed his paintings `Rembrandt' Union, NJ 07083 | and `Van Gogh'. USA | | -- John Driver & Jeffrey Haddow leew@pilot.njin.net | "Scrambled Feet" (1979) ------------------------------------------------------------------------ ================================================================================ Archive-Date: Thu, 14 Jul 1994 09:45:22 CDT Sender: owner-litprog@SHSU.edu Date: Thu, 14 Jul 94 10:45:52 EDT From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET To: LitProg@shsu.edu, pharr-matthew@cs.yale.edu Subject: Re: CWEB: how to define pretty-printing for variables like "N"? Message-ID: Matt Pharr asks: > Having discovered the fun of getting variables named omega, say, be printed > out with real Greek symbols when my programs are woven and printed, I'm now > trying to get arrows over my vector-based variables. This works just fine > for variables named, for example, "Ng": > > @f Ng TeX > \def\Ng{\vec{Ng}} > > but most of the upper-case versions of the letters in the alphabet have > already been taken for other uses in cwebmac.tex, so I can't do the same > with vectors named "N", or "V". For now, I've renamed my variables in my > program (e.g. N became Nvec, \def\Nvec{\vec{N}}), but I'd really like to be > able to have my arrows over my vectors without renaming the variables--is > this possible, or am I out of luck? > As best I can figure it, you are out of luck here, but single-letter variable names are a Bad Thing in literate programs for the same reasons that they cause trouble in normal programs. The human programmer modifying your .w file may not read N correctly (and IMO most people, when they see a typeset \vec{N} say ``vector N'', or ``N vector'', or something like that to themselves when they read it, so Nvec is much better than plain N). -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Computer Science Department | He was an artist who made money, Kean College of New Jersey | But he signed his paintings `Rembrandt' Union, NJ 07083 | and `Van Gogh'. USA | | -- John Driver & Jeffrey Haddow leew@pilot.njin.net | "Scrambled Feet" (1979) ------------------------------------------------------------------------ ================================================================================ Archive-Date: Thu, 14 Jul 1994 15:57:59 CDT Sender: owner-litprog@SHSU.edu Subject: Re: C++ with CWEB Message-ID: <1994Jul14.120233.940@rhodes> From: stuart@zen.mathcs.rhodes.edu (Brian L. Stuart) Reply-To: LitProg@SHSU.edu, stuart@ZEN.MATHCS.RHODES.EDU Date: 14 Jul 94 12:02:31 -0500 To: LitProg@SHSU.EDU In article <9407130016.AA07859@eads>, fiehler@eads.umsl.edu (Greg Fiehler) writes: ...Other stuff I don't have suggestions about deleted. |> My last problem is on designing a large CWEB program. I will |> be starting on some large projects soon and would like to |> use Literate Programming but I am not sure how to organize |> things. First I would normally use separate files for at least |> groups of like functions if not separate for each function. I |> know how to have my web file write the tangled code to separate |> files but my problem is in how do you manage a web file for |> a program that would normally take over 10,000 lines of code. |> And if you keep everything in one web file unless I am mistaken |> on how `make, works each time I make a revision every file |> will be compiled again instead of just the one in which the |> change was needed. |> What I've been doing on a current project is to keep separate .w and .hw (for the header files) files just as I would normally with .c and .h files. That way make can tangle and compile only those that have been changed or that depend on changed files. For weaving, I use a .w file the includes (with the @i operator) each of the .w and .hw files. This top-level file also contains the copyright notice that appears in the printed version as well as an overall description of the library or whatever. Below are a sample Makefile and a top-level .w for weaving. (Obviously the Makefile could use comments and the .w could use a little more overall description, but my defense is that it's a work in progress? :-) As long as we're at it, I also have a question regarding this and similar projects. The bulk of the project code consists of a number (around 30) different programs each (currently) in single files. They are also weaved as a set. The problem is that many of the programs use the same variable names and the index is nearly useless. On the other hand, I really don't want a separate index and table of contents for each program in the final document. (I'm thinking about publishing it. It's a real-world small business management system produced under an unsusal contract whereby I retain the rights to the code.) What I'd really like is to divide a common index into sections, one for each program. Has anyone else tried to deal with this type of situation? How did you resolve it? I haven't picked up a copy of The Stanford GraphBase yet, but the code I pulled off the net appears to use the separate toc and index approach. Now I just have to figure a good way to do Lex code in CWEB... Anyway, here's the Makefile and librec.w. Brian L. Stuart stuart@mathcs.rhodes.edu Math/CS Dept. Rhodes College, Memphis, TN --- Makefile --- .SUFFIXES: .w .hw .tex .dvi CC = gcc INCFLAGS = -I. CFLAGS = $(INCFLAGS) -O WEBS = record_io.hw lock.w opcl.w read.w write.w apply.w search.w \ delete.w num_rec.w SRCS = opcl.c lock.c apply.c search.c delete.c num_rec.c read.c write.c OBJS = opcl.o lock.o apply.o search.o delete.o num_rec.o read.o write.o .hw.h: ctangle -bhp $< - $@ .w.c: ctangle -bhp $< .w.tex: cweave -bhp $< .tex.dvi: tex $< librec.a: $(OBJS) ar rv librec.a $(OBJS) ranlib librec.a test_rec: test_rec.o librec.a $(CC) $(CFLAGS) -o test_rec test_rec.o librec.a read_all: read_all.o librec.a $(CC) $(CFLAGS) -o read_all read_all.o librec.a test_block: test_block.o librec.a $(CC) $(CFLAGS) -o test_block test_block.o librec.a reader: reader.o librec.a $(CC) $(CFLAGS) -o reader reader.o librec.a writer: writer.o librec.a $(CC) $(CFLAGS) -o writer writer.o librec.a test_rec.o: test_rec.c record_io.h read_all.o: read_all.c record_io.h test_block.o: test_block.c record_io.h reader.o: reader.c record_io.h writer.o: writer.c record_io.h install: librec.a cp librec.a ../../lib cp record_io.h ../../include clean: rm -f *.o *.dvi *.log *.idx *.scn *.toc core opcl.o: opcl.c record_io.h lock.o: lock.c record_io.h apply.o: apply.c record_io.h search.o: search.c record_io.h delete.o: delete.c record_io.h num_rec.o: num_rec.c record_io.h read.o: read.c record_io.h write.o: write.c record_io.h librec.tex: librec.w $(WEBS) --- librec.w --- \def\title{Appendix A: Record I/O Library} @**Record I/O Library. @ All code written by Brian L. Stuart. @ Copyright 1993, 1994 Brian L. Stuart @s delete x @ The code in this web makes up a record I/O library to be used in the Gin Management System. It provides basic opening, closing reading and writing access to files of records. One simplifying assumption is made; each file consists only of a series of like-typed records. In addition to the basic operations, this library provides routines for searching a file for a record that meets some criterion and for deleting records that meet some criterion. Futhermore, two forms of |apply()| are provided that allow for the application of some function to all records in a file. @ Locking is provided to manage multiple processes that access the database simultaneously. The locking is done on a per-file basis. If our system supports file locking based on the |fcntl()| system call, then we allow concurrent readers. Otherwise, we use lock files and all locks are exclusive. @i record_io.hw @i lock.w @i opcl.w @i read.w @i write.w @i num_rec.w @i apply.w @i search.w @i delete.w @**Index. ================================================================================ Archive-Date: Fri, 15 Jul 1994 04:43:30 CDT Sender: owner-litprog@SHSU.edu Date: Fri, 15 Jul 1994 11:44:42 +0000 (GMT) From: "Eric W. van Ammers, LUW, tel: (+31)8370-83356" Reply-To: LitProg@SHSU.edu, AMMERS@RCL.WAU.NL Subject: Literate Programming and Hypertext To: LITPROG@shsu.edu Message-ID: <01HEQFTE8A42CSSB04@RCL.WAU.NL> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Literate Programming and Hypertext ********************************** People who are interested in the idea of literate programming in a hypertext environment, are invited to use Mosaic (or some other HTML-browser) on RUL-address ftp://sun01.info.wau.nl/clip/html This directory contains two literate programs in the form of a hypertext. The file QUEENS.HTM is a program to solve the 8-queens problem in a generalized form for an NxN board with N queens (N<=100). The file PAL1.HTM is the palindrome tester program that has been announced previously. The hypertext format is HTML and the literate programming format is CLiP. Extracted versions of both programs are available in the same directory as queens.pas and pal.pas respectively. The Pascal is standard and no problems should arise. If you want to run the files under Turbo Pascal the only adaptations are to made in het OPEN and CLOSE statements. Enjoy Eric ============================================================================ Eric W. van Ammers Department of Computer Science Wageningen Agricultural University Dreijenplein 2 E-mail: ammers@rcl.wau.nl 6703 HB Wageningen voice: +31 (0)8370 83356/84154 The Netherlands fax: +31 (0)8370 84731 ============================================================================ ================================================================================ Archive-Date: Fri, 15 Jul 1994 08:54:39 CDT Sender: owner-litprog@SHSU.edu Date: Fri, 15 Jul 94 9:55:21 EDT From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET To: LitProg@shsu.edu, stuart@zen.mathcs.rhodes.edu Subject: Re: C++ with CWEB Message-ID: Brian L. Stuart writes: > As long as we're at it, I also have a question regarding this > and similar projects. The bulk of the project code consists of > a number (around 30) different programs each (currently) in single > files. They are also weaved as a set. The problem is that many > of the programs use the same variable names and the index is nearly > useless. On the other hand, I really don't want a separate index > and table of contents for each program in the final document. > (I'm thinking about publishing it. It's a real-world small business > management system produced under an unsusal contract whereby I retain > the rights to the code.) What I'd really like is to divide a > common index into sections, one for each program. Has anyone else > tried to deal with this type of situation? How did you resolve it? > I haven't picked up a copy of The Stanford GraphBase yet, but the > code I pulled off the net appears to use the separate toc and index > approach. The published Graphbase has a single index for all the programs with uses sorted by original filename (e.g., date: FOOTBALL 16, GB_GAMES 5, 24.) I suspect that Knuth hacked CWEAVE (the |phase_three| function, section 225 in CWEAVE 3.0) and did a kind of merge-sort on the resulting indices before TeXing the lot. > Now I just have to figure a good way to do Lex code in CWEB... Good luck. For mixed languages, I usually end up using noweb (or a heckuva lot of @='s for the non-C/C++ code). -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Computer Science Department | He was an artist who made money, Kean College of New Jersey | But he signed his paintings `Rembrandt' Union, NJ 07083 | and `Van Gogh'. USA | | -- John Driver & Jeffrey Haddow leew@pilot.njin.net | "Scrambled Feet" (1979) ------------------------------------------------------------------------ ================================================================================ Archive-Date: Fri, 15 Jul 1994 18:50:47 CDT Sender: owner-litprog@SHSU.edu Subject: Re: C++ with CWEB Message-ID: From: maavl@cwi.nl (Marc van Leeuwen) Reply-To: LitProg@SHSU.edu, maavl@CWI.NL Date: Fri, 15 Jul 1994 15:12:04 GMT To: LitProg@SHSU.EDU In article <9407130016.AA07859@eads>, fiehler@eads.umsl.edu (Greg Fiehler) writes: |> My first problem is with overloading operators, when I write a |> section definition as |> @@; |> the & confuses things. I also have the same problem with the | operator |> but this is even worse. I have a section titled |> @ Overloading the | operator. |> The parser looks for a second | so that it can put the text in between |> in the C style format, I have tried to `\'escape the | char. and |> I have tried using $|$ hoping TeX's math mode would help, but both |> were unsuccessful. The problem with `&' is that the cwebmac format uses `\&' for its own purposes, so you can use it like in plain TeX. However, the same format gives you `\AND' which it uses to produce the bitwise-and and the address-of operators, and which the programmer can use inside math mode, if desired; you could therefore write `@< operator$\AND$ member funtion @>'. If you prefer the (non-math) function of the traditional `\&', you could say in limbo something like \chardef\amp=`\& and use \amp where you would otherwise use \&, e.g., `@< operator\amp\ member funtion @>'. The problem with `|' is a bit more fundamental, since CWEAVE will pick up (nearly) all occurrences of `|' as C-mode delimiters even before TeX ever gets to see them. An exception is between `@t' and `@>', so that (by a trick I learned from Joachim Schrod) you can say @ Overloading the `|@t$ | $@>|' operator. (note that from the outside inwards we change from text mode to C-mode to text mode to math mode here, since `@t' requires C-mode and `|' requires math mode. This trick will not work in module names like you needed for the operator& example though, since `@t ... @>' cannot be used there. However, there is \OR which is much like \AND except that the symbol is of course `|' rather then `&' (actually \OR is just another name for \mid) and you can define \chardef\bar=`\| in limbo if you like, but remember that there is no vertical bar in the ordinary text fonts like cmr10 or cmbx10, so you could use this character only with \tt fonts. |> Also I am not sure I like CWEB's practice of changing the ! to the |> math symbol and the ^ to the xor math symbol and the == to the triple equal |> (although that is not as bad as the others) to me this is confusing |> if the purpose of the output is to make the program more readable |> for program upkeep, or for the purpose of documenting a class |> so others may utilize it. In C it was ok, but when I overload an |> operator I think it would be more readable for a programmer if |> the symbol was left intact. That is just a matter of taste (personally I render the == as an ordinary math equals and the assignment operator as a \Leftarrow, which has helped me catch many ``comparisons by assignment operator'' typos). In any case you can redefine macros of cwebmac to suit you taste. The relevant ones for you are \R for `!', \XOR for `^' and \E for `=='; other operators can be found by looking at the cwebmac.tex file or (easier) by a simple experiment. |> Last I sometimes like to put comments in between code segments |> when they are different but not enough to warrant thier own |> section CWEB wants to put them after a line of code and not |> on the next line, i.e. |> |> code ... |> /* some comments */ |> code ... |> |> is formatted as: |> code... /* some comments */ |> code... |> I have tried the @; , @/ , and @#. None of these seem to work. As far as I know, you are out of luck here, since CWEAVE insists on putting comments to the left of somethin, discarding any breaks that may precede it. You can try to be devious though and attach the comment to a dummy and invisible statement created by @t@> @; and preceed that by a forced break but I'm not sure you will like the spacing. Marc van Leeuwen CWI, Amsterdam ================================================================================ Archive-Date: Sat, 16 Jul 1994 13:35:18 CDT Sender: owner-litprog@SHSU.edu From: jscholes@kalva.demon.co.uk (John Scholes) Subject: Standard editors (not TeX etc). Reply-To: LitProg@SHSU.edu, jscholes@kalva.demon.co.uk Date: Fri, 15 Jul 1994 16:06:11 +0000 Message-ID: <774288371snz@kalva.demon.co.uk> To: LitProg@SHSU.EDU Has anyone had any experience of literate programming with their normal standard editor (rather than TeX etc). I use C++, but I don't like the Knuth single character substitutions (an arrow for -> etc). On the other hand, I quite like the idea of making keywords bold. I also wanted a product that will strip out the non-code part and produce a pretty printed result, so that the it can be used by those who don't like literate programming. Any practical experience anyone? -- John Scholes ================================================================================ Archive-Date: Sat, 16 Jul 1994 13:35:21 CDT Sender: owner-litprog@SHSU.edu From: jscholes@kalva.demon.co.uk (John Scholes) Subject: Does anyone use it? Reply-To: LitProg@SHSU.edu, jscholes@kalva.demon.co.uk Date: Fri, 15 Jul 1994 16:01:07 +0000 Message-ID: <774288067snz@kalva.demon.co.uk> To: LitProg@SHSU.EDU Does anyone actually use literate programming for production code? In some ways I am a fan of literate programming: it makes for highly readable code. And presumably saves a fortune in the maintenance part of the cycle. But I have never managed to write one except by starting with an already finished program and converting it. [Maybe because I have never subscribed much to the top down school.] Even then, I have never persuaded anyone else to use it as the version they should maintain. How have the rest of you got on? -- John Scholes ================================================================================ Archive-Date: Sat, 16 Jul 1994 20:51:39 CDT Sender: owner-litprog@SHSU.edu From: simmdan@kenya.isu.edu (Daniel Simmons) Reply-To: LitProg@SHSU.edu, simmdan@KENYA.ISU.EDU Subject: Re: Does anyone use it? Date: 16 Jul 1994 11:31:13 -0600 Message-ID: <3095h1$6ba@kenya.isu.edu> To: LitProg@SHSU.EDU In article <774288067snz@kalva.demon.co.uk>, John Scholes wrote: >Does anyone actually use literate programming for production code? Just starting to. >In some ways I am a fan of literate programming: it makes >for highly readable code. And presumably saves a fortune in the >maintenance part of the cycle. But I have never managed to write one >except by starting with an already finished program and converting it. >[Maybe because I have never subscribed much to the top down school.] >Even then, I have never persuaded anyone else to use it as the version >they should maintain. > >How have the rest of you got on? I have recently adopted literate programming as standard practice. So far I have converted one system that was already into production and written two other systems from scratch literate (one in production for a while, another just finishing up and getting ready to go into production). One of the biggest benefits I have found to using literate programming (aside from the fact that I write much better programs when I have to think about and justify what I'm doing) stems from the fact that I don't have the luxury of working on development all day every day. My time is more often than not directed to system administration, user support and twelve other tasks that distract me from the development projects I'm trying to complete. When I'm working on a literate program, I am able to begin making progress again much more quickly after a distraction than if I am working on a non-literate program. This is not terribly surprising since it is essentially the same argument that is used for saying that literate programs are easier to maintain, but I hadn't thought of it until I found out by experience. Now if I could just convince more people around me to jump on the band- wagon... Danny -- Daniel Simmons electronic mail : simmdan@isu.edu Idaho State University voice mail : (208) 236-3199 Computer Center snail mail : Box 8037, Pocatello ================================================================================ Archive-Date: Sat, 16 Jul 1994 20:52:07 CDT Sender: owner-litprog@SHSU.edu From: simmdan@kenya.isu.edu (Daniel Simmons) Reply-To: LitProg@SHSU.edu, simmdan@KENYA.ISU.EDU Subject: Re: Standard editors (not TeX etc). Date: 16 Jul 1994 11:34:13 -0600 Message-ID: <3095ml$6d7@kenya.isu.edu> To: LitProg@SHSU.EDU In article <774288371snz@kalva.demon.co.uk>, John Scholes wrote: >I use C++, but I don't like the Knuth single character substitutions >(an arrow for -> etc). On the other hand, I quite like the idea of >making keywords bold. > >I also wanted a product that will strip out the non-code part and produce >a pretty printed result, so that the it can be used by those who don't >like literate programming. > >Any practical experience anyone? Well, I've been using FunnelWeb because I write programs in a variety of languages, and (more importantly) I write *systems* that have programs in multiple languages. Another advantage of FunnelWeb, though, is that it doesn't pretty print the code at all. Instead, it gives you 100% control over your code output. So my literate programs are designed to be readable in both woven and tangled forms. I put comments in my code sections as well as around them. It seems to work fairly well. Danny -- Daniel Simmons electronic mail : simmdan@isu.edu Idaho State University voice mail : (208) 236-3199 Computer Center snail mail : Box 8037, Pocatello ================================================================================ Archive-Date: Sat, 16 Jul 1994 22:37:33 CDT Sender: owner-litprog@SHSU.edu From: j_mcarthur@BIX.com (Jeffrey McArthur) Reply-To: LitProg@SHSU.edu, j_mcarthur@BIX.COM Subject: Re: Does anyone use it? Date: Sat, 16 Jul 1994 22:50:59 Message-ID: <30a891$ea8@news.delphi.com> To: LitProg@SHSU.EDU >Does anyone actually use literate programming for production code? I do. I am using WEB, the original, Pascal version. I translate the WEB code to Pascal and then compile it with Borland Pascal 7.0. I am building a set of libraries using this method. I do a lot of database stuff. I have written an object oriented wrapper around the Paradox Engine using Web. This makes it quite simple to access all the databases quickly and easilly. I also use TPLex and TPYacc. They are versions of Lex and Yacc written in Turbo/Borland Pascal that generate Turbo/Borland Pascal. I have found it easy to write Lex programs using WEB. The compile cycle is just one step longer: Web -> Lex -> Pascal -> executable. (To do this I did have to make a change to the Tangle preprocessor to stop it from outputting the {42:} {:42} comments.) I had to send a copy of the source code to a client. When I printed up the two small programs it came to over 100 pages that included lots of tables and diagrams. They were impressed. I have made a few minor changes to both Tangle and Weave. Tangle no longer outputs the start and end section comments (they don't work with Lex). Also Tangle allows underscore "_" as a valid character (this is needed to access some of the Windows libraries). Finally I changed to code to be case sensitive. I know that Pascal is not case sensitive. But I perfer to have a tool help me maintain casing. (I also use a spelling checker on my WEB programs.) The biggest gain for me was the ability to reorganize code. Using the Objective Pascal (a.k.a Turbo Pascal, a.k.a. Borland Pascal) is quite easy. I changed Weave to make object, unit, and uses all keywords. With WEB I can do things like this: @= PPrintObj = ^TPrintObj; TPrintObj = object(TObject) <@Print Object Fields@> <@Print Object Methods@> end; This allows me to put the field and method declarations with the code that uses them. Without that, I find it a lot harder to write object oriented code. Jeffrey M\kern-.05em\raise.5ex\hbox{\b c}\kern-.05emArthur a.k.a. Jeffrey McArthur ================================================================================ Archive-Date: Sat, 16 Jul 1994 22:45:26 CDT Sender: owner-litprog@SHSU.edu From: j_mcarthur@BIX.com (Jeffrey McArthur) Reply-To: LitProg@SHSU.edu, j_mcarthur@BIX.COM Subject: Re: Does anyone use it? Date: Sat, 16 Jul 1994 22:50:59 Message-ID: <30a8tg$et6@news.delphi.com> To: LitProg@SHSU.EDU >Does anyone actually use literate programming for production code? I do. I am using WEB, the original, Pascal version. I translate the WEB code to Pascal and then compile it with Borland Pascal 7.0. I am building a set of libraries using this method. I do a lot of database stuff. I have written an object oriented wrapper around the Paradox Engine using Web. This makes it quite simple to access all the databases quickly and easilly. I also use TPLex and TPYacc. They are versions of Lex and Yacc written in Turbo/Borland Pascal that generate Turbo/Borland Pascal. I have found it easy to write Lex programs using WEB. The compile cycle is just one step longer: Web -> Lex -> Pascal -> executable. (To do this I did have to make a change to the Tangle preprocessor to stop it from outputting the {42:} {:42} comments.) I had to send a copy of the source code to a client. When I printed up the two small programs it came to over 100 pages that included lots of tables and diagrams. They were impressed. I have made a few minor changes to both Tangle and Weave. Tangle no longer outputs the start and end section comments (they don't work with Lex). Also Tangle allows underscore "_" as a valid character (this is needed to access some of the Windows libraries). Finally I changed to code to be case sensitive. I know that Pascal is not case sensitive. But I perfer to have a tool help me maintain casing. (I also use a spelling checker on my WEB programs.) The biggest gain for me was the ability to reorganize code. Using the Objective Pascal (a.k.a Turbo Pascal, a.k.a. Borland Pascal) is quite easy. I changed Weave to make object, unit, and uses all keywords. With WEB I can do things like this: @= PPrintObj = ^TPrintObj; TPrintObj = object(TObject) <@Print Object Fields@> <@Print Object Methods@> end; This allows me to put the field and method declarations with the code that uses them. Without that, I find it a lot harder to write object oriented code. Jeffrey M\kern-.05em\raise.5ex\hbox{\b c}\kern-.05emArthur a.k.a. Jeffrey McArthur ================================================================================ Archive-Date: Sun, 17 Jul 1994 07:01:21 CDT Sender: owner-litprog@SHSU.edu From: dak@hathi.informatik.rwth-aachen.de (David Kastrup) Reply-To: LitProg@SHSU.edu, dak@HATHI.INFORMATIK.RWTH-AACHEN.DE Subject: Re: Does anyone use it? Date: 17 Jul 1994 11:55:47 GMT Message-ID: <30b683$20e@urmel.informatik.rwth-aachen.de> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit To: LitProg@SHSU.EDU jscholes@kalva.demon.co.uk (John Scholes) writes: >Does anyone actually use literate programming for production code? >In some ways I am a fan of literate programming: it makes >for highly readable code. And presumably saves a fortune in the >maintenance part of the cycle. But I have never managed to write one >except by starting with an already finished program and converting it. >[Maybe because I have never subscribed much to the top down school.] >Even then, I have never persuaded anyone else to use it as the version >they should maintain. >How have the rest of you got on? I have done one literate project from scratch in CWEB, but it required too much discipline to get everything typeset properly for a project which is not thought for publishing, but for development and documentation. I have done several things in noweb, and it's more or less just it, as I can hack thing and documentation down without thinking too much, or worrying about looks. Noweb actually shortens my development phase, as the docs do not require additional thinking, and neither does the code layout. However, it took some work persuading noweb to let german.sty work properly. The TeX macro support could be more versatile. For English language programmers, this should not make much difference. -- David Kastrup dak@pool.informatik.rwth-aachen.de Tel: +49-241-72419 Fax: +49-241-79502 Goethestr. 20, D-52064 Aachen ================================================================================ Archive-Date: Sun, 17 Jul 1994 09:12:46 CDT Sender: owner-litprog@SHSU.edu Date: Sun, 17 Jul 94 10:13:30 EDT From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET To: LitProg@shsu.edu, jscholes@kalva.demon.co.uk Subject: Re: Does anyone use it? Message-ID: John Scholes asks: > Does anyone actually use literate programming for production code? Yes. I do. I spent the 1992-93 academic year on sabbatical with a small software house, and wrote all my code using literate programming tools. These include programs written in C, Paradox, Paradox for Windows, and Awk. One of these (a PfW form ``disassember'' called d'Art) might even be the first non-Borland commercial application written for Paradox for Windows. I am back in academe, but I still write programs (some of which are for public consumption), and I still use LP (mostly noweb). Carl Gregory, who is not a subscriber to this list, also uses literate programming for production code. Unlike me, Carl works for a commercial software firm. Because of Carl's positive experiences with LP (better, more maintainable code faster) the whole firm is moving (slowly) to becoming a completely LP house (delayed only by the usual reluctance of programmers to embrace anything that increases work ``up front,'' even if it saves more time later in debugging and maintenance). -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Computer Science Department | He was an artist who made money, Kean College of New Jersey | But he signed his paintings `Rembrandt' Union, NJ 07083 | and `Van Gogh'. USA | | -- John Driver & Jeffrey Haddow leew@pilot.njin.net | "Scrambled Feet" (1979) ------------------------------------------------------------------------ ================================================================================ Archive-Date: Sun, 17 Jul 1994 09:16:36 CDT Sender: owner-litprog@SHSU.edu Date: Sun, 17 Jul 94 10:17:21 EDT From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET To: LitProg@shsu.edu, jscholes@kalva.demon.co.uk Subject: Re: Standard editors (not TeX etc). Message-ID: John Scholes asks: > Has anyone had any experience of literate programming with their normal > standard editor (rather than TeX etc). > > I use C++, but I don't like the Knuth single character substitutions > (an arrow for -> etc). On the other hand, I quite like the idea of > making keywords bold. > > I also wanted a product that will strip out the non-code part and produce > a pretty printed result, so that the it can be used by those who don't > like literate programming. > > Any practical experience anyone? noweb is designed to allow for just such experimentation. There are several filters available that pretty-print code, and there are at least 2 back-ends (one for TeX, the other for HTML). You can also write your own back-end for whatever editor or formatter you like (a troff back-end would be a great service to many, I suspect). You might also want to look at CLiP and WinWordWEB. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Computer Science Department | He was an artist who made money, Kean College of New Jersey | But he signed his paintings `Rembrandt' Union, NJ 07083 | and `Van Gogh'. USA | | -- John Driver & Jeffrey Haddow leew@pilot.njin.net | "Scrambled Feet" (1979) ------------------------------------------------------------------------ ================================================================================ Archive-Date: Mon, 18 Jul 1994 01:52:41 CDT Sender: owner-litprog@SHSU.edu Date: Mon, 18 Jul 1994 08:53:48 +0000 (GMT) From: "Eric W. van Ammers, LUW, tel: (+31)8370-83356" Reply-To: LitProg@SHSU.edu, AMMERS@RCL.WAU.NL Subject: Re: Does anyone use it? To: LitProg@SHSU.edu Message-ID: <01HEUGJDNSG6CSS9N6@RCL.WAU.NL> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT We certainly do use literate programming for production code, be it that we are a university and not a commercial organization. The grading administration of our department, originally written for DECsystem-10 (Pascal) and later rewritten for VAX/VMS (again Pascal) are literate programs. We have done a lot of maintenance on these programs and then one really appreciates this technique Eric van Ammers ============================================================================ Eric W. van Ammers Department of Computer Science Wageningen Agricultural University Dreijenplein 2 E-mail: ammers@rcl.wau.nl 6703 HB Wageningen voice: +31 (0)8370 83356/84154 The Netherlands fax: +31 (0)8370 84731 ============================================================================ ================================================================================ Archive-Date: Mon, 18 Jul 1994 15:55:15 CDT Sender: owner-litprog@SHSU.edu From: chris@kd3bj.uucp (C. T. Nadovich) Reply-To: LitProg@SHSU.edu, chris@KD3BJ.UUCP Subject: Re: Does anyone use it? Message-ID: Date: Sun, 17 Jul 1994 19:58:26 GMT To: LitProg@SHSU.EDU jscholes@kalva.demon.co.uk (John Scholes) writes: >Does anyone actually use literate programming for production code? In the recent past I have been the systems engineer overseeing two major Radar system developments that used LP. Both systems had considerable software content. In one case the software was mostly embedded, while in the other case there was a significant human interface. The size of the efforts were moderate as these things go (say 50,000-100,000 lines of C code each). Since I was in charge, and I did a lot of the work myself, I was able to force the use of LP for both efforts. In other programs that I have been involved in, where I didn't have the political strength I had for these two efforts, I _suggested_ the use of LP, but my suggestions were not followed. The two radars that used LP had software delivered on-time and in-budget. Weave also generated comprehensive, low-level documentation that was invaluable when it came to supporting the systems in the field, not to mention giving us a few data-items for free. I should say that these developments were hardly "top-down", although the eventual LP design _was_ organized that way. There was considerable "middle-out" development. LP handled this just fine. My major frustrations with LP (as posted here earlier) have had to do with the lack of scoping and modularity. In moderate to large efforts where a large team of programmers with mixed abilities must be coordinated it is convenient to encapsulate individual efforts in functions, classes, or files. The scraps that LP provides aren't robust enough, in my experience, for reliable re-use---yet inexperienced people that use LP tend to write a lot fewer functions, classes, or files, and break things up with scraps. This may result in pretty, readable code, but the scraps tend to have poorly defined interfaces and often rely on global variables for essential communication with distant scraps. Another problem with LP in a production environment is its status as an "experimental" system. There's always an new variant posted and this is good, but I have to use just one version and stick with it for better or for worse over a 3-5 year development cycle. A corrilary of this problem is that the "real world" to a large extent does not know about LP. That means I have problems with language support and with training. For example, when I buy a DSP board for my radar and it comes with a C compiler, I generaly only have about a %50 chance of discovering that the #line directive is supported. Debuggers are often quite bad at supporting this language feature---Borland's Turbo Debugger is a classic example of missing #line support. And finally, the training issue is probably the worst. It's easy for a PhD graduate student of CS to decide to use LP in his thesis, but consider the typical production programmer. They've spent the last five years hacking COBOL at some bank's sweat shop. They took a C course at a community college and finally landed a job to use C at a defense contractor. The first day on the job, this bozo called a "systems engineer" drops "The TeXbook", "K&R", "Strunk and White" and Knuth's "Literate Programming" on their desk and expects them to be experts in all three by Friday. -- 73 de KD3BJ (Chris Nadovich, chris@kd3bj.ampr.org) ================================================================================ Archive-Date: Mon, 18 Jul 1994 20:07:34 CDT Sender: owner-litprog@SHSU.edu From: bart@cs.tamu.edu (Bart Childs) Reply-To: LitProg@SHSU.edu, bart@CS.TAMU.EDU Subject: Re: Does anyone use it? Date: 18 Jul 1994 19:05:53 GMT Message-ID: <30ejqh$e40@news.tamu.edu> To: LitProg@SHSU.EDU I use it extensively. I have had lots of students use it too and generally there is no problem as long as they take a deep breath and start. We used it in a freshman class using: a) DOS b) demacs (and now would do oemacs) c) Turbo Pascal Obviously we were using the original Pascal-WEB. Other than a few sour grapes people who wanted `pure Turbo' there was no problem. I am convinced that even beginners can develop codes quicker and better if they will make discrete steps of: 1) Write a statement of the program and get it reviewed! 2) Of course that was done in WEB, now add the top level view of the program, like in pseudo code. Review it! 3) Do the whole thing! So you are by yourself, be sure to stop and print it in each of the steps and review it yourself. Just try to consciously think that you are not the reviewer not just the hacker. Cheers Bart Childs ================================================================================ Archive-Date: Mon, 18 Jul 1994 20:08:04 CDT Sender: owner-litprog@SHSU.edu From: bart@cs.tamu.edu (Bart Childs) Reply-To: LitProg@SHSU.edu, bart@CS.TAMU.EDU Subject: Re: Does anyone use it? One more comment. Date: 18 Jul 1994 19:07:31 GMT Message-ID: <30ejtj$e40@news.tamu.edu> To: LitProg@SHSU.EDU TeX is not an editor. It is a formatter and the amount that is written by most people doing literate programming is nearly trivial. Cheers Bart Childs ================================================================================ Archive-Date: Mon, 18 Jul 1994 23:45:57 CDT 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: Does anyone use it? One more comment. Date: 18 Jul 1994 20:29:29 GMT Message-ID: <30eon9$kc7@larry.rice.edu> To: LitProg@SHSU.EDU bart@cs.tamu.edu (Bart Childs) writes: >TeX is not an editor. It is a formatter and the amount >that is written by most people doing literate programming >is nearly trivial. I've been trying to use more and more figures in my webs, usually via Latex commands. For a small example, in this case a small style guide for internal use, check out the file draw.ps via anonymous ftp from cs.rice.edu, in the directory public/preston Preston Briggs ================================================================================ Archive-Date: Tue, 19 Jul 1994 09:30:54 CDT Sender: owner-litprog@SHSU.edu From: jham1@cs20.cs.aukuni.ac.nz (John Hamer) Reply-To: LitProg@SHSU.edu, jham1@CS20.CS.AUKUNI.AC.NZ Subject: Re: Standard editors (not TeX etc). Date: 19 Jul 1994 01:43:15 GMT Message-ID: To: LitProg@SHSU.EDU Scholes> I use C++, but I don't like the Knuth single character Scholes> substitutions (an arrow for -> etc). On the other hand, I Scholes> quite like the idea of making keywords bold. Ever thought of making identifiers bold, and leaving keywords alone? It seems odd at first, but when the novelty wears off you'll wonder why anyone would have it any other way. The idea of emphasising identifiers at the expense of keywords comes from Ledgard and Tauer's book ``Professional Software, Volume II: Programming Practice'', Addison-Wesley (1987) ISBN: 0-201-12232-4. This is well worth a read. -- -- John Hamer Email: J_Hamer@cs.auckland.ac.nz -- Department of Computer Science Phone: +64 9 3737 599 x8758 -- University of Auckland Fax: +64 9 3737 453 -- Private Bag 92019, Auckland, New Zealand. ================================================================================ Archive-Date: Tue, 19 Jul 1994 13:28:09 CDT Sender: owner-litprog@SHSU.edu Date: Tue, 19 Jul 1994 13:28:28 -0500 From: "Stephen A. Fulling" Reply-To: LitProg@SHSU.edu, fulling@SARASTRO.MATH.TAMU.EDU Message-ID: <199407191828.NAA11935@sarastro.math.tamu.edu> To: LitProg@SHSU.edu, jham1@cs20.cs.aukuni.ac.nz Subject: Identifiers and keywords CC: fulling@sarastro.math.tamu.edu ------------------------------------------ jham1@cs20.cs.aukuni.ac.nz (John Hamer) writes: Ever thought of making identifiers bold, and leaving keywords alone? It seems odd at first, but when the novelty wears off you'll wonder why anyone would have it any other way. The idea of emphasising identifiers at the expense of keywords comes from Ledgard and Tauer's book ``Professional Software, Volume II: Programming Practice'', Addison-Wesley (1987) ISBN: 0-201-12232-4. This is well worth a read. ---------------------------------------- I've said this before, but it bears repeating. The standard practice of using E X T E N D E D bold for keywords and the cramped italic font for identifiers puts the emphasis in the wrong place. I suspect it contributes to many people's lack of enthusiasm for pretty-printing. I didn't particularly like the result of interchanging the two fonts -- and other people I showed it to liked it even less. So I settled on a compromise that seems near optimal: Use sans-serif for keywords and slanted roman for identifiers. This is easily done by a few changes to cwebmac.tex The slanted font is larger and easier to read than italic. The sans-serif is less obtrusive than bold-extended and makes a better contrast with \tt (used for strings). S. A. Fulling Prof. of Math. Texas A&M University ================================================================================ Archive-Date: Wed, 20 Jul 1994 00:39:36 CDT Sender: owner-litprog@SHSU.edu Subject: Re: Standard editors (not TeX etc). Message-ID: <30h4b9$8kf@blackice.winternet.com> From: trashy@icicle.winternet.com (Barry Schwartz) Reply-To: LitProg@SHSU.edu, trashy@ICICLE.WINTERNET.COM Date: 19 Jul 1994 18:00:09 GMT To: LitProg@SHSU.EDU In article <774288371snz@kalva.demon.co.uk> jscholes@kalva.demon.co.uk writes: ]I also wanted a product that will strip out the non-code part and produce ]a pretty printed result, so that the it can be used by those who don't ]like literate programming. Well, the best thing would be to shun those people. But, seriously, you could try running the C output through indent or tgrind. You'd lose the documentation, but if they really wanted the documentation they wouldn't dislike literate programs. -- Barry Schwartz at MedGraphics trashy@winternet.com ================================================================================ Archive-Date: Wed, 20 Jul 1994 02:13:32 CDT Sender: owner-litprog@SHSU.edu From: dak@messua.informatik.rwth-aachen.de (David Kastrup) Reply-To: LitProg@SHSU.edu, dak@MESSUA.INFORMATIK.RWTH-AACHEN.DE Subject: Re: Standard editors (not TeX etc). Date: 20 Jul 1994 07:00:46 GMT Message-ID: <30ii2u$l7i@urmel.informatik.rwth-aachen.de> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit To: LitProg@SHSU.EDU trashy@icicle.winternet.com (Barry Schwartz) writes: >In article <774288371snz@kalva.demon.co.uk> > jscholes@kalva.demon.co.uk writes: >]I also wanted a product that will strip out the non-code part and produce >]a pretty printed result, so that the it can be used by those who don't >]like literate programming. >Well, the best thing would be to shun those people. >But, seriously, you could try running the C output through indent or >tgrind. You'd lose the documentation, but if they really wanted the >documentation they wouldn't dislike literate programs. Another option is to use noweb. When tangling without #line information, it will correctly preserve indentation of the various modules. There is even a program nountangle with it, which will turn the documentation parts into comments of the tangled language. Very neat. Also, the line numbers in the weaved file are the same as in the web source, making TeX error messages pinpoint the right numbers. -- David Kastrup dak@pool.informatik.rwth-aachen.de Tel: +49-241-72419 Fax: +49-241-79502 Goethestr. 20, D-52064 Aachen ================================================================================ Archive-Date: Wed, 20 Jul 1994 02:32:12 CDT Sender: owner-litprog@SHSU.edu From: futuretracs@delphi.com (David J. King) Reply-To: LitProg@SHSU.edu, futuretracs@DELPHI.COM Subject: AD- All you need to know! Date: 20 Jul 1994 01:08:59 GMT Message-ID: <94071921005914.DLITE.futuretracs@delphi.com> To: LitProg@SHSU.EDU What's it worth to you to become an expert in Open Systems, LANS, Programming, or UNIX? * Your job? * Your promotion * Your company? Here's what everyone should really know about Unix, Lans, Programming, and Open Systems. If topics such as Portability, Interoperability, and Integration are subjects of discussion at your company, then we can help. FutureTracs is the definitive source for advanced information systems video-based courseware. We offer material developed by independant industry experts. These courses, previously unabailable without attending costly and time consuming off-ste meetings, can educate you on the advantages and problems of Lans, Unix, Open Systems, Programming, and Enterprise Networking at your convenience either at the office or at home. Some courses that are available are: Open System Library: * Open Systems for Managers * Open Systems for Techincal Staff * Client/Server, Distributed Databases and Networks * Introduction to the OSI Reference Model * Introduction to Data Communications Unix Library: * Fundamentals of the Unix System * Unix System Administration v3.2 * Fundamentals of Unix System V v4.0 * Unix System V v4.0 Internals * The Shell Command Language for Programmers * Korn Shell Command and Programming Language * Security for the Unix System "C" Language Library: * C Language for Programmers * C Language for Programmers: The ANSI Standard * Using C++ LAN Library: * Introduction to Data Communication * Local Area Networks (Technical Staff) * Novell 3.11 Systems Administration We also have courses covering Wordprocessing, Spreadsheats, Databases and much more. So if you don't see what you are looking for, then feel free to email us. Demo tapes are available for most courses. Get an edge up on your competition! For more info email: Futuretracs@delphi.com ================================================================================ Archive-Date: Wed, 20 Jul 1994 15:57:08 CDT Sender: owner-litprog@SHSU.edu From: k3070e4@cxmeta.edvz.uni-linz.ac.at (Wolfgang Huber) Reply-To: LitProg@SHSU.edu, k3070e4@CXMETA.EDVZ.UNI-LINZ.AC.AT Subject: fweb-1.40 Date: 20 Jul 1994 19:42:28 GMT Message-ID: <30jun4$6o3@alijku06.edvz.uni-linz.ac.at> To: LitProg@SHSU.EDU Keywords: I just downloaded fweb-1.40 and did what was in the file UNIX_INSTALL. But the output wasn´t quite that which I expected. So I would ask: Did somebody install fweb? If so, could you tell me hoe you made it? BTW, my OS is Linux. Thanks in advance, Wolfgang Huber e-mail: k3070e4@cxmeta.edvz.uni-linz.ac.at ================================================================================ Archive-Date: Wed, 20 Jul 1994 20:59:27 CDT Sender: owner-litprog@SHSU.edu From: Multimedia@cce.ubc.ca (Charles Tremewen) Reply-To: LitProg@SHSU.edu, Multimedia@CCE.UBC.CA Subject: MultiComm'94 - with Nicholas Negroponte - Update Date: 21 Jul 1994 01:40:57 GMT Message-ID: To: LitProg@SHSU.EDU MultiComm'94 UPDATE (version: July 20, 1994) ***CALL FOR PAPERS EXTENDED TO AUGUST 15, 1994*** _____________________________________________ * Please Assist Us by * * Distributing this to a colleague * _____________________________________________ ******************************************* * MULTICOMM '94 * ******************************************* * The Third Annual * * Conference and Exposition on * * Exploring Multimedia Solutions * * in Business and Education * * * * KEYNOTE: Nicholas Negroponte * * * * * * November 2 & 3, 1994 * * * * The Westin Bayshore * * Vancouver, British Columbia * * CANADA * ******************************************* Hosted by The University of British Columbia Continuing Studies in Association with The Centre of Image and Sound Research Emily Carr Institute for Art and Design The International Interactive Communications Society Media and Graphics Interdisciplinary Centre THIS YEAR'S THEME: "Advancing the Art of Communication with New Media" Attend this international, cutting edge multimedia event and learn what researchers and industry visionaries have to say about the future of multimedia products. Interact with leading multimedia software and hardware manufacturers and explore the possibilities of this emerging technology. NICHOLAS NEGROPONTE: KEYNOTE ADDRESS A true visionary, Nicholas Negroponte is a founder and the director of the Massachusetts Institute of Technology Media Lab, a uniquely innovative research laboratory. This centre focuses on the study of and experimentation with future forms of human communications, from entertainment to education. Negroponte is a leading authority on the advancements in telecommunications and computer technology which will change workplaces, households and educational institutions. He consults with both government and industry and is senior columnist for WIRED magazine. OVERVIEW MultiComm`94 focuses on the innovations being made in today's technology which will affect the exchange of information in the future. This informative two-day conference will identify how existing multimedia solutions are influencing the ways in which we work, learn and communicate. Conference topics include: -Corporate training and communications -Education and research -The arts -The classroom of the future -CD-ROM publishing -On-line information, distribution and the Electronic Information Superhighway -The telecommunication industry -Production, marketing and copyright -Technology integration Join us November 2-3 for MultiComm`94 and explore multimedia visions of the future! CONFERENCE FORMAT The conference format includes keynote addresses, plenary sessions, breakout sessions and panel discussions with leading industry experts. Throughout the event, a vendor exposition will bring together the innovators of software and hardware in the multimedia industry. SCHEDULE OF EVENTS Pre-conference - Tuesday, November 1, 1994- All day - Young Producers followed by awards presentation 6:30-9:30 pm Pre-registration and Opening Evening Reception Day 1 - Wednesday, November 2, 1994 8-8:45 am Registration/Refreshments - Vendor Area 9-10 am Opening Address 10:15-11am Breakout Sessions 11:15 am-12pm Breakout Sessions 12 noon-1 pm Lunch Break 1-1:45 pm Plenary Speaker 2-2:45 pm Breakout Sessions 3-3:45 pm Breakout Sessions 3:45-4:15 pm Refreshments - Vendor Area 4:15-5:30 pm Panel Discussion 5:30-6:30 pm Visit with the Vendors (No Host Bar) 6:30-10 pm Keynote Dinner with Nicholas Negroponte, Founder and Director, MIT's Media Lab Day 2 - Thursday, November 3, 1994 8-8:45am Registration/Refreshments - Vendor Area 9-10am Opening Address 10:15-11am Breakout Sessions 11:15 am-12pm Breakout Sessions 12 noon-1pm Lunch Break 1-1:45 pm Plenary Speaker 2-2:45 pm Breakout Sessions 3-3:45 pm Breakout Sessions 3:45-4:15pm Refreshments - Vendor Area 4:15-5:30pm Panel Discussion 5:30 pm Closing Remarks November 4, 1994 9:00am-4:30pm (seperate event) Special Workshop with Catharine Arnston MBA "Strategic Marketing for Multimedia" INTERESTED IN PRESENTING A PAPER? Authors who have produced or are presently developing innovative multimedia products and those involved in multimedia research related to the converging technologies are encouraged to share their findings in a presentation at MultiComm`94. The preliminary deadline for submissions is extended to August 15, 1994 (sent to the attention of the Conference Advisory - MultiComm`94). Late submissions may be considered upon discussion with the Conference Chair. For more information about submitting a paper please contact us. "YOUNG PRODUCERS" AWARDS In recognition of the growing number of young, talented producers in grades 7 to 12, a special series of concurrent sessions will be included in this year's event for "Young Producers." For details, please contact the Conference Chair, Charles Tremewen, at (604) 822-0692. VENDOR EXPOSITION Opportunities to see over 60 leading multimedia software and hardware manufacturers will be possible in the Vendor Exposition which runs in parallel to the conference. It is an excellent opportunity to see and work with the "latest and greatest" COMMENTS FROM PAST ATTENDEES "Lots of good information, high quality speakers." "Thanks for a great two days! See you next year." "Great overview of the topics." "Very enjoyable and thought provoking." "Lots to think about!" "Good deal!" "...outstanding symposium." " Ted Nelson was terrific! You might be hard pressed to top or even equal his presentation. I'm sure you will think of something." NEED MORE INFORMATION Conference Registrations - MultiComm`94 The University of British Columbia Continuing Studies 5997 Iona Drive, Vancouver, B.C., Canada, V6T 1Z1 Phone: (604) 222-5256 or (604) 222-5251 Fax: (604) 222-5249 E-mail: multicomm@cce.ubc.ca REGISTRATION FORM ---Cut along this line and return with Payment--- ************************************************** >>>>>>>>>>> REGISTRATION FORM <<<<<<<<<<<<<<<<<<<< PERSONAL INFORMATION: Name______________________________________________ Company___________________________________________ Address___________________________________________ City______________________________________________ Province/State____________________________________ Zip_____________________________ PHONE: Day________________________________ Evening____________________________ FAX________________________________ E-mail Address________________________________ REGISTRATION FEES: VENDOR EXPOSITION ONLY - $10 $________ FULL REGISTRATION PACKAGE: Includes two days of seminars, one pass to the Keynote Address Dinner(evening of November 2, 6:30-10pm),unlimited access to the Vendor Exposition, Continental Breakfasts, Lunches and Breaks on November 2 & 3. Before October 3, 1994 $295 $________ After October 3, 1994 $325 $________ IICS/CISR Current Member discount:-$50* -$________ *Please identify membership chapter to validate member discount: _________________________________ KEYNOTE ADDRESS DINNER ONLY(evening of November 2, 7-10pm) With Nicholas Negroponte, Director, MIT's Media Lab (see biography above) Before October 14th: $65 $________ After October 14th: $75* $________ *Please call (604)222-5251 or 222-5256 after October 14 for information on availability. Seating for this dinner is limited. **SPECIAL ONE DAY SEMINAR ON FRIDAY, NOVEMBER 4, 1994 YES, I wish to attend the special one day seminar: "Strategic Marketing for Multimedia" with Catharine Arnston MBA (includes continental breakfast, lunch, breaks and a valuable list of strategic contacts) - $250 $________ Catharine Arnston MBA- For eight years Ms Arnston served as Commercial Attache for the Ontario Government in their Manhattan and Boston Offices. She is presently the President of Software Studio of Boston Massachusetts, a consulting firm providing. She is a Canadian and has a MBA from the University of Western Ontario and a BA Hon from Queens University. She is well published in US Newspapers and publications for her work in the arts and multimedia. For more information contact us at (604) 222-5256 =================================================== TOTAL FEES (sum the above selected amounts) $________ =================================================== METHOD OF PAYMENT: ___Cheque/Money Order (payable to UBC) ___Cash (for pre-registration in person) ____Visa __ __ __ __-__ __ __-__ __ __-__ __ __ ____MasterCard __ __ __ __-__ __ __ __-__ __ __ __-__ __ __ __ Valid Date____________________ Expiry Date____________________ I authorize UBC to charge the above amount to my credit card Signature: _________________________________________________ MAIL REGISTRATIONS WITH PAYMENT TO: Conference Registrations - MultiComm`94 The University of British Columbia Continuing Studies 5997 Iona Drive, Vancouver, B.C., Canada, V6T 1Z1 Phone: (604) 222-5256 or (604) 222-5251 Fax: (604) 222-5249 E-mail: multicomm@cce.ubc.ca Attn: Vicki Ayerbe CANCELLATION POLICY Notice of cancellation must be in writing and must be received by Continuing Studies 10 days prior to the event starting date to qualify for a partial refund (less $50). No refund will be made for cancellation received after that time. Registrations are transferable. We reserve the right to cancel or reschedule events, refuse admission, or change speakers, location or content. HOTEL ACCOMMODATION Special conference room rates have been arranged at the conference hotel, the Westin Bayshore, a well appointed hotel in the heart of downtown Vancouver with breathtaking views of the surrounding mountains and inner harbour. Rates start at $95. To arrange reservations please call the Westin Bayshore directly at (604) 682-3377 or 1-800-228-3000 and quote you wish to book a room for the conference - MultiComm`94. Special rates will be in effect until October 1, 1994. IICS MEMBERSHIP INFORMATION For more information about the International Interactive Communications Society (IICS) and obtaining an international membership, contact the membership chair, Marilyn Galati at (604) 893-5433 or (604) 985-6866. CONFERENCE CHAIR: Charles Tremewen, UBC, Vancouver, B.C. PROGRAM COMMITTEE AND ADVISORY Jeff Berryman, Exec. Director, Centre for Image and Sound Research (CISR), Vancouver, B.C. Dr. Kellogg Booth, Director, Media and Graphics Interdisciplinary Centre (MAGIC), Vancouver, B.C. Dr. Ricki Goldman-Segall, Assistant Professor, Faculty of Education, Director-Multimedia Ethnography Research Lab (MERLin), University of B.C.. ================================================================================ Archive-Date: Fri, 22 Jul 1994 02:27:28 CDT Sender: owner-litprog@SHSU.edu Date: Fri, 22 Jul 94 09:28:13 +0200 From: ddw2@sunbim.be (Dominique de Waleffe) Reply-To: LitProg@SHSU.edu, ddw2@SUNBIM.BE Message-ID: <9407220728.AA01662@amadeus.sunbim.be> To: LitProg@SHSU.edu, dak@RAMA.INFORMATIK.RWTH-AACHEN.DE CC: LitProg@SHSU.EDU Subject: Where to get noweb.el? References: <2vgael$mof@urmel.informatik.rwth-aachen.de> >>> "David" == David Kastrup writes: David> And don't tell me it's in the FAQ. The FAQ says, it should be David> in the Litprog archive, in some Email conversation. Super. I David> have got some of the archived files until the FAQs did not David> contain any pointers any more. Nothing. True that a noweb.el is mentionned in the FAQ with me as maintainer. However, I never wrote nor support such a thing. I only wrote nuweb.el (which is now available from the elisp archives (in modes/nuweb.el). Someone once write to me that she had modified nuweb.el to make it support noweb but I don't know who the person was and never saw the code. David> I have written Email to the given support address (I believe David> ddw and then something), no reply as to yet (probably on David> vacation or something). Now I'm back... David> Besides, the support address is the same as with nuweb.el, and David> since they were developped by different people, there might David> even be some mistake involved there. Looks like it. David> So *does* anybody know where to get noweb.el, as described in the FAQ? Can't help for that. Sorry. Dominique -- Dominique de Waleffe ddw@sunbim.be BIM sa Chaussee de Louvain, 510 Tel: +32 2 719 26 14 B-1930 Zaventem Fax: +32 2 725 47 83 Belgium PGP-Public-Key available on request ================================================================================ Archive-Date: Fri, 22 Jul 1994 02:41:06 CDT Sender: owner-litprog@SHSU.edu Date: Fri, 22 Jul 94 09:35:54 +0200 From: ddw2@sunbim.be (Dominique de Waleffe) Reply-To: LitProg@SHSU.edu, ddw2@SUNBIM.BE Message-ID: <9407220735.AA01713@amadeus.sunbim.be> To: LitProg@SHSU.edu, schrod@ITI.INFORMATIK.TH-DARMSTADT.DE Subject: Re: Where to get noweb.el? References: <2vhp3c$jri@rs18.hrz.th-darmstadt.de> >>> "Joachim" == Joachim Schrod writes: Joachim> In article <2vgael$mof@urmel.informatik.rwth-aachen.de>, dak@rama.informatik.rwth-aachen.de (David Kastrup) writes: >> And don't tell me it's in the FAQ. The FAQ says, it should be in the Litprog >> archive, Joachim> Btw, nuweb.el is in the Elisp archive -- mirrored daily at Joachim> ftp.th-darmstadt.de -- but I don't know if it's the current version. It's very recent. It was put in the archives a few weeks ago and I quickly sent an updated version. I can send you the current version if you so desire. Dominique ================================================================================ Archive-Date: Fri, 22 Jul 1994 02:43:37 CDT Sender: owner-litprog@SHSU.edu Date: Fri, 22 Jul 94 09:41:57 +0200 From: dak@POOL.Informatik.RWTH-Aachen.DE Reply-To: LitProg@SHSU.edu, dak@POOL.INFORMATIK.RWTH-AACHEN.DE Message-ID: <9407220741.AA12521@messua> To: ddw2@sunbim.be CC: LitProg@SHSU.edu, LitProg@SHSU.EDU Subject: Re: Where to get noweb.el? I have found noweb.el now. It was in the litprog archives, I believe in 3/94. I just made the mistake of grepping for "noweb\.el". Unfortunately, that file name was never mentioned in the post. Thanks for caring, anyway, David Kastrup dak@pool.informatik.rwth-aachen.de Tel: +49-241-72419 Fax: +49-241-79502 Goethestr. 20, D-52064 Aachen ================================================================================ Archive-Date: Fri, 22 Jul 1994 02:43:40 CDT Sender: owner-litprog@SHSU.edu Date: Fri, 22 Jul 94 09:41:57 +0200 From: dak@POOL.Informatik.RWTH-Aachen.DE Reply-To: LitProg@SHSU.edu, dak@POOL.INFORMATIK.RWTH-AACHEN.DE Message-ID: <9407220741.AA12521@messua> To: ddw2@sunbim.be CC: LitProg@SHSU.edu, LitProg@SHSU.EDU Subject: Re: Where to get noweb.el? I have found noweb.el now. It was in the litprog archives, I believe in 3/94. I just made the mistake of grepping for "noweb\.el". Unfortunately, that file name was never mentioned in the post. Thanks for caring, anyway, David Kastrup dak@pool.informatik.rwth-aachen.de Tel: +49-241-72419 Fax: +49-241-79502 Goethestr. 20, D-52064 Aachen ================================================================================ Archive-Date: Fri, 22 Jul 1994 08:43:40 CDT Sender: owner-litprog@SHSU.edu From: partingr@p4.cs.man.ac.uk (Robert Partington) Reply-To: LitProg@SHSU.edu, partingr@P4.CS.MAN.AC.UK Subject: noweb - TeX indexing and cross-referencing Date: 22 Jul 1994 12:34:57 GMT Message-ID: <30oedh$1ov@m1.cs.man.ac.uk> Keywords: noweb TeX index cross-referencing To: LitProg@SHSU.EDU After a week of hacking and cursing TeX and Perl, I managed to get TeX to produce cross-referencing for noweb. What it does is to label the code chunks (1a for the first one on page 1 etc.), adds the defining labels of a module to the output (so you get for a module only defined in section 1a), it adds the section label in the left margin next to a defining reference, and it produces an index of the module names (like CWEB). It also expands wildcarded module references and creates an index of indentifier definitions and references. It doesn't yet put 'This code is used in section...' at the bottom of chunks yet (that's the weekend job), it completely wrecks the markup file (strips the @ from the front of the line - I have limited disk space at home), you need to run the file through TeX twice in one run, and it's a bit of a hack (the 'inflate' script adds TeX code to the markup file to create the index - this will change). So if anyone wants more information (it's a set of Perl scripts), then email me and I'll send you a copy. IMHO it's a masterpiece of programming, but then I'm biased :). [It does improve the output from TeX no end...] \index{Rob Partington}{partingr@cs.man.ac.uk}{3rd year Computer Science} -- Robert Partington partingr@cs.man.ac.uk Computer Science, 3rd year 25MHz ARM3,80MB HD,4MB A5000 running RO3.11 - but no Settlers or Emacs! 7MHz 68000,40MB HD,7MB A2000 running WB2.1 - Settlers *and* Emacs. Joy. "Hi, my name's Rob - and I'm an emacholic." ================================================================================ Archive-Date: Sat, 23 Jul 1994 08:20:58 CDT Sender: owner-litprog@SHSU.edu From: ara@zurich.ai.mit.edu (Allan Adler) Reply-To: LitProg@SHSU.edu, ara@ZURICH.AI.MIT.EDU Subject: Help with FWEB Date: 23 Jul 94 08:32:44 Message-ID: To: LitProg@SHSU.EDU I never got the answers to some of hte problems I was having with FWEB. How about this: I will place the file I was working on in the directory archive/adler/FISCHER at altdorf.ai.mit.edu and people inclined to help can access it there. I will do this on monday, July 25. THere will be two files: (1) fischer.f, which is the original fortran file that I am trying to convert to FWEB (2) fischer.web, which is what fischer.f has become in my hands. Allan Adler ara@altdorf.ai.mit.edu ================================================================================ Archive-Date: Mon, 25 Jul 1994 09:07:59 CDT Sender: owner-litprog@SHSU.edu From: diabok@unidhp.uni-c.dk (Olaf Kayser) Reply-To: LitProg@SHSU.edu, diabok@UNIDHP.UNI-C.DK Subject: Re: comp.programming.literate FAQ Date: 25 Jul 1994 13:55:39 GMT Message-ID: <310g8r$plu@news.uni-c.dk> To: LitProg@SHSU.EDU thompson@sun1.coe.ttu.edu wrote: : Archive-name: literate-programming-faq : Last-modified: 1994/06/16 : Version: 1.1.9 : Welcome to the Literate Programming Frequently Asked Questions List : ------------------------------------------------------------------- : This version was created Thursday - June 16, 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? : ----------- : + Update to ProTeX entry. : + Update FAQ availability. : + Update noweb 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. : Open an ftp connection to one of the CTAN sites and retrieve the file: : help/LitProg-FAQ : (For more information on CTAN and the literate programming archive, see : the section below entitled "Internet Nodes of Interest to Literate : Programmers.") : An alternative is to use the fileserver at Sam Houston State University : (SHSU). Send a message to FILESERV@SHSU.EDU and include in your : message: : SENDME LITPROG.FAQ : The file server will forward a copy of the file to you via email. : - ---------------------------------------------------------------------- : - FWEB FAQ : ---------- : Marcus Speh maintains the FWEB FAQ. The current : version number is 1.29. It can be retrieved in the same way as this : FAQ; either by anonymous ftp or through the SHSU file server. On the : SHSU server, the file name is FAQ.FWEB. Invoke your ftp software, open : a connection to NIORD.SHSU.EDU [192.92.115.8], attach to the directory : FAQ, and transfer the file FAQ.FWEB. : Alternatively, send a message to the file server, FILESERV@SHSU.EDU, and : include the following text in a one line message: : SENDME FAQ.FWEB : The file server will send the current version of the file via email. : The FWEB FAQ exists in various formats, including HyperText (see other : resources below). In Europe, the complete distribution can also be : obtained from ftp.desy.de [131.169.10.115] in directory : /pub/faq/web/fweb/. It is also available from the literate programming : archive (LPA) in the directory LPA/Documentation/faq/fweb (see the : references to LPA below for more information). : Also, Marcus Speh is looking for someone willing to take over the FWEB : FAQ. The text of his email message follows... : "Please add to the FWEB FAQ the note that I am looking for someone : to take the maintenance of the FAQ over - I am ready to assist in : any way whatsoever, including tons of mail, notes for : v1.29->v1.30, Texinfo sources, a WWW server and Hypertextification : etc." : If you're interested, send mail to marcus@x4u2.desy.de and express your : willingness to serve. : = ====================================================================== : * Is there a newsgroup? : ----------------------- : One of the most important resources is the literate programming : newsgroup, comp.programming.literate. You can read this newsgroup using : your standard reader. Altenatively, the newsgroup is gated to a mailing : list hosted by George Greenwade and Sam Houston State University. You : can subscribe by sending mail to the list-server, LISTSERV@SHSU.EDU, and : include in the message one line of text: : SUBSCRIBE LITPROG "your name in quotes" : The list is unmoderated; messages sent to litprog@shsu.edu are : automatically distributed to all subscribers and cross-posted to : comp.programming.literate. : Archives of the mailing list and newsgroup are maintained on : niord.shsu.edu [192.92.115.8] in the directory litprog. : = ====================================================================== : * What internet nodes are of interest to literate programmers? : -------------------------------------------------------------- : The principal nodes of interest to literate programmers are the Literate : Programming Archive (LPA hereafter) and the CTAN (Comprehensive TeX : Archive Network). : The Literate Programming Archive (LPA) is: : Node: ftp.th-darmstadt.de [130.83.55.75] : Directory: programming/literate-programming : Notes: Fastest response during off-U.S. [yep] business hours. : The CTAN sites are: : ftp host IP CTAN root Institution and Sponsor : ------------------------------------------------------------------------- : ftp.tex.ac.uk 134.151.79.32 pub/archive Aston Univ./UK TeX U.G. : ftp.dante.de 129.206.100.192 soft/tex DANTE e.V. : ftp.shsu.edu 192.92.115.10 tex-archive Sam Houston State Univ. : Other nodes and directories of interest include: : Node: niord.shsu.edu [192.92.115.8] : Directory: various (do some snooping!) : Notes: Has a gopher server. : Node: ftp.desy.de [131.169.10.115] : Directory: pub/web. Various documents, samples, and the FWEB FAQ. : Notes: Has a www server, http://info.desy.de:80/ : = ====================================================================== : * What is Literate Programming? : ------------------------------- : Literate programming is the combination of documentation and source : together in a fashion suited for reading by human beings. In fact, : literate programs should be enjoyable reading, even inviting! (Sorry : Bob, I couldn't resist!) In general, literate programs combine source : and documentation in a single file. Literate programming tools then : parse the file to produce either readable documentation or compilable : source. The WEB style of literate programming was created by D.E. Knuth : during the development of his TeX typsetting software. : All the original work revolves around a particular literate programming : tool called WEB. Knuth says: : The philosophy behind WEB is that an experienced system : programmer, who wants to provide the best possible : documentation of his or her software products, needs two : things simultaneously: a language like TeX for formatting, : and a language like C for programming. Neither type of : language can provide the best documentation by itself; but : when both are appropriately combined, we obtain a system : that is much more useful than either language separately. : The structure of a software program may be thought of as a : web that is made up of many interconnected pieces. To : document such a program we want to explain each individual : part of the web and how it relates to its neighbours. The : typographic tools provided by TeX give us an opportunity to : explain the local structure of each part by making that : structure visible, and the programming tools provided by : languages such as C or Fortran make it possible for us to : specify the algorithms formally and unambigously. By : combining the two, we can develop a style of programming : that maximizes our ability to perceive the structure of a : complex piece of software, and at the same time the : documented programs can be mechanically translated into a : working software system that matches the documentation. : Another author (Eric W. van Ammers) wrote me a short article treating : his opinions on literate programming. The text follows: : First observation on LP : About 90% of the disussion on this list is about problems with : applying some WEB-family member to a particular programming language or : a special documentation situation. This is ridiculous, I think. Let me : explain shortly why... : Lemma 1: : I have proposed for many years that programming has nothing to do : with programming langauges, i.e. a good programmer makes good programs : in any language (given some time to learn the syntax) and a bad : programmer will never make a good program, no matter the language he : uses (today many people share this view, fortunately). : Lemma 2: : Literate Programming has (in a certain way not yet completely understood) : to do with essential aspects of programming. : Conclusion 1: : A LP-tool should be independent of programming language. : Lemma 3: : It seems likely that the so called BOOK FORMAT PARADIGM [ref. 1] plays an : important role in making literate programs work. : Lemma 4: : There are very many documentation systems currently being used to produce : documents in the BOOK FORMAT. : Conclusion 2: : A LP-tool should be independent of the documentation system that the : program author whishes to use. : My remark some time ago that we should discuss the generic properties of : an LP-tool was based on the above observation. : References: : [1] Paul W. Oman and Curtus Cook. Typographical style is more than cosmetic. : CACM 33, 5, 506-520 (May 1990) : Second observation on LP : The idea of a literate program as a text book should be extendend : even further. I would like to see a literate program as an (in)formal : argument of the correctness of the program. : Thus a literate program should be like a textbook on mathematicics. : A mathematical textbook explains a theory in terms of lemma and : theorems. But the proofs are never formal in the sense that they are : obtaind by symbol manipulation of a proof checker. Rather the proofs are : by so called "informal rigour", i.e. by very precise and unambiguous : sentences in a natural language. : Eric W. van Ammers : Department of Computer Science : Wageningen Agricultural University : Dreijenplein 2 E-mail: ammers@rcl.wau.nl : 6703 HB Wageningen voice: +31 (0)8370 83356/84154 : The Netherlands fax: +31 (0)8370 84731 : = ====================================================================== : * How do I begin literate programming? : -------------------------------------- : A recommended book is D.E. Knuth's collection of articles (1992) : "Literate Programming," Center for the Study of Language and : Information, Stanford University, ISBN 0-937073-80-6 (pbk). This book : gives insight into Knuth's thoughts as he developed the web system of : literate programming (and TeX for typesetting). It does not document : methods for literate programming. : A recommended book is Wayne Sewell's (1989) "Weaving a Program: Literate : Programming in WEB," Van Nostrand Reinhold, ISBN 0-442-31946-0 (pbk). : This book focuses on using Knuth's web system. : Some talk exists in the newsgroup/mailing list for a Usenet University : course in literate programming. I'm sure discussion of this topic will : be welcomed. If you are interested, please participate. : = ====================================================================== : * What literate programming tools are available and where are they? : ------------------------------------------------------------------- : A significant number of tools for literate programming are available. : Most have been ported from their original systems, so support multiple : computer platforms. If you are the developer of such a tool, and would : like to make the software freely available, please send me email and : I'll reply with a form (like those below) for you to fill in. (Or : short-circuit the process and kludge a form from below. :-) : - ---------------------------------------------------------------------- : - APLWEB : -------- : Developer: Christoph von Basum : Version: Unknown : Hardware: MSDOS : Languages: IBM APL2 and STSC APL : Formatter: Plain TeX : Availability: Anonymous ftp from: : LPA:/apl : watserv1.uwaterloo.ca:/languages/apl/aplweb : Readme: Unknown : Description: None available. : Support: Unknown : Note: The status of this particular package is unknown. : - ---------------------------------------------------------------------- : - AWEB : ------ : Developer: Unknown : Version: Unknown : Hardware: Unknown : Languages: Ada : Formatter: Unknown : Availability: Anonymous ftp from: : LPA:/ada/web : Readme: Unknown : Description: None available : Support: Not supported. : - ---------------------------------------------------------------------- : - CLiP : ------ : Developer: E.W. van Ammers and M.R. Kramer : Version: Unknown : Hardware: Vax/VMS, Unix, and MS-DOS : Languages: Any programming language. : Formatter: Any formatter (TeX, LaTeX, Troff, Runoff, etc) or any : wordprocessor including WYSIWYG systems (Word Perfect, : Win Word, Ami Pro, Word, etc.) : Availability: Anonymous ftp from: : sun01.info.wau.nl:/CLIP/ms_dos MS-DOS version : sun01.info.wau.nl:/CLIP/vax_vms VAX/VMS version : CTAN:/web/clip : LPA:/machines/ms-dos : LPA:/machines/vax : Readme: With bundle above : Description: : CLiP does not use explicite commands to perform the extraction : process. Rather it recognizes pseudostatemens written as comments in : the programming language in question. CLiP distinguishes : pseudostatments from ordinary comments because the former comply with : a a particular style. This style can be adjusted to suit virtually any : programming language. The CLiP approach to LP makes the system : extremely versatile. It is independent of programming language and : text processing environment. We designed CLiP to be compatible with : hypertext systems as well but we have not yet experimented with this : form of documentation. : Features: : + CLiP imposes virtually no limitations on the text-processing system : used to produce the documentation. If the text-processor supports : these items you can : + structure the documentation according to your own taste. : + include drawings, pictures, tables etc. : + disclose your documentatio my means of X-ref tables, Indexes, : Table of contents, Table of tables, Table of figures, etc. : + typeset the documented code. : + Extracts any number of modules from a maximum of 64 source files. : + No pretty-printing. Code from the source files is copied "as is" to : the module. : + Appearance of code segments in the documentation matches those of : the modules to ease the identification of code segements. : + Supports partially specified data types. : + Comprehensive user manual (preliminary version) and technical : description. : - No automatic generation of a X-ref table for program identifiers. : Support: Bugs, problems and assistance by e-mail: : ammers@rcl.wau.nl : - ---------------------------------------------------------------------- : - CWEB : ------ : Developer: Silvio Levy and D.E. Knuth : Version: 3.0 : Hardware: Unix systems (dos and amiga ports available) : Languages: C and C++ : Formatter: Plain TeX and LaTeX. : Availability: Anonymous ftp from: : labrea.stanford.edu:/pub/cweb : LPA:/c.c++ : CTAN:/web/c_cpp/cweb : DOS version in CTAN:/web/c_cpp/cwb30p8c : DOS version in LPA:/machines/ms-dos : Amiga version CTAN:/web/c_cpp/AmigaCWEB : Mac port of CTANGLE in LPA:/machines/mac : LaTeX support in LPA:/c.c++ : Readme: Bundled with above : Description: No description provided. : Support: Bugs to levy@math.berkeley.edu : Note: A fork of CWEB 3.x was developed by Marc van Leeuwen : which implements several changes to CWEB. It is : available for anonymous ftp from ftp.cwi.nl:pub/cweb. The principle : changes are: : - Scans include files for typedef definitions : - Grammar and formatting rules are well separated, allowing for : run-time selection of a rule set (via command line option) : - New manual. : - ---------------------------------------------------------------------- : - FunnelWeb : ----------- : Developer: Ross N. Williams: ross@guest.adelaide.edu.au : Version: Unknown : Hardware: MSDOS, Mac, VMS, Sun. Other ports reported. : Languages: No restrictions. : Formatter: Plain TeX for printing. Otherwise, no restrictions. : Availability: Anonymous ftp from: : CTAN:/web/funnelweb : LPA:/independent : ftp.adelaide.edu.au:/pub/funnelweb : Readme: With bundle above. : Description: : FunnelWeb is a production-quality literate-programming tool that : emphasises simplicity and reliability. Everything about FunnelWeb, : from the simplicity of its language to the comprehensive tutorial in : the user's manual, has been designed to make this as simple, as : practical, and as usable a tool as possible. : Features: : + Provides a simple macro preprocessor facility. : + Can produce typeset documentation. : + Runs on Sun, VMS VAX, Macintosh, PC, and others. : + Portable C source code distributed under GNU licence. : + Comprehensive user's manual including tutorial. : + Programming-language independent. : + Can generate multiple output files. : + Allows complete control over the output text. : + Regression test suite with over 200 tests. : + Fully worked example (in /pub/funnelweb/examples). : - Requires TeX to produce typeset documentation. : - Typesets program code using TT font only. : Support: No formal support available. Mailing list maintained with : about 50 subscribers. Informal assistance available from : mailing list. : - ---------------------------------------------------------------------- : - FWEB : ------ : Developer: John A. Krommes : Version: 1.30a (1.40 for the experienced, patient, and brave) : Hardware: Unix, VMS, and DOS platforms (anything with ANSI C) : Languages: C, C++, Fortran-77, Fortran-90, Ratfor, TeX; also, a : language-independent mode. : Formatter: Plain TeX and LaTeX. : Availability: Anonymous ftp from: : ftp.pppl.gov:/pub/fweb : CTAN:/web/fweb : LPA:/fweb : DOS version in LPA:/machines/ms-dos : Readme: In bundle with above. : Description: : It also has a well-developed user's manual and its own FAQ (see : above). Beginning with 1.40, documentation is maintained in gnu : texinfo format. It runs on most platforms: VMS, PC, UNIX, and pretty : much anything that the GNU C compiler (GCC) is supported for. : Features: : + Processes multiple languages during a single run (so one can mix C : and Fortran, for example). : + Language-independent mode (v1.40). : + Ability to turn off pretty-printing (v1.40). : + Built-in Ratfor translator. : + Built-in macro preprocessor (closely follows ANSI C, with : extensions). : + A style file that allows the user to adjust many parameters and : behavior patterns of FWEB. : + Various operator-overloading features that provide additional : pretty-printing capabilities to languages such as C++ and : Fortran-90. : + Numerous miscellaneous features and command-line options. : Support: Bug reports and suggestions to krommes@princeton.edu : - ---------------------------------------------------------------------- : - IMPACT : -------- : Developer: Timothy Larkin, from Levy/Knuth CWEB 3.1 : Version: 1.0 : Hardware: Macintosh; requires AppleEvents. : Languages: C, C++ : Formatter: TeX : Availability: CTAN archives : Readme: A short readme file is included in the SEA archive. : Description: : IMPACT implements CTangle from the Levy/Knuth CWEB 3.1. It operates as : a foreground program, tangling files selected from the Mac File : Picker. Or it can operate in the background, tangling files in : response to odoc events sent by other applications, such as editors. : Support: : I welcome any reports of bugs. The product will be updated as new : versions of the CWEB appear. Other features may be added as users : suggest them. : - ---------------------------------------------------------------------- : - lit2x : ------- : Developer: Unknown : Version: Unknown : Hardware: Unknown : Languages: Unknown : Formatter: Unknown : Availability: Anonymous ftp from: : LPA:/independent : Readme: Unknown : Description: None available : Support: Unknown : - ---------------------------------------------------------------------- : - Literate Programmer's Workshop (LPW) : -------------------------------------- : Developer: Norbert Lindenberg : Version: 1.1 : Hardware: Apple Macintosh : Languages: C++, Object Pascal & others : Formatter: self-contained WYSIWYG system : Availability: Anonymous ftp from: : LPA:/machines/mac : CTAN:/web/lpw : ftp.apple.com:/pub/literate.prog : Readme: With bundle above. Also comes with 38-page manual. : Description: : The Literate Programming Workshop is an environment for the integrated : development of program source text and documentation in combined : documents. It consists of a WYSIWYG word processor based on a style : sheet approach, a mechanism to extract parts of the text in a : document, and a project management system that handles multi-document : projects. The system is designed to be used in conjunction with the : Macintosh Programmer's Workshop: it prepares raw source text for the : MPW compilers, accepts MPW error messages, and shows them in the : context of the original documents. Automatic indexing and hypertext : features allow for easy access to both source text and documentation. : LPW is shareware. : Support: Bugs, problems, and questions to lpw@aol.com. : - ---------------------------------------------------------------------- : - MapleWEB : ---------- : Developer: Unknown : Version: Unknown : Hardware: Unknown : Languages: Maple : Formatter: Unknown : Availability: Anonymous ftp from: : LPA:/maple : Readme: Unknown : Description: None : Support: Unknown : - ---------------------------------------------------------------------- : - MWEB (Schrod/Detig) : --------------------- : Developer: Joachim Schrod : Version: Unknown : Hardware: Unknown : Languages: Modula-2 : Formatter: Unknown : Availability: Anonymous ftp from: : LPA:/modula-2 : Readme: Unknown : Description: None : Support: Not supported. : - ---------------------------------------------------------------------- : - MWEB (Sewell) : --------------- : Developer: Sewell : Version: Unknown : Hardware: Unknown : Languages: Modula-2 : Formatter: Unknown : Availability: Anonymous ftp from: : LPA:/modula-2 : Readme: Unknown : Description: None : Support: Not supported. : - ---------------------------------------------------------------------- : - noweb : ------- : Developer: Norman Ramsey : Version: 2.6 : Hardware: Unix and DOS platforms. : Languages: All programming languages. : Formatter: Plain TeX, LaTeX, and HTML (Mosaic) formatters. : Availability: Anonymous ftp from: : CTAN:/web/noweb : LPA:/independent : DOS version also in LPA:/machines/ms-dos : also bart.kean.edu:/pub/leew : Last recourse, use bellcore.com:/pub/norman : Readme: With bundle above. : Description: : noweb is designed to meet the needs of literate programmers while : remaining as simple as possible. Its primary advantages are : simplicity, extensibility, and language-independence. noweb uses 5 : control sequences to WEB's 27. noweb now supports indexing and : identifier cross-reference, including hypertext ``hot links'' : courtesy of Mosaic. The simple noweb manual is only 2 pages; : documenting the full power of noweave and notangle requires another 3 : pages. noweb works ``out of the box'' with any programming language, : and its formatter-dependent part is a 60-line nawk program. The : primary sacrifice relative to WEB is the loss of prettyprinting. : Support: email to the author : - ---------------------------------------------------------------------- : - nuweb : ------- : Developer: Preston Briggs: preston@cs.rice.edu : Version: 0.87 : Hardware: Unix systems: Sparcs, RS/6000s, HPs; (!) MSDOS and Amiga. : Languages: Any programming language or combination of programming : languages. : Formatter: Latex : Availability: Anonymous ftp from: : Unix: CTAN:/web/nuweb : DOS: CTAN:/web/nuweb-pc : LPA:/independent : Amiga: CTAN:/web/nuweb/nuweb_ami : Amiga: wuarchive.wustl.edu/pub/aminet : Readme: Send mail to preston@cs.rice.edu : Description: : A single program that takes a web file written in a combination of : latex and any programming language(s) and produces a latex file that : can be pretty printed and a set of files containing code for : compilation/interpretation by the appropriate language processors. : Strengths include speed, simplicity, multiple languages, nice indices : and cross-references, latex. Doesn't require any special macros or : macro files. : Drawbacks: latex-dependent, no code pretty printing, harder to make : indices than cweb. : More good stuff: nice support for make, doesn't reformat source files, : so they're easy to debug. Lots of control without too much effort. : That is, it doesn't do too much! : Future directions... Very little change planned, except perhaps : refinements in the indexing software. : Support: Hack it yourself or send e-mail to preston@cs.rice.edu : - ---------------------------------------------------------------------- : - ProTeX : -------- : Developer: Eitan Gurari : Version: 1.1 (AlProTeX 1.2) : Hardware: Any platform with TeX (ProTeX is written in TeX) : Languages: Any language : Formatter: TeX and LaTeX : Availability: Anonymous ftp from: : ftp.cis.ohio-state.edu : pub/tex/osu/gurari/ : LPA:/independent : Readme: Unknown : Description: There is a book published on using ProTeX, : @Book{Gurari:TLD94, : author = "Eitan M. Gurari", : title = "{\TeX} and {\LaTeX}: Drawing and : Literate Programming", : publisher = pub-MH, : year = "1994", : address = pub-MH:adr, : bibdate = "Wed Sep 29 17:55:14 1993", : acknowledgement = ack-nhfb, : } : Support: gurari@cis.ohio-state.edu : - ---------------------------------------------------------------------- : - RWEB : ------ : Developer: Unknown : Version: Unknown : Hardware: Unknown : Languages: Unknown : Formatter: Unknown : Availability: Anonymous ftp from: : LPA:/reduce : Readme: Unknown : Description: Web generator in AWK. : Support: Unknown : - ---------------------------------------------------------------------- : - SchemeWEB : ----------- : Developer: John D. Ramsdell : Version: 2.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: 2.0 patchlevel 26 : Hardware: Unix, MSDOS, OS/2. : Languages: C : Formatter: nroff -man, texinfo (requires yacc/byacc/bison, : lex/flex, and nroff/groff/texinfo/LaTeX). : Availability: Anonymous ftp from : ftp.wustl.edu: : /usenet/comp.sources.reviewed/volume03/c2man* : ftp.informatik.uni-stuttgart.de: : /pub/archive/comp.sources/reviewed/c2man* : Readme: See distribution. : Description: : The primary philosophy here is to use the programming language as far : as possible to express the programmer's intentions, and to use : comments only when the programming language is not sufficiently : expressive. A comment can then become part of the language grammar : which is recognised by a "documentation compiler". This tool parses a : superset of the programming language and can automatically generate : documentation in human-readable form by associating the programmer's : comments with the objects in the code by their context. : Support: Actively supported; mailing list available: send : "subscribe c2man " (in the message body) to : listserv@research.canon.oz.au. : - ---------------------------------------------------------------------- : - cnoweb : -------- : Developer: Jim Fox : Version: 1.4 (January 4, 1991) : Hardware: Anything with C and TeX. : Languages: C : Formatter: Plain TeX. : Availability: Anonymous ftp from: : CTAN : LPA:/c.c++ : Readme: Unknown, cnoweb.tex contains documentation. : Description: : cnoweb is as it's name describes: write C, not web. No tangling or : weaving is implemented. Documentation (between standard /* */ : delimiteres) is written in TeX. cnoweb provides typesetting of : documentation, an table of contents of routines, and pretty-printing : of C source. : Support: None known. : - ---------------------------------------------------------------------- : - 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 TEST-LIST@INFO.CERN.CH by sending a message, : SEND , : for example, : SEND http://info.desy.de/user/projects/LitProg.html : to retrieve the LitProg library page. A help file can be retrieved by : sending a message to the list server above with the text : HELP : in the body of the message. Instructions will be returned by email. For : literate programming documents, you can try anonymous ftp to ftp.desy.de : [131.169.10.115] and get the file: : /pub/userWWW/projects/Announce/LitProg.txt : - ---------------------------------------------------------------------- : - TeX Resources : --------------- : Another resource of interest to literate programmers is the info-tex : mailing list. If you're using (La)TeX as your typsetting system and : have access to internet, then you should investigate this mailing list. : Mail list service is available through the SHSU list-server. To : subscribe, send a message to LISTSERV@SHSU.EDU, and include in the : message one line of text: : SUBSCRIBE INFO-TEX "your name in quotes" : The list is unmoderated; messages sent to info-tex@shsu.edu are : automatically distributed to all subscribers and cross-posted to : comp.text.tex. : Archives of the mailing list and newsgroup are maintained on : niord.shsu.edu [192.92.115.8] in the directory info-tex. : Another reason the TeX resources should be important is that so many of : the literate programming tools rely on either plain TeX or LaTeX as : their text formatter. (La)TeX software systems exist for most computing : platforms. These systems can be found on CTAN and other major archive : sites. Use archie to find them or simply ftp to one of the CTAN : sites and browse. : - ---------------------------------------------------------------------- : - Virtual Coursework : -------------------- : Marcus Speh plans an introductory course on Literate Programming on the : Internet, part of the first semester of "Global Network Academy" [GNA], : a non-profit corporation incorporated in the state of Texas, affilated : with the Usenet University project. The texts/sample programs for this : class will be made available via the World-Wide Web. A special room on GNA : Virtual Campus will be staffed by a consultant in one to two hour : shifts. Students with questions can telnet to the virtual campus and : ask questions of the staff there. If you are interested in : registering for the course either as a student or as a consultant, : please contact marcus@x4u.desy.de. You will receive a standard reply : message; no further action will be taken until June 94. Interested : parties can check 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.181.0.24], under /pub/usenet/news.answers or under : /pub/usenet/more.specific.group.name : "anonymous FTP" is just a way for files to be stored where anyone : can retrieve them over the Net. For example, to retrieve the : latest version of the literate programming FAQ, do the following: : > ftp rtfm.mit.edu /* connect to the site; message follows */ : > anonymous /* type this when it asks for your name */ : > /* type your address as the password */ : > cd /pub/usenet /* go to the directory you want to be */ : > cd comp.programming.literate /* one level down (no slash). */ : > dir /* look at what's there */ : > get literate-progamming-faq /* get the file; case-sensitive */ : > quit /* stop this mysterious thing */ : If your FTP program complains that it doesn't know where the site you : want to use is, type the numerical address instead of the sitename: : > ftp 18.181.0.24 /* connect with numerical address */ : If you don't have ftp access, send e-mail to mail-server@rtfm.mit.edu : with the single word "help" in the body of the message. : Getting binary files (executables, or any compressed files) is only : slightly more difficult. You need to set binary mode inside FTP before : you transfer the file. : > binary /* set binary transfer mode */ : > ascii /* set back to text transfer mode */ : FAQs and spoiler lists are generally ascii files; everything else is : generally binary files. : Some common extensions on binary files in archive sites are: : .Z Compressed; extract with uncompress : .tar.Z Compressed 'tape archive'; uncompress then untar or tar -xvf : .gz or .z Gnu gzip; use gunzip (available from prep.gnu.ai.mit.edu) : .sit (Mac) StufIt archive : .zip Extract with Zip or Unzip : .zoo Yet another archive/compress program : .lhe (Amiga) ? : .lzh Lha archive program. : .arj (PC) Arj archive program. : .exe (PC) Sometimes self-extracting archives-just execute them. : .uue or .UUE Transfer as text file; use uudecode to convert to binary : .hqx (Mac) BinHex format; transfer in text mode : Generic help can be found in the FAQs of comp.binaries. : for how to transfer, extract, and virus-check binary files. (At : rtfm.mit.edu) : If you can't FTP from your site, use one of the following ftp-by-mail : servers: : ftpmail@decwrl.dec.com : ftpmail@src.doc.ic.ac.uk : ftpmail@cs.uow.edu.au : ftpmail@grasp.insa-lyon.fr : For complete instructions, send a message reading "help" to the server. : If you don't know exactly what you're looking for, or exactly where it : is, there are programs and servers that can help you. For more info, : send e-mail to mail-server@rtfm.mit.with with the body of the : message reading send usenet/news.answers/finding-sources : Thanks to Aliza R. Panitz (the "buglady") for this text. I copied it : verbatim from her post on faq-maintainers with only minor modifications. : = ====================================================================== : * Acknowledgements : ------------------ : This document would not have happened without the help of many people. : Among them are Marcus Speh, George Greenwade, Rob Beezer, Joachim : Schrod, Piet van Oostrum, and Ross N. Williams. A special thanks to : Aliza R. Panitz for the text describing how to execute an anonymous ftp : for files of interest. : Any omissions from these acknowledgements should be considered an act of : stupidity on my part. Of course, the authors of literate programming : tools mentioned above all play a vital role in the vitality of literate : programming. Furthermore, participants in the comp.programming.literate : newsgroup (and associated mailing list) all contributed in various : fashions. Thank all of you. : = ====================================================================== : * End notes : ----------- : This document will continue to evolve. I'm planning on adding entries : for additional literate programming tools and will expand the sections : on examples as more examples become available. Tools I will include are : WEB (the original pascal version) for starters. Others will be added as : I find and document them. Omission of a particular tool should not be : considered a snub in any sense--simply an error or oversight on my part. : = End of File ========================================================== ================================================================================ Archive-Date: Mon, 25 Jul 1994 12:00:12 CDT Sender: owner-litprog@SHSU.edu Date: Mon, 25 Jul 1994 12:00:03 CDT From: "George D. Greenwade" Reply-To: LitProg@SHSU.edu, bed_gdg@SHSU.EDU To: ramsdell@linus.mitre.org CC: ctan-ann@SHSU.edu, litprog@SHSU.edu Message-ID: <00981F3D.2B2FFAC4.9509@SHSU.edu> Subject: RE: SchemeWEB 2.1 On Mon, 25 Jul 1994 09:55:57 -0400, "John D. Ramsdell" posted: > I received a bug report for SchemeWEB 2.0. I have patched the program. > Please replace the version of SchemeWEB in the web directory with version > 2.1 which is enclosed. Thanks! I have unpacked the files and installed their contents in a revised tex-archive/web/schemeweb directory on ftp.shsu.edu. Regards and thanks for your support of our services, George %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% George D. Greenwade, Ph.D. Internet: bed_gdg@SHSU.edu Department of Economics and Business Analysis THEnet: SHSU::BED_GDG College of Business Administration Voice: (409) 294-1266 Sam Houston State University FAX: (409) 294-3612 Huntsville, TX 77341-2118 USA %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ================================================================================ Archive-Date: Tue, 26 Jul 1994 15:54:06 CDT Sender: owner-litprog@SHSU.edu From: mclay@cfdlab.ae.utexas.edu (Robert T. McLay) Reply-To: LitProg@SHSU.edu, mclay@CFDLAB.AE.UTEXAS.EDU Subject: FWEB v1.40 w/ LaTeX 2e ??? Date: 26 Jul 1994 03:34:47 GMT Message-ID: To: LitProg@SHSU.EDU I'm wondering if anyone has gotten the output from FWEB v1.40 to work with Latex 2e. It works fine with LaTeX 2.09, but latex 2e doesn't know how to work with the output. I tried some simple fixes to fwebmacL.sty but It appears I don't understand TeX well enough to fix it. Any suggestions? -- ______________________________________________________________________________ Robert McLay | Kayak Rules of Life: Manager CFD Lab | a) lose altitude Dept ASE-EM | b) Surf waves and holes. University of Texas at Austin | c) Do enders. WRW 111 | Austin, TX 78712 | | mclay@cfdlab.ae.utexas.edu | ================================================================================ Archive-Date: Thu, 28 Jul 1994 00:09:43 CDT Sender: owner-litprog@SHSU.edu From: thompson@sun1.coe.ttu.edu Subject: comp.programming.literate FAQ Date: 28 Jul 1994 04:57:42 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/06/16 Version: 1.1.9 Welcome to the Literate Programming Frequently Asked Questions List ------------------------------------------------------------------- This version was created Thursday - June 16, 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? ----------- + Update to ProTeX entry. + Update FAQ availability. + Update noweb 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. Open an ftp connection to one of the CTAN sites and retrieve the file: help/LitProg-FAQ (For more information on CTAN and the literate programming archive, see the section below entitled "Internet Nodes of Interest to Literate Programmers.") An alternative is to use the fileserver at Sam Houston State University (SHSU). Send a message to FILESERV@SHSU.EDU and include in your message: SENDME LITPROG.FAQ The file server will forward a copy of the file to you via email. - ---------------------------------------------------------------------- - FWEB FAQ ---------- Marcus Speh maintains the FWEB FAQ. The current version number is 1.29. It can be retrieved in the same way as this FAQ; either by anonymous ftp or through the SHSU file server. On the SHSU server, the file name is FAQ.FWEB. Invoke your ftp software, open a connection to NIORD.SHSU.EDU [192.92.115.8], attach to the directory FAQ, and transfer the file FAQ.FWEB. Alternatively, send a message to the file server, FILESERV@SHSU.EDU, and include the following text in a one line message: SENDME FAQ.FWEB The file server will send the current version of the file via email. The FWEB FAQ exists in various formats, including HyperText (see other resources below). In Europe, the complete distribution can also be obtained from ftp.desy.de [131.169.10.115] in directory /pub/faq/web/fweb/. It is also available from the literate programming archive (LPA) in the directory LPA/Documentation/faq/fweb (see the references to LPA below for more information). Also, Marcus Speh is looking for someone willing to take over the FWEB FAQ. The text of his email message follows... "Please add to the FWEB FAQ the note that I am looking for someone to take the maintenance of the FAQ over - I am ready to assist in any way whatsoever, including tons of mail, notes for v1.29->v1.30, Texinfo sources, a WWW server and Hypertextification etc." If you're interested, send mail to marcus@x4u2.desy.de and express your willingness to serve. = ====================================================================== * Is there a newsgroup? ----------------------- One of the most important resources is the literate programming newsgroup, comp.programming.literate. You can read this newsgroup using your standard reader. Altenatively, the newsgroup is gated to a mailing list hosted by George Greenwade and Sam Houston State University. You can subscribe by sending mail to the list-server, LISTSERV@SHSU.EDU, and include in the message one line of text: SUBSCRIBE LITPROG "your name in quotes" The list is unmoderated; messages sent to litprog@shsu.edu are automatically distributed to all subscribers and cross-posted to comp.programming.literate. Archives of the mailing list and newsgroup are maintained on niord.shsu.edu [192.92.115.8] in the directory litprog. = ====================================================================== * What internet nodes are of interest to literate programmers? -------------------------------------------------------------- The principal nodes of interest to literate programmers are the Literate Programming Archive (LPA hereafter) and the CTAN (Comprehensive TeX Archive Network). The Literate Programming Archive (LPA) is: Node: ftp.th-darmstadt.de [130.83.55.75] Directory: programming/literate-programming Notes: Fastest response during off-U.S. [yep] business hours. The CTAN sites are: ftp host IP CTAN root Institution and Sponsor ------------------------------------------------------------------------- ftp.tex.ac.uk 134.151.79.32 pub/archive Aston Univ./UK TeX U.G. ftp.dante.de 129.206.100.192 soft/tex DANTE e.V. ftp.shsu.edu 192.92.115.10 tex-archive Sam Houston State Univ. Other nodes and directories of interest include: Node: niord.shsu.edu [192.92.115.8] Directory: various (do some snooping!) Notes: Has a gopher server. Node: ftp.desy.de [131.169.10.115] Directory: pub/web. Various documents, samples, and the FWEB FAQ. Notes: Has a www server, http://info.desy.de:80/ = ====================================================================== * What is Literate Programming? ------------------------------- Literate programming is the combination of documentation and source together in a fashion suited for reading by human beings. In fact, literate programs should be enjoyable reading, even inviting! (Sorry Bob, I couldn't resist!) In general, literate programs combine source and documentation in a single file. Literate programming tools then parse the file to produce either readable documentation or compilable source. The WEB style of literate programming was created by D.E. Knuth during the development of his TeX typsetting software. All the original work revolves around a particular literate programming tool called WEB. Knuth says: The philosophy behind WEB is that an experienced system programmer, who wants to provide the best possible documentation of his or her software products, needs two things simultaneously: a language like TeX for formatting, and a language like C for programming. Neither type of language can provide the best documentation by itself; but when both are appropriately combined, we obtain a system that is much more useful than either language separately. The structure of a software program may be thought of as a web that is made up of many interconnected pieces. To document such a program we want to explain each individual part of the web and how it relates to its neighbours. The typographic tools provided by TeX give us an opportunity to explain the local structure of each part by making that structure visible, and the programming tools provided by languages such as C or Fortran make it possible for us to specify the algorithms formally and unambigously. By combining the two, we can develop a style of programming that maximizes our ability to perceive the structure of a complex piece of software, and at the same time the documented programs can be mechanically translated into a working software system that matches the documentation. Another author (Eric W. van Ammers) wrote me a short article treating his opinions on literate programming. The text follows: First observation on LP About 90% of the disussion on this list is about problems with applying some WEB-family member to a particular programming language or a special documentation situation. This is ridiculous, I think. Let me explain shortly why... Lemma 1: I have proposed for many years that programming has nothing to do with programming langauges, i.e. a good programmer makes good programs in any language (given some time to learn the syntax) and a bad programmer will never make a good program, no matter the language he uses (today many people share this view, fortunately). Lemma 2: Literate Programming has (in a certain way not yet completely understood) to do with essential aspects of programming. Conclusion 1: A LP-tool should be independent of programming language. Lemma 3: It seems likely that the so called BOOK FORMAT PARADIGM [ref. 1] plays an important role in making literate programs work. Lemma 4: There are very many documentation systems currently being used to produce documents in the BOOK FORMAT. Conclusion 2: A LP-tool should be independent of the documentation system that the program author whishes to use. My remark some time ago that we should discuss the generic properties of an LP-tool was based on the above observation. References: [1] Paul W. Oman and Curtus Cook. Typographical style is more than cosmetic. CACM 33, 5, 506-520 (May 1990) Second observation on LP The idea of a literate program as a text book should be extendend even further. I would like to see a literate program as an (in)formal argument of the correctness of the program. Thus a literate program should be like a textbook on mathematicics. A mathematical textbook explains a theory in terms of lemma and theorems. But the proofs are never formal in the sense that they are obtaind by symbol manipulation of a proof checker. Rather the proofs are by so called "informal rigour", i.e. by very precise and unambiguous sentences in a natural language. Eric W. van Ammers Department of Computer Science Wageningen Agricultural University Dreijenplein 2 E-mail: ammers@rcl.wau.nl 6703 HB Wageningen voice: +31 (0)8370 83356/84154 The Netherlands fax: +31 (0)8370 84731 = ====================================================================== * How do I begin literate programming? -------------------------------------- A recommended book is D.E. Knuth's collection of articles (1992) "Literate Programming," Center for the Study of Language and Information, Stanford University, ISBN 0-937073-80-6 (pbk). This book gives insight into Knuth's thoughts as he developed the web system of literate programming (and TeX for typesetting). It does not document methods for literate programming. A recommended book is Wayne Sewell's (1989) "Weaving a Program: Literate Programming in WEB," Van Nostrand Reinhold, ISBN 0-442-31946-0 (pbk). This book focuses on using Knuth's web system. Some talk exists in the newsgroup/mailing list for a Usenet University course in literate programming. I'm sure discussion of this topic will be welcomed. If you are interested, please participate. = ====================================================================== * What literate programming tools are available and where are they? ------------------------------------------------------------------- A significant number of tools for literate programming are available. Most have been ported from their original systems, so support multiple computer platforms. If you are the developer of such a tool, and would like to make the software freely available, please send me email and I'll reply with a form (like those below) for you to fill in. (Or short-circuit the process and kludge a form from below. :-) - ---------------------------------------------------------------------- - APLWEB -------- Developer: Christoph von Basum Version: Unknown Hardware: MSDOS Languages: IBM APL2 and STSC APL Formatter: Plain TeX Availability: Anonymous ftp from: LPA:/apl watserv1.uwaterloo.ca:/languages/apl/aplweb Readme: Unknown Description: None available. Support: Unknown Note: The status of this particular package is unknown. - ---------------------------------------------------------------------- - AWEB ------ Developer: Unknown Version: Unknown Hardware: Unknown Languages: Ada Formatter: Unknown Availability: Anonymous ftp from: LPA:/ada/web Readme: Unknown Description: None available Support: Not supported. - ---------------------------------------------------------------------- - CLiP ------ Developer: E.W. van Ammers and M.R. Kramer Version: Unknown Hardware: Vax/VMS, Unix, and MS-DOS Languages: Any programming language. Formatter: Any formatter (TeX, LaTeX, Troff, Runoff, etc) or any wordprocessor including WYSIWYG systems (Word Perfect, Win Word, Ami Pro, Word, etc.) Availability: Anonymous ftp from: sun01.info.wau.nl:/CLIP/ms_dos MS-DOS version sun01.info.wau.nl:/CLIP/vax_vms VAX/VMS version CTAN:/web/clip LPA:/machines/ms-dos LPA:/machines/vax Readme: With bundle above Description: CLiP does not use explicite commands to perform the extraction process. Rather it recognizes pseudostatemens written as comments in the programming language in question. CLiP distinguishes pseudostatments from ordinary comments because the former comply with a a particular style. This style can be adjusted to suit virtually any programming language. The CLiP approach to LP makes the system extremely versatile. It is independent of programming language and text processing environment. We designed CLiP to be compatible with hypertext systems as well but we have not yet experimented with this form of documentation. Features: + CLiP imposes virtually no limitations on the text-processing system used to produce the documentation. If the text-processor supports these items you can + structure the documentation according to your own taste. + include drawings, pictures, tables etc. + disclose your documentatio my means of X-ref tables, Indexes, Table of contents, Table of tables, Table of figures, etc. + typeset the documented code. + Extracts any number of modules from a maximum of 64 source files. + No pretty-printing. Code from the source files is copied "as is" to the module. + Appearance of code segments in the documentation matches those of the modules to ease the identification of code segements. + Supports partially specified data types. + Comprehensive user manual (preliminary version) and technical description. - No automatic generation of a X-ref table for program identifiers. Support: Bugs, problems and assistance by e-mail: ammers@rcl.wau.nl - ---------------------------------------------------------------------- - CWEB ------ Developer: Silvio Levy and D.E. Knuth Version: 3.0 Hardware: Unix systems (dos and amiga ports available) Languages: C and C++ Formatter: Plain TeX and LaTeX. Availability: Anonymous ftp from: labrea.stanford.edu:/pub/cweb LPA:/c.c++ CTAN:/web/c_cpp/cweb DOS version in CTAN:/web/c_cpp/cwb30p8c DOS version in LPA:/machines/ms-dos Amiga version CTAN:/web/c_cpp/AmigaCWEB Mac port of CTANGLE in LPA:/machines/mac LaTeX support in LPA:/c.c++ Readme: Bundled with above Description: No description provided. Support: Bugs to levy@math.berkeley.edu Note: A fork of CWEB 3.x was developed by Marc van Leeuwen which implements several changes to CWEB. It is available for anonymous ftp from ftp.cwi.nl:pub/cweb. The principle changes are: - Scans include files for typedef definitions - Grammar and formatting rules are well separated, allowing for run-time selection of a rule set (via command line option) - New manual. - ---------------------------------------------------------------------- - FunnelWeb ----------- Developer: Ross N. Williams: ross@guest.adelaide.edu.au Version: Unknown Hardware: MSDOS, Mac, VMS, Sun. Other ports reported. Languages: No restrictions. Formatter: Plain TeX for printing. Otherwise, no restrictions. Availability: Anonymous ftp from: CTAN:/web/funnelweb LPA:/independent ftp.adelaide.edu.au:/pub/funnelweb Readme: With bundle above. Description: FunnelWeb is a production-quality literate-programming tool that emphasises simplicity and reliability. Everything about FunnelWeb, from the simplicity of its language to the comprehensive tutorial in the user's manual, has been designed to make this as simple, as practical, and as usable a tool as possible. Features: + Provides a simple macro preprocessor facility. + Can produce typeset documentation. + Runs on Sun, VMS VAX, Macintosh, PC, and others. + Portable C source code distributed under GNU licence. + Comprehensive user's manual including tutorial. + Programming-language independent. + Can generate multiple output files. + Allows complete control over the output text. + Regression test suite with over 200 tests. + Fully worked example (in /pub/funnelweb/examples). - Requires TeX to produce typeset documentation. - Typesets program code using TT font only. Support: No formal support available. Mailing list maintained with about 50 subscribers. Informal assistance available from mailing list. - ---------------------------------------------------------------------- - FWEB ------ Developer: John A. Krommes Version: 1.30a (1.40 for the experienced, patient, and brave) Hardware: Unix, VMS, and DOS platforms (anything with ANSI C) Languages: C, C++, Fortran-77, Fortran-90, Ratfor, TeX; also, a language-independent mode. Formatter: Plain TeX and LaTeX. Availability: Anonymous ftp from: ftp.pppl.gov:/pub/fweb CTAN:/web/fweb LPA:/fweb DOS version in LPA:/machines/ms-dos Readme: In bundle with above. Description: It also has a well-developed user's manual and its own FAQ (see above). Beginning with 1.40, documentation is maintained in gnu texinfo format. It runs on most platforms: VMS, PC, UNIX, and pretty much anything that the GNU C compiler (GCC) is supported for. Features: + Processes multiple languages during a single run (so one can mix C and Fortran, for example). + Language-independent mode (v1.40). + Ability to turn off pretty-printing (v1.40). + Built-in Ratfor translator. + Built-in macro preprocessor (closely follows ANSI C, with extensions). + A style file that allows the user to adjust many parameters and behavior patterns of FWEB. + Various operator-overloading features that provide additional pretty-printing capabilities to languages such as C++ and Fortran-90. + Numerous miscellaneous features and command-line options. Support: Bug reports and suggestions to krommes@princeton.edu - ---------------------------------------------------------------------- - IMPACT -------- Developer: Timothy Larkin, from Levy/Knuth CWEB 3.1 Version: 1.0 Hardware: Macintosh; requires AppleEvents. Languages: C, C++ Formatter: TeX Availability: CTAN archives Readme: A short readme file is included in the SEA archive. Description: IMPACT implements CTangle from the Levy/Knuth CWEB 3.1. It operates as a foreground program, tangling files selected from the Mac File Picker. Or it can operate in the background, tangling files in response to odoc events sent by other applications, such as editors. Support: I welcome any reports of bugs. The product will be updated as new versions of the CWEB appear. Other features may be added as users suggest them. - ---------------------------------------------------------------------- - lit2x ------- Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/independent Readme: Unknown Description: None available Support: Unknown - ---------------------------------------------------------------------- - Literate Programmer's Workshop (LPW) -------------------------------------- Developer: Norbert Lindenberg Version: 1.1 Hardware: Apple Macintosh Languages: C++, Object Pascal & others Formatter: self-contained WYSIWYG system Availability: Anonymous ftp from: LPA:/machines/mac CTAN:/web/lpw ftp.apple.com:/pub/literate.prog Readme: With bundle above. Also comes with 38-page manual. Description: The Literate Programming Workshop is an environment for the integrated development of program source text and documentation in combined documents. It consists of a WYSIWYG word processor based on a style sheet approach, a mechanism to extract parts of the text in a document, and a project management system that handles multi-document projects. The system is designed to be used in conjunction with the Macintosh Programmer's Workshop: it prepares raw source text for the MPW compilers, accepts MPW error messages, and shows them in the context of the original documents. Automatic indexing and hypertext features allow for easy access to both source text and documentation. LPW is shareware. Support: Bugs, problems, and questions to lpw@aol.com. - ---------------------------------------------------------------------- - MapleWEB ---------- Developer: Unknown Version: Unknown Hardware: Unknown Languages: Maple Formatter: Unknown Availability: Anonymous ftp from: LPA:/maple Readme: Unknown Description: None Support: Unknown - ---------------------------------------------------------------------- - MWEB (Schrod/Detig) --------------------- Developer: Joachim Schrod Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. - ---------------------------------------------------------------------- - MWEB (Sewell) --------------- Developer: Sewell Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. - ---------------------------------------------------------------------- - noweb ------- Developer: Norman Ramsey Version: 2.6 Hardware: Unix and DOS platforms. Languages: All programming languages. Formatter: Plain TeX, LaTeX, and HTML (Mosaic) formatters. Availability: Anonymous ftp from: CTAN:/web/noweb LPA:/independent DOS version also in LPA:/machines/ms-dos also bart.kean.edu:/pub/leew Last recourse, use bellcore.com:/pub/norman Readme: With bundle above. Description: noweb is designed to meet the needs of literate programmers while remaining as simple as possible. Its primary advantages are simplicity, extensibility, and language-independence. noweb uses 5 control sequences to WEB's 27. noweb now supports indexing and identifier cross-reference, including hypertext ``hot links'' courtesy of Mosaic. The simple noweb manual is only 2 pages; documenting the full power of noweave and notangle requires another 3 pages. noweb works ``out of the box'' with any programming language, and its formatter-dependent part is a 60-line nawk program. The primary sacrifice relative to WEB is the loss of prettyprinting. Support: email to the author - ---------------------------------------------------------------------- - nuweb ------- Developer: Preston Briggs: preston@cs.rice.edu Version: 0.87 Hardware: Unix systems: Sparcs, RS/6000s, HPs; (!) MSDOS and Amiga. Languages: Any programming language or combination of programming languages. Formatter: Latex Availability: Anonymous ftp from: Unix: CTAN:/web/nuweb DOS: CTAN:/web/nuweb-pc LPA:/independent Amiga: CTAN:/web/nuweb/nuweb_ami Amiga: wuarchive.wustl.edu/pub/aminet Readme: Send mail to preston@cs.rice.edu Description: A single program that takes a web file written in a combination of latex and any programming language(s) and produces a latex file that can be pretty printed and a set of files containing code for compilation/interpretation by the appropriate language processors. Strengths include speed, simplicity, multiple languages, nice indices and cross-references, latex. Doesn't require any special macros or macro files. Drawbacks: latex-dependent, no code pretty printing, harder to make indices than cweb. More good stuff: nice support for make, doesn't reformat source files, so they're easy to debug. Lots of control without too much effort. That is, it doesn't do too much! Future directions... Very little change planned, except perhaps refinements in the indexing software. Support: Hack it yourself or send e-mail to preston@cs.rice.edu - ---------------------------------------------------------------------- - ProTeX -------- Developer: Eitan Gurari Version: 1.1 (AlProTeX 1.2) Hardware: Any platform with TeX (ProTeX is written in TeX) Languages: Any language Formatter: TeX and LaTeX Availability: Anonymous ftp from: ftp.cis.ohio-state.edu : pub/tex/osu/gurari/ LPA:/independent Readme: Unknown Description: There is a book published on using ProTeX, @Book{Gurari:TLD94, author = "Eitan M. Gurari", title = "{\TeX} and {\LaTeX}: Drawing and Literate Programming", publisher = pub-MH, year = "1994", address = pub-MH:adr, bibdate = "Wed Sep 29 17:55:14 1993", acknowledgement = ack-nhfb, } Support: gurari@cis.ohio-state.edu - ---------------------------------------------------------------------- - RWEB ------ Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/reduce Readme: Unknown Description: Web generator in AWK. Support: Unknown - ---------------------------------------------------------------------- - SchemeWEB ----------- Developer: John D. Ramsdell Version: 2.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: 2.0 patchlevel 26 Hardware: Unix, MSDOS, OS/2. Languages: C Formatter: nroff -man, texinfo (requires yacc/byacc/bison, lex/flex, and nroff/groff/texinfo/LaTeX). Availability: Anonymous ftp from ftp.wustl.edu: /usenet/comp.sources.reviewed/volume03/c2man* ftp.informatik.uni-stuttgart.de: /pub/archive/comp.sources/reviewed/c2man* Readme: See distribution. Description: The primary philosophy here is to use the programming language as far as possible to express the programmer's intentions, and to use comments only when the programming language is not sufficiently expressive. A comment can then become part of the language grammar which is recognised by a "documentation compiler". This tool parses a superset of the programming language and can automatically generate documentation in human-readable form by associating the programmer's comments with the objects in the code by their context. Support: Actively supported; mailing list available: send "subscribe c2man " (in the message body) to listserv@research.canon.oz.au. - ---------------------------------------------------------------------- - cnoweb -------- Developer: Jim Fox Version: 1.4 (January 4, 1991) Hardware: Anything with C and TeX. Languages: C Formatter: Plain TeX. Availability: Anonymous ftp from: CTAN LPA:/c.c++ Readme: Unknown, cnoweb.tex contains documentation. Description: cnoweb is as it's name describes: write C, not web. No tangling or weaving is implemented. Documentation (between standard /* */ delimiteres) is written in TeX. cnoweb provides typesetting of documentation, an table of contents of routines, and pretty-printing of C source. Support: None known. - ---------------------------------------------------------------------- - 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 TEST-LIST@INFO.CERN.CH by sending a message, SEND , for example, SEND http://info.desy.de/user/projects/LitProg.html to retrieve the LitProg library page. A help file can be retrieved by sending a message to the list server above with the text HELP in the body of the message. Instructions will be returned by email. For literate programming documents, you can try anonymous ftp to ftp.desy.de [131.169.10.115] and get the file: /pub/userWWW/projects/Announce/LitProg.txt - ---------------------------------------------------------------------- - TeX Resources --------------- Another resource of interest to literate programmers is the info-tex mailing list. If you're using (La)TeX as your typsetting system and have access to internet, then you should investigate this mailing list. Mail list service is available through the SHSU list-server. To subscribe, send a message to LISTSERV@SHSU.EDU, and include in the message one line of text: SUBSCRIBE INFO-TEX "your name in quotes" The list is unmoderated; messages sent to info-tex@shsu.edu are automatically distributed to all subscribers and cross-posted to comp.text.tex. Archives of the mailing list and newsgroup are maintained on niord.shsu.edu [192.92.115.8] in the directory info-tex. Another reason the TeX resources should be important is that so many of the literate programming tools rely on either plain TeX or LaTeX as their text formatter. (La)TeX software systems exist for most computing platforms. These systems can be found on CTAN and other major archive sites. Use archie to find them or simply ftp to one of the CTAN sites and browse. - ---------------------------------------------------------------------- - Virtual Coursework -------------------- Marcus Speh plans an introductory course on Literate Programming on the Internet, part of the first semester of "Global Network Academy" [GNA], a non-profit corporation incorporated in the state of Texas, affilated with the Usenet University project. The texts/sample programs for this class will be made available via the World-Wide Web. A special room on GNA Virtual Campus will be staffed by a consultant in one to two hour shifts. Students with questions can telnet to the virtual campus and ask questions of the staff there. If you are interested in registering for the course either as a student or as a consultant, please contact marcus@x4u.desy.de. You will receive a standard reply message; no further action will be taken until June 94. Interested parties can check 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.181.0.24], under /pub/usenet/news.answers or under /pub/usenet/more.specific.group.name "anonymous FTP" is just a way for files to be stored where anyone can retrieve them over the Net. For example, to retrieve the latest version of the literate programming FAQ, do the following: > ftp rtfm.mit.edu /* connect to the site; message follows */ > anonymous /* type this when it asks for your name */ > /* type your address as the password */ > cd /pub/usenet /* go to the directory you want to be */ > cd comp.programming.literate /* one level down (no slash). */ > dir /* look at what's there */ > get literate-progamming-faq /* get the file; case-sensitive */ > quit /* stop this mysterious thing */ If your FTP program complains that it doesn't know where the site you want to use is, type the numerical address instead of the sitename: > ftp 18.181.0.24 /* connect with numerical address */ If you don't have ftp access, send e-mail to mail-server@rtfm.mit.edu with the single word "help" in the body of the message. Getting binary files (executables, or any compressed files) is only slightly more difficult. You need to set binary mode inside FTP before you transfer the file. > binary /* set binary transfer mode */ > ascii /* set back to text transfer mode */ FAQs and spoiler lists are generally ascii files; everything else is generally binary files. Some common extensions on binary files in archive sites are: .Z Compressed; extract with uncompress .tar.Z Compressed 'tape archive'; uncompress then untar or tar -xvf .gz or .z Gnu gzip; use gunzip (available from prep.gnu.ai.mit.edu) .sit (Mac) StufIt archive .zip Extract with Zip or Unzip .zoo Yet another archive/compress program .lhe (Amiga) ? .lzh Lha archive program. .arj (PC) Arj archive program. .exe (PC) Sometimes self-extracting archives-just execute them. .uue or .UUE Transfer as text file; use uudecode to convert to binary .hqx (Mac) BinHex format; transfer in text mode Generic help can be found in the FAQs of comp.binaries. for how to transfer, extract, and virus-check binary files. (At rtfm.mit.edu) If you can't FTP from your site, use one of the following ftp-by-mail servers: ftpmail@decwrl.dec.com ftpmail@src.doc.ic.ac.uk ftpmail@cs.uow.edu.au ftpmail@grasp.insa-lyon.fr For complete instructions, send a message reading "help" to the server. If you don't know exactly what you're looking for, or exactly where it is, there are programs and servers that can help you. For more info, send e-mail to mail-server@rtfm.mit.with with the body of the message reading send usenet/news.answers/finding-sources Thanks to Aliza R. Panitz (the "buglady") for this text. I copied it verbatim from her post on faq-maintainers with only minor modifications. = ====================================================================== * Acknowledgements ------------------ This document would not have happened without the help of many people. Among them are Marcus Speh, George Greenwade, Rob Beezer, Joachim Schrod, Piet van Oostrum, and Ross N. Williams. A special thanks to Aliza R. Panitz for the text describing how to execute an anonymous ftp for files of interest. Any omissions from these acknowledgements should be considered an act of stupidity on my part. Of course, the authors of literate programming tools mentioned above all play a vital role in the vitality of literate programming. Furthermore, participants in the comp.programming.literate newsgroup (and associated mailing list) all contributed in various fashions. Thank all of you. = ====================================================================== * End notes ----------- This document will continue to evolve. I'm planning on adding entries for additional literate programming tools and will expand the sections on examples as more examples become available. Tools I will include are WEB (the original pascal version) for starters. Others will be added as I find and document them. Omission of a particular tool should not be considered a snub in any sense--simply an error or oversight on my part. = End of File ========================================================== ================================================================================ Archive-Date: Fri, 29 Jul 1994 15:17:33 CDT Sender: owner-litprog@SHSU.edu From: ara@zurich.ai.mit.edu (Allan Adler) Reply-To: LitProg@SHSU.edu, ara@ZURICH.AI.MIT.EDU Subject: FWEB problems Date: 29 Jul 94 15:31:25 Message-ID: To: LitProg@SHSU.EDU I placed two files in altdorf.ai.mit.edu:archive/adler/FISCHER for anonymous ftp. The files are named fischer.f and fischer.web. I would appreciate it if someone would look at the original fortran file fischer.f and the web I'm trying to write for it and tell me what I am doing wrong. The trouble all started when web began complaining about line numbers. I didn't put the line numbers in: they were in the code when I got it. Allan Adler ara@altdorf.ai.mit.edu ================================================================================ Archive-Date: Fri, 29 Jul 1994 16:15:11 CDT 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: Fri, 29 Jul 1994 14:14:57 -0700 Message-ID: <9407292114.AA15283@shiloh.mentorg.com> To: LitProg@SHSU.edu Subject: Anyone use ProTex? I downloaded it, untexar'd it (TeX archive -vs- shell archive... cute), and found only one example of the Literate Programming stuff. It is short, uncommented and doesn't get me very far. I have the book on order, but I confess that I feel a bit silly buying a book on a product I know nothing about, just to see what it can do. It looks like it comes with a bunch of macros to do charts and graphics more easily, but no docs on them either, it must all be in the book. In short, does anyone have any experience with it? -- +------------------------+------------------------------+ | sean_boyle@mentorg.com | Mentor Graphics Corporation | | uunet!mntgfx!sboyle | 8005 S.W. Boeckman Road | | | Wilsonville, OR 97070-7777 | | "Intrinsically lazy, therefore creative" | +------------------------+------------------------------+ ================================================================================ Archive-Date: Sat, 30 Jul 1994 15:07:10 CDT Sender: owner-litprog@SHSU.edu Date: Sat, 30 Jul 1994 15:10:04 -0500 From: "Stephen A. Fulling" Reply-To: LitProg@SHSU.edu, fulling@SARASTRO.MATH.TAMU.EDU Message-ID: <199407302010.PAA16826@sarastro.math.tamu.edu> To: LitProg@SHSU.edu, sean_boyle@rainbow.mentorg.com Subject: Re: Anyone use ProTex? CC: fulling@sarastro.math.tamu.edu ------------------------------------------------- From: sean_boyle@rainbow.mentorg.com Date: Fri, 29 Jul 1994 14:14:57 -0700 Subject: Anyone use ProTex? I downloaded it, untexar'd it (TeX archive -vs- shell archive... cute), and found only one example of the Literate Programming stuff. It is short, uncommented and doesn't get me very far. I have the book on order, but I confess that I feel a bit silly buying a book on a product I know nothing about, just to see what it can do. It looks like it comes with a bunch of macros to do charts and graphics more easily, but no docs on them either, it must all be in the book. In short, does anyone have any experience with it? ---------------------------------------------------- I hope that Eitan Gurari will speak for himself, but here is my limited input. I have read the relevant chapters of the book but have not seriously tried out ProTex yet. I think it deserves to be taken seriously. Its strong points are PORTABILITY and simplicity: It is built entirely out of TeX macros, so there is no need for extra programs (like weave and tangle) or shell scripts, etc., that must be different for Unix and DOS (as with Noweb). Any computer equipped with TeX can run ProTeX. Its main disadvantage, as I understand it, is weak or slow indexing capability. Also, you get the (completely independent) DraTeX graphics macros as part of the deal. In fact, most of the book is about them; the literate programming is covered in just a few chapters at the end. I have not tried them or even read that part of the book. The file is considerably shorter than PicTeX, so it may solve some of the memory problems that curse PicTeX on many systems. But do NOT buy the book just to get the software. The files available for free by FTP are more up to date than those on the diskette included with the book. S. A. Fulling ================================================================================ Archive-Date: Sun, 31 Jul 1994 17:27:31 CDT Sender: owner-litprog@SHSU.edu From: schrod@iti.informatik.th-darmstadt.de (Joachim Schrod) Reply-To: LitProg@SHSU.edu, schrod@ITI.INFORMATIK.TH-DARMSTADT.DE Subject: Contents of the LitProg Archive (monthly posting) Date: 1 Aug 1994 00:20:05 +0200 Message-ID: <31h82lINNe69@spice.iti.informatik.th-darmstadt.de> To: LitProg@SHSU.EDU # literate-programming/Contents 04 May 94 -*- Indented-Text -*- #------------------------------------------------------------ The material available from the Literate Programming Archive is categorized, each category is put in a directory tree. While this structure (which is described in the README files) supports browsing, the need for quick access to a specific Literate Programming tool remains. This file shall assist you in this need. It presents the *WEB systems and tools available, in an alphabetic order, and names the directory where you can find it. In addition to the systems mentioned below, the LitProg Archive features texts in the directory Documentation: FAQs, papers, and an extensive bibliography in BibTeX format. Since this file is updated manually, I cannot guarantee that it's up to date. Send reports about inconsistencies of description and reality to Joachim Schrod . SYSTEM DIRECTORY REMARK ------ --------- ------ APLWEB apl w/o source, but under the GPL! [this was an error by the author] AWEB ada/aweb not supported any more cfa Tools Change File Analyzer CLiP any language, any formatter, any -- source independent wordprocessor. Hypertext -- for DOS machines/ms-dos integration possible -- for VMS machines/vms CWEB (Levy/Knuth) C++, ANSI C, K&R C -- source c.c++ -- Amiga port machines/amiga -- Atari TOS port machines/atari-tos an old version [2.4 p5b] -- DOS port machines/ms-dos -- Mac port machines/mac -- Mac CTANGLE machines/mac Impact: CTANGLE & Apple-Events cweb style c.c++ CWEB programs as LaTeX documents CWEB (van Leeuwen) c.c++ CWEB for ANSI C, in ANSI C CWEB (Schrod) not supported any more send me mail if you have historic interests :-) Funnelweb independent FWEB multi-lingual WEB -- source fweb -- DOS port machines/ms-dos -- MS-Windows port machines/ms-windows Impact machines/mac CTANGLE & Apple-Events Knit pascal not supported any more lit2x independent [????] from Glasgow LPW machines/mac Literate Programming Workshop CAVEAT: Shareware! MapleWEB spiderweb MWEB (Schrod/Detig) modula-2 not supported any more MWEB (Sewell) modula-2 not supported any more noweb uses the UNIX toolbox paradigm -- source independent -- DOS port machines/ms-dos nuweb lean system, written in C -- source independent -- Amiga port machines/amiga -- DOS port machines/ms-dos ProTex independent WEB system based on TeX RWEB spiderweb for Reduce smlweb spiderweb for Standard ML SpiderWEB WEB generator, in awk -- source spiderweb -- DOS port machines/ms-dos -- OS/2 port machines/os2 -- Mac port machines/mac TIE Tools Change File Merger WEB The basis, it started with it... -- source pascal -- DOS port machines/ms-dos WEB mode Tools for GNU Emacs WinWordWEB machines/ms-dos WEB with Word for Windows Literate Documentation Systems ------------------------------ (or LitDoc systems for short): Tools that do not support refinements but enable the use of usual document preparation systems (e.g., LaTeX) in program comments. cnoweb c.c++ doc package /pub/tex/latex CAVEAT: No LitProg A directory! oriented towards TeX code; part of the LaTeX2e distrib. MAKEPROG independent is here for my own convenience :-) SchemeWEB lisp wbuild /pub/X11/other/fwf CAVEAT: No LitProg A directory! creating new X widget classes -- The Literate Programming Archive, or LitProg Archive for short, resides at ftp.th-darmstadt.de [130.83.55.75], directory pub/programming/literate-programming/. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Joachim Schrod Email: schrod@iti.informatik.th-darmstadt.de Literate Programming Archive, maintainer Technical University of Darmstadt, Germany ================================================================================ Archive-Date: Sun, 31 Jul 1994 17:39:12 CDT Sender: owner-litprog@SHSU.edu From: schrod@iti.informatik.th-darmstadt.de (Joachim Schrod) Reply-To: LitProg@SHSU.edu, schrod@ITI.INFORMATIK.TH-DARMSTADT.DE Subject: Diff to Contents of the LitProg Archive (monthly posting) Date: 1 Aug 1994 00:20:07 +0200 Message-ID: <31h82nINNe6b@spice.iti.informatik.th-darmstadt.de> To: LitProg@SHSU.EDU There were no changes in the last month. -- The Literate Programming Archive, or LitProg Archive for short, resides at ftp.th-darmstadt.de [130.83.55.75], directory pub/programming/literate-programming/. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Joachim Schrod Email: schrod@iti.informatik.th-darmstadt.de Literate Programming Archive, maintainer Technical University of Darmstadt, Germany