Archive-Date: Wed, 02 Aug 1995 12:53:41 CDT
Sender: owner-litprog@SHSU.edu
From: EMSINC@ix.netcom.com (Mark Kohne)
Reply-To: LitProg@SHSU.edu, EMSINC@IX.NETCOM.COM
Subject: software productivity research
Date: 2 Aug 1995 17:40:07 GMT
Message-ID: <3vod9n$3hu@ixnews5.ix.netcom.com>
To: LitProg@SHSU.EDU

What makes a software developer productive????

EMS is a small software development company with a very limited budget. 
We are currently pondering some investments to improve the productivity 
of our software developers. Having already polled our staff, we would 
also like the input of you the software development community. If you 
are a software development professional, please take a minute and 
respond to the brief survey listed below. Responses should be emailed to 
emsinc@ix.netcom.com

Your responses will be greatly appreciated since they will help guide 
the future of our entrepreneurial venture! If anyone would like a copy 
of the results please mention it in your survey response.

Thanks for your input.

John Callaghan
Senior Consultant
Electronic Messaging Solutions

Directions: For each item please select the number that best expresses 
your feeling about the extent to which the factor influences your 
productivity as a software developer.

	                        No                           Extensive
Productivity Factor	        influence                    influence

1. Team communications	           1       2       3       4       5
2. The style used by your manager  1       2       3       4       5
3. Appropriate project goals	   1       2       3       4       5
4. Project tracking/controls	   1       2       3       4       5
5. Stability of user requirements  1       2       3       4       5
6. Defined change procedures	   1       2       3       4       5
7. Structured methodologies	   1       2       3       4       5
8. Software design tools	   1       2       3       4       5
9. Automated change control	   1       2       3       4       5
10. Test tools	                   1       2       3       4       5
11. Complexity of the software	   1       2       3       4       5
12. Work facilities	           1       2       3       4       5
13. Computer equipment	           1       2       3       4       5
14. Adequate training	           1       2       3       4       5

================================================================================
Archive-Date: Thu, 03 Aug 1995 19:57:45 CDT
Sender: owner-litprog@SHSU.edu
From: aa056@ccn.cs.dal.ca (George White)
Reply-To: LitProg@SHSU.edu, aa056@CCN.CS.DAL.CA
Subject: Has anyone used HyperTeX with [F]WEB?
Message-ID: <DCrEAE.Ipw@cs.dal.ca>
Keywords: HyperTeX, FWEB
Date: Thu, 3 Aug 1995 23:51:49 GMT
To: LitProg@SHSU.EDU

I have been using FWEB for half a year, mostly under LaTeX.  It would be 
useful to have hypertex browsing.  I tried the macro packages that modify 
the default LaTeX styles, and they help some, but are not highly presentable.
One problem is that the underlining for links appears at the beginning of
an indented line (using HyperTeXView on NeXT).  It would be useful to put 
links to the contents and index on each page (automagically, as part of 
the headers and footers).  

Since I often use dviwindo, which has an entirely different set of 
\specials to support hypertex links, I would be interested in information
about this environment as well.

--
George White <aa056@ccn.cs.dal.ca> <gwhite@bionet.bio.dfo.ca>
================================================================================
Archive-Date: Fri, 04 Aug 1995 04:44:28 CDT
Sender: owner-litprog@SHSU.edu
From: dbui@neosoft.com (dung bui)
Reply-To: LitProg@SHSU.edu, dbui@NEOSOFT.COM
Subject: sharing resources in a Lantastic environment
Date: Fri, 4 Aug 1995 00:48:04 UNDEFINED
Message-ID: <dbui.2.00562CF8@neosoft.com>
To: LitProg@SHSU.EDU

I have two p.c.'s sharing resources in a Lantastic network, and I was 
wondering if anyone can tell me if it is possible to share my modem between 
the two p.c.
================================================================================
Archive-Date: Sat, 05 Aug 1995 05:30:41 CDT
Sender: owner-litprog@SHSU.edu
From: thanasis@news.cs.columbia.edu (Thanasis Tsantilas)
Reply-To: LitProg@SHSU.edu, thanasis@NEWS.CS.COLUMBIA.EDU
Subject: cweave output cant be tex-ed??
Date: 4 Aug 1995 14:58:32 -0400
Message-ID: <3vtqko$262@ground.cs.columbia.edu>
To: LitProg@SHSU.EDU

Hi all:
I just installed cweb-3.2 (no complaints). Then I tried some of the examples
provided, ctangle works fine, but cweave wont. TeX complains
when I try to tex cweave's  .tex output. Here is a sample session.
Ive done nothing other than editing the installation Makefile (to change the paths)
and then install the system. The I go to the examples directory and here is what
happens. What do I do wrong?

Thanks.
Thanasis Tsantilas, Columbia University
---------------------------------------------------------------
$ cweave wc.w
This is CWEAVE (Version 2.6)
*1*22
Writing the output file...*1*22
Writing the index...
Done.
(No errors were found.)
$ 
$ tex wc.tex
This is TeX, C Version 3.14t3
(wc.tex (/u/reka/thanasis/LP/lib/tex/inputs/cwebmac.tex) *. [1] [2]
! Please use \mathaccent for accents in math mode.
\~#1->{\accent 
               "7E #1}
l.202 \&{if} ${}(\|c>\.{'\ '}\W\|c<\O{\~1
                                         77}){}$\5
?                                                       <<<<<<<<<<<< Pressed <cr> here.
[3] [4] [5] *2 Index:
! I can't find file `wc.idx{'.
<to be read again> 
                   \accent 
\:#1->{\accent 
               95 #1}
l.318 \:\\
          {argc}, \[5], 7, 8.
Please type another input file name: 
------------------------------------------------------------------------

================================================================================
Archive-Date: Sat, 05 Aug 1995 22:38:18 CDT
Sender: owner-litprog@SHSU.edu
Date: Sat, 5 Aug 95 23:38:40 EDT
From: Lee Wittenberg <leew@pilot.njin.net>
Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET
To: LitProg@SHSU.edu, thanasis@news.cs.columbia.edu
Subject: Re: cweave output cant be tex-ed??
Message-ID: <CMM-RU.1.4.807680320.leew@pilot.njin.net>

Thanasis Tsantilas writes:

> I just installed cweb-3.2 (no complaints). Then I tried some of the examples
> provided, ctangle works fine, but cweave wont. TeX complains
> when I try to tex cweave's  .tex output. Here is a sample session.
> Ive done nothing other than editing the installation Makefile (to change the paths)
> and then install the system. The I go to the examples directory and here is what
> happens. What do I do wrong?
> ---------------------------------------------------------------
> $ cweave wc.w
> This is CWEAVE (Version 2.6)
>	[...omitted...]
> $ tex wc.tex
> This is TeX, C Version 3.14t3
> (wc.tex (/u/reka/thanasis/LP/lib/tex/inputs/cwebmac.tex) *. [1] [2]
> ! Please use \mathaccent for accents in math mode.
> \~#1->{\accent 
>                "7E #1}
> l.202 \&{if} ${}(\|c>\.{'\ '}\W\|c<\O{\~1
>                                          77}){}$\5

Note the CWEAVE version number (2.6 rather than 3.2).  What seems to
have happened is that there is another (older) version of CWEAVE on
your system.  Since "." is traditionally the last directory on the
$PATH in a Unix system, your shell is picking up the other (earlier)
version instead of your new one (the command "whereis cweave" will
confirm this).  On the other hand, you are obviously using the 3.2
cwebmac.tex in your own subdirectory.

The \O in l.202 of the generated .tex file tends to support this
hypothesis.  Versions of CWEAVE from 3.0 onward generate a \T instead
of a \O for numeric constants (to allow \O to be used for its
traditional purpose as a "Scandinavian letter O-with-slash" -- quote
from cwebmac.tex comment, line 155).

The solution is fairly easy.  Put the executables in a directory
earlier on the $PATH than wherever the old CWEAVE is (~/bin is usually
a good place).  Alternately, you might be able to talk your system
administrator to upgrade the system copy with v3.2 (or the latest, 3.4c).

Hope this helps.

		-- Lee

------------------------------------------------------------------------
Lee Wittenberg              | If, indeed, we could not afford to educate
Computer Science Department | everybody, we should choose the coarsest
Kean College of New Jersey  | and dullest by nature, rather than the 
Union, NJ   07083           | brightest, to receive what education we
                            | could give.  The naturally refined and
                            | intellectual can better dispense with aids
                            | to culture than those less fortunate in
                            | natural endowments.
                            | 
                            | -- Edward Bellamy
leew@pilot.njin.net         |    "Looking Backward" (1888)
------------------------------------------------------------------------
================================================================================
Archive-Date: Mon, 07 Aug 1995 05:10:10 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: cweave output cant be tex-ed??
Date: 7 Aug 1995 09:56:59 GMT
Message-ID: <404o1b$gp2@rs18.hrz.th-darmstadt.de>
To: LitProg@SHSU.EDU

In article <3vtqko$262@ground.cs.columbia.edu>, thanasis@news.cs.columbia.edu (Thanasis Tsantilas) writes:
> Hi all:
> I just installed cweb-3.2 (no complaints). [...]
		   ^^^^^^^^
> $ cweave wc.w
> This is CWEAVE (Version 2.6)
                          ^^^

Did you execute cweave once before your installation? Then the old
version is called again, due to shell's command location cashing. Use
the command `hash -r cweave' to tell the shell that there is a new
cweave in your command search path.

If the problem is still there with 3.2, post it again. :-) Btw, the
most current CWEB version is 3.4; if you're installing anew anyhow,
you might want to use it.

	Joachim

--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Joachim Schrod			Email: schrod@iti.informatik.th-darmstadt.de
Computer Science Department
Technical University of Darmstadt, Germany
================================================================================
Archive-Date: Mon, 07 Aug 1995 06:43:15 CDT
Sender: owner-litprog@SHSU.edu
From: thompson@sun1.coe.ttu.edu
Subject: comp.programming.literate FAQ
Date: 7 Aug 1995 11:43:10 GMT
Message-ID: <literate-programming-faq_807795738@rtfm.mit.edu>
Reply-To: LitProg@SHSU.edu, thompson@sun1.coe.ttu.edu
To: LitProg@SHSU.EDU

Archive-name: literate-programming-faq
Last-modified: 1995/06/22
Version: 1.1.16


Welcome to the Literate Programming Frequently Asked Questions List
-------------------------------------------------------------------

This version was created Thursday, 22 June 1995, 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, 1995 by 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?
-----------

+ Updated cwebx3.0.
+ Updated fweb entry (notices added).
+ Added FunnelWeb3.0AC 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
    - CWEBx3.0
    - FunnelWeb
    - FunnelWeb3.0AC
    - FWEB
    - IMPACT
    - lit2x
    - Literate Programmer's Workshop (LPW)
    - MapleWEB
    - MWEB (Schrod/Detig)
    - MWEB (Sewell)
    - noweb
    - nuweb
    - ProTeX
    - RWEB
    - SchemeWEB
    - Spidery WEB
    - WEB
    - WinWordWEB
* Are there other tools I should know about?
    - C2LaTeX
    - c2cweb
    - c2man
    - cnoweb
    - Fold2web
    - FunnelWeb mode
    - noweb.el
    - nuweb.el
    - TIE
    - Web mode
* What other resources are available?
    - World Wide Web
    - TeX Resources
    - Virtual Coursework
* Are there any code examples?
    - Examples included with developer's tools
    - Cameron Smith's KR-CWEB
    - Stanford GraphBase
* Bibliographies.
* How to anonymously ftp.
* Acknowledgements.
* End notes.


= ======================================================================

* How do I get the FAQ?
-----------------------

- Literate Programming FAQ
--------------------------

You have many ways to get a current copy of this FAQ.  One is to use
anonymous ftp (if you don't know how, see a later section in this FAQ)
to connect to one of the Comprehensive TeX Arvchive Network (CTAN) sites
or the Literate Programming Archive and retrieve a copy of the file.
Open an ftp connection to one of the CTAN sites and retrieve the file:

    help/LitProg-FAQ

(For more information on CTAN and the literate programming archive, see
the section below entitled "Internet Nodes of Interest to Literate
Programmers.")

An alternative is to use the fileserver at Sam Houston State University
(SHSU).  Send a message to FILESERV@SHSU.EDU and include in your
message:

    SENDME LITPROG.FAQ

The file server will forward a copy of the file to you via email.


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

- FWEB FAQ
----------

David Coker <coker@astro.sunyit.edu> now maintains the FWEB FAQ.  (We
all owe Marcus Speh a big THANK YOU for maintaining the FWEB FAQ for so
long!)  The current version number is 1.30a.  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).


= ======================================================================

* 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.

Participating hosts in the Comprehensive TeX Archive Network are:
  ftp.dante.de  (Deutschland)         
       -- anonymous ftp                 /tex-archive (/pub/tex /pub/archive)
       -- gopher on node sun.dante.de
       -- e-mail via ftpmail@dante.de
       -- Administrator: <ftpmaint@dante.de>
  ftp.shsu.edu  (Texas, USA)      
       -- anonymous ftp and gopher      /tex-archive (/pub/tex /pub/archive)
       -- NFS mountable from ftp.SHSU.edu:/pub/ftp/tex-archive
       -- e-mail via ftpmail@ftp.SHSU.edu
       -- World Wide Web access on www.SHSU.edu
       -- Administrator: <CTAN-Mgr@SHSU.edu>
  ftp.tex.ac.uk (England)               
       -- anonymous ftp                 /tex-archive (/pub/tex /pub/archive)
       -- gopher on node gopher.tex.ac.uk
       -- NFS mountable from nfs.tex.ac.uk:/public/ctan/tex-archive
       -- World Wide Web access on www.tex.ac.uk
       -- Administrator: <ctan-uk@tex.ac.uk>

A list of CTAN archive sites and their mirrors can be found on:

  ftp.dante.de: /tex-archive/CTAN.sites

I presume that the other CTAN sites mirror this file, but have not checked.
As of my last check (September 1994), it contains:

  "In order to reduce network load, it is recommended that you use the
  Comprehensive TeX Archive Network (CTAN) host which is located in the
  closest network proximity to your site."
  
Known partial mirrors of the CTAN reside on (alphabetically):
  dongpo.math.ncu.edu.tw (Taiwan)       /tex-archive
  ftp.adfa.oz.au (Australia)            /pub/tex/ctan
  ftp.muni.cz (The Czech Republic)      /pub/tex/CTAN
  ftp.cs.ruu.nl (The Netherlands)       /pub/tex-archive
  ftp.uu.net (Virginia, USA)            /pub/text-processing/TeX
  nic.switch.ch (Switzerland)           /mirror/tex

Known mirrors of the CTAN reside on (alphabetically):
  ftp.center.osaka-u.ac.jp (Japan)      /CTAN
  ftp.ccu.edu.tw (Taiwan)               /pub/tex
  ftp.cs.rmit.edu.au  (Australia)       /tex-archive
  ftp.duke.edu (North Carolina, USA)    /tex-archive
  ftp.germany.eu.net (Deutschland)      /pub/packages/TeX
  ftp.gwdg.de (Deutschland)             /pub/dante
  ftp.jussieu.fr (France)               /pub4/TeX/CTAN
  ftp.loria.fr (France)                 /pub/unix/tex/ctan
  ftp.mpi-sb.mpg.de (Deutschland)       /pub4/tex/mirror/ftp.dante.de
  ftp.uni-bielefeld.de (Deutschland)    /pub/tex
  ftp.uni-stuttgart.de (Deutschland)    /tex-archive (/pub/tex)
  ftpserver.nus.sg (Singapore)          /pub/zi/TeX
  src.doc.ic.ac.uk (England)            /packages/tex/uk-tex
  sunsite.unc.edu (North Carolina, USA)	/pub/packages/TeX
  wuarchive.wustl.edu (Missouri, USA)   /packages/TeX


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


Another author (Norman Ramsey) wrote me and asked that his opinions be included in
the FAQ.  What follows are Norman's comments verbatim.

I see it's time for the ``how is literate programming different from
verbose commenting'' question.  Perhaps David Thompson will get this
into the FAQ.  Alert!  What follows are my opinions.  In no way do I
claim to speak for the (fractious) literate-programming community.

How is literate programming different from verbose commenting?

There are three distinguishing characteristics.  In order of
importance, they are:
  - flexible order of elaboration
  - automatic support for browsing
  - typeset documentation, especially diagrams and mathematics

Flexible order of elaboration means being able to divide your source
program into chunks and write the chunks in any order, independent of
the order required by the compiler.  In principle, you can choose the
order best suited to explaining what you are doing.  More subtly, this
discipline encourages the author of a literate program to take the
time to consider each fragment of the program in its proper sphere,
e.g., not to rush past the error checking to get to the ``good
parts.''  In its time and season, each part of the program is a good
part.  (This is the party line; your mileage may vary.)

I find the reordering most useful for encapsulating tasks like input
validation, error checking, and printing output fit for humans --- all
tasks that tend to obscure ``real work'' when left inline.
Reordering is less important when using languages like Modula-3, which
has exceptions and permits declarations in any order, than when using
languages like C, which has no exceptions and requires declaration
before use.


Automatic support for browsing means getting a table of contents,
index, and cross-reference of your program.  Cross-reference might be
printed, so that you could consult an index to look up the definition
of an identifier `foo'.  With good tools, you might get a printed
mini-index on every page if you wanted.  Or if you can use a hypertext
technology, cross-reference might be as simple as clicking on an
identifier to reach its definition.  

Indexing is typically done automatically or `semi-automatically', the
latter meaning that identifier definitions are marked by hand.
Diligently done semi-automatic indexes seem to be best, because the
author can mark only the identifiers he or she considers important,
but automatic indexing can be almost as good and requires no work.
Some tools allow a mix of the two strategies.

Some people have applied literate-programming tools to large batches
of legacy code just to get the table of contents, index, and
cross-reference.  


I don't use diagrams and mathematics very often, but I wouldn't want
to have to live without them.  I have worked on one or two projects
where the ability to use mathematical formulae to document the program
was indispensible.  I also wouldn't like to explain some of my
concurrent programs without diagrams.  Actually I write almost all of
my literate programs using only sections headers, lists, and the
occasional table. 


>Wouldn't it be easier to do one's literate programming using a wysiwyg
>word processor (e.g. Word for Windows) and indicate what is source
>code by putting it in a different font?

The data formats used in wysiwyg products are proprietary, and they
tend to be documented badly if at all.  They are subject to change at
the whim of the manufacturer.  (I'll go out on a limb and say there
are no significant wysiwyg tools in the public domain.  I hope the
Andrew people will forgive me.)  These conditions make it nearly
impossible to write tools, especially tools that provide automatic
indexing and cross-reference support.  The CLiP people have a partial
solution that works for tools that can export text --- they plant tags
and delimiters throughout the document that enable the reordering
transformation (``tangling'').

People use TeX, roff, and HTML because free implementations of these
tools are widely available on a variety of platforms.  TeX and HTML
are well documented, and TeX and roff are stable.  TeX is the most
portable.  I think I have just answered the FAQ ``how come all these
tools use TeX, anyway?'' :-)

Norman Ramsey


= ======================================================================

* 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


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

- CWEBx3.0:
-----------

Developer:	Marc van Leeuwen
Version:	Unknown
Hardware:	Any system using ASCII code
Languages:	ANSI C
Formatter:	Plain TeX
Availability:	Anonymous ftp from:
             	  ftp.cwi.nl/pub/cweb
Readme:		Bundled with above
Brief description:
            A modified implementation of CWEB, with some extensions.
            Provides a mode for full compatibility with Levy/Knuth CWEB.
            The most significant extras are:
            - Typedef declarations affect formatting througout source file
            - Include files are scanned for typedef definitions
            - Flexible selection of layout style
            - Possibility to refer to sections using symbolic labels
            - CTANGLE detects unbalanced braces and parentheses
            - CWEAVE can be made to report syntax errors more easily
            - Some additional mechanisms to avoid formatting problems
            - New and modular set of grammar rules, based on ANSI C syntax
            - Possibility to suppress #line directives
            - A new manual

Support:
            bugs and remarks to M.van.Leeuwen@cwi.nl


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

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


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

- FunnelWeb 3.0AC
-----------------

Developer:      Enhanced by A.B.Coates (coates@physics.uq.edu.au)
                from FunnelWeb v3.0 by Ross N. Williams
                                     (ross@guest.adelaide.edu.au)
Version:        3.0AC
Hardware:       MSDOS, Mac, VMS, Sun, OSF/1, Linux, Sys.V, OS/2.
Languages:      No restrictions.
Formatter:      Tex, LaTeX, or HTML.
Availability:   Anonymous ftp from
                  ftp.physics.uq.oz.au:/pub/funnelwebAC30.tar.gz
Readme:         With bundle above; for FunnelWeb manual see WWW page
        http://www.physics.uq.oz.au:8001/people/coates/funnelweb.html

Description:
  FunnelWeb 3.0AC is an enhanced version of FunnelWeb (see the entry
  for FunnelWeb).  FunnelWeb is designed to be typesetter independent,
  though FunnelWeb v3.0 only supports (La)TeX as the typesetter.
  FunnelWeb 3.0AC also supports HTML, and creates appropriate
  hypertext links within the document among the code sections.
  FunnelWeb 3.0AC also supports automatic and manual insertion of line
  directives, so that compiler errors can be flagged back to the
  original FunnelWeb source file.  FunnelWeb 3.0AC is completely
  compatible with FunnelWeb v3.0 sources (with one minor exception;
  see the file README.ABC which comes with the FunnelWeb 3.0AC
  distribution).

Support:  Supported by A.B.Coates (coates@physics.uq.edu.au), subject
          to the time constraints imposed by his thesis.


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

- 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

The following text was relayed by utcke@tu-harburg.d400.de recently.  A
new entry for this FAQ will eventually be prepared.

NOTICE (June 12, 1995)
  The 1.52 tar file was regenerated.  If your version of that file included
the file web/defaults.mk, you should say `make clean' before beginning the
installation process, or use the new tar file.  

NOTICE (June 10, 1995)
  Version 1.52 is available.  More bug fixes.  1.5x will remain in
beta-testing until about Sept. 1, 1995; further changes are hoped to be
minimal.  If you have previously picked up 1.50 or 1.51, you definitely should
install 1.52 instead.

So it seems there's really 1.5x available for the experienced, patient
and brave --- especially given the following statement (same source):

Version 1.30, which for several years has been declared to be the stable
version of choice, is gradually getting out of date.  I now recommend that
current users try VERY, VERY CAUTIOUSLY to upgrade to v1.50.  Don't do that
the week before a critical deadline.


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

- 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.7a
Hardware:       Unix and DOS platforms.
Languages:      All programming languages.
                Automatic indexing for C, Icon, Standard ML, TeX, Yacc
Formatter:      Plain TeX, LaTeX, and HTML (Mosaic/Netscape) formatters.
Availability:   Anonymous ftp from:
                  CTAN:/web/noweb
                  LPA:/independent
                  Last recourse, use bellcore.com:/pub/norman

Readme:         With bundle above, or see ``Literate Programming
                Simplified,'' IEEE Software, September 1994, pp97-105.

Description:

  noweb is designed to meet the needs of literate programmers while
  retaining the simplest possible input format.  Its primary
  advantages are simplicity, extensibility, and language-independence.
  noweb uses 5 control sequences to WEB's 27.  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 a simple back end for a new text formatter
  can be written in about 50 lines of awk. The primary sacrifice
  relative to WEB is the loss of prettyprinting.

  noweb supports indexing and identifier cross-reference, including
  hypertext ``hot links'' courtesy of Mosaic or Netscape.  noweb
  includes a simple, efficient LaTeX-to-HTML converter, so you can use
  hypertext browsers on your legacy documents.  noweb can also process
  nuweb programs, so you can use noweb to convert a standard nuweb
  program to HTML with one command.

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:        ProTeX 1.1,  AlProTeX 1.4
Hardware:       Any platform with (La)TeX
Languages:      Any language
Formatter:      TeX or LaTeX
Availability:   Anonymous ftp from:
                  ftp.cis.ohio-state.edu : pub/tex/osu/gurari/
                  LPA:/independent
Readme:         With bundle above

Description:   
  + Easy to use
  + Extensible
  + Language independent
  + Multiple output files
  + Fast (single compilation provides output and dvi files)
  + No installation is needed besides copying the files (written in TeX)
  Introduction of main features and examples in pub/tex/osu/gurari/LitProg
  Complete manual in Eitan M. Gurari, "TeX and LaTeX: Drawing and 
  Literate Programming", McGraw-Hill, 1994

Support:        gurari@cis.ohio-state.edu


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

- RWEB
------

Developer:      Unknown
Version:        Unknown
Hardware:       Unknown
Languages:      Unknown
Formatter:      Unknown
Availability:   Anonymous ftp from:
                  LPA:/reduce
Readme:         Unknown
Description:    Web generator in AWK.
Support:        Unknown


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

- SchemeWEB
-----------

Developer:      John D. Ramsdell
Version:        2.1
Hardware:       Unix and DOS platforms
Languages:      Any dialect of Lisp.
Formatter:      LaTeX.
Availability:   The Unix version is in the Scheme Repository and it is
                available via anonymous ftp from:
                  cs.indiana.edu:/pub/scheme-repository/utl/schemeweb.sh
                  LPA:/lisp
                  CTAN:/tex-archive/web/schemeweb
                The DOS version is part of the PCS/Geneva Scheme system
                which is available via anonymous ftp from:
                  cui.unige.ch:/pub/pcs
                  LPA:/machines/ms-dos
Readme:         In bundle with above.

Description:

  SchemeWEB is a Unix filter that allows you to generate both Lisp and
  LaTeX code from one source file.  The generated LaTeX code formats
  Lisp programs in typewriter font obeying the spacing in the source
  file. Comments can include arbitrary LaTeX commands.  SchemeWEB was
  originally developed for the Scheme dialect of Lisp, but it can easily
  be used with most other dialects.

Support:        Bug reports to ramsdell@mitre.org.


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

- SpideryWEB
------------

Developer:      Norman Ramsey <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.4
Hardware:       DOS, OS/2, Unix (gcc) - CWEB source included
Languages:      C, C++
Formatter:      TeX
Availability:   Anonymous ftp from
                  CTAN:/web/c_cpp/c2cweb
Readme:         In distribution.

Description:

  c2cweb will transform plain C or C++ code into a CWEB file to get a
  pretty formatted output. A modified CWEAVE (which transforms the CWEB
  file into a TeX file, see below) is included also.


Support:        Werner Lemberg <a7621gac@awiuni11.bitnet>




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

- c2man
-------

language:       C, nroff, texinfo, latex, html
package:        c2man
version:        2.0 patchlevel 33
parts:          documentation generator (C -> nroff -man, -> texinfo, ->latex,
                -> html)
author:         Graham Stoney <greyham@research.canon.oz.au>
location:       ftp from any comp.sources.misc archive, in volume42
                (the version in the comp.sources.reviewed archive is obsolete)
                ftp /pub/Unix/Util/c2man-2.0.*.tar.gz from dnpap.et.tudelft.nl
    Australia:  ftp /usenet/comp.sources.misc/volume42/c2man-2.0/*
                from archie.au
    N.America:  ftp /usenet/comp.sources.misc/volume42/c2man-2.0/*
                from ftp.wustl.edu
    Europe:     ftp /News/comp.sources.misc/volume42/c2man-2.0/*
                from ftp.irisa.fr
    Japan:      ftp /pub/NetNews/comp.sources.misc/volume42/c2man-2.0/*
                from ftp.iij.ad.jp
    Patches:    ftp pub/netnews/sources.bugs/volume93/sep/c2man* from lth.se
description:    c2man is an automatic documentation tool that extracts comments
                from C source code to generate functional interface
                documentation in the same format as sections 2 & 3 of the Unix
                Programmer's Manual. It requires minimal effort from the
                programmer by looking for comments in the usual places near the
                objects they document, rather than imposing a rigid
                function-comment syntax or requiring that the programmer learn
                and use a typesetting language. Acceptable documentation can
                often be generated from existing code with no modifications.
conformance:    supports both K&R and ISO/ANSI C coding styles
features:       + generates output in nroff -man, TeXinfo, LaTeX or HTML
format
                + handles comments as part of the language grammar
                + automagically documents enum parameter & return values
                + handles C (/* */) and C++ (//) style comments
                - doesn't handle C++ grammar (yet)
requires:       yacc/byacc/bison, lex/flex, and nroff/groff/texinfo/LaTeX.
ports:          Unix, OS/2, MSDOS, VMS.
portability:    very high for unix, via Configure
status:         actively developed; contributions by users are encouraged.
discussion:     via a mailing list: send "subscribe c2man <Your Name>" (in the
                message body) to listserv@research.canon.oz.au
help:           from the author and other users on the mailing list:
                c2man@research.canon.oz.au
announcements:  patches appear first in comp.sources.bugs, and then in
                comp.sources.misc.
updated:        1994/10/07


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

- cnoweb
--------

Developer:      Jim Fox
Version:        1.4 (January 4, 1991)
Hardware:       Anything with C and TeX.
Languages:      C
Formatter:      Plain TeX.
Availability:   Anonymous ftp from:
                  CTAN
                  LPA:/c.c++
Readme:         Unknown, cnoweb.tex contains documentation.

Description:

  cnoweb is as it's name describes: write C, not web.  No tangling or
  weaving is implemented.  Documentation (between standard /* */
  delimiteres) is written in TeX.  cnoweb provides typesetting of
  documentation, an table of contents of routines, and pretty-printing
  of C source.

Support:        None known.


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

- Fold2Web
----------

Developer:      Bernhard Lang <lang@tu-harburg.d400.de>
Version:        V0.8
Hardware:       MSDOS
Languages:      All (must allow comment lines)
Formatter:      LaTeX
Availability:   Anonymous ftp from: 
                  kirk.ti1.tu-harburg.de (134.28.41.50)
                    /pub/fold2web/readme
                    /pub/fold2web/fold2web.zip
Readme:         In distribution

Description:

  The idea behind the Fold2Web tool is the following: A programmer can
  write his program source with a folding editor and later map the
  folded source files automatically to WEB-files. The generated WEB-files
  can then be modified by inserting required documentations.
  
  The advantage by starting program developement with original sources is
  to get short design cycles during the compile/debug steps. By using a
  folding editor the global structuring information can be already
  captured in folds during this developement phase. Fold information is
  typically stored in comment lines and thus will not affect the
  efficiency of the compile/debug design cycle.
  
  Some folding editors and a folding mode for the emacs are available
  (e.g. see our FUE folding editor for MSDOS machines which is a modified
  micro emacs. Pick it at kirk in directory /pub/fold2web).
  
  After reaching a stable version of a program source its time to convert
  the source file to a WEB-file and do the program documentation.
  Fold2Web is written to convert folded source text of any programming
  language to nuweb files. The folded structure is kept by mapping folds
  to scraps. Fold markers which differ between languages due to different 
  ways of specifying comments can be configured for each language.
  
  Good results can also achived when given but poor documented program
  sources have to be modified. Such sources can be folded using a folding
  editor to extract the global structures. This offers a global view to
  the program structures and help to understand its functionality.
  Furthermore the program code is not affected, only comment lines are
  inserted. Once folded the program source can be automatically
  translated to a WEB document using the above tool.

Support:   email to lang@tu-harburg.d400.de


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

- Funnelweb Mode
----------------

Developer:      Daniel Simmons <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 bruce@liverpool.ac.uk


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

- nuweb.el
----------

Developer:      Dominique de Waleffe <ddw@acm.org>
Version:        1.99
Availability:   Anonymous ftp from:
                  LPA
                  CTAN

Description:

  Provides a major mode extending Auctex for editing nuweb files. Main
  features (in 2.0):
   	- Edit scrap bodies in a separate buffer in a different mode
      (selected using emacs defaults for files, specific indication
      -*-mode-*-, or a buffer-local variable)
	  - Extends Auctex commands so that nuweb is called before LaTeX,
	  - Easy navigation on scrap definition and use points.
	  - Now creates an imenu (C-M-mouse1) with user index entries, macro
      definition positions and file definition positions.

Support:        Email to ddw@acm.org

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

- 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:80/user/projects/LitProg.html

If you aren't connected to WWW, telnet to info.cern.ch and explore.
You can reach Marcus' literate programming pages by typing:

  go http://info.desy.de:80/user/projects/LitProg.html

or use a WWW browser and access the URL

  ftp://rtfm.mit.edu/pub/usenet/news-answers/www/resources/literate-programming

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:80/user/projects/LitProg.html
to retrieve the LitProg library page.   A help file can be retrieved by
sending a message to the list server above with the text
  HELP
in the body of the message.  Instructions will be returned by email. For
literate programming documents, you can try anonymous ftp to
rtfm.mit.edu and retrieve the official Usenet resource file

  /pub/usenet/news.answers/www/resources/literate-programming


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

- TeX Resources
---------------

Another resource of interest to literate programmers is the info-tex
mailing list.  If you're using (La)TeX as your typsetting system and
have access to internet, then you should investigate this mailing list.
Mail list service is available through the SHSU list-server.  To
subscribe, send a message to LISTSERV@SHSU.EDU, and include in the
message one line of text:

    SUBSCRIBE INFO-TEX "your name in quotes"

The list is unmoderated; messages sent to info-tex@shsu.edu are
automatically distributed to all subscribers and cross-posted to
comp.text.tex.

Archives of the mailing list and newsgroup are maintained on
niord.shsu.edu [192.92.115.8] in the directory info-tex.

Another reason the TeX resources should be important is that so many of
the literate programming tools rely on either plain TeX or LaTeX as
their text formatter.  (La)TeX software systems exist for most computing
platforms.  These systems can be found on CTAN and other major archive
sites.  Use archie to find them or simply ftp to one of the CTAN
sites and browse.


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

- Virtual Coursework
--------------------

Marcus Speh plans an introductory course on Literate Programming on the
Internet, part of the first semester of "Global Network Academy" [GNA],
a non-profit corporation incorporated in the state of Texas, affilated
with the Usenet University project. The texts/sample programs for this
class will be made available via the World-Wide Web. A special room on GNA
Virtual Campus will be staffed by a consultant in one to two hour
shifts.  Students with questions can telnet to the virtual campus and
ask questions of the staff there.  If you are interested in
registering for the course either as a student or as a consultant,
please contact marcus@x4u.desy.de. You will receive a standard reply
message; no further action will be taken until June 94.  Interested
parties can check the hypertext notes for the completed C++ Course done in
a similar fashion, at URL http://info.desy.de:80/pub/uu-gna/html/cc/index.html

[Editor's note: Because of workload, Marcus requests that email
inquiries be limited to a statement of interest for either a student or
consultant position until June 1994.]


= ======================================================================

* Are there any code examples?
------------------------------

Examples of web programs are included with the FWEB, CWEB, and noweb
distributions.  nuweb is written in itself.

Cameron Smith converted the K&R calculator program into a literate
program.   It can be retrieved by anonymous ftp from:
  niord.shsu.edu [192.92.115.8] directory kr-cweb-sample as
    krcwsamp.zip
  or from
    LPA/Documentation

Ross Williams has released a funnelweb example.  You can retrieve this
file from node ftp.adelaide.edu.au [129.127.40.3] as
  /pub/funnelweb/examples/except.*
This file should be on CTAN as well.

Lee Wittenberg has posted a few litprog examples.  They are available
via anonymous ftp from:
  bart.kean.edu:/pub/leew/samples.LP

The Stanford GraphBase is a large collection of programs by Don Knuth for
doing all kinds of computations and games with graphs; it is written in
(Levy/Knuth) CWEB. More details in the distribution.  It is available
via anonymous ftp from:
  labrea.stanford.edu:/pub/sgb


= ======================================================================

* Bibliographies
----------------

Nelson Beebe has collected an extensive bibliography treating literate
programming.  His work is available for anonymous ftp from
ftp.math.utah.edu [128.110.198.2] in directory /pub/tex/bib as files:
    litprog.bib
    litprog.ltx
    litprog.twx.
Although I have not verified this, LPA is an alternate source for these
files.  Note that they are updated frequently (Nelson says several times
each week), so be sure to get a fresh copy before extensive use.
Joachim Schrod indicates that these files may be updated daily and can
be retrieved via anonymous ftp at LPA/documentation.


= ======================================================================

* How to anonymously ftp
------------------------

Pretty much everything mentioned here is available by anonymous FTP.
FAQ lists cross-posted to news.answers and rec.answers can be gotten
from rtfm.mit.edu [18.181.0.24], under /pub/usenet/news.answers or under
/pub/usenet/more.specific.group.name

"anonymous FTP" is just a way for files to be stored where anyone
can retrieve them over the Net.    For example, to retrieve the
latest version of the literate programming FAQ, do the following:

> ftp rtfm.mit.edu              /* connect to the site; message follows */
> anonymous                     /* type this when it asks for your name */
> <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, 08 Aug 1995 06:32:21 CDT
Sender: owner-litprog@SHSU.edu
From: lynbech@xenon.daimi.aau.dk (Christian Lynbech)
Reply-To: LitProg@SHSU.edu, lynbech@XENON.DAIMI.AAU.DK
Subject: Noweb on LUV'95 (*not* "No web" :-)
Date: 08 Aug 1995 06:53:29 GMT
Message-ID: <LYNBECH.95Aug8085329@xenon.daimi.aau.dk>
To: LitProg@SHSU.EDU

I just happened to notice that there is an article on noweb in the
upcoming LUV'95 (Lisp Users and Vendors) conference.

Nice to see the word get spread around.


------------------------------------------------------------------------------
Christian Lynbech       (R0.33) | Hit the philistines three times over the 
phone: +45 8942 3217            | head with the Elisp reference manual.
email: lynbech@daimi.aau.dk     |       - petonic@hal.com (Michael A. Petonic)
------------------------------------------------------------------------------
================================================================================
Archive-Date: Thu, 10 Aug 1995 13:00:58 CDT
Sender: owner-litprog@SHSU.edu
From: Jim Fox <fox@cac.washington.edu>
Reply-To: LitProg@SHSU.edu, fox@CAC.WASHINGTON.EDU
Subject: cnoweb
Date: 10 Aug 1995 17:41:27 GMT
Message-ID: <40dgc7$15v@nntp5.u.washington.edu>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
To: LitProg@SHSU.EDU

I just saw a reference in the FAQ to my cnoweb TeX macros.  
The information is a little out of date so here is a correction.

cnoweb was first described in TugBoat, Vol 11, No 4, and fills
an otherwise unoccupied niche.  It is for those people who want
to write literate programs, but must stick with C.


- cnoweb
--------

Developer:      Jim Fox (University of Washington)  
Version:        1.6 (March 17, 1992)
Hardware:       Anything with C and TeX.
Languages:      C
Formatter:      Plain TeX.
Availability:   Anonymous ftp from:
                   ftp.u.washington.edu
                     /pub/tex/cnoweb/...
Readme:         In distribution

Description:

  cnoweb is as it's name describes: is C, not web.  No tangling or
  weaving is involved.  Documentation (between standard /* */
  delimiters) is written in TeX.  cnoweb provides typesetting of
  documentation, a table of contents, and pretty-printing of C source.

Support:        Send any bugs or comments to: fox@u.washington.edu

================================================================================
Archive-Date: Thu, 10 Aug 1995 16:12:48 CDT
Sender: owner-litprog@SHSU.edu
From: avra@indirect.com (ALLAN M. BERNSTEIN)
Reply-To: LitProg@SHSU.edu, avra@INDIRECT.COM
Subject: Further Develop My "What Means What" Software
Date: Thu, 10 Aug 1995 13:55:50 mountain
Message-ID: <avra.71.051A5529@indirect.com>
Keywords: Common Lisp
To: LitProg@SHSU.EDU

I have put eight years into a project which names words in relation to each other
 by similarity of conceptual content, according to a ruler of concepts. 
Only when concepts are expressed in common units can they be 
effectively compared. Based on this I have About 50 pages of lisp code, and 
three working programs. 

Specificlly one of the programs replaces words with lists of their potential 
meanings, in order of context appropriateness. Another rearranges a second 
sentence (below the first sentence), so that its concepts (doesn't matter if 
two languages)  best correspond with the concepts of the other. It also can 
assume the sentences are each opinions expressed most important concept first, 
then it generates intermediate opinions. This program can compromise 
conflicting opinions obtained from different expert systems if the data is 
provided in the correct simple format. I think a compromise opinion between 
two experts is usually better than either one. This process goes on 
correspondingly in thinking. A third program compromises any number of 
opinions, and ( in a way that does not allow any person to overweight the 
value of his or her opinion) converts the point allocations representing 
those opinions into unbiased cash allocations for projects etc..

Each of these works excellently, thanks to endless effort. 
With the help of a better programer ( I am self taught and don't know IO
or how to print out Permutations and combinations),  I could implement my
inspirations a lot faster. I'm concerned about losing acknowledgement for my 
work, but  would love to share credit and ideas; and there should  be 
money from it, but to me thats not as important as continuing the project  
( thought processing ). Thanks for your interest. 

Almost anyone who is interested in AI would find these 
programs interesting. But, for security reasons, I don't at this time want to 
send them across the net . Thats why I want to meet lisp programers who live 
in Albuquerque. Avra!!   
================================================================================
Archive-Date: Fri, 11 Aug 1995 04:39:05 CDT
Sender: owner-litprog@SHSU.edu
From: a.gawthrope@paddocks.demon.co.uk
Subject: Dr Dobbs Journal - Where in the UK?
Date: Fri, 11 Aug 1995 09:34:52 GMT
Message-ID: <808133692.7806@paddocks.demon.co.uk>
Reply-To: LitProg@SHSU.edu, a.gawthrope@paddocks.demon.co.uk
To: LitProg@SHSU.EDU


I have been getting the monthly copies of this magazine from W.H.Smiths
in the UK but having recently moved to Scarborough can no longer get hold
of it.

Does anyone know who imports the magazine into the UK or where I can get
hold of a regular monthly supply ?

Thanks in advance...

----
RGDS

Andrew Gawthrope MIAP
a.gawthrope@paddocks.demon.co.uk


================================================================================
Archive-Date: Fri, 11 Aug 1995 12:31:37 CDT
Sender: owner-litprog@SHSU.edu
From: Mark Clements <Mark@mabsy.demon.co.uk>
Subject: Re: MS-DOS BATCH PROGRAMMING
Date: Fri, 11 Aug 95 14:25:52 GMT
Message-ID: <808151152snz@mabsy.demon.co.uk>
Reply-To: LitProg@SHSU.edu, Mark@mabsy.demon.co.uk
To: LitProg@SHSU.EDU

In article <3vjdcj$ps5@asbe05.phx1.aro.allied.com>
           akirk@gcrex.trt.allied.com writes:

>     I have a question involving DOS BATCH programming.  I am writing a DOS BATCH> program which requires to know the number of files in a given directory.  The
> BATCH file will always be invoked from within the directory which has the files
> I need to count.  Does anyone know of a system level call that can be performed
> from within a .BAT file while running to do this?  After the number of files is
> returned, I then want to perform a loop using this variable as a counter.  The 
> counter will always be 1 higher than needed since I do not need to include the
> BAT file itself.

I am not sure what you want to do with this, but if it is just
for a loop, investigate the FOR ... IN ... DO command.  I don't know
when it was introduced, but it's in DOS 6, and seems to be able to do
the job.  I'm not sure whether it can cope with long loops though... ?

-- 
                                                   ___ ,';_,-,__
       Writing is just backwards reading.        /~_ ,','  |O|,:,\,
       Reading is just clever seeing.          /  /,',' /--|_|-;:;|
       Seeing is believing.                   (  )',_) )       ):;)
       To write, you must believe...           >\,(__ /       /:;;|
                                   :...Mark...//~            /:;:;:\
================================================================================
Archive-Date: Tue, 15 Aug 1995 13:58:00 CDT
Sender: owner-litprog@SHSU.edu
From: GummShoes@msn.com (Jorge Otamendi)
Reply-To: LitProg@SHSU.edu, GummShoes@MSN.COM
Subject: Re: MS-DOS BATCH PROGRAMMING
Date: 14 Aug 95 02:20:51 -0700
Message-ID: <00001b4a+0000013f@msn.com>
To: LitProg@SHSU.EDU

Use the DIR command and direct it to the FIND /C.
Example:
DIR *.* | FIND /C "." > OUTPUT
================================================================================
Archive-Date: Tue, 15 Aug 1995 18:15:26 CDT
Sender: owner-litprog@SHSU.edu
Date: Tue, 15 Aug 1995 19:15:23 -0400 (EDT)
From: BRITTAINK@delphi.com
Reply-To: LitProg@SHSU.edu, BRITTAINK@DELPHI.COM
Subject: unsubscribe
To: LitProg@SHSU.edu
Message-ID: <01HU42YAVQLU8Y9MZY@delphi.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-Transfer-Encoding: 7BIT

UNSUBSCRIBE BRITTAINK@Delphi.com
================================================================================
Archive-Date: Wed, 16 Aug 1995 08:36:21 CDT
Sender: owner-litprog@SHSU.edu
From: steve@hubcap.clemson.edu ("Steve" Stevenson)
Reply-To: LitProg@SHSU.edu, steve@HUBCAP.CLEMSON.EDU
Subject: Pure ascii filter for noweb?
Date: 16 Aug 1995 12:37:56 GMT
Message-ID: <40sor4$dqk@hubcap.clemson.edu>
To: LitProg@SHSU.EDU

I want to use noweb in some low level classes (held on Unix systems)
and don't feel that this audience can deal with LaTeX due to time
constraints. Is there a filter that would put out something like
nroff?

BTW, an alternative is to have them use html interface, but that still
makes paper transfer difficult.

Any thoughts greatly appreciated.

steve

-- 
Steve (really "D. E.") Stevenson           steve@hubcap.clemson.edu
Department of Computer Science,            (803)656-5880.mabell
Clemson University, Clemson, SC 29634-1906
Wanted: Sterbenz, P. Floating Point Computation
================================================================================
Archive-Date: Wed, 16 Aug 1995 09:51:42 CDT
Sender: owner-litprog@SHSU.edu
Date: Wed, 16 Aug 95 10:51:27 EDT
From: Lee Wittenberg <leew@pilot.njin.net>
Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET
To: LitProg@SHSU.edu, steve@hubcap.clemson.edu
Subject: Re: Pure ascii filter for noweb?
Message-ID: <CMM-RU.1.4.808584687.leew@pilot.njin.net>

Steve (really "D. E.") Stevenson writes:

> I want to use noweb in some low level classes (held on Unix systems)
> and don't feel that this audience can deal with LaTeX due to time
> constraints. Is there a filter that would put out something like
> nroff?

Not that I know of, but I know that many people have been interested
in a n/troff backend.  You can always write your own (see the noweb
Hacker's Guide).

Actually, the amount of LaTeX needed for writing a web is minimal, and
will fit on less than a page, along with the command line information
about notangle & noweave.  A couple of years ago, I had to come up
with this "minimal" subset when I was trying to get folks at Tipton
Cole + Co. to use noweb.  What got them started was this minimal list,
and a skeleton web that they could build on.

		-- Lee

------------------------------------------------------------------------
Lee Wittenberg              | If, indeed, we could not afford to educate
Computer Science Department | everybody, we should choose the coarsest
Kean College of New Jersey  | and dullest by nature, rather than the 
Union, NJ   07083           | brightest, to receive what education we
                            | could give.  The naturally refined and
                            | intellectual can better dispense with aids
                            | to culture than those less fortunate in
                            | natural endowments.
                            | 
                            | -- Edward Bellamy
leew@pilot.njin.net         |    "Looking Backward" (1888)
------------------------------------------------------------------------
================================================================================
Archive-Date: Wed, 16 Aug 1995 11:39:52 CDT
Sender: owner-litprog@SHSU.edu
From: Yvonne Mqadi <Yvonne@starwolf.demon.co.uk>
Subject: C++ PROGRAMMING LANGUAGE DISCUSSIONS
Date: Wed, 16 Aug 1995 15:56:15 GMT
Message-ID: <354272926wnr@starwolf.demon.co.uk>
Reply-To: LitProg@SHSU.edu, Yvonne@starwolf.demon.co.uk
To: LitProg@SHSU.EDU

To Whom it may concern,

I would like to know the C++ programming language better, as I 
wish to develop my expertise and boost my confidence in it.

If you have familiarity with the C++ programming language and 
would like to discuss it with me, please do not hesitate to 
contact me, by Email, at: Yvonne@starwolf.demon.co.uk.

Thank you in advance.

Crystal
================================================================================
Archive-Date: Wed, 16 Aug 1995 16:00:34 CDT
Sender: owner-litprog@SHSU.edu
From: nr@cs.purdue.edu (Norman Ramsey)
Reply-To: LitProg@SHSU.edu, nr@CS.PURDUE.EDU
Subject: Re: Pure ascii filter for noweb?
Date: 16 Aug 1995 15:49:59 -0500
Message-ID: <40tlln$d2g@labrador.cs.purdue.edu>
CC: Steve <steve@hubcap.clemson.edu>
To: LitProg@SHSU.EDU

In article <40sor4$dqk@hubcap.clemson.edu>,
Steve <steve@hubcap.clemson.edu> wrote:
>I want to use noweb in some low level classes (held on Unix systems)
>and don't feel that this audience can deal with LaTeX due to time
>constraints. Is there a filter that would put out something like
>nroff?

The current version of noweb (2.7b) has a toascii filter (contributed
by Phil Bewig) in the lib directory.  There are various rough spots,
but `noweave -backend toascii' should work well enough.

>BTW, an alternative is to have them use html interface, but that still
>makes paper transfer difficult.

For single source files, the html stuff works very well.  I use the
print option on the browser (or lynx -dump) to get postscript (or
ascii).   I sure wish I could get a plain, simple html->postscript
filter (plus about a million other html tools).

Norman

P.S. I can't get a response from the CTAN management, so you'll have
to get 2.7b from ftp.cs.purdue.edu:pub/nr.  2.7a, which is on CTAN,
has toascii also, I believe.
-- 
        ``They who can give up essential liberty to obtain a little temporary
          safety deserve neither liberty nor safety.'' --- B. Franklin
Norman Ramsey                 I support the Phil Zimmermann Legal Defense Fund.
nr@cs.purdue.edu             (zldf@clark.net  http://www.netresponse.com/zldf)
================================================================================
Archive-Date: Thu, 17 Aug 1995 10:13:40 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: noweb: Use more of 8 1/2 by 11 paper, Not small book size margins?
Date: 17 Aug 1995 09:39:18 -0500
Message-ID: <ovg2j04msp.fsf@zoyd.ae.utexas.edu>
To: LitProg@SHSU.EDU


I have just started using noweb. (version 2.7a).  while I like a lot of
the features, I don't see how to change the margins that noweb uses.
It appears to me that it uses margins appropriate for a book.  Is it
possible to have the latex output have approximately 1 inch margins
instead of the default 1.5 to 2 inch margins.


-- 

______________________________________________________________________________
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, 17 Aug 1995 13:46:02 CDT
Sender: owner-litprog@SHSU.edu
From: nr@cs.purdue.edu (Norman Ramsey)
Reply-To: LitProg@SHSU.edu, nr@CS.PURDUE.EDU
Subject: Re: noweb: Use more of 8 1/2 by 11 paper, Not small book size margins?
Date: 17 Aug 1995 13:32:09 -0500
Message-ID: <4101v9$fgt@labrador.cs.purdue.edu>
CC: 
To: LitProg@SHSU.EDU

In article <ovg2j04msp.fsf@zoyd.ae.utexas.edu>,
Robert T. McLay <mclay@cfdlab.ae.utexas.edu> wrote:
>I have just started using noweb. (version 2.7a).  while I like a lot of
>the features, I don't see how to change the margins that noweb uses.
>It appears to me that it uses margins appropriate for a book.  Is it
>possible to have the latex output have approximately 1 inch margins
>instead of the default 1.5 to 2 inch margins.

This is a common complaint about latex.  It has nothing particularly
to do with noweb.  There may be a `fullpage.sty' file floating around
(try the CTAN index) that creates smaller margins.  Alternatively, you
can grub around in \textwidth and all the other horrid page-layout
parameters.

Norman Ramsey
-- 
        ``They who can give up essential liberty to obtain a little temporary
          safety deserve neither liberty nor safety.'' --- B. Franklin
Norman Ramsey                 I support the Phil Zimmermann Legal Defense Fund.
nr@cs.purdue.edu             (zldf@clark.net  http://www.netresponse.com/zldf)
================================================================================
Archive-Date: Thu, 17 Aug 1995 13:47:34 CDT
Sender: owner-litprog@SHSU.edu
Date: Thu, 17 Aug 95 14:36:38 EDT
From: Lee Wittenberg <leew@pilot.njin.net>
Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET
To: LitProg@SHSU.edu, mclay@cfdlab.ae.utexas.edu
Subject: Re: noweb: Use more of 8 1/2 by 11 paper, Not small book size margins?
Message-ID: <CMM-RU.1.4.808684598.leew@pilot.njin.net>

Robert McLay writes:

> I have just started using noweb. (version 2.7a).  while I like a lot of
> the features, I don't see how to change the margins that noweb uses.
> It appears to me that it uses margins appropriate for a book.  Is it
> possible to have the latex output have approximately 1 inch margins
> instead of the default 1.5 to 2 inch margins.

noweb uses the default LaTeX margins for whichever style (or class)
you are using.  You can change them by changing the values of
\oddsidemargin, \evensidemargin, and \textwidth in the preamble of
your document.  However, I don't advise doing it, particularly to have
1 inch margins.  

The LaTeX margins are chosen to provide approx. 60 characters/line
when typeset, which studies have shown is optimal for reading text.
Any more than that causes severe drops in comprehension.  1 inch
margins with a pica typewriter produce a 60-character line, which is
why you were expecting them, even in a typeset document.

If you really want thinner margins, use a larger font size (e.g., the
12pt option).  LaTeX will generate smaller margins, but maintain the
60 chars/line.

		-- Lee

------------------------------------------------------------------------
Lee Wittenberg              | If, indeed, we could not afford to educate
Computer Science Department | everybody, we should choose the coarsest
Kean College of New Jersey  | and dullest by nature, rather than the 
Union, NJ   07083           | brightest, to receive what education we
                            | could give.  The naturally refined and
                            | intellectual can better dispense with aids
                            | to culture than those less fortunate in
                            | natural endowments.
                            | 
                            | -- Edward Bellamy
leew@pilot.njin.net         |    "Looking Backward" (1888)
------------------------------------------------------------------------
================================================================================
Archive-Date: Fri, 18 Aug 1995 13:52:59 CDT
Sender: owner-litprog@SHSU.edu
From: weiqigao@crl.com (Weiqi Gao)
Reply-To: LitProg@SHSU.edu, weiqigao@CRL.COM
Subject: Re: C++ PROGRAMMING LANGUAGE DISCUSSIONS
Date: 18 Aug 1995 06:11:53 GMT
Message-ID: <411av9$1l1@nntp.crl.com>
MIME-Version: 1.0
To: LitProg@SHSU.EDU

In article <354272926wnr@starwolf.demon.co.uk>, Yvonne@starwolf.demon.co.uk 
says...
>
>To Whom it may concern,
>
>I would like to know the C++ programming language better, as I 
>wish to develop my expertise and boost my confidence in it.
>
>If you have familiarity with the C++ programming language and 
>would like to discuss it with me, please do not hesitate to 
>contact me, by Email, at: Yvonne@starwolf.demon.co.uk.
>
>Thank you in advance.
>
>Crystal

Good!  Let's do it here.  Nothing else happens anyway.  :)

================================================================================
Archive-Date: Fri, 18 Aug 1995 18:33:46 CDT
Sender: owner-litprog@SHSU.edu
From: theneato1@aol.com (The neato1)
Subject: C Programming
Date: 18 Aug 1995 10:03:32 -0400
Message-ID: <4126jk$62f@newsbf02.news.aol.com>
Reply-To: LitProg@SHSU.edu, theneato1@aol.com (The neato1)
To: LitProg@SHSU.EDU

If anyone here has any level knowlege of ANSI C I would be overjoyed if
you would agree to discuss the C Language with me. Also, if you have any
documentation on C or C++ I would be more then happy if you send it to me.
                                Thanks,
                                    The neato1@aol.com
================================================================================
Archive-Date: Sat, 19 Aug 1995 17:00:00 CDT
Sender: owner-litprog@SHSU.edu
From: johnbach@net (Restrict)
Reply-To: LitProg@SHSU.edu, johnbach@NET
Subject: Government Restricts Internet!!
Date: Sat, 19 Aug 1995 21:49:32 GMT
Message-ID: <415m6i$6u3@ixnews4.ix.netcom.com>
To: LitProg@SHSU.EDU





SPEAK UP AMERICA -- MAKE YOUR VOTE COUNT


Question:  Should the United States Government interfere and put 
           restrictions on the use of the Internet??


CALL:  1-900-945-5600  ext  163  and cast your vote.

Cost:  $1.98 per call (NOT per minute)  Call Today

       Must be 18+/Touch Tones Only

       InfoService/Studio City, CA/213-993-3366


Results of this survey will be compiled and sent to members of 
the House and Senate.  Thank you for casting your vote and for 
making your voice heard.


================================================================================
Archive-Date: Sun, 20 Aug 1995 10:32:38 CDT
Sender: owner-litprog@SHSU.edu
From: tyen@netcom.com (Anthony Yen)
Reply-To: LitProg@SHSU.edu, tyen@NETCOM.COM
Subject: Literate Programming GUI?
Date: Sun, 20 Aug 1995 10:21:00 -0500
Message-ID: <tyen-2008951021000001@lestat.tkg.com>
To: LitProg@SHSU.EDU

I've been giving some thought to a literate programming GUI, and would
like to hear what others have come up with.  I'll start off by saying that
I believe that Knuth's "expository mode" should be expanded.  An LP
environment should allow groupware-like processes, with annotations,
hypertext links, views (show/hide various levels of commenting), version
control, and feedback from the entire spectrum of the development process
(design, implementation, testing, user feedback).  Two to three years ago
I heard about an ambitious project underway at Chevron that had some of
these points as its goals, but ever since then I haven't heard of anyone
else trying to do the same thing.  Comments?
-- 
Anthony Yen <tyen@netcom.com>                           Austin, Texas, USA
================================================================================
Archive-Date: Sun, 20 Aug 1995 12:05:04 CDT
Sender: owner-litprog@SHSU.edu
From: kdj@mindspring.com (Kristopher Johnson)
Reply-To: LitProg@SHSU.edu, kdj@MINDSPRING.COM
Subject: Re: Literate Programming GUI?
Date: Sun, 20 Aug 1995 12:50:16 -0400
Message-ID: <kdj-2008951250160001@kdj.mindspring.com>
To: LitProg@SHSU.EDU

In article <tyen-2008951021000001@lestat.tkg.com>, tyen@netcom.com
(Anthony Yen) wrote:

> I've been giving some thought to a literate programming GUI, and would
> like to hear what others have come up with.  I'll start off by saying that
> I believe that Knuth's "expository mode" should be expanded.  An LP
> environment should allow groupware-like processes, with annotations,
> hypertext links, views (show/hide various levels of commenting), version
> control, and feedback from the entire spectrum of the development process
> (design, implementation, testing, user feedback).  Two to three years ago
> I heard about an ambitious project underway at Chevron that had some of
> these points as its goals, but ever since then I haven't heard of anyone
> else trying to do the same thing.  Comments?
> -- 
> Anthony Yen <tyen@netcom.com>                           Austin, Texas, USA

I think that OpenDoc support would be a great thing for the expository
mode, allowing one to add pictures, sounds, movies, interactive demos,
hypertext links, or whatever.

I'm in the midst of designing an OpenDoc-savvy LP environment for the
Macintosh.  If anyone else is doing something similar, or has any comments
or suggestions, I'd like to hear about them.

-- 
Kristopher Johnson
kdj@mindspring.com
================================================================================
Archive-Date: Sun, 20 Aug 1995 16:45:56 CDT
Sender: owner-litprog@SHSU.edu
Date: Sun, 20 Aug 95 17:46:00 EDT
From: Lee Wittenberg <leew@pilot.njin.net>
Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET
To: LitProg@SHSU.edu, tyen@netcom.com
Subject: Re: Literate Programming GUI?
Message-ID: <CMM-RU.1.4.808955160.leew@pilot.njin.net>

Anthony Yen writes:

> I've been giving some thought to a literate programming GUI, and would
> like to hear what others have come up with.  I'll start off by saying that
> I believe that Knuth's "expository mode" should be expanded.  An LP
> environment should allow groupware-like processes, with annotations,
> hypertext links, views (show/hide various levels of commenting), version
> control, and feedback from the entire spectrum of the development process
> (design, implementation, testing, user feedback).  Two to three years ago
> I heard about an ambitious project underway at Chevron that had some of
> these points as its goals, but ever since then I haven't heard of anyone
> else trying to do the same thing.  Comments?

I don't think that one tool should be expected to do everything.  What
I think we want is an environment that allows third-party tools
(whatever they are) to work together easily.  Unix pipelines allow this
in a text-based environment, but most operating systems do not allow
tools to work together easily.  In addition, most commercial software
environments ("groupware" and other) do not provide the necessary
hooks for third party tools to work with them (and in the USA, it
it not necessarily possible to figure out the hooks yourself legally
-- in Europe it is legal to disassemble a program for the express
purpose of providing an add-on; that's not necessarily true in this
country).

I think the goals of the Oberon project (as I understand them) are
applicable here.  What we need is a user environment that is designed
to be easily extensible, not just for LP, but for the tools to come
that cannot yet be foreseen.

		-- Lee

------------------------------------------------------------------------
Lee Wittenberg              |
Computer Science Department | I believe everything out of the common.
Kean College of New Jersey  | The only thing to distrust is the normal.
Union, NJ   07083           |
                            | -- John Buchan
leew@pilot.njin.net         |    "The 39 Steps" (1915)
------------------------------------------------------------------------
================================================================================
Archive-Date: Mon, 21 Aug 1995 05:40:15 CDT
Sender: owner-litprog@SHSU.edu
From: johnt8347@aol.com (JohnT8347)
Reply-To: LitProg@SHSU.edu, johnt8347@AOL.COM
Subject: Graphics manipulation within C++ Using "WING" & MFC
Date: 21 Aug 1995 00:46:22 -0400
Message-ID: <41932u$4oq@newsbf02.news.aol.com>
To: LitProg@SHSU.EDU

I have run a few experiments using the new WING functions within MFC, but
have run into a wall.  

1.) I need to extract icons from a DLL file.

2.) I need to convert the icons to a bitmap format.

3.) I need to know if there is any way to convert bitmaps to a DLL file.

I am looking for any way to provide high speed screen updates for my
Windows 95 based gaming development using the above mentioned techniques.

Thanks in advance,

JohnT



================================================================================
Archive-Date: Mon, 21 Aug 1995 10:52:15 CDT
Sender: owner-litprog@SHSU.edu
From: Dave Love <d.love@dl.ac.uk>
Reply-To: LitProg@SHSU.edu, d.love@DL.AC.UK
Subject: Re: Literate Programming GUI?
Date: 21 Aug 1995 16:26:07 +0100
Message-ID: <rzqenyf2s8h.fsf@dlpx1.dl.ac.uk>
To: tyen@netcom.com (Anthony Yen)
To: LitProg@SHSU.EDU

>>>>> On Sun, 20 Aug 1995 10:21:00 -0500, tyen@netcom.com (Anthony Yen) said:

 Anthony> I haven't heard of anyone else trying to do the same thing.
 Anthony> Comments?

Language-specific, but perhaps see
http://legend.gwydion.cs.cmu.edu:8001/gwydion/
================================================================================
Archive-Date: Mon, 21 Aug 1995 11:21:49 CDT
Sender: owner-litprog@SHSU.edu
From: Jens Horstmeier <horstmei.abg@sni.de>
Reply-To: LitProg@SHSU.edu, horstmei.abg@SNI.DE
Subject: Interface documentation
Date: 21 Aug 1995 15:57:27 GMT
Message-ID: <41aad7$atk@horus.mch.sni.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
To: LitProg@SHSU.EDU


Hi,

I've been working with both cweave and noweave and I like these tools quite a lot.
There is one point I really miss with them, the abilty to create interface 
specifications out of the input file.

Suppose I am writing a module for a larger project and I am working together with
several other programmers. It would be nice to give them a document, that contains 
all the functions, classes, ... I am exporting to them without the need to give them
the whole implementation doc.

I don't want to have multiple source documents, since this does not really work and the
specification must already be written in the implementation doc anyway.

So my question: Is there a tool to extract specific parts of a literate program to
build up an interface specification. 


Jens Horstmeier

================================================================================
Archive-Date: Mon, 21 Aug 1995 13:12:43 CDT
Sender: owner-litprog@SHSU.edu
Date: Mon, 21 Aug 95 11:13:19 PDT
Message-ID: <v0213050aac5e16205e95@[149.82.61.63]>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
To: LitProg@SHSU.edu, kdj@MINDSPRING.COM
From: kevinpu@attachmate.com (Kevin Purcell)
Reply-To: LitProg@SHSU.edu, kevinpu@ATTACHMATE.COM
Subject: Re: Literate Programming GUI?

>I'm in the midst of designing an OpenDoc-savvy LP environment for the
>Macintosh.  If anyone else is doing something similar, or has any comments
>or suggestions, I'd like to hear about them.
>
>--
>Kristopher Johnson
>kdj@mindspring.com

Great -- I'd been thinking along the same lines for a literate programming
environment for the Mac and OpenDoc seems to be an ideal technology to
apply to this problem. If you'd like to discuss it off the list send me
some private mail.

A rate limiting step to this work is the availiblity of OpenDoc development
parts (i.e. project managers, compilers, linkers, "industrial strength"
editors and so on) to support this kind of development. I don't want to
give up all the advantages of GUI coding and debugging to do LP. And I
don't want to have to provide all the parts either. I suspect Metrowerks
will be thinking about this after CW 7.0.

What work has already been done in this field? Can anyone point me to any
interesting references (paper or on the 'net).

It seems most of the research has been done by people that use non-GUI
environments under Unix so adding a few extra items to the make file is not
a problem. Norman Ramsey's noweb also seems to be a step in the right
direction to freeing LP from WEB's grip.

One problem (as Lee Wittenberg alluded) is that current IDE's are really
"too intergrated". On the Mac an IDE that was scriptable, attachable and
tinkerable would provide and excellent foundation for developing these type
of tools.



Kevin Purcell
kevinpu@attachmate.com
"HTML is the BASIC of the nineties"


================================================================================
Archive-Date: Mon, 21 Aug 1995 21:15:30 CDT
Sender: owner-litprog@SHSU.edu
From: jsisul@cstp.umkc.edu
Reply-To: LitProg@SHSU.edu, jsisul@CSTP.UMKC.EDU
Subject: Literate Programming in Inudstry
Date: 21 Aug 95 14:54:23 -0600
Message-ID: <1995Aug21.145423.1@cstp.umkc.edu>
To: LitProg@SHSU.EDU

Hello,

I've been studying and experimenting with Literate Programming for a few years,
but have not seen it used in a commercial setting.

Are there any studies out there that have examined the success of incorporating
LP into a commercial software development environment?  Do any of you use
LP at work, or know of companies who do?

Any pointers to studies of LP in industry would help me a lot.

Thanks for your help.

--Jim
jsisul@cstp.umkc.edu

================================================================================
Archive-Date: Tue, 22 Aug 1995 08:35:36 CDT
Sender: owner-litprog@SHSU.edu
Date: Tue, 22 Aug 95 9:35:40 EDT
From: Lee Wittenberg <leew@pilot.njin.net>
Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET
To: LitProg@SHSU.edu, jsisul@cstp.umkc.edu
Subject: Re: Literate Programming in Inudstry
CC: gregory@cs.utk.edu
Message-ID: <CMM-RU.1.4.809098540.leew@pilot.njin.net>

Jim (jsisul@cstp.umkc.edu) writes:

> I've been studying and experimenting with Literate Programming for a few years,
> but have not seen it used in a commercial setting.
> 
> Are there any studies out there that have examined the success of incorporating
> LP into a commercial software development environment?  Do any of you use
> LP at work, or know of companies who do?

I don't know of any such studies, but I do know that Tipton Cole+Co.,
in Austin, Texas, makes use of noweb "in a commercial setting".  Carl
Gregory (gregory@cs.utk.edu), who does not (I believe) subscribe to
this group, can give you more information.

Hope this helps.

		-- Lee

------------------------------------------------------------------------
Lee Wittenberg              |
Computer Science Department | I believe everything out of the common.
Kean College of New Jersey  | The only thing to distrust is the normal.
Union, NJ   07083           |
                            | -- John Buchan
leew@pilot.njin.net         |    "The 39 Steps" (1915)
------------------------------------------------------------------------
================================================================================
Archive-Date: Tue, 22 Aug 1995 13:12:12 CDT
Sender: owner-litprog@SHSU.edu
From: thompson@sun1.coe.ttu.edu
Subject: comp.programming.literate FAQ
Date: 22 Aug 1995 16:42:38 GMT
Message-ID: <literate-programming-faq_809109741@rtfm.mit.edu>
Reply-To: LitProg@SHSU.edu, thompson@sun1.coe.ttu.edu
To: LitProg@SHSU.EDU

Archive-name: literate-programming-faq
Last-modified: 1995/06/22
Version: 1.1.16


Welcome to the Literate Programming Frequently Asked Questions List
-------------------------------------------------------------------

This version was created Thursday, 22 June 1995, 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, 1995 by 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?
-----------

+ Updated cwebx3.0.
+ Updated fweb entry (notices added).
+ Added FunnelWeb3.0AC 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
    - CWEBx3.0
    - FunnelWeb
    - FunnelWeb3.0AC
    - FWEB
    - IMPACT
    - lit2x
    - Literate Programmer's Workshop (LPW)
    - MapleWEB
    - MWEB (Schrod/Detig)
    - MWEB (Sewell)
    - noweb
    - nuweb
    - ProTeX
    - RWEB
    - SchemeWEB
    - Spidery WEB
    - WEB
    - WinWordWEB
* Are there other tools I should know about?
    - C2LaTeX
    - c2cweb
    - c2man
    - cnoweb
    - Fold2web
    - FunnelWeb mode
    - noweb.el
    - nuweb.el
    - TIE
    - Web mode
* What other resources are available?
    - World Wide Web
    - TeX Resources
    - Virtual Coursework
* Are there any code examples?
    - Examples included with developer's tools
    - Cameron Smith's KR-CWEB
    - Stanford GraphBase
* Bibliographies.
* How to anonymously ftp.
* Acknowledgements.
* End notes.


= ======================================================================

* How do I get the FAQ?
-----------------------

- Literate Programming FAQ
--------------------------

You have many ways to get a current copy of this FAQ.  One is to use
anonymous ftp (if you don't know how, see a later section in this FAQ)
to connect to one of the Comprehensive TeX Arvchive Network (CTAN) sites
or the Literate Programming Archive and retrieve a copy of the file.
Open an ftp connection to one of the CTAN sites and retrieve the file:

    help/LitProg-FAQ

(For more information on CTAN and the literate programming archive, see
the section below entitled "Internet Nodes of Interest to Literate
Programmers.")

An alternative is to use the fileserver at Sam Houston State University
(SHSU).  Send a message to FILESERV@SHSU.EDU and include in your
message:

    SENDME LITPROG.FAQ

The file server will forward a copy of the file to you via email.


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

- FWEB FAQ
----------

David Coker <coker@astro.sunyit.edu> now maintains the FWEB FAQ.  (We
all owe Marcus Speh a big THANK YOU for maintaining the FWEB FAQ for so
long!)  The current version number is 1.30a.  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).


= ======================================================================

* 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.

Participating hosts in the Comprehensive TeX Archive Network are:
  ftp.dante.de  (Deutschland)         
       -- anonymous ftp                 /tex-archive (/pub/tex /pub/archive)
       -- gopher on node sun.dante.de
       -- e-mail via ftpmail@dante.de
       -- Administrator: <ftpmaint@dante.de>
  ftp.shsu.edu  (Texas, USA)      
       -- anonymous ftp and gopher      /tex-archive (/pub/tex /pub/archive)
       -- NFS mountable from ftp.SHSU.edu:/pub/ftp/tex-archive
       -- e-mail via ftpmail@ftp.SHSU.edu
       -- World Wide Web access on www.SHSU.edu
       -- Administrator: <CTAN-Mgr@SHSU.edu>
  ftp.tex.ac.uk (England)               
       -- anonymous ftp                 /tex-archive (/pub/tex /pub/archive)
       -- gopher on node gopher.tex.ac.uk
       -- NFS mountable from nfs.tex.ac.uk:/public/ctan/tex-archive
       -- World Wide Web access on www.tex.ac.uk
       -- Administrator: <ctan-uk@tex.ac.uk>

A list of CTAN archive sites and their mirrors can be found on:

  ftp.dante.de: /tex-archive/CTAN.sites

I presume that the other CTAN sites mirror this file, but have not checked.
As of my last check (September 1994), it contains:

  "In order to reduce network load, it is recommended that you use the
  Comprehensive TeX Archive Network (CTAN) host which is located in the
  closest network proximity to your site."
  
Known partial mirrors of the CTAN reside on (alphabetically):
  dongpo.math.ncu.edu.tw (Taiwan)       /tex-archive
  ftp.adfa.oz.au (Australia)            /pub/tex/ctan
  ftp.muni.cz (The Czech Republic)      /pub/tex/CTAN
  ftp.cs.ruu.nl (The Netherlands)       /pub/tex-archive
  ftp.uu.net (Virginia, USA)            /pub/text-processing/TeX
  nic.switch.ch (Switzerland)           /mirror/tex

Known mirrors of the CTAN reside on (alphabetically):
  ftp.center.osaka-u.ac.jp (Japan)      /CTAN
  ftp.ccu.edu.tw (Taiwan)               /pub/tex
  ftp.cs.rmit.edu.au  (Australia)       /tex-archive
  ftp.duke.edu (North Carolina, USA)    /tex-archive
  ftp.germany.eu.net (Deutschland)      /pub/packages/TeX
  ftp.gwdg.de (Deutschland)             /pub/dante
  ftp.jussieu.fr (France)               /pub4/TeX/CTAN
  ftp.loria.fr (France)                 /pub/unix/tex/ctan
  ftp.mpi-sb.mpg.de (Deutschland)       /pub4/tex/mirror/ftp.dante.de
  ftp.uni-bielefeld.de (Deutschland)    /pub/tex
  ftp.uni-stuttgart.de (Deutschland)    /tex-archive (/pub/tex)
  ftpserver.nus.sg (Singapore)          /pub/zi/TeX
  src.doc.ic.ac.uk (England)            /packages/tex/uk-tex
  sunsite.unc.edu (North Carolina, USA)	/pub/packages/TeX
  wuarchive.wustl.edu (Missouri, USA)   /packages/TeX


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


Another author (Norman Ramsey) wrote me and asked that his opinions be included in
the FAQ.  What follows are Norman's comments verbatim.

I see it's time for the ``how is literate programming different from
verbose commenting'' question.  Perhaps David Thompson will get this
into the FAQ.  Alert!  What follows are my opinions.  In no way do I
claim to speak for the (fractious) literate-programming community.

How is literate programming different from verbose commenting?

There are three distinguishing characteristics.  In order of
importance, they are:
  - flexible order of elaboration
  - automatic support for browsing
  - typeset documentation, especially diagrams and mathematics

Flexible order of elaboration means being able to divide your source
program into chunks and write the chunks in any order, independent of
the order required by the compiler.  In principle, you can choose the
order best suited to explaining what you are doing.  More subtly, this
discipline encourages the author of a literate program to take the
time to consider each fragment of the program in its proper sphere,
e.g., not to rush past the error checking to get to the ``good
parts.''  In its time and season, each part of the program is a good
part.  (This is the party line; your mileage may vary.)

I find the reordering most useful for encapsulating tasks like input
validation, error checking, and printing output fit for humans --- all
tasks that tend to obscure ``real work'' when left inline.
Reordering is less important when using languages like Modula-3, which
has exceptions and permits declarations in any order, than when using
languages like C, which has no exceptions and requires declaration
before use.


Automatic support for browsing means getting a table of contents,
index, and cross-reference of your program.  Cross-reference might be
printed, so that you could consult an index to look up the definition
of an identifier `foo'.  With good tools, you might get a printed
mini-index on every page if you wanted.  Or if you can use a hypertext
technology, cross-reference might be as simple as clicking on an
identifier to reach its definition.  

Indexing is typically done automatically or `semi-automatically', the
latter meaning that identifier definitions are marked by hand.
Diligently done semi-automatic indexes seem to be best, because the
author can mark only the identifiers he or she considers important,
but automatic indexing can be almost as good and requires no work.
Some tools allow a mix of the two strategies.

Some people have applied literate-programming tools to large batches
of legacy code just to get the table of contents, index, and
cross-reference.  


I don't use diagrams and mathematics very often, but I wouldn't want
to have to live without them.  I have worked on one or two projects
where the ability to use mathematical formulae to document the program
was indispensible.  I also wouldn't like to explain some of my
concurrent programs without diagrams.  Actually I write almost all of
my literate programs using only sections headers, lists, and the
occasional table. 


>Wouldn't it be easier to do one's literate programming using a wysiwyg
>word processor (e.g. Word for Windows) and indicate what is source
>code by putting it in a different font?

The data formats used in wysiwyg products are proprietary, and they
tend to be documented badly if at all.  They are subject to change at
the whim of the manufacturer.  (I'll go out on a limb and say there
are no significant wysiwyg tools in the public domain.  I hope the
Andrew people will forgive me.)  These conditions make it nearly
impossible to write tools, especially tools that provide automatic
indexing and cross-reference support.  The CLiP people have a partial
solution that works for tools that can export text --- they plant tags
and delimiters throughout the document that enable the reordering
transformation (``tangling'').

People use TeX, roff, and HTML because free implementations of these
tools are widely available on a variety of platforms.  TeX and HTML
are well documented, and TeX and roff are stable.  TeX is the most
portable.  I think I have just answered the FAQ ``how come all these
tools use TeX, anyway?'' :-)

Norman Ramsey


= ======================================================================

* 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


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

- CWEBx3.0:
-----------

Developer:	Marc van Leeuwen
Version:	Unknown
Hardware:	Any system using ASCII code
Languages:	ANSI C
Formatter:	Plain TeX
Availability:	Anonymous ftp from:
             	  ftp.cwi.nl/pub/cweb
Readme:		Bundled with above
Brief description:
            A modified implementation of CWEB, with some extensions.
            Provides a mode for full compatibility with Levy/Knuth CWEB.
            The most significant extras are:
            - Typedef declarations affect formatting througout source file
            - Include files are scanned for typedef definitions
            - Flexible selection of layout style
            - Possibility to refer to sections using symbolic labels
            - CTANGLE detects unbalanced braces and parentheses
            - CWEAVE can be made to report syntax errors more easily
            - Some additional mechanisms to avoid formatting problems
            - New and modular set of grammar rules, based on ANSI C syntax
            - Possibility to suppress #line directives
            - A new manual

Support:
            bugs and remarks to M.van.Leeuwen@cwi.nl


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

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


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

- FunnelWeb 3.0AC
-----------------

Developer:      Enhanced by A.B.Coates (coates@physics.uq.edu.au)
                from FunnelWeb v3.0 by Ross N. Williams
                                     (ross@guest.adelaide.edu.au)
Version:        3.0AC
Hardware:       MSDOS, Mac, VMS, Sun, OSF/1, Linux, Sys.V, OS/2.
Languages:      No restrictions.
Formatter:      Tex, LaTeX, or HTML.
Availability:   Anonymous ftp from
                  ftp.physics.uq.oz.au:/pub/funnelwebAC30.tar.gz
Readme:         With bundle above; for FunnelWeb manual see WWW page
        http://www.physics.uq.oz.au:8001/people/coates/funnelweb.html

Description:
  FunnelWeb 3.0AC is an enhanced version of FunnelWeb (see the entry
  for FunnelWeb).  FunnelWeb is designed to be typesetter independent,
  though FunnelWeb v3.0 only supports (La)TeX as the typesetter.
  FunnelWeb 3.0AC also supports HTML, and creates appropriate
  hypertext links within the document among the code sections.
  FunnelWeb 3.0AC also supports automatic and manual insertion of line
  directives, so that compiler errors can be flagged back to the
  original FunnelWeb source file.  FunnelWeb 3.0AC is completely
  compatible with FunnelWeb v3.0 sources (with one minor exception;
  see the file README.ABC which comes with the FunnelWeb 3.0AC
  distribution).

Support:  Supported by A.B.Coates (coates@physics.uq.edu.au), subject
          to the time constraints imposed by his thesis.


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

- 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

The following text was relayed by utcke@tu-harburg.d400.de recently.  A
new entry for this FAQ will eventually be prepared.

NOTICE (June 12, 1995)
  The 1.52 tar file was regenerated.  If your version of that file included
the file web/defaults.mk, you should say `make clean' before beginning the
installation process, or use the new tar file.  

NOTICE (June 10, 1995)
  Version 1.52 is available.  More bug fixes.  1.5x will remain in
beta-testing until about Sept. 1, 1995; further changes are hoped to be
minimal.  If you have previously picked up 1.50 or 1.51, you definitely should
install 1.52 instead.

So it seems there's really 1.5x available for the experienced, patient
and brave --- especially given the following statement (same source):

Version 1.30, which for several years has been declared to be the stable
version of choice, is gradually getting out of date.  I now recommend that
current users try VERY, VERY CAUTIOUSLY to upgrade to v1.50.  Don't do that
the week before a critical deadline.


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

- 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.7a
Hardware:       Unix and DOS platforms.
Languages:      All programming languages.
                Automatic indexing for C, Icon, Standard ML, TeX, Yacc
Formatter:      Plain TeX, LaTeX, and HTML (Mosaic/Netscape) formatters.
Availability:   Anonymous ftp from:
                  CTAN:/web/noweb
                  LPA:/independent
                  Last recourse, use bellcore.com:/pub/norman

Readme:         With bundle above, or see ``Literate Programming
                Simplified,'' IEEE Software, September 1994, pp97-105.

Description:

  noweb is designed to meet the needs of literate programmers while
  retaining the simplest possible input format.  Its primary
  advantages are simplicity, extensibility, and language-independence.
  noweb uses 5 control sequences to WEB's 27.  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 a simple back end for a new text formatter
  can be written in about 50 lines of awk. The primary sacrifice
  relative to WEB is the loss of prettyprinting.

  noweb supports indexing and identifier cross-reference, including
  hypertext ``hot links'' courtesy of Mosaic or Netscape.  noweb
  includes a simple, efficient LaTeX-to-HTML converter, so you can use
  hypertext browsers on your legacy documents.  noweb can also process
  nuweb programs, so you can use noweb to convert a standard nuweb
  program to HTML with one command.

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:        ProTeX 1.1,  AlProTeX 1.4
Hardware:       Any platform with (La)TeX
Languages:      Any language
Formatter:      TeX or LaTeX
Availability:   Anonymous ftp from:
                  ftp.cis.ohio-state.edu : pub/tex/osu/gurari/
                  LPA:/independent
Readme:         With bundle above

Description:   
  + Easy to use
  + Extensible
  + Language independent
  + Multiple output files
  + Fast (single compilation provides output and dvi files)
  + No installation is needed besides copying the files (written in TeX)
  Introduction of main features and examples in pub/tex/osu/gurari/LitProg
  Complete manual in Eitan M. Gurari, "TeX and LaTeX: Drawing and 
  Literate Programming", McGraw-Hill, 1994

Support:        gurari@cis.ohio-state.edu


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

- RWEB
------

Developer:      Unknown
Version:        Unknown
Hardware:       Unknown
Languages:      Unknown
Formatter:      Unknown
Availability:   Anonymous ftp from:
                  LPA:/reduce
Readme:         Unknown
Description:    Web generator in AWK.
Support:        Unknown


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

- SchemeWEB
-----------

Developer:      John D. Ramsdell
Version:        2.1
Hardware:       Unix and DOS platforms
Languages:      Any dialect of Lisp.
Formatter:      LaTeX.
Availability:   The Unix version is in the Scheme Repository and it is
                available via anonymous ftp from:
                  cs.indiana.edu:/pub/scheme-repository/utl/schemeweb.sh
                  LPA:/lisp
                  CTAN:/tex-archive/web/schemeweb
                The DOS version is part of the PCS/Geneva Scheme system
                which is available via anonymous ftp from:
                  cui.unige.ch:/pub/pcs
                  LPA:/machines/ms-dos
Readme:         In bundle with above.

Description:

  SchemeWEB is a Unix filter that allows you to generate both Lisp and
  LaTeX code from one source file.  The generated LaTeX code formats
  Lisp programs in typewriter font obeying the spacing in the source
  file. Comments can include arbitrary LaTeX commands.  SchemeWEB was
  originally developed for the Scheme dialect of Lisp, but it can easily
  be used with most other dialects.

Support:        Bug reports to ramsdell@mitre.org.


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

- SpideryWEB
------------

Developer:      Norman Ramsey <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.4
Hardware:       DOS, OS/2, Unix (gcc) - CWEB source included
Languages:      C, C++
Formatter:      TeX
Availability:   Anonymous ftp from
                  CTAN:/web/c_cpp/c2cweb
Readme:         In distribution.

Description:

  c2cweb will transform plain C or C++ code into a CWEB file to get a
  pretty formatted output. A modified CWEAVE (which transforms the CWEB
  file into a TeX file, see below) is included also.


Support:        Werner Lemberg <a7621gac@awiuni11.bitnet>




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

- c2man
-------

language:       C, nroff, texinfo, latex, html
package:        c2man
version:        2.0 patchlevel 33
parts:          documentation generator (C -> nroff -man, -> texinfo, ->latex,
                -> html)
author:         Graham Stoney <greyham@research.canon.oz.au>
location:       ftp from any comp.sources.misc archive, in volume42
                (the version in the comp.sources.reviewed archive is obsolete)
                ftp /pub/Unix/Util/c2man-2.0.*.tar.gz from dnpap.et.tudelft.nl
    Australia:  ftp /usenet/comp.sources.misc/volume42/c2man-2.0/*
                from archie.au
    N.America:  ftp /usenet/comp.sources.misc/volume42/c2man-2.0/*
                from ftp.wustl.edu
    Europe:     ftp /News/comp.sources.misc/volume42/c2man-2.0/*
                from ftp.irisa.fr
    Japan:      ftp /pub/NetNews/comp.sources.misc/volume42/c2man-2.0/*
                from ftp.iij.ad.jp
    Patches:    ftp pub/netnews/sources.bugs/volume93/sep/c2man* from lth.se
description:    c2man is an automatic documentation tool that extracts comments
                from C source code to generate functional interface
                documentation in the same format as sections 2 & 3 of the Unix
                Programmer's Manual. It requires minimal effort from the
                programmer by looking for comments in the usual places near the
                objects they document, rather than imposing a rigid
                function-comment syntax or requiring that the programmer learn
                and use a typesetting language. Acceptable documentation can
                often be generated from existing code with no modifications.
conformance:    supports both K&R and ISO/ANSI C coding styles
features:       + generates output in nroff -man, TeXinfo, LaTeX or HTML
format
                + handles comments as part of the language grammar
                + automagically documents enum parameter & return values
                + handles C (/* */) and C++ (//) style comments
                - doesn't handle C++ grammar (yet)
requires:       yacc/byacc/bison, lex/flex, and nroff/groff/texinfo/LaTeX.
ports:          Unix, OS/2, MSDOS, VMS.
portability:    very high for unix, via Configure
status:         actively developed; contributions by users are encouraged.
discussion:     via a mailing list: send "subscribe c2man <Your Name>" (in the
                message body) to listserv@research.canon.oz.au
help:           from the author and other users on the mailing list:
                c2man@research.canon.oz.au
announcements:  patches appear first in comp.sources.bugs, and then in
                comp.sources.misc.
updated:        1994/10/07


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

- cnoweb
--------

Developer:      Jim Fox
Version:        1.4 (January 4, 1991)
Hardware:       Anything with C and TeX.
Languages:      C
Formatter:      Plain TeX.
Availability:   Anonymous ftp from:
                  CTAN
                  LPA:/c.c++
Readme:         Unknown, cnoweb.tex contains documentation.

Description:

  cnoweb is as it's name describes: write C, not web.  No tangling or
  weaving is implemented.  Documentation (between standard /* */
  delimiteres) is written in TeX.  cnoweb provides typesetting of
  documentation, an table of contents of routines, and pretty-printing
  of C source.

Support:        None known.


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

- Fold2Web
----------

Developer:      Bernhard Lang <lang@tu-harburg.d400.de>
Version:        V0.8
Hardware:       MSDOS
Languages:      All (must allow comment lines)
Formatter:      LaTeX
Availability:   Anonymous ftp from: 
                  kirk.ti1.tu-harburg.de (134.28.41.50)
                    /pub/fold2web/readme
                    /pub/fold2web/fold2web.zip
Readme:         In distribution

Description:

  The idea behind the Fold2Web tool is the following: A programmer can
  write his program source with a folding editor and later map the
  folded source files automatically to WEB-files. The generated WEB-files
  can then be modified by inserting required documentations.
  
  The advantage by starting program developement with original sources is
  to get short design cycles during the compile/debug steps. By using a
  folding editor the global structuring information can be already
  captured in folds during this developement phase. Fold information is
  typically stored in comment lines and thus will not affect the
  efficiency of the compile/debug design cycle.
  
  Some folding editors and a folding mode for the emacs are available
  (e.g. see our FUE folding editor for MSDOS machines which is a modified
  micro emacs. Pick it at kirk in directory /pub/fold2web).
  
  After reaching a stable version of a program source its time to convert
  the source file to a WEB-file and do the program documentation.
  Fold2Web is written to convert folded source text of any programming
  language to nuweb files. The folded structure is kept by mapping folds
  to scraps. Fold markers which differ between languages due to different 
  ways of specifying comments can be configured for each language.
  
  Good results can also achived when given but poor documented program
  sources have to be modified. Such sources can be folded using a folding
  editor to extract the global structures. This offers a global view to
  the program structures and help to understand its functionality.
  Furthermore the program code is not affected, only comment lines are
  inserted. Once folded the program source can be automatically
  translated to a WEB document using the above tool.

Support:   email to lang@tu-harburg.d400.de


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

- Funnelweb Mode
----------------

Developer:      Daniel Simmons <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 bruce@liverpool.ac.uk


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

- nuweb.el
----------

Developer:      Dominique de Waleffe <ddw@acm.org>
Version:        1.99
Availability:   Anonymous ftp from:
                  LPA
                  CTAN

Description:

  Provides a major mode extending Auctex for editing nuweb files. Main
  features (in 2.0):
   	- Edit scrap bodies in a separate buffer in a different mode
      (selected using emacs defaults for files, specific indication
      -*-mode-*-, or a buffer-local variable)
	  - Extends Auctex commands so that nuweb is called before LaTeX,
	  - Easy navigation on scrap definition and use points.
	  - Now creates an imenu (C-M-mouse1) with user index entries, macro
      definition positions and file definition positions.

Support:        Email to ddw@acm.org

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

- 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:80/user/projects/LitProg.html

If you aren't connected to WWW, telnet to info.cern.ch and explore.
You can reach Marcus' literate programming pages by typing:

  go http://info.desy.de:80/user/projects/LitProg.html

or use a WWW browser and access the URL

  ftp://rtfm.mit.edu/pub/usenet/news-answers/www/resources/literate-programming

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:80/user/projects/LitProg.html
to retrieve the LitProg library page.   A help file can be retrieved by
sending a message to the list server above with the text
  HELP
in the body of the message.  Instructions will be returned by email. For
literate programming documents, you can try anonymous ftp to
rtfm.mit.edu and retrieve the official Usenet resource file

  /pub/usenet/news.answers/www/resources/literate-programming


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

- TeX Resources
---------------

Another resource of interest to literate programmers is the info-tex
mailing list.  If you're using (La)TeX as your typsetting system and
have access to internet, then you should investigate this mailing list.
Mail list service is available through the SHSU list-server.  To
subscribe, send a message to LISTSERV@SHSU.EDU, and include in the
message one line of text:

    SUBSCRIBE INFO-TEX "your name in quotes"

The list is unmoderated; messages sent to info-tex@shsu.edu are
automatically distributed to all subscribers and cross-posted to
comp.text.tex.

Archives of the mailing list and newsgroup are maintained on
niord.shsu.edu [192.92.115.8] in the directory info-tex.

Another reason the TeX resources should be important is that so many of
the literate programming tools rely on either plain TeX or LaTeX as
their text formatter.  (La)TeX software systems exist for most computing
platforms.  These systems can be found on CTAN and other major archive
sites.  Use archie to find them or simply ftp to one of the CTAN
sites and browse.


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

- Virtual Coursework
--------------------

Marcus Speh plans an introductory course on Literate Programming on the
Internet, part of the first semester of "Global Network Academy" [GNA],
a non-profit corporation incorporated in the state of Texas, affilated
with the Usenet University project. The texts/sample programs for this
class will be made available via the World-Wide Web. A special room on GNA
Virtual Campus will be staffed by a consultant in one to two hour
shifts.  Students with questions can telnet to the virtual campus and
ask questions of the staff there.  If you are interested in
registering for the course either as a student or as a consultant,
please contact marcus@x4u.desy.de. You will receive a standard reply
message; no further action will be taken until June 94.  Interested
parties can check the hypertext notes for the completed C++ Course done in
a similar fashion, at URL http://info.desy.de:80/pub/uu-gna/html/cc/index.html

[Editor's note: Because of workload, Marcus requests that email
inquiries be limited to a statement of interest for either a student or
consultant position until June 1994.]


= ======================================================================

* Are there any code examples?
------------------------------

Examples of web programs are included with the FWEB, CWEB, and noweb
distributions.  nuweb is written in itself.

Cameron Smith converted the K&R calculator program into a literate
program.   It can be retrieved by anonymous ftp from:
  niord.shsu.edu [192.92.115.8] directory kr-cweb-sample as
    krcwsamp.zip
  or from
    LPA/Documentation

Ross Williams has released a funnelweb example.  You can retrieve this
file from node ftp.adelaide.edu.au [129.127.40.3] as
  /pub/funnelweb/examples/except.*
This file should be on CTAN as well.

Lee Wittenberg has posted a few litprog examples.  They are available
via anonymous ftp from:
  bart.kean.edu:/pub/leew/samples.LP

The Stanford GraphBase is a large collection of programs by Don Knuth for
doing all kinds of computations and games with graphs; it is written in
(Levy/Knuth) CWEB. More details in the distribution.  It is available
via anonymous ftp from:
  labrea.stanford.edu:/pub/sgb


= ======================================================================

* Bibliographies
----------------

Nelson Beebe has collected an extensive bibliography treating literate
programming.  His work is available for anonymous ftp from
ftp.math.utah.edu [128.110.198.2] in directory /pub/tex/bib as files:
    litprog.bib
    litprog.ltx
    litprog.twx.
Although I have not verified this, LPA is an alternate source for these
files.  Note that they are updated frequently (Nelson says several times
each week), so be sure to get a fresh copy before extensive use.
Joachim Schrod indicates that these files may be updated daily and can
be retrieved via anonymous ftp at LPA/documentation.


= ======================================================================

* How to anonymously ftp
------------------------

Pretty much everything mentioned here is available by anonymous FTP.
FAQ lists cross-posted to news.answers and rec.answers can be gotten
from rtfm.mit.edu [18.181.0.24], under /pub/usenet/news.answers or under
/pub/usenet/more.specific.group.name

"anonymous FTP" is just a way for files to be stored where anyone
can retrieve them over the Net.    For example, to retrieve the
latest version of the literate programming FAQ, do the following:

> ftp rtfm.mit.edu              /* connect to the site; message follows */
> anonymous                     /* type this when it asks for your name */
> <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: Wed, 23 Aug 1995 05:06:36 CDT
Sender: owner-litprog@SHSU.edu
From: thienel@suenner.informatik.Uni-Koeln.DE (Stefan Thienel)
Subject: CWEB and C++ templates
Date: 23 Aug 1995 08:59:09 GMT
Message-ID: <41eqkt$d6@news.rrz.uni-koeln.de>
Reply-To: LitProg@SHSU.edu, thienel@suenner.informatik.Uni-Koeln.DE (Stefan Thienel)
To: LitProg@SHSU.EDU


Who knows a trick to bring cweave/tex to typeset the function bad() 
containing the template allocation as nicely as the function good().
Here the line break after bad() is missing, but an undesired line break
after good is inserted. Omitting the format definition 
"@s ARRAY int" causes cweave/tex to set everything in one line. I would
like to have ARRAY typeset in bold face.

Thanks four your help

Stefan

-------------------------------------------------------------------------------
@
@s ARRAY int
@c
  void good()
  {
    int *vec;
    
    vec = new int[10];
  }

  void bad()
  {
    ARRAY<double> *arrray;
    array = new ARRAY<double>(10);
  }


-------------------------------------------------------------------------------
Stefan Thienel          	E-Mail : thienel@informatik.Uni-Koeln.DE
Institut fuer Informatik
Universitaet zu Koeln		Telefon: +49 221 470 5307
Pohligstr. 1
50969 Koeln			Fax    : +49 221 470 5317
Germany

WWW: http://www.informatik.uni-koeln.de/informatik/lsjuenger/staff/thienel.html

------------------------------------------------------------------------------
================================================================================
Archive-Date: Wed, 23 Aug 1995 08:31:23 CDT
Sender: owner-litprog@SHSU.edu
Date: Wed, 23 Aug 95 9:30:28 EDT
From: Lee Wittenberg <leew@pilot.njin.net>
Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET
To: LitProg@SHSU.edu, thienel@suenner.informatik.Uni-Koeln.DE (Stefan Thienel)
Subject: Re: CWEB and C++ templates
Message-ID: <CMM-RU.1.4.809184628.leew@pilot.njin.net>

Stefan Thienel writes:
 
> Who knows a trick to bring cweave/tex to typeset the function bad() 
> containing the template allocation as nicely as the function good().
> Here the line break after bad() is missing, but an undesired line break
> after good is inserted. Omitting the format definition 
> "@s ARRAY int" causes cweave/tex to set everything in one line. I would
> like to have ARRAY typeset in bold face.
>
> [ text omitted ]
>
>   void bad()
>   {
>     ARRAY<double> *arrray;
>     array = new ARRAY<double>(10);
>   }

Try 
	array = @[new ARRAY<double>(10)@];

or various other placements of @[ and @].  The @[@] pairs help to
keep the parser from getting too confused.  They are particularly
invaluable in C++, where the syntax is often ambiguous at the level
investigated by the CWEAVE parser.

The 3 r's in "*arrray", above, by the way, won't confuse CWEB, but they
will confuse your compiler. :-)

		-- Lee

------------------------------------------------------------------------
Lee Wittenberg              | Usually, when a man shoots a woman, he
Computer Science Department | attempts his own life.  When a woman 
Kean College of New Jersey  | shoots a man, she seems to think that's
Union, NJ   07083           | enough for one day.
                            | -- Nellise Child
leew@pilot.njin.net         |    "Chicago  Murders" (c.1948)
------------------------------------------------------------------------
================================================================================
Archive-Date: Wed, 23 Aug 1995 11:47:39 CDT
Sender: owner-litprog@SHSU.edu
From: esuarez@concom.com (Emilio Suárez)
Reply-To: LitProg@SHSU.edu, esuarez@CONCOM.COM
Subject: Soundex algorithm
Date: Wed, 23 Aug 1995 15:33:05 GMT
Message-ID: <41fi6j$opm@carbon.concom.com>
To: LitProg@SHSU.EDU

Hi world, 

I am looking for packages (routines, dll, VBX, etc) with the
implementation of the Soundex algorithm.
It needs to support several laguages (english, spanish, french,
chinese, vietnamese, etc.)

Does anybody know if there is something in the market today?

Thanks.
-----------------------------------------------------------
Emilio Suárez            The Stoker Group
esuarez@concom.com       http://www.concom.com/~esuarez/
-----------------------------------------------------------

================================================================================
Archive-Date: Wed, 23 Aug 1995 16:01:34 CDT
Sender: owner-litprog@SHSU.edu
From: nr@cs.purdue.edu (Norman Ramsey)
Reply-To: LitProg@SHSU.edu, nr@CS.PURDUE.EDU
Subject: Re: Literate Programming in Inudstry
Date: 23 Aug 1995 15:19:41 -0500
Message-ID: <41g2gt$7k6@labrador.cs.purdue.edu>
CC: jsisul@cstp.umkc.edu
To: LitProg@SHSU.EDU

In article <1995Aug21.145423.1@cstp.umkc.edu>,  <jsisul@cstp.umkc.edu> wrote:
>Any pointers to studies of LP in industry would help me a lot.

    Norman Ramsey and Carla Marceau.  Literate programming on a team
    project. Software---Practice & Experience, 21(7):677-683, July 1991.

Also, Joseph Brothers at Motorola has an unpublished MS that I expect
will be released sometime.

-- 
        ``They who can give up essential liberty to obtain a little temporary
          safety deserve neither liberty nor safety.'' --- B. Franklin
Norman Ramsey                 I support the Phil Zimmermann Legal Defense Fund.
nr@cs.purdue.edu             (zldf@clark.net  http://www.netresponse.com/zldf)
================================================================================
Archive-Date: Wed, 23 Aug 1995 16:01:38 CDT
Sender: owner-litprog@SHSU.edu
From: nr@cs.purdue.edu (Norman Ramsey)
Reply-To: LitProg@SHSU.edu, nr@CS.PURDUE.EDU
Subject: Re: Interface documentation
Date: 23 Aug 1995 15:17:12 -0500
Message-ID: <41g2c8$7jj@labrador.cs.purdue.edu>
CC: Jens Horstmeier <horstmei.abg@sni.de>
To: LitProg@SHSU.EDU

In article <41aad7$atk@horus.mch.sni.de>,
Jens Horstmeier  <horstmei.abg@sni.de> wrote:
>...
>Is there a tool to extract specific parts of a literate program to
>build up an interface specification. 

I've done tolerably well with a combination of TeX conditional
formatting and heavy use of the elide filter that comes with noweb.
I've been only mildly satisfied with the results...

Norman
-- 
        ``They who can give up essential liberty to obtain a little temporary
          safety deserve neither liberty nor safety.'' --- B. Franklin
Norman Ramsey                 I support the Phil Zimmermann Legal Defense Fund.
nr@cs.purdue.edu             (zldf@clark.net  http://www.netresponse.com/zldf)
================================================================================
Archive-Date: Thu, 24 Aug 1995 06:10:25 CDT
Sender: owner-litprog@SHSU.edu
From: raczy@delirium.lifl.fr (Come Raczy)
Reply-To: LitProg@SHSU.edu, raczy@DELIRIUM.LIFL.FR
Subject: Re: Interface documentation
Date: 24 Aug 1995 06:05:00 GMT
Message-ID: <RACZY.95Aug24080500@warsteiner.lifl.fr>
To: LitProg@SHSU.EDU


In article <41g2c8$7jj@labrador.cs.purdue.edu> 
nr@cs.purdue.edu (Norman Ramsey) writes:
>   In article <41aad7$atk@horus.mch.sni.de>,
>   Jens Horstmeier  <horstmei.abg@sni.de> wrote:
>   >...
>   >Is there a tool to extract specific parts of a literate program to
>   >build up an interface specification. 
>
>   I've done tolerably well with a combination of TeX conditional
>   formatting and heavy use of the elide filter that comes with noweb.
>   I've been only mildly satisfied with the results...
>


With FWEB, it's possible to construct easily your document s.t.
it's easy to extract only a part of it (there is a powerfull 
preprocessor which may help).


-----
Come Raczy : raczy@lifl.fr
================================================================================
Archive-Date: Thu, 24 Aug 1995 06:21:22 CDT
Sender: owner-litprog@SHSU.edu
From: sraboyan@brutus.ms1.wits.ac.za (S. RABOYANE (9409500P))
Reply-To: LitProg@SHSU.edu, sraboyan@BRUTUS.MS1.WITS.AC.ZA
Subject: C++
Date: Tue, 22 Aug 1995 12:03:22 GMT
Message-ID: <sraboyan.63.3039C78A@brutus.ms1.wits.ac.za>
Keywords: plus
To: LitProg@SHSU.EDU

Anyone who is who needs help in programming contact steve thats me at the
above Email.
Bye.
P.S. Female programmers only.
================================================================================
Archive-Date: Thu, 24 Aug 1995 11:36:24 CDT
Sender: owner-litprog@SHSU.edu
Date: Thu, 24 Aug 1995 16:07:23 GMT
From: Niti Vaish <nvaish@falcon.depaul.edu>
Reply-To: LitProg@SHSU.edu, nvaish@FALCON.DEPAUL.EDU
Message-ID: <199508241607.QAA12672@falcon.depaul.edu>
To: LitProg@SHSU.edu, sraboyan@brutus.ms1.wits.ac.za
Subject: Re:  C++

Please make up your mind - 
are you looking for a date or help with programming?
================================================================================
Archive-Date: Thu, 24 Aug 1995 13:06:12 CDT
Sender: owner-litprog@SHSU.edu
From: cliff@objy.com (Cliff Ritchie)
Reply-To: LitProg@SHSU.edu, cliff@OBJY.COM
Message-ID: <9508241658.AA00895@sun20.objy.com>
To: litprog@shsu.edu
Date: Thu, 24 Aug 95 9:58:54 PDT
MIME-Version: 1.0
Content-Type: text

SUBSCRIBE LITPROG  "Cliff Ritchie"
================================================================================
Archive-Date: Thu, 24 Aug 1995 17:26:27 CDT
Sender: owner-litprog@SHSU.edu
Date: Thu, 24 Aug 1995 15:09:55 -0700 (PDT)
From: Keith Ballinger <keith@seq.oit.osshe.edu>
Reply-To: LitProg@SHSU.edu, keith@SEQ.OIT.OSSHE.EDU
Subject: Literate programming w/o TeX
To: LitProg@SHSU.edu
Message-ID: <Pine.3.88.9508241555.A11303-0100000@seq.oit.osshe.edu>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hi all,
	
	OKay, I have been reading this list for a few months now, and 
have read Knuth's stuff on Lit programming. I am really excited by it 
all, and have been incorporating it into my own programs to an extent. 
However, I haven't been using any tools, such as FWEB or noweb, but 
instead just using the paradigms. 
	Now it seems to me that one of the major problems at this point 
with Lit-Prog tools is the emphasis on using TeX to format. I have 
nothign against TeX, but I just don't find a big use for it. I don't like 
to print out my stuff, but instead prefer to view documents online. 
	However, I do think that the ability to write the program in both 
the bootom-up and top-down approaches that Lit-Prog tools allow us are 
very nice. Matter of fact, I think this is the truly revolutionary aspect 
of Lit-Prog: That I can ignore compiler standards of where I have to put 
different things, and can instead develop my program in my own fashion.
	So this is what I would like to do. I would like to write a 
program tht will take an ascii text file that is the *already formatted* 
document. (Using whatever word porcesor I want and saving it in ascii 
form.) This document is usually the end product of the "weave" command on 
many webs, but instead of weaving the document, I just will create it 
with my word processor. The program will basically tangle out the code 
into a compiler ready source code file. 
	So basically I am asking for input on this. What do you all 
think? Has this some major drawback that I am missing? Would it be worth 
my time? Any input you have would be greatly appreciated.

keith  

================================================================================
Archive-Date: Fri, 25 Aug 1995 07:51:19 CDT
Sender: owner-litprog@SHSU.edu
Date: Fri, 25 Aug 95 8:51:34 EDT
From: Lee Wittenberg <leew@pilot.njin.net>
Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET
To: LitProg@SHSU.edu, keith@seq.oit.osshe.edu
Subject: Re: Literate programming w/o TeX
Message-ID: <CMM-RU.1.4.809355094.leew@pilot.njin.net>

keith@seq.oit.osshe.edu writes

> 	Now it seems to me that one of the major problems at this point 
> with Lit-Prog tools is the emphasis on using TeX to format. I have 
> nothign against TeX, but I just don't find a big use for it. I don't like 
> to print out my stuff, but instead prefer to view documents online. 

Different people work in different ways.  That's why there are so many
programming languages (and tools).

I prefer reading paper, myself.

> 	However, I do think that the ability to write the program in both 
> the bootom-up and top-down approaches that Lit-Prog tools allow us are 
> very nice. Matter of fact, I think this is the truly revolutionary aspect 
> of Lit-Prog: That I can ignore compiler standards of where I have to put 
> different things, and can instead develop my program in my own fashion.

I agree completely.

> 	So this is what I would like to do. I would like to write a 
> program tht will take an ascii text file that is the *already formatted* 
> document. (Using whatever word porcesor I want and saving it in ascii 
> form.) This document is usually the end product of the "weave" command on 
> many webs, but instead of weaving the document, I just will create it 
> with my word processor. The program will basically tangle out the code 
> into a compiler ready source code file. 
> 	So basically I am asking for input on this. What do you all 
> think? Has this some major drawback that I am missing? Would it be worth 
> my time? Any input you have would be greatly appreciated.

Take a look at CLiP and WinWordWEB.  They work the way you describe.
There is also a Framemaker-based tool, but I'm afraid I can't recall
its name (sorry).

		-- Lee

------------------------------------------------------------------------
Lee Wittenberg              | Usually, when a man shoots a woman, he
Computer Science Department | attempts his own life.  When a woman 
Kean College of New Jersey  | shoots a man, she seems to think that's
Union, NJ   07083           | enough for one day.
                            | -- Nellise Child
leew@pilot.njin.net         |    "Chicago  Murders" (c.1948)
------------------------------------------------------------------------
================================================================================
Archive-Date: Fri, 25 Aug 1995 17:32:26 CDT
Sender: owner-litprog@SHSU.edu
From: asmwizard@aol.com (Asmwizard)
Subject: Re: C++ PROGRAMMING LANGUAGE DISCUSSIONS
Date: 25 Aug 1995 15:45:44 -0400
Message-ID: <41l998$fgj@newsbf02.news.aol.com>
Reply-To: LitProg@SHSU.edu, asmwizard@aol.com (Asmwizard)
To: LitProg@SHSU.EDU

Concerning your discussion of c++ over c:
      
      Hi,
            My name is Eric.  I program in c/c++ also, and I agree with
you.  C++ is much better, and easier to learn (in my opinion) than c. I
would love to discuss c++ related topics with you in this group. I am also
an assebly programmer, which comes in handy when you need to bypass the
limitations of c/c++.  
                  Eric
================================================================================
Archive-Date: Mon, 28 Aug 1995 13:14:13 CDT
Sender: owner-litprog@SHSU.edu
From: tyen@netcom.com (Anthony Yen)
Reply-To: LitProg@SHSU.edu, tyen@NETCOM.COM
Subject: LP, OOP, and Team Development
Date: Sun, 27 Aug 1995 21:15:16 -0500
Message-ID: <tyen-2708952115160001@lestat.tkg.com>
To: LitProg@SHSU.EDU

One aspect of LP which I have been unable to find references to is how LP
is supposed to handle team-based development.  In general, I have been
quite dissatisfied with the lack of material discussing how groups can
share information over distributed systems; there seems to be little that
has been done on this subject in an empirical manner, as contrasted with a
lot of the HI work that currently goes on with GUIs in the usability
labs.  Can someone point me in the right direction for my second try at a
literature search?  Thanks in advance...
-- 
Anthony Yen <tyen@netcom.com>                           Austin, Texas, USA
================================================================================
Archive-Date: Tue, 29 Aug 1995 03:30:02 CDT
Sender: owner-litprog@SHSU.edu
To: LitProg@SHSU.edu
Message-ID: <AC0OiGmqe4@ae.lviv.ua>
From: "Sergej Zverev" <ae@ae.lviv.ua>
Reply-To: LitProg@SHSU.edu, ae@AE.LVIV.UA
Date: Tue, 29 Aug 95 10:47:12 +0300
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

SUBSCRIBE LitProg ae@ae.lviv.ua
================================================================================
Archive-Date: Tue, 29 Aug 1995 16:57:45 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: ANNOUNCE: LaTeX CWEB -- first full release
Date: 29 Aug 1995 18:08:20 GMT
Message-ID: <41vl2l$13dv@rs18.hrz.th-darmstadt.de>
To: tex-news@SHSU.EDU

  [ I'm happy to announce the first full release of LaTeX CWEB. Below the
    general introduction is a version history, for those who know the
    pre-release. The upload on ftp.dante.de is already done, the
    transfer to the other CTAN hosts is triggered and will happen in due
    course.   Please adjust the newsgroup on followups.   -js ]


$Id: README,v 1.5 1995/08/29 17:34:34 schrod Exp $
------------------------------------------------------------


This is the distribution of LaTeX CWEB, a bundle that allows you to
use LaTeX as the documentation markup of your CWEB program. Your CWEB
programs may be LaTeX documents now -- with sections, subsections,
environments, figures, graphics inclusion, etc.

You will want to use this bundle if you

 -- are a CWEB programmer and use LaTeX elsewhere,
 -- haven't used CWEB up to now, because you wanted structured markup
    (and you didn't want to develop it yourself), or
 -- want an hierarchic document structure for CWEB programs.

Included in the distribution is a user manual.
    In addition, the distribution features a well known example: the
``Counting Words'' program distributed with CWEB. I recoded it to
LaTeX markup. You'll find both source and processed files in the
examples/ directory.

Note that the style file is rather large because the comments are not
stripped yet. This will change for the next release. I'm still working
on this class, the next release will support inclusion of CWEB program
parts in other LaTeX documents. If you have more wishes or if you have
any other gripes about the usage of this class, you should send them
*now*, as you can still influence the development. When I've finished
the realization of the inclusion, I'll freeze the code base and will
concentrate on fixes for reported problems.

Anyhow, feedback is always appreciated, I'd like to know if you that
style. -- The more people tell me they use it, the more support I'll
put in future versions.


If you want to use this style file, you must use CWEB V3. (Current
release, as of $Date: 1995/08/29 17:34:34 $: 3.4.) You must also use
LaTeX2e, I cannot support LaTeX 2.09 any longer. Most probably you
also need a big TeX to use the cweb class, but they should be common
by now anyhow.


MANIFEST features a list of files in this distribution.
For installation instructions, check the file INSTALL.


Reference anonymous ftp site:
	ftp.th-darmstadt.de [130.83.47.112]
	directory pub/programming/literate-programming/c.c++
	file cweb-sty-<version>.tar.gz
		where <version> is the current version number
		(a gzipped tar file)

You'll also find a version of this bundle on CTAN in
macros/latex/contrib/supported/cweb/.


LEGALESE

This is freely distributable software; you can redistribute it
and/or modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.

This software is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License in
the file License along with this package; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.


Share and enjoy,

	Joachim


============================================================

cweb-sty/History				29 Aug 95  -*- Indented-Text -*-
---------------------------------------------------------------------------

Version 1.0	29 Aug 95

	Updated to LaTeX2e, this is now a document class.
	User configuration via cweb.cfg and keyword-value class options,
	the base class of this document class may be configured.
	Improved user manual, added more concept explanations.

	Realized hierarchic document structure.
	Flat document structure is an option now.

	Suppression of change hints, unchanged sections, identifier
	index, and reference list is supported.

	Moved Counter cwebSecNoEject to protected interface.
	Chunk numbers of CWEAVE are used instead of self-computed ones.
	Different document base sizes than 10pt may be used.


Version 0.4	10 Aug 93


--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Joachim Schrod			Email: schrod@iti.informatik.th-darmstadt.de
Computer Science Department
Technical University of Darmstadt, Germany
================================================================================
Archive-Date: Tue, 29 Aug 1995 18:48:03 CDT
Sender: owner-litprog@SHSU.edu
From: nr@cs.purdue.edu (Norman Ramsey)
Reply-To: LitProg@SHSU.edu, nr@CS.PURDUE.EDU
Subject: Re: LP, OOP, and Team Development
Date: 29 Aug 1995 16:36:31 -0500
Message-ID: <42018v$r7q@labrador.cs.purdue.edu>
CC: 
To: LitProg@SHSU.EDU

In article <tyen-2708952115160001@lestat.tkg.com>,
Anthony Yen <tyen@netcom.com> wrote:
>One aspect of LP which I have been unable to find references to is how LP
>is supposed to handle team-based development.

The only reference I know of is:

    Norman Ramsey and Carla Marceau.  Literate programming on a team
    project. Software---Practice & Experience, 21(7):677-683, July 1991

I would be pleased to hear of others.
-- 
           ``They who can give up essential liberty to obtain a little 
             temporary safety deserve neither liberty nor safety.'' ---Franklin
Norman Ramsey                 I support the Phil Zimmermann Legal Defense Fund.
http://www.cs.purdue.edu/homes/nr            (http://www.netresponse.com/zldf)
================================================================================
Archive-Date: Tue, 29 Aug 1995 23:20:54 CDT
Sender: owner-litprog@SHSU.edu
From: st93q7ya@dunx1.ocs.drexel.edu (Jaime Seoane)
Reply-To: LitProg@SHSU.edu, st93q7ya@DUNX1.OCS.DREXEL.EDU
Subject: Re: Devices Architecture
Date: 29 Aug 1995 07:49:31 -0400
Message-ID: <41uusb$c75@dunx1.ocs.drexel.edu>
To: LitProg@SHSU.EDU

Hello There.- 

    I have a question that I read in a systems architecture book that I
can think of a solution.  If somebody has a suggestion pleases e-mail to
the address given below:

Question:  Consider a computer in which several devices are connected to a
common interrupt request line, as shown in the figure below.  Assume that
each device has a separeate interrupt vector that points to an appropriate
interrupt-service routine.  Explain how you would arrange for interrupts
from device j to be accepted before the execution of the interrupt-service
routine for device i is completed.  Comment in particular on the times at
which interrupts must be enabled and disabled at various points in the system.

Figure:

---------                   INTR  line
|       |<---------------------------------------------------
| CPU   |             |             |                       |
|       |         -----------   -----------            ------------
|       | ------->| Device i|-->| Device j| - - - - - >| Device n |
|       |  INTAck -----------   -----------            ------------
---------

Note: Device j has a relative lower priority than device i.  Figure above
shows a daisy chain arrangement of devices with an interrupt acknowledge 
line sending signals from on device to another until a pending routine is
found and the int acknowledge signal is blocked.

E-mail suggestions to:

Jaime Seoane at  ujseoane@queen.mcs.drexel.edu


Thank You  !!!!!!

Sorry!!! I forgot to write down the host name on my e-mail address.  Now
is fixed. If anybody still has any suggestions.  They'll be appreciated.

Thank You Again!!!!
================================================================================
Archive-Date: Wed, 30 Aug 1995 11:17:40 CDT
Sender: owner-litprog@SHSU.edu
From: cwhizard@aol.com (Cwhizard)
Reply-To: LitProg@SHSU.edu, cwhizard@AOL.COM
Subject: Assembler Discussion
Date: 30 Aug 1995 00:59:46 -0400
Message-ID: <420r82$gd2@newsbf02.news.aol.com>
To: LitProg@SHSU.EDU

I would like to discuss assembly language programming as it applie to code
optimization. Preferably on the PC line but also in general.
================================================================================
Archive-Date: Wed, 30 Aug 1995 16:11:29 CDT
Sender: owner-litprog@SHSU.edu
From: br806@freenet.buffalo.edu (David D. w. Downey)
Subject: Re: C++ PROGRAMMING LANGUAGE DISCUSSIONS
Message-ID: <DDv4vx.8uo@freenet.buffalo.edu>
Reply-To: LitProg@SHSU.edu, br806@freenet.buffalo.edu (David D. w. Downey)
Date: Fri, 25 Aug 1995 10:52:44 GMT
To: LitProg@SHSU.EDU


In a previous article, weiqigao@crl.com (Weiqi Gao) says:

>In article <354272926wnr@starwolf.demon.co.uk>, Yvonne@starwolf.demon.co.uk 
>says...
>>
>>To Whom it may concern,
>>
>>I would like to know the C++ programming language better, as I 
>>wish to develop my expertise and boost my confidence in it.
>>
>>If you have familiarity with the C++ programming language and 
>>would like to discuss it with me, please do not hesitate to 
>>contact me, by Email, at: Yvonne@starwolf.demon.co.uk.
>>
>>Thank you in advance.
>>
>>Crystal
>
>Good!  Let's do it here.  Nothing else happens anyway.  :)
>
>
Yeah, include me in if you won't mind! The name is David Downey. Crystal 
has talked to me once before via email on a C programming issue. (Still 
trying to figure out that email problem, Crystal. :( ) I'm using both the 
DOS and Windows versions of the Borland Turbo C/C++ 3.0/3.1 compilers. 
I'm still rather new to both C and C++, as I undertook OOP thru C++ 
before I looked at the ANSI C standard. Kinda put the horse before the 
court maybe, but I like it. I feel that there is too strong of a 
limitation on the C language as compared to the modular approaches taken 
in the C++ standard. Due to the visualisational techniques that seem to 
make OOP easier to understand and apply, I switched over completely to 
C++ and pretty much stay away from C. (After all classes are alot easier 
to deal with than structs! :) ).

-- 
David D.W. Downey
85 Lockwood Ave
Buffalo,NY 14220
(716) 823-3425 (Voice)
================================================================================
Archive-Date: Wed, 30 Aug 1995 16:32:56 CDT
Sender: owner-litprog@SHSU.edu
Date: Wed, 30 Aug 95 14:28:35 -0700
From: ILSI <gene@ilsi.com>
Reply-To: LitProg@SHSU.edu, gene@ILSI.COM
MIME-Version: 1.0
To: litprog@shsu.edu
Subject: (no subject)
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=us-ascii

     We would like to ask you to place a link from your site to our 
homepage.  Please check out our homepage and let us know what you think.

     We have created a database to assist people that want to advertise on 
the internet.  Using this database, people with homepages will now be able 
to easily find appropriate sites for links to their homepage.

     We are Internet List Services Inc. and we would appreciate your help. 
 Please visit us at:  http://www.ilsi.com/ilsi5.html



     Thank you,

     Gene






================================================================================
Archive-Date: Thu, 31 Aug 1995 21:00:46 CDT
Sender: owner-litprog@SHSU.edu
From: cwhizard@aol.com (Cwhizard)
Reply-To: LitProg@SHSU.edu, cwhizard@AOL.COM
Subject: Re: C++ PROGRAMMING LANGUAGE DISCUSSIONS
Date: 26 Aug 1995 00:42:56 -0400
Message-ID: <41m8og$lv0@newsbf02.news.aol.com>
To: LitProg@SHSU.EDU

Lets git discussin!
================================================================================
Archive-Date: Thu, 31 Aug 1995 21:00:53 CDT
Sender: owner-litprog@SHSU.edu
From: cwhizard@aol.com (Cwhizard)
Reply-To: LitProg@SHSU.edu, cwhizard@AOL.COM
Subject: Re: C++
Date: 26 Aug 1995 00:43:00 -0400
Message-ID: <41m8ok$m0i@newsbf02.news.aol.com>
To: LitProg@SHSU.EDU

lupus.
================================================================================
Archive-Date: Thu, 31 Aug 1995 22:05:59 CDT
Sender: owner-litprog@SHSU.edu
Date: Thu, 31 Aug 95 20:06:25 PDT
From: bos@mdd.comm.mot.com (Mary Bos)
Reply-To: LitProg@SHSU.edu, bos@MDD.COMM.MOT.COM
Message-ID: <9509010306.AA01059@fh01c.mdd.comm.mot.com>
To: litprog@SHSU.EDU
Subject: LP and maintenance
CC: bos@mdd.comm.mot.com


Hello,

Is anyone other trying to incorporate literate programming
into their maintenance efforts?  

We are still circling around trying simultaneously sell
the scoffers and getting our minds, fingers, and literate
programming around over 250 KAELOC of code.

Any strategies, suggestions, or things you found that did (or
did not work)?

mary bos

"I don't speak for motorola and motorola doesn't speak for me"
