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: <Cs97Av.25G@cwi.nl>
Date: Fri, 1 Jul 1994 08:52:06 GMT
To: LitProg@SHSU.EDU

In article <COATES.94Jul1091840@kelvin.physics.uq.oz.au>,
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
|> 
|> @$@<String 1@>==@{The rain in Spain@}
|> @$@<String 2@>==@{falls mainly in the plain.@}
|> 
|> and then stick these definitions in the one string as
|> 
|> @$@<Full String@>==@{"@<String 1@> @<String 2@>@"}

Are you sure you dont mean ... @<String 2@>"@} 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

@ @<String 1@>== "The rain in Spain"
@ @<String 2@>== "falls mainly in the plain."
@ @<Full String@>== @<String 1@> " " @<String 2@>

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: <MARCUS.94Jul1122009@x4u2.desy.de>
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 <marcus@x4u.desy.de> 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: <marcus@x4u.desy.de>   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
>
>@$@<String 1@>==@{The rain in Spain@}
>@$@<String 2@>==@{falls mainly in the plain.@}
>
>and then stick these definitions in the one string as
>
>@$@<Full String@>==@{"@<String 1@> @<String 2@>@"}

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, "@<Error message@>\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" <bed_gdg@SHSU.edu>
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: <COATES.94Jul3111522@kelvin.physics.uq.oz.au>
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: <lupper-050794120346@alfred.informatik.uni-ulm.de>
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 <leew@pilot.njin.net>
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: <CMM-RU.1.4.773686723.leew@pilot.njin.net>

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: <literate-programming-faq_773989613@rtfm.mit.edu>
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 <marcus@x4u.desy.de> 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 <CvB@erasmus.hrz.uni-bielefeld.de>
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
<M.van.Leeuwen@cwi.nl> 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 <krommes@princeton.edu>
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 <norman@bellcore.com>
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 <gurari@cis.ohio-state.edu>
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 <norman@bellcore.com>
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 <leew@pilot.njin.net>
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 <a7621gac@univie.ac.at>


- ----------------------------------------------------------------------

- 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 <Your Name>" (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 <simmdan@kenya.isu.edu>
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 <bruce@liverpool.ac.uk>
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 <ddw@sunbim.be>
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 <bart@cs.tamu.edu>
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 <http_address>,
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 */
> <your email address>          /* 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.<your_system_type>
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
		@<operator& member function@>@;
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" <fulling@sarastro.math.tamu.edu>
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 <leew@pilot.njin.net>
Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET
To: LitProg@shsu.edu, fiehler@eads.umsl.edu
Subject: Re: C++ with CWEB
Message-ID: <CMM-RU.1.4.774196850.leew@pilot.njin.net>

Gregg Fiehler writes:
 
> My first problem is with overloading operators, when I write a
> section definition as
> 		@<operator& member function@>@;
> the & confuses things.

There are 2 ways to deal with this (depending on what you're trying to
accomplish).  Use

	@<operator\& member function@>

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 <leew@pilot.njin.net>
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: <CMM-RU.1.4.774197152.leew@pilot.njin.net>

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" <AMMERS@RCL.WAU.NL>
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 <leew@pilot.njin.net>
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: <CMM-RU.1.4.774280521.leew@pilot.njin.net>

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: <CszM84.619@cwi.nl>
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
|> 		@<operator& member function@>@;
|> 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 <jscholes@kalva.demon.co.uk> 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 <jscholes@kalva.demon.co.uk> 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:

@<Object Types@>=
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:

@<Object Types@>=
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 <leew@pilot.njin.net>
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: <CMM-RU.1.4.774454410.leew@pilot.njin.net>

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 <leew@pilot.njin.net>
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: <CMM-RU.1.4.774454641.leew@pilot.njin.net>

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" <AMMERS@RCL.WAU.NL>
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: <Ct3otF.I5w@kd3bj.uucp>
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: <JHAM1.94Jul19134315@cs20.cs.aukuni.ac.nz>
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" <fulling@sarastro.math.tamu.edu>
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: <Multimedia-200794184626@mac20.labs.cstudies.ubc.ca>
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 <dak@rama.informatik.rwth-aachen.de> 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 <schrod@iti.informatik.th-darmstadt.de> 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
<module> output (so you get <Module 1a> 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: <ARA.94Jul23083244@camelot.ai.mit.edu>
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 <marcus@x4u.desy.de> 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 <CvB@erasmus.hrz.uni-bielefeld.de>
: 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
: <M.van.Leeuwen@cwi.nl> 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 <krommes@princeton.edu>
: 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 <norman@bellcore.com>
: 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 <gurari@cis.ohio-state.edu>
: 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 <norman@bellcore.com>
: 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 <leew@pilot.njin.net>
: 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 <a7621gac@univie.ac.at>


: - ----------------------------------------------------------------------

: - 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 <Your Name>" (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 <simmdan@kenya.isu.edu>
: 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 <bruce@liverpool.ac.uk>
: 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 <ddw@sunbim.be>
: 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 <bart@cs.tamu.edu>
: 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 <http_address>,
: 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 */
: > <your email address>          /* 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.<your_system_type>
: 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" <bed_gdg@SHSU.edu>
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"
<ramsdell@linus.mitre.org> 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: <MCLAY.94Jul25223448@zoyd.ae.utexas.edu>
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: <literate-programming-faq_775371303@rtfm.mit.edu>
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 <marcus@x4u.desy.de> 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 <CvB@erasmus.hrz.uni-bielefeld.de>
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
<M.van.Leeuwen@cwi.nl> 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 <krommes@princeton.edu>
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 <norman@bellcore.com>
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 <gurari@cis.ohio-state.edu>
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 <norman@bellcore.com>
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 <leew@pilot.njin.net>
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 <a7621gac@univie.ac.at>


- ----------------------------------------------------------------------

- 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 <Your Name>" (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 <simmdan@kenya.isu.edu>
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 <bruce@liverpool.ac.uk>
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 <ddw@sunbim.be>
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 <bart@cs.tamu.edu>
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 <http_address>,
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 */
> <your email address>          /* 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.<your_system_type>
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: <ARA.94Jul29153126@camelot.ai.mit.edu>
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" <fulling@sarastro.math.tamu.edu>
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 <schrod@iti.informatik.th-darmstadt.de>.


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 available>		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
