From George Mon Jul 20 14:09:00 CDT 1992
Date: Mon, 20 Jul 1992 14:09:00 CDT
From: "George D. Greenwade" <bed_gdg@SHSU.edu>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: RE: What is literate programming, anyway?
 
Status: RO
 
I'm truly sorry to post such poor reply to the first message, but
approximately 20 more people are on-line since this was posted originally. 
On Mon, 20 Jul 92 13:26:48 CST, "Jim Glover" <SPJRG@VM.CC.LATECH.EDU>
asked:
> Right off the bat, I have a question.  Now that I have subscribed,
> what is literate programming, anyway?  I'm serious here.  I don't
> know what it means, but it sounds interesting.  Now, let me ask
> your forgiveness for this one:
>   To branch, or not to branch?  That is the question.
 
I, too, would truly appreciate a semi-concise definition.  I know it has to
do with portability, the ability of a language to port itself to another
language, etc., but might someone be willing to provide the answer to what
I am sure will be a FAQ for new subscribers and uninitiates, such as
myself?  Cameron?  Don?  Anyone else???
 
Regards and thanks for your interest in this list,   George
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
George D. Greenwade, Ph.D.                            Bitnet:  BED_GDG@SHSU
Department of Economics and Business Analysis         THEnet: SHSU::BED_GDG
College of Business Administration                    Voice: (409) 294-1266
P. O. Box 2118                                        FAX:   (409) 294-3612
Sam Houston State University              Internet:        bed_gdg@SHSU.edu
Huntsville, TX 77341                      bed_gdg%SHSU.decnet@relay.the.net
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
From Jim Mon Jul 20 13:26:48 CST 1992
Date: Mon, 20 Jul 92 13:26:48 CST
From: "Jim Glover" <SPJRG@VM.CC.LATECH.EDU>
Reply-To: LITPROG@SHSU.edu
To: litprog@shsu.edu
Subject: What is literate programming, anyway?
 
Status: RO
 
Right off the bat, I have a question.  Now that I have subscribed,
what is literate programming, anyway?  I'm serious here.  I don't
know what it means, but it sounds interesting.  Now, let me ask
your forgiveness for this one:
  To branch, or not to branch?  That is the question.
 
From whenry@lindy.Stanford.EDU Mon Jul 20 12:43:22 PDT 1992
Date: Mon, 20 Jul 92 12:43:22 PDT
From: whenry@lindy.Stanford.EDU (homo obsolescensis)
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: RE: What is literate programming, anyway?
 
Status: RO
 
>do with portability, the ability of a language to port itself to another
>language, etc., but might someone be willing to provide the answer to what
>I am sure will be a FAQ for new subscribers and uninitiates, such as
>myself?  Cameron?  Don?  Anyone else???
 
I have nothing to contribute but do happen to have citations that will
be of interest
 
AUTHOR:   Knuth, Donald Ervin, 1938-
TITLE:    Literate programming / Donald E. Knuth.
IMPRINT:  Stanford, CA : Center for the Study of Language and Information,
            1991.
          xv, 368 p.
 
LOCATION: Math & Comp Sci QA76.6.K644 1991 (may also be available at Stanford
            Bookstore)
 
SERIES:   CSLI lecture notes ; no. 27
TOPICS:   Electronic digital computers--Programming.
NOTES:    Includes bibliographical references and index.
          Language: English   Year: 1991
          Item CSUGAKW7300-B (Books)  AKW7300 (NOTIS)
 
AUTHOR:   Sewell, Wayne.
TITLE:    Weaving a program : literate programming in WEB / Wayne Sewell.
IMPRINT:  New York : Van Nostrand Reinhold, c1989.
          xx, 556 p. : ill. ; 24 cm.
 
LOCATION: Math & Comp Sci QA76.73.W24S49 1989 (may also be available at
            Stanford Bookstore)
 
TOPICS:   WEB (Computer program language)
NOTES:    Bibliography: p. 539-541.
          Includes index.
          Language: English   Year: 1989
          Item CSUG90-B1179 (Books)  AGG4591 (NOTIS)
 
Walter Henry
Stanford University Libraries
 
From Cameron Mon Jul 20 14:50:02 -0500 1992
Date: Mon, 20 Jul 1992 14:50:02 -0500
From: Cameron Smith <cameron@symcom.math.uiuc.edu>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Re:  What is literate programming, anyway?
 
Status: RO
 
Jim Glover (SPJRG@VM.CC.LATECH.EDU) asks what literate programming is.
 
In Don Knuth's 1984 article "Literate Programming", in which he introduced
the term, he indicated that he chose the name "literate programming"
in part to contrast with "structured programming", which he apparently
felt had the wrong orientation.  He says:
 
  Let us change our traditional attitude to the construction of programs.
  Instead of imagining that our main task is to instruct a computer what
  to do, let us concentrate rather on explaining to human beings what we
  want a computer to do.
 
He goes on to discuss programs as literature, written for human beings
to understand.  He introduces WEB as a tool to assist in the secondary
task of massaging human-readable programs into a form that a computer
can execute.
 
The above-referenced article, together with a lot of other writings
about styles and standards for reliable software engineering, is collected
in an anthology:
 
   Literate Programming, by Donald E. Knuth
   CSLI Lecture Notes Number 27
   copyright 1992, Center for the Study of Language and Information,
        Leland Stanford Junior University
   LC catalog number QA76.6.K644 1991
   ISBN 0-9370-7380-6(paper), 0-9370-7381-4 (cloth)
 
I paid $24.95 for my (paperbound) copy.  I recommend it enthusiastically.
 
Jim also asks
> To branch, or not to branch?  That is the question.
 
The longest single chapter in the above-cited book is "Structured
Programming with go to Statements"; it includes a bibliography of
103 entries surveying the literature on the subject at the time of
its writing (1974).  Considering that this article is nearly 20
years old now, I was surprised at how much I learned from reading
it.  In particular it was the first time I had heard of the
"situation" construct for governing flow of control.
 
--Cameron Smith
  cameron@symcom.math.uiuc.edu
 
From Cameron Mon Jul 20 22:43:54 -0500 1992
Date: Mon, 20 Jul 1992 22:43:54 -0500
From: Cameron Smith <cameron@symcom.math.uiuc.edu>
Reply-To: LITPROG@SHSU.edu
To: litprog@shsu.edu
Subject: What do you call a user of WEB?
 
Status: RO
 
A vital question that must be resolved if this mailing list
is to survive: what do you call a user of WEB?
 
   I favor "WEBster", myself.  ;-)
 
And is it "WEB" or "Web" or "web"?  "CWEB", "Cweb", "CWeb", or "cweb"?
 
Cheers--
--Cameron Smith
  cameron@symcom.math.uiuc.edu
 
From Paul Mon Jul 20 21:30:12 PDT 1992
Date: Mon, 20 Jul 92 21:30:12 PDT
From: Paul Palmer <palmerp@MATH.ORST.EDU>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@shsu.edu
Subject: Re: What do you call a user of WEB?
 
Status: RO
 
>>
>> A vital question that must be resolved if this mailing list
>> is to survive: what do you call a user of WEB?
>>
>>    I favor "WEBster", myself.  ;-)
>>
>> And is it "WEB" or "Web" or "web"?  "CWEB", "Cweb", "CWeb", or "cweb"?
 
Yes, important questions, indeed...
 
How's life, Cameron? Thanks for all the informative posts in c.t.t.
 
Paul Palmer
Department of Mathematics     	E-mail: palmerp@math.orst.edu
Kidder Hall 368
Oregon State University, Corvallis, Oregon 97331-4605
 
From Marcus Tue Jul 21 15:40:55 +0200 1992
Date: Tue, 21 Jul 92 15:40:55 +0200
From: Marcus Speh <marcus@ips102.desy.de>
Reply-To: LITPROG@SHSU.edu
To: Literate Programmers <litprog@shsu.edu>
Subject: Query: fweb.el; iPSC/860
 
Status: RO
 
(1)  	Using John Krommes' FWEB (v1.23) and the GNU Emacs Editor,
	I would like to have an elisp file "fweb.el" which accounts
	for the enhanced possibilities of FWEB wrt. CWEB and WEB. Thus, I
	would not have to switch back and forth between TeX-mode and the
	language mode[s, since FWEB supports ratfor, C, C++ and Fortran].
 
        [Yes, I know there is "cweb.el", "c++-mode.el" and fortran.el]
 
    Q: 	Does anybody have such code/ knows someone who has it/ is
 	currently writing it?
        [Otherwise please tell me why I am mistaken asking for it.]
 
(2)  	I'd appreciate any information on available code in FWEB or CWEB
 	for the iPSC/860 hypercube.
 
Thank you in advance,
Marcus Speh.
 
  Marcus Speh                      INTERnet <marcus@ips102.desy.de>
  II. Institut f. Theor. Physik    BITnet   <I02MSP@DHHDESY3>
  Luruper Chaussee 149             DECnet   <13313::SPEH>
  2000 Hamburg 50/Germany   Tel.(040)8998-2260  FAX:(040)8998-2267
 
From Joey Tue Jul 21 15:37:31 +22313801 1992
Date: Tue, 21 Jul 1992 15:37:31 +22313801 (EDT
From: Joey Gibson <aix3!wjg@netcom.com>
Reply-To: LITPROG@SHSU.edu
To: LitProg Mail-List <netcomsv!LITPROG@SHSU.edu>
Subject: Web intro?
 
Status: RO
 
I have just recently begun delving into litterate programming, using FunnelWeb.
It has a very nice tutorial introduction, but are there any other introductory
texts, such as ``Essential LaTeX'' or ``TeX on a VaX''?114q
 
Joey Gibson
 
===> Please address all E-mail to <wjg@aix3.ema.com>
===> The views expressed here are not necessarily those of EMA.
 
From jongill@lilac.bldrdoc.gov Tue Jul 21 10:10:23 -0600 1992
Date: Tue, 21 Jul 92 10:10:23 -0600
From: jongill@lilac.bldrdoc.gov (Jonathan M. Gilligan)
Reply-To: LITPROG@SHSU.edu
To: litprog@shsu.edu
Subject: FWEB for the PC?
 
Status: RO
 
I have used CWEB a bit, but am dissatisfied with the difficulties I've
found using it with modular programs. I plan to try using Don Hosek's
suggestions for implementing prototypes and header files, but I'm also
curious about FWEB. Is FWEB small enough to compile on a PC (i.e. with
64k segments and about 600K available memory)?
 
I am just learning C++ and it seems to me that designing class
hierarchies is an extreme case of something that needs literate
programming. I am now spending more time sitting with a pencil and
paper sketching data structures and relations than thinking about code
and it's clear to me that it will not be possible to keep track of
what's what without taking a literate approach.
 
I've been put off by the fact that every WEB program I've read starts
out with the same sort of I/O code to translate between external and
internal character sets (TeX, MF, bibTeX, etc.) where it would be far
more efficient to have an I/O package that you could just reference.
This is along the lines of the criticism of DEK's WEB style in
Programming Pearls ten years ago or so, that DEK treats a WEB program
as though there were no libraries or wheels in the world.
 
Also, I'd be very interested to hear how people deal with web files
and symbolic debuggers, particularly in a DOS environment. One of the
constraints that has kept me from using WEB extensively is the
difficulty of getting a symbolic debugger to associate the code with
the right part of the .web source file. This is exacerbated by the
fact that when TANGLE is done with a file, it's pretty much unreadable
and hence of little use for symbolic debugging.
 
Finally, when writing multimodule webs, it would be desirable to
include things like makefiles and module definition files in the web
--- after all I consider these to be integral parts of the code, since
I need them to compile it and the makefile is usually the place where
we document best what the dependencies are. What are people's thoughts
on these issues?
 
---Jon
------------------------------------------------------------------------------
Jonathan M. Gilligan		Time and Frequency Division
<jongill@lilac.bldrdoc.gov>	National Institute of Standards and Technology
				Boulder, Colorado, USA
 
Disclaimer --- The government probably disagrees with my opinions.
 
From Thorsten Tue Jul 21 19:01:55 +0200 1992
Date: Tue, 21 Jul 92 19:01:55 +0200
From: Thorsten Ohl <ohl@ips102.desy.de>
Reply-To: LITPROG@SHSU.edu
To: Literate Programmers <litprog@shsu.edu>
Subject: FWEB for the PC?
 
>>>>> On Tue, 21 Jul 92 10:10:23 -0600, jongill@lilac.csd.bldrdoc.gov (Jonathan M. Gilligan) said:
 
Status: RO
 
Jon> [...] but I'm also curious about FWEB. Is FWEB small enough to
Jon> compile on a PC (i.e. with 64k segments and about 600K available
Jon> memory)?
 
Yes.  It is known to compile with Micro$oft C 6.00 (once upon a time,
it also compiled with Turbo C, but I never tried that).
 
Jon> Also, I'd be very interested to hear how people deal with web
Jon> files and symbolic debuggers, particularly in a DOS environment.
Jon> One of the constraints that has kept me from using WEB
Jon> extensively is the difficulty of getting a symbolic debugger to
Jon> associate the code with the right part of the .web source file.
 
FWEB inserts sync lines `#line 137 foo.web' into the code, so any
compiler/debugger worth its money should respect them.  And I seem to
remember from my MS-DOS days that it worked ...
 
Jon> This is exacerbated by the fact that when TANGLE is done with a
Jon> file, it's pretty much unreadable and hence of little use for
Jon> symbolic debugging.
 
There's another proplem: how to distribute literate sources to
illiterate users?  Many people are not (yet?) willing to use the .web
sources, but are also slightly offended by tangled code (iff they want
to make modifications).  Yes, I know, they should be taught to use
change files ...
 
Jon> Finally, when writing multimodule webs, it would be desirable to
Jon> include things like makefiles and module definition files in the web
Jon> --- after all I consider these to be integral parts of the code, since
Jon> I need them to compile it and the makefile is usually the place where
Jon> we document best what the dependencies are.
 
FWEB plans to support Makefiles sometime in the future.
 
The problem remains that you easily end up remaking everthing, once
your .web file has changed.  It would be nice if tangle/weave could
operate on multiple files, such that the documentation (including the
index!) would be one single document, while the code could be compiled
separately.
 
////// Thorsten Ohl, DESY (-T-), Notkestr. 85, W-2000 Hamburg 52, F.R.G.
///////// net: ohl@crunch.ikp.physik.th-darmstadt.de, ohl@gnu.ai.mit.edu
//////////////////////// voice: +49-40-8998-3699,  fax: +49-40-8998-3282
 
From Marcus Tue Jul 21 19:04:19 +0200 1992
Date: Tue, 21 Jul 92 19:04:19 +0200
From: Marcus Speh <marcus@ips102.desy.de>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Reply: FWEB for the PC?
 
>>>>> On Tue, 21 Jul 92 10:10:23 -0600, Jonathan M. Gilligan said:
 
Status: RO
 
Jon> [...] I'm also
Jon> curious about FWEB. Is FWEB small enough to compile on a PC (i.e. with
Jon> 64k segments and about 600K available memory)?
 
Get the full FWEB distribution  via anonymous FTP
from: lyman.pppl.gov
directory: pub/fweb/v1.23/
 
After unpacking the tarfile, look in the directory boot/ for
portability of FWEB.
 
In the README files, the author of FWEB, John Krommes, promises
help for porting FWEB to new machines.
 
Jon> Finally, when writing multimodule webs, it would be desirable to
Jon> include things like makefiles and module definition files in the web
Jon> --- after all I consider these to be integral parts of the code, since
Jon> I need them to compile it and the makefile is usually the place where
Jon> we document best what the dependencies are.
 
This is no problem in FWEB anymore. See the *thick* manual for
the possibilities.
 
Jon> Disclaimer --- The government probably disagrees with my opinions.
 
[Lucky guy if your government has opinions and not only muscles.]
 
-msp
 
  Marcus Speh                      INTERnet <marcus@ips102.desy.de>
  II. Institut f. Theor. Physik    BITnet   <I02MSP@DHHDESY3>
  Luruper Chaussee 149             DECnet   <13313::SPEH>
  2000 Hamburg 50/Germany   Tel.(040)8998-2260  FAX:(040)8998-2267
 
From jfieber@sophia.smith.edu Tue Jul 21 13:53:24 EDT 1992
Date: Tue, 21 Jul 92 13:53:24 EDT
From: jfieber@sophia.smith.edu (John Fieber)
Reply-To: LITPROG@SHSU.edu
To: LITPROG@shsu.edu
Subject: Re: FWEB for the PC?
 
Status: RO
 
> Also, I'd be very interested to hear how people deal with web files
> and symbolic debuggers, particularly in a DOS environment. One of the
> constraints that has kept me from using WEB extensively is the
> difficulty of getting a symbolic debugger to associate the code with
> the right part of the .web source file. This is exacerbated by the
> fact that when TANGLE is done with a file, it's pretty much unreadable
> and hence of little use for symbolic debugging.
 
While this is an important issue that deserves serious attention,
I would like to add that since I've started using cweb, my
debugger has just been collecting dust.  Seems as though Knuth
was right about well thought out code needing less time
debugging.  Web inspires well thought out code.  It works for me.
:)
 
Out of curiosity, what sort of platforms are people using the
various incarnations of web on?  Personally I'm using cweb on an
Amiga.  I have fweb kicking around but have not even unpacked the
archive yet.
 
-john
 
From fritzz@lamont.ldgo.columbia.edu Tue Jul 21 14:19:34 EDT 1992
Date: Tue, 21 Jul 92 14:19:34 EDT
From: fritzz@lamont.ldgo.columbia.edu (Fritz Zaucker)
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: FWEB for the PC?
 
   X-Listname: Literate Programming Discussion List <LITPROG@SHSU.edu>
   Date: Tue, 21 Jul 92 19:01:55 +0200
   From: Thorsten Ohl <ohl@ips102.desy.de>
   Reply-To: LITPROG@SHSU.edu
   References: <9207211610.AA03334@lilac.csd.bldrdoc.gov>
 
   There's another proplem: how to distribute literate sources to
   illiterate users?  Many people are not (yet?) willing to use the .web
   sources, but are also slightly offended by tangled code (iff they want
   to make modifications).  Yes, I know, they should be taught to use
   change files ...
 
Status: RO
 
Hmmm, after doing an GNU EMACS indent-region on my ctangled file it
actually looked pretty much ok to me.
 
Fritz
 
From fritzz@lamont.ldgo.columbia.edu Tue Jul 21 14:19:34 EDT 1992
Date: Tue, 21 Jul 92 14:19:34 EDT
From: fritzz@lamont.ldgo.columbia.edu (Fritz Zaucker)
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: FWEB for the PC?
 
   X-Listname: Literate Programming Discussion List <LITPROG@SHSU.edu>
   Date: Tue, 21 Jul 92 19:01:55 +0200
   From: Thorsten Ohl <ohl@ips102.desy.de>
   Reply-To: LITPROG@SHSU.edu
   References: <9207211610.AA03334@lilac.csd.bldrdoc.gov>
 
   There's another proplem: how to distribute literate sources to
   illiterate users?  Many people are not (yet?) willing to use the .web
   sources, but are also slightly offended by tangled code (iff they want
   to make modifications).  Yes, I know, they should be taught to use
   change files ...
 
Status: RO
 
Hmmm, after doing an GNU EMACS indent-region on my ctangled file it
actually looked pretty much ok to me.
 
Fritz
 
From George Tue Jul 21 13:40:48 CDT 1992
Date: Tue, 21 Jul 1992 13:40:48 CDT
From: "George D. Greenwade" <bed_gdg@SHSU.edu>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Looking for Literate Programming files.....
 
81 subscribers in 25 hours -- unbeleeeeevable!!  BTW:  I am not all that
Status: RO
 
news knowledgeable, please pass along word of the list to any you may think
appropriate -- there have to be some comp...... groups beside comp.text.tex
which might be interested.
 
Since I am running the LITPROG list and since I already have a number of
archive files on Niord.SHSU.edu (192.92.115.8), I may as well support this
list and its interests as well(?) as I do my others.
 
Presently, I have Jim Fox's C-NO-WEB (in [FILESERV.CNOWEB]) and Silvio
Levy's CWEB (in [FILESERV.CWEB]) on Niord (these are also available via
e-mail by including SENDME CNOWEB or SENDME CWEB in the body of a mail
message to FILESERV@SHSU.BITNET (FILESERV@SHSU.edu)).  I have ftp'ed to
hyman.pppl.gov and retrieved John Krommes' FWEB package, version 1.23a
(April 13, 1992), and placed it in [FILESERV.FWEB]; it is avaialble in
compressed tar and in ZIP formats there; due to its size, I doubt if it
will ever be FILESERV'able.
 
If you hear of updates, know of other packages I ought to have, or have any
suggestions for files/packages which should be there to support LITPROG,
please pass along where I can retrieve them from or send me a message and I
will provide you with information about uploading to SHSU (still temporary;
we will soon have a standard file on this, as well as a standard
directory).
 
Regards,  George
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
George D. Greenwade, Ph.D.                            Bitnet:  BED_GDG@SHSU
Department of Economics and Business Analysis         THEnet: SHSU::BED_GDG
College of Business Administration                    Voice: (409) 294-1266
P. O. Box 2118                                        FAX:   (409) 294-3612
Sam Houston State University              Internet:        bed_gdg@SHSU.edu
Huntsville, TX 77341                      bed_gdg%SHSU.decnet@relay.the.net
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
From Thorsten Tue Jul 21 21:55:18 +0200 1992
Date: Tue, 21 Jul 92 21:55:18 +0200
From: Thorsten Ohl <ohl@ips102.desy.de>
Reply-To: LITPROG@SHSU.edu
To: Literate Programming Discussion List <litprog@shsu.edu>
Subject: Literate Programming in the Real World(tm) (was: FWEB for the PC?)
 
>>>>> On Tue, 21 Jul 92 14:19:34 EDT, fritzz@lamont.ldgo.columbia.edu (Fritz Zaucker) said:
 
tho> There's another proplem: how to distribute literate sources to
Status: RO
 
tho> illiterate users?  Many people are not (yet?) willing to use the
tho> .web sources, but are also slightly offended by tangled code (iff
tho> they want to make modifications).  Yes, I know, they should be
tho> taught to use change files ...
 
Fritz> Hmmm, after doing an GNU EMACS indent-region on my ctangled file it
Fritz> actually looked pretty much ok to me.
 
Sure, that solves some of the problems.  And the following make(1)
rule gives me a FORTRAN source that's almost indistinguishable from
some standard FORTRAN coding conventions :-).  [It still has too much
indentation though ...].
 
CLOV.FORTRAN: clov.f
	sed -e '/^[Cc\*]/d' -e '/^[ 	]*$$/d' -e '/^[	 ]*CONTINUE/d' $< \
		| tr a-z A-Z > $@
 
Still, all the comments are gone and the source is therefore almost
useless.
 
I'm really curious about your experiences with *web in the Real
World(tm).  I have to confess that I frequently prototype code in
FWEB, but when it comes to creating the production version, I
surrender to my conservative colleagues (Physicists can be _very_
conservative :-{) and use ... umm, err, umm .. Fortran.
 
How do you convince your illiterate colleagues of the merits of
literate programming?
 
Cheers,
-tho
 
PS: But I should really try to submit a FWEB program to Comp. Phys.
    Comm. one day ...
 
////// Thorsten Ohl, DESY (-T-), Notkestr. 85, W-2000 Hamburg 52, F.R.G.
///////// net: ohl@crunch.ikp.physik.th-darmstadt.de, ohl@gnu.ai.mit.edu
//////////////////////// voice: +49-40-8998-3699,  fax: +49-40-8998-3282
 
From Don Tue Jul 21 13:16 PST 1992
Date: Tue, 21 Jul 1992 13:16 PST
From: Don Hosek <DHOSEK@HMCVAX.CLAREMONT.EDU>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Re: FWEB for the PC?
 
Status: RO
 
-> Also, I'd be very interested to hear how people deal with web files
-> and symbolic debuggers, particularly in a DOS environment. One of the
-> constraints that has kept me from using WEB extensively is the
-> difficulty of getting a symbolic debugger to associate the code with
-> the right part of the .web source file. This is exacerbated by the
-> fact that when TANGLE is done with a file, it's pretty much unreadable
-> and hence of little use for symbolic debugging.
 
-While this is an important issue that deserves serious attention,
-I would like to add that since I've started using cweb, my
-debugger has just been collecting dust.  Seems as though Knuth
-was right about well thought out code needing less time
-debugging.  Web inspires well thought out code.  It works for me.
-:)
 
-Out of curiosity, what sort of platforms are people using the
-various incarnations of web on?  Personally I'm using cweb on an
-Amiga.  I have fweb kicking around but have not even unpacked the
-archive yet.
 
With cweb and the Zortech debugger, I have seamless debugging. It
always looks in the right place in the .w file for the line being
executed. (zdb has other problems but...). On the other hand, the
Turbo Debugger seems to ignore the file names on #line statements
so it's useless in cweb (if you aren't pointing at another file,
why even have #line statements?).
 
Of course pascal-weavers (my nominee for what we call ourselves)
are completely out of luck having no equivalent to #line.
 
-dh
 
Don Hosek
dhosek@ymir.claremont.edu
Quixote Digital Typography
714-621-1291
 
From Cameron Tue Jul 21 16:30:21 -0500 1992
Date: Tue, 21 Jul 1992 16:30:21 -0500
From: Cameron Smith <cameron@symcom.math.uiuc.edu>
Reply-To: LITPROG@SHSU.edu
To: litprog@shsu.edu
Subject: WEB-less literate programming
 
Thorsten Ohl (ohl@ips102.desy.de) writes:
 
> There's another proplem: how to distribute literate sources to
Status: RO
 
> illiterate users?  Many people are not (yet?) willing to use the .web
> sources, but are also slightly offended by tangled code (iff they want
> to make modifications).
 
Actually, I started using c-no-web over a year before I first began
to dabble in CWEB, for the same reasons that Jim Fox created it:
I wanted to write well-documented, attractively typeset programs but
I didn't want to (a) adopt an entirely new philosophy of programming
or (b) spend time acquiring arcane skills with yet another Knuthianly
quirky and idiosyncratic software system.  (I think the man is brilliant
but demented -- the macro-expansion semantics of TeX and Metafont are
intellectually interesting, but they are hell to use for actual
programming.)
 
I see the chief value of literate programming as being the care that
one is forced to take over one's code when one keeps in mind while
writing it the goal of making it understandable to others.  I know
that the thought that someone else might see what I was doing
discourages me from pulling dirty tricks and shortcuts in my code!
 
But any idea that WEB lets one *develop* the parts of one's programs
in the order that makes the most sense is just silly.  My text editor
lets me move up and down in my source files, thank you very much,
so I can work on the parts of the code in any order I want to.
The value of WEB specifically (considered as one particular tool
but not the only possible tool for literate programming) is that
it lets you *present* the program, after it is written, in the order
that it was developed -- or in the order that makes the best
presentation, which is probably NOT the order in which it was developed.
 
So I ask myself: does that advantage outweigh the disadvantages
(such as not being able to share source files with non-WEBsters,
and having headaches with Makefile dependencies)? And for many
projects the answer is "no, it doesn't".  For those I greatly
prefer c-no-web, which still lets me create attractive, legible
program listings, including illustrations, mathematical derivations,
or whatnot, but doesn't require me to wangle (or mangle or whatever)
the source file before I can TeX it or compile it or share it with
a colleague.  (For those who haven't tried it, let me explain:
a c-no-web file is acceptable as input to both TeX and a C compiler
*without* any preprocessing!)  For short programs especially,
ones that a reader wouldn't really need an outline or index or
roadmap to find his way around in anyway, c-no-web is the way to go.
(It does let you have sections, subsections, a table of contents,
and other nice features, but it doesn't do the cross-referencing
that WEB-based systems do.)
 
I might also mention the fact that c-no-web doesn't impose someone
else's style of indentation on me (there are some features of the way
CWEB treats C code that I *hate*), and its TeX macros are *much*
easier to customize than CWEB's.  (For a system whose sole purpose
is to encourage clean style and good documentation in programming,
CWEB uses inexcusably poorly documented TeX code, and some "features"
of its typography can only be fixed by changing the grammatical
productions it uses and recompiling cweave.)
 
I realize that the above criticisms go to the existing implementation
of CWEB and not to the underlying ideas.  It's just offered as a quick
take on my (admittedly limited) experience with these two approaches
as they now exist, and doesn't in any way imply that a WEB-like system
without these problems couldn't be created and be a useful tool.
(In fact I do sometimes use CWEB, but I sometimes grit my teeth when I do.)
I also realize that c-no-web doesn't help people who program in other
languages than C.
 
Just one man's opinion--
--Cameron Smith
  cameron@symcom.math.uiuc.edu
 
From Joey Wed Jul 22 00:06:37 +22313801 1992
Date: Wed, 22 Jul 1992 00:06:37 +22313801 (EDT
From: Joey Gibson <aix3!wjg@netcom.com>
Reply-To: LITPROG@SHSU.edu
To: LitProg Mail-List <netcomsv!LITPROG@SHSU.edu>
Subject: FunnelWeb Opinions
 
Status: RO
 
I have recently gotten FunnelWeb and was wondering what others thought of
this package. It is the first Web implementation I have used, and I rather
like it, inasmuch as I know about Web, thus far. Anyway, opinions on
FunnelWEb would be appreciated.
 
Joey Gibson
 
===> Please address all E-mail to <wjg@aix3.ema.com>
===> The views expressed here are not necessarily those of EMA.
 
From Dave Wed Jul 22 11:24:34 BST 1992
Date: Wed, 22 Jul 92 11:24:34 BST
From: Dave Love <d.love%daresbury.ac.uk@ib.rl.ac.uk>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: noweb [was Re: FWEB for the PC?]
 
>>>>> On Tue, 21 Jul 92 19:01:55 +0200, Thorsten Ohl <ohl@de.desy.ips102> said:
 
 > There's another proplem: how to distribute literate sources to
 > illiterate users?  Many people are not (yet?) willing to use the .web
 > sources, but are also slightly offended by tangled code (iff they want
 > to make modifications).  Yes, I know, they should be taught to use
 > change files ...
 
Status: RO
 
[...]
 
 > FWEB plans to support Makefiles sometime in the future.
 
There's a system called `noweb' by Norman Ramsey (of SpiderWeb fame)
which addresses problems of interacting with make and tangling code to
a form that can be sensibly exported to the `illiterate' :-).  It's
unix-based (modular) and doesn't pretty-print, although you could
write pretty-printing modules for it and, presumably, adapt the shell
scripts to other operating systems with more or less difficulty.  It's
ftp-able as anonymous@princeton.edu:noweb.tar.Z, as I recall.
 
From Charles Wed Jul 22 07:37:35 EDT 1992
Date: Wed, 22 Jul 92 07:37:35 EDT
From: Charles Elliott <CEE@CORNELLC.cit.cornell.edu>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Re: Literate Programming in the Real World(tm) (was: FWEB for the PC?)
 
Status: RO
 
Would someone please post a brief paragraph on 'literate' programming for
us novices ? Many of us, I am sure, are so pressed for time that we don't
really have the time to devote to a scholarly article, a tutorial or
independent investigation...just to see if 'literate' programming is worth
serious attention.  BTW the term 'illiterate' is one of opprobrium in normal
use, and I'll bet other neophytes are offended by it as well. Can't you think
of a better term ? 'unconvinced' ?   --thanks -- Charles Elliott
 
----------------------------------------------------------------|
Charles Elliott                                                 |
cee @ cornellc                                                  |
cee@cornellc.cit.cornell.edu                                    |
----------------------------------------------------------------|
 
From Cameron Wed Jul 22 12:39:05 -0500 1992
Date: Wed, 22 Jul 1992 12:39:05 -0500
From: Cameron Smith <cameron@symcom.math.uiuc.edu>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Re: Literate Programming in the Real World(tm) (was: FWEB for the PC?)
 
Charles Elliott <CEE@CORNELLC.cit.cornell.edu> asks:
Status: RO
 
> Would someone please post a brief paragraph on 'literate' programming
> for us novices? [...]
 
Literate programming is writing programs for people rather than machines.
(How's that for brief? :-) )
 
The term was chosen (in part) to suggest going beyond "structured
programming", which means programs written in a good way for machines
to understand and execute, into a mode in which programs are written
primarily for humans to understand and appreciate. The grungy
details of massaging a human-readable exposition of an algorithm
into something that a machine can digest are considered secondary,
and tools like Web are supposed to take care of that for us.
 
Literate programming means regarding programs as contributions to
the literature of computer science.  Knuth firmly believes that we
write better programs when we address them to our peers than when
we address them to our tools.  He maintains that the discipline
required to write programs in a way that would let others understand
them, with clean exposition and attractive presentation, automatically
causes us to write better programs, as a by-product, while ennobling
the craft by keeping its focus directed at people rather than machines.
Literate programmers buy this idea.
 
> [...] the term 'illiterate' is one of opprobrium in normal
> use, and I'll bet other neophytes are offended by it as well.
 
This is intentional (not that offense be taken, but that 'illiterate'
be a term of opprobrium).  Donald Knuth explicitly stated that another
factor in his choice of terminology was the intention of making
programmers feel embarrassed to admit that they write 'illiterate'
programs.  Maybe this isn't good psychology or good PR, but it's
not accidental.  And since those who practice literate programming
presumably do so because they do believe that it makes better programs,
they probably don't mind expressing disapprobation of lesser methods
(just as programmers who religiously write structured programs sneer
at "spaghetti code").  So I doubt it will change.
 
Hope this helps--
--Cameron Smith
  cameron@symcom.math.uiuc.edu
 
From Cameron Wed Jul 22 13:18:27 -0500 1992
Date: Wed, 22 Jul 1992 13:18:27 -0500
From: Cameron Smith <cameron@symcom.math.uiuc.edu>
Reply-To: LITPROG@SHSU.edu
To: litprog@shsu.edu
Subject: New version of CWEB sample program
 
Status: RO
 
I have created a new version of my CWEB sample program based on
the calculator program from Chapter 4 of Kernighan and Ritchie's
C book.  This program illustrates the use of CWEB with a program
that is divided into multiple, separatly compiled source files (note
that all the demo programs distributed with CWEB are "monolithic").
It incidentally also shows a way of handling ANSI function
prototypes in CWEB.  Since it's getting largish (about 47K uncompressed),
I'm planning to take George Greenwade up on his offer to house it in
his archive at niord.shsu.edu (the official archive of the LITPROG
list).  I'll upload it ASAP; it should be available tonight or tomorrow.
So please don't ask for it by email; instead fetch it by anonymous FTP
or by mail request to FILESERV.  Thanks!
 
The actual Web source files haven't changed at all, but the
Makefile has been substantially improved, and two new files added.
The new version includes a ReadMe file that talks you through
the process of ctangle'ing, cweave'ing, compiling, and TeX'ing
(but assumes you know the basics of how a Makefile works),
and an additional Web file whose purpose is to assemble the output
(.tex and .toc files) from the separate documentation files into
a single file that contains a listing for the whole program, with
the tables of contents, indexes, and lists of sections grouped
together.  This project was created with the intention of having
it serve as a model or template that can be copied to give a
CWEB programmer a pre-built scaffold with which to erect his
own programs.  It is exhaustively (or perhaps exhaustingly ;-) )
documented.
 
Input from several "beta testers" has been very helpful in
creating this improved version, and I intend to continue
improving it if feedback continues to come in.
Thanks to everyone who has expressed interest and devoted
time to helping make this a useful example for CWEB novices!
--Cameron Smith
  cameron@symcom.math.uiuc.edu
 
From Timothy Wed Jul 22 19:48:12 BST 1992
Date: Wed, 22 Jul 92 19:48:12 BST
From: Timothy Murphy <tim@maths.tcd.ie>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Re: Literate Programming in the Real World(tm) (was: FWEB for the PC?)
 
Status: RO
 
> Literate programming is writing programs for people rather than machines.
> (How's that for brief? :-) )
 
I suppose everyone knows the reference:
 
@book{knuth92
  author = {Donald E. Knuth},
  title = {Literate Programming},
  publisher = {CSLI},
  address = {Stanford},
  year = {1992}}
 
Timothy Murphy
 
e-mail: tim@maths.tcd.ie
tel: +353-1-2842366 (home/office)
     +353-1-7021507 (university)
fax: +353-1-2842295
s-mail: School of Mathematics, Trinity College, Dublin 2, Ireland
 
From Jim Wed Jul 22 13:27:59 CST 1992
Date: Wed, 22 Jul 92 13:27:59 CST
From: "Jim Glover" <SPJRG@VM.CC.LATECH.EDU>
Reply-To: LITPROG@SHSU.edu
To: litprog@shsu.edu
Subject: How 'bout examples?
 
Status: RO
 
I have anxiously awaited a good explanation of what literate
programming is, and I think I have been able to piece it
together out of what I've read so far, to an extent.  But now,
what I'd like to see to complete my mental picture is some
kind of example.  Could someone please post 20 or 30 lines of
this new style of code which is supposed to be so much easier
for us humans to understand?  Thanks!
 
From George Wed Jul 22 14:55:53 CDT 1992
Date: Wed, 22 Jul 1992 14:55:53 CDT
From: "George D. Greenwade" <bed_gdg@SHSU.edu>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Re: Literate Programming in the Real World(tm) (was: FWEB for the PC?)
 
On Wed, 22 Jul 92 07:37:35 EDT, Charles Elliott
<CEE@CORNELLC.cit.cornell.edu> asked:
Status: RO
 
> Would someone please post a brief paragraph on 'literate' programming for
> us novices? 
 
Not exactly a brief paragraph, but as I've been collecting various WEB
packages (a post soon -- wellll, sometime this month -- will tell you about
them -- logon via anonymous ftp to Niord.SHSU.edu [192.92.115.8] and issue
the command DIR *WEB*.DIR -- those are the WEB-related directories), I
found a relatively nice, somewhat short commentary on this in chapter 1 of
Ross N. Williams' FunnelWeb package user's manual (in
funnelweb/userman/u_ch1.tex of [FILESERV.FUNNELWEB]FUNNELWEB-V1_0.ZIP and
*.TAR_Z -- a May 27, 1992, file).  Don't have time to de-Tex-ify it;
believe you can get the gist of it, though.
 
Regards,   George
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
George D. Greenwade, Ph.D.                            Bitnet:  BED_GDG@SHSU
Department of Economics and Business Analysis         THEnet: SHSU::BED_GDG
College of Business Administration                    Voice: (409) 294-1266
P. O. Box 2118                                        FAX:   (409) 294-3612
Sam Houston State University              Internet:        bed_gdg@SHSU.edu
Huntsville, TX 77341                      bed_gdg%SHSU.decnet@relay.the.net
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{What is Literate Programming?}
\x{literate programming}
 
A traditional computer program consists of a text file containing program
code. Scattered in amongst the program code are comments which describe the
various parts of the code. 
 
In \newterm{literate programming} the emphasis is reversed. Instead of
writing code containing documentation, the literate programmer writes
documentation containing code. No longer does the English commentary
injected into a program have to be hidden in
comment delimiters at the top of the
file, or under procedure headings, or at the end of lines.
Instead, it is wrenched into the daylight and made the main focus.
The \dq{program} then becomes primarily a document directed at humans,
with the code being herded between \dq{code delimiters} from where it
can be extracted and shuffled out sideways to the language system
by literate programming tools.
 
The effect of this simple shift of emphasis can be so
profound as to change one's whole approach to programming. Under the
literate programming paradigm, the central activity of programming becomes
that of conveying meaning to other intelligent beings rather than merely
convincing the computer to behave in a particular way. It is the difference
between performing and exposing a magic trick.\x{magic trick}
 
In order to program in a literate style, particular tools are
required.\xx{tools}{literate programming}
The traditional approach (used in the FunnelWeb system) is to have
some sort of text-file-in/text-file-out utility that reads a
literate program (containing a program commentary peppered with scraps
of program text) and writes out a file containing all the program code and
a file containing typesetter commands representing the entire input document,
documentation, code, and all (\figarchitecture{}).
 
\begin{figure}[htbp]
\begin{verbatim}
 
                +-----------------------------------------+
                | File containing the program description |
                | peppered with scraps of program code.   |
                | This is what the programmer works on.   |
                |          (e.g. sloth.web)               |
                +-----------------------------------------+
                                    |
                                    v
                      o---------------------------o
                      | Literate Programming Tool |
                      o---------------------------o
                                    |
                +-------------------+-------------------+
                |                                       |
                v                                       v
       +------------------+           +----------------------------------+
       |   Traditional    |           | Documentation file suitable for  |
       | Computer Program |           | input into a typesetting program |
       |  (e.g. sloth.c)  |           |        (e.g. sloth.tex)          |
       +------------------+           +----------------------------------+
 
\end{verbatim}
\mylabel{\figarchitecture{}: Traditional architecture of literate% WRAPPED-GDG
programming tools.}{%
%
Literate programming tools could be organized in a number of ways. However,
to fit in with current file and command line based environments, most tools
conform to the traditional architecture shown here in which the user feeds
in a file containing a literate program, and the literate programming
utility generates program files and a documentation file.
%
}
\end{figure}
 
Given the coming age of hypertext\x{hypertext} systems,
this is probably not the best approach.
However, it does mesh beautifully with current text
files and command line interfaces, the expectation of linear presentations in
the documents we read, and the particular requirements of current programming
languages and typesetting systems. It is certainly not a bad approach.
 
With this structure in place, the literate programming system can provide
far more than just a reversal of the priority of comments and code.
In its full blown form, a good literate programming facility can provide
total support for the essential thrust of literate programming, which is that
computer programs should be written more for the human reader
than for the compiler. In particular, a literate programming system can
provide:\xs{literate programming}{facilities}
 
\narrowthing{Re-ordering of code:}{Programming languages often force the
programmer to give the various parts of a computer program in a particular
order.\xx{program}{ordering}
For example, the Pascal\x{Pascal} programming language\paper{BSI82}
imposes the ordering:
constants, types, variables, procedures, code. Pascal also requires that
procedures appear in an order consistent with the partial ordering
imposed by the static call graph (but forward
declarations allow this to be bypassed). In contrast, the literate style
requires that the programmer be free to present the computer program in
any order whatsoever. The facility to do this is implemented in literate
programming tools by providing text \i{macros} that can be defined
and used in any order.}
 
\narrowthing{Typeset code and documentation:}{Traditionally program
listings are
dull affairs consisting of pages of fan-form paper imprinted with meandering
coastlines of structured text in a boring font. In contrast, literate
programming systems are capable of producing documentation that is
superior in two ways. First, because most of the documentation text is
fed straight to the typesetter, the programmer can make use of all the
power of the underlying typesetter, resulting in documentation that has the
same presentation as an ordinary typeset document. Second, because the
literate programming utility sees all the code, it can use its knowledge
of the programming language and the features of the typesetting language
to typeset the program code as if it were appearing in a
technical journal. It is the difference
between:}
 
\begin{verbatim}
    while sloth<walrus loop
       sloth:=sloth+1;
    end loop
\end{verbatim}
 
\narrowtext{and}
 
\begin{verse}
\b{while} \i{sloth}$<$\i{walrus} \b{loop}\\
\qquad\qquad \i{sloth}$\leftarrow$\i{sloth}$+1$;\\
\b{end} \b{loop}
\end{verse}
 
\narrowtext{Unfortunately, while FunnelWeb provides full typesetting
of the
documentation, it typesets all of its code in the style of the first of these
two examples. To typeset in the style of the second requires knowledge of
the programming language, and the current version of FunnelWeb is
programming language independent. At a later stage, it is possible that
FunnelWeb will be modified to read in a file containing information
about the target programming language to be used to assist in
typesetting the code properly.}
 
\narrowthing{Cross referencing:}{Because\x{cross referencing}
the literate tool sees all the
code and documentation, it is able to generate extensive cross referencing
information in the typeset documentation. This makes the printed program
document more easy to navigate and partially compensates for the lack of
an automatic searching facility when reading printed documentation.}
 
In the end, the details don't matter. The most significant
benefit that literate programming offers
is \i{its capacity to transform the state of mind of the
programmer}.\xs{literate programming}{most significant benefit}
It is now legend that the act of explaining something can transform
one's understanding of it. This is one of the justifications behind the
powerful combination of research and teaching in
universities\paper{Rosovsky90}.\x{universities}
Similarly, by constantly explaining the unfolding program code in English to an
imaginary reader, the programmer transforms his perception of the code,
laying it open, prone, to the critical eye.\xx{explaining}{code}
 
The result of this exposure is a higher quality of programming.
When exposed to the harsh light of the literate eye,
bugs crawl out, special cases vanish, and sloppy code evaporates.
As a rule literate programs
take longer to write than ordinary programs, but the total
development time\xx{development}{time}
is the same or less because the time taken to write and
document the program carefully is compensated for by a reduced debugging
and maintenance time.
Thus literate programming does not merely assist in the preparation of
documentation, but also makes significant contributes to the process of
programming itself. In practice this has turned out to be a contribution
far more important than the mere capacity to produce typeset documentation.
 
For more information on literate programming, the reader is directed
to Knuth's early founding work \paper{Knuth83} and \paper{Knuth84}.
For more recent information refer to \paper{Smith91},
which provides a comprehensive bibliography up to 1990.
 
\paper{Knuth83} Knuth~D.E., \dq{The WEB System of Structured
Documentation}, (Web User Manual, Version~2.5, November, 1983),
Stanford University, 1983.
 
\paper{Knuth84} Knuth~D.E., \dq{Literate Programming}, \i{The Computer
Journal}, Vol.~27, No.~2, pp.~97-111, 1984.\checked{Reference copied from
SIGPLAN 26(1) p.16} Note: The author of this manual has not yet obtained
this paper.
 
\paper{Rosovsky90} Rosovsky~H., \dq{The University: An Owner's Manual},
W.W.Norton \& Company, Inc., (ISBN: 0-393-02782-1), 1990.\checked{}
 
\paper{Smith91} Smith~L.M.C., \dq{An Annotated Bibliography
of Literate Programming}, ACM SIGPLAN Notices, Vol.~26, No.~1,
January 1991.\checked{}
 
From BEEZER@UPS.EDU Wed Jul 22 14:24:25 -0700 1992
Date: Wed, 22 Jul 1992 14:24:25 -0700 (PDT)
From: BEEZER@UPS.EDU (Rob Beezer)
Reply-To: LITPROG@SHSU.edu
To: litprog@shsu.edu
Subject: WEB for Macintosh, Turbo C++
 
I have a few pesky questions that members of this list could perhaps answer:
 
Status: RO
 
1.  Where can I get a version of WEB that is compiled for use on a Mac,
    preferably for use with Lightspeed Pascal?  I have looked long and hard for
    such an item, but I have not been able to find it.
 
2.  Any recommendations on versions of WEB to use with Borland's Turbo C++
    on a DOS machine?  Will CWEB work OK with C++?
 
3.  Can someone describe the capabilities of FWEB?  What languages does it work
    with and on which machines?
 
Thanks in advance,
 
Rob
............................................................................
:   Robert Beezer                   :         Internet:  beezer@ups.edu    :
:   Dept. of Mathematics and CS     :         Voice:     206.756.3564      :
:   University of Puget Sound       :         Fax:       206.756.3500      :
:   Tacoma, WA  98416               :                                      :
............................................................................
 
From George Wed Jul 22 16:33:13 CDT 1992
Date: Wed, 22 Jul 1992 16:33:13 CDT
From: "George D. Greenwade" <bed_gdg@SHSU.edu>
Reply-To: LITPROG@SHSU.edu
To: litprog@SHSU.edu
Subject: KR-CWEB-SAMPLE on FILESERV/Niord
 
Status: RO
 
Cameron Smith forwarded his samples, as he promised in an earlier posting
today.  Below is the description file with retrieval instructions.  Thanks
to Cameron for sharing this example of literate programming!!
 
--George
 
                              KR-CWEB-SAMPLE
                              --------------
The KR-CWEB-SAMPLE package includes a sample of CWEB usage provided by
Cameron Smith <cameron@symcom.math.uiuc.edu>.  It illustrates one way of
using CWEB with multiple source files that are compiled separately.  A
Makefile is provided to direct the construction of the executable program
and the typeset listings.  This program was originally created for the
enlightenment of its author, as a novice CWEB programmer, after realizing
that each of the demonstration programs included in the CWEB distribution
consists of a single "monolithic" source file -- which is not how most
non-trivial C programs are structured.  The goal of this package is to
provide a simple example showing how to use CWEB for more realistic
programming tasks.
 
This program is based very closely on the calculator program from Chapter 4
of Kernighan and Ritchie's "The C Programming Language" (2nd edition). 
That program was chosen because it is short and easy to understand, so you
can concentrate on the way it is implemented in CWEB rather than how it
works (although of course you ordinarily want the focus to be exactly
reversed -- on the algorithm rather than the implementation!).
 
To retrieve the set of 7 files, include the command:
 SENDME KR-CWEB-SAMPLE
in the body of a mail message to FILESERV@SHSU.BITNET (FILESERV@SHSU.edu). 
To retrieve a specific file, such as KR-CWEB-SAMPLE.README, include:
 KR-CWEB-SAMPLE.README
in your mail message to FILESERV.  The files are available individually, as
well as packaged in compressed tar format and ZIP format, for anonymous ftp
retrieval from Niord.SHSU.edu (192.92.115.8) in the directory
[FILESERV.KR-CWEB-SAMPLE].
 
Files in this package: (1 Block = 512 bytes)
File                  Blocks  Save file as:
-------------------------------------------------------------------------------
KR-CWEB-SAMPLE.CALC_W     17  calc.w    
KR-CWEB-SAMPLE.GETCH_W     6  getch.w   
KR-CWEB-SAMPLE.GETOP_W     7  getop.w   
KR-CWEB-SAMPLE.MAIN_W      7  main.w    
KR-CWEB-SAMPLE.MAKEFILE   12  Makefile  
KR-CWEB-SAMPLE.README     36  ReadMe    
KR-CWEB-SAMPLE.STACK_W     6  stack.w   
 
Approximate total blocks in full KR-CWEB-SAMPLE package = 91
 
From George Wed Jul 22 17:13:09 CDT 1992
Date: Wed, 22 Jul 1992 17:13:09 CDT
From: "George D. Greenwade" <bed_gdg@SHSU.edu>
Reply-To: LITPROG@SHSU.edu
To: litprog@SHSU.edu
Subject: Intro.ps for FWEB on FILESERV/Niord
 
Status: RO
 
Marcus Speh <marcus@ips102.desy.de> was kind enough to forward along the
Intro.ps result of fweaving the file Intro.web in the fweb-v1.23 release. I
have included this in the directory [FILESERV.FWEB] on Niord.SHSU.edu
(192.92.115.8).  Printed, these are only 16 pages which include a pretty
(fortran) example and a brief overview.  Nothing fancy: If someone just
wants to see how the game goes without retrieving and unpacking FWEB, this
might do it.
 
I (ready for some convolution?) ZIPped the PS file, then UUENCODEd it so it
could be available from FILESERV, as well -- the untouched Intro.ps is
there for ftp purposes, though.  To retrieve the file via e-mail, include:
 SENDME FWEB.INTRO_UUE
in the body of a mail message to FILESERV@SHSU.BITNET (FILESERV@SHSU.edu). 
This will UUDECODE to INTRO.ZIP, which UNZIPs to INTRO.PS (wheh!).
 
If you don't have the platform-independent ZIP and UNZIP, include:
 LIST ZIP
 LIST UNZIP
in your mail message to FILESERV and information on getting it will be
sent, as well.  For ftp folks, look in [FILESERV.ZIP] and [FILESERV.UNZIP]
on Niord for compressed tar files and ZIP files of these.  These are neat
utilities which allow for very portable compressed archive files!!
 
Still collecting this stuff (but don't have a clue what it is 8-)).
 
Regards,   George
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
George D. Greenwade, Ph.D.                            Bitnet:  BED_GDG@SHSU
Department of Economics and Business Analysis         THEnet: SHSU::BED_GDG
College of Business Administration                    Voice: (409) 294-1266
P. O. Box 2118                                        FAX:   (409) 294-3612
Sam Houston State University              Internet:        bed_gdg@SHSU.edu
Huntsville, TX 77341                      bed_gdg%SHSU.decnet@relay.the.net
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
From jongill@lilac.bldrdoc.gov Wed Jul 22 16:36:40 -0600 1992
Date: Wed, 22 Jul 92 16:36:40 -0600
From: jongill@lilac.bldrdoc.gov (Jonathan M. Gilligan)
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Literate Programming in the Real World(tm) (was: FWEB for the PC?)
 
Charles Elliott <CEE@CORNELLC.cit.cornell.edu> writes:
 
    Would someone please post a brief paragraph on 'literate'
    programming for us novices ? Many of us, I am sure, are so
    pressed for time that we don't really have the time to
    devote to a scholarly article, a tutorial or independent
    investigation...just to see if 'literate' programming is
    worth serious attention.
 
Status: RO
 
For a short discussion, see the book review of Knuth's Stanford Tech.
Report, ``Literate Programming,'' in this Month's (August 1992) Dr.
Dobb's Journal. The review is somewhat incomplete, mostly in that it
does not touch on some of the shortcomings of existing literate
programming systems, does not acknowledge the existence of systems
other than WEB and CWEB, and doesn't mention any literature other than
the Tech Report, but it gives a reasonable flavor of what the basic
ideas are and it is easy to read. A much more thorough discussion,
which is more involved (but you can read it easily and catch the main
ideas even if you skip the hard parts) is the two-part Programming
Pearls column in CACM, Vol. 29, pp.  364--369 (May, 1986) and
471--483 (June, 1986).
 
If you want a description short enough to post, I can't improve on
Cameron Smith's.
 
Jim Glover <SPJRG@VM.CC.LATECH.EDU> wants examples of literate code.
Again, the Programming Pearls piece is a nice place to start. It has a
short and a not-so-short example, along with some very thoughtful
criticism of literate programming and Knuth's programming style by
Doug McIlroy of Bell labs.
 
There are also a number of WEB programs on labrea.stanford.edu, which
you can ftp anonymously.
 
---Jon
 
From Timothy Wed Jul 22 23:38:27 BST 1992
Date: Wed, 22 Jul 92 23:38:27 BST
From: Timothy Murphy <tim@maths.tcd.ie>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@shsu.edu
Subject: Re: WEB for Macintosh, Turbo C++
 
Status: RO
 
> 1.  Where can I get a version of WEB that is compiled for use on a Mac,
>     preferably for use with Lightspeed Pascal?  I have looked long and hard for
>     such an item, but I have not been able to find it.
 
This isn't quite your question,
but I ported web2c to the Mac, using Think C (v4 or v5).
This included all the web programs, tangle, weave, etc.
My efforts are available from ftp.maths.tcd.ie
in pub/TeX/src-5.851c/16-bit .
Nb In principle, this only contains the change files
against Karl Berry's standard web2c-5.851c .
 
But it should be possible to do everything in Pascal,
for those of Pascalene (?) inclination.
(I think Think C/Pascal from Symantec is the successor to Lightspeed.)
 
> 2.  Any recommendations on versions of WEB to use with Borland's Turbo C++
>     on a DOS machine?  Will CWEB work OK with C++?
 
I'm sure there would be few problems.
Turbo-C++ accepts ANSI C,
and I compiled CWEB on the Mac with very few problems.
My change files (small) are in the directory pub/TeX/CWEB/16-bit
on the machine above.
The main problem on the PC will be that some arrays are more than 64k.
But I doubt if they need to be for reasonable CWEB files.
After all, no-one has tex.w or mf.w, have they?
 
> 3.  Can someone describe the capabilities of FWEB?  What languages does it work
>     with and on which machines?
 
I must admit that I was rather shocked at the size of FWEB.
Rather selfishly, I am only interested in C and C++.
I wonder if FWEB would have any attractions for those like me?
Of course CWEB has the great plus of association with DEK.
 
On a different point,
to me it is obvious that CWEB should be written in ANSI-C,
and should be geared to producing ANSI-C output.
Especially as it must be so simple to make the necessary changes.
I had an argument with Karl Berry about this --
I was suggesting that web2c should produce ANSI output --
and I was surprised at Karl's view that K&R C is still
the majority tongue.
 
Here is the README file from the CWEB directory mentioned earlier.
 
This directory contains CWEB change files for THINK C on the Macintosh.
 
In addition, it contains the actual ctangle and cweave programs,
in ctangle.hqx (=ctangle.sit.hqx) and cweave.hqx (=cweave.sit.hqx).
 
If you want to re-compile ctangle and/or cweave,
you will need the actual *.w CWEB files --
common.w and ctangle.w for ctangle,
common.w, prod.w and cweave.w for cweave.
 
(Nb: cweave.c only just scrapes into a THINK C segment,
when all optimisations are turned on,
and most other options are turned off.)
 
Change files for the CWEB sample files treeprint, wc and wmerge
are also included.
 
Timothy Murphy <tim@maths.tcd.ie> 12 July 1992
 
Timothy Murphy
 
e-mail: tim@maths.tcd.ie
tel: +353-1-2842366 (home/office)
     +353-1-7021507 (university)
fax: +353-1-2842295
s-mail: School of Mathematics, Trinity College, Dublin 2, Ireland
 
From Timothy Wed Jul 22 23:48:45 BST 1992
Date: Wed, 22 Jul 92 23:48:45 BST
From: Timothy Murphy <tim@maths.tcd.ie>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Re: Intro.ps for FWEB on FILESERV/Niord
 
Status: RO
 
> Marcus Speh <marcus@ips102.desy.de> was kind enough to forward along the
> Intro.ps result of fweaving the file Intro.web in the fweb-v1.23 release.
 
Does fweave not produce TeX output?
 
Timothy Murphy
 
e-mail: tim@maths.tcd.ie
tel: +353-1-2842366 (home/office)
     +353-1-7021507 (university)
fax: +353-1-2842295
s-mail: School of Mathematics, Trinity College, Dublin 2, Ireland
 
From George Wed Jul 22 18:10:08 CDT 1992
Date: Wed, 22 Jul 1992 18:10:08 CDT
From: "George D. Greenwade" <bed_gdg@SHSU.edu>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Re: Intro.ps for FWEB on FILESERV/Niord
 
On Wed, 22 Jul 92 23:48:45 BST, Timothy Murphy <tim@maths.tcd.ie> asked:
Status: RO
 
> > Marcus Speh <marcus@ips102.desy.de> was kind enough to forward along the
> > Intro.ps result of fweaving the file Intro.web in the fweb-v1.23 release.
>
> Does fweave not produce TeX output?
 
Yes, it certainly does (but it crashes out on me for some reason on
processing 8-().  The file INTRO.TEX is in [FILESERV.FWEB] on Niord. 
Use SENDME FWEB.INTRO_TEX in the body of a mail message to FILESERV@SHSU to
get the TeX output from FILESERV.
 
George
 
From Donald Wed Jul 22 18:11:37 -0500 1992
Date: Wed, 22 Jul 1992 18:11:37 -0500
From: "Donald N. Petcher" <petcher@arthur.wustl.edu>
Reply-To: LITPROG@SHSU.edu
To: litprog@shsu.edu
Subject: Re: WEB for Macintosh, Turbo C++
 
Status: RO
 
In response to Robert Beezer's question about C++ and web, and about
fweb, the answer is the same for both questions (in part). Fweb which is
being supported and upgraded by John Krommes is an extension of cweb
that works for C, C++, Fortran, Fortran90, and Ratfor, and with some
support for TeX (as a language - i.e. write literate TeX documents!). It
runs on most platforms: VMS, PC, Unix, and pretty much anything that the
gnu C compiler is supported for (I compiled it on an Atari ST for
example). I don't think it has been ported to the Macintosh though. It
can be obtained by anonymous ftp from lyman.pppl.gov (192.55.106.129)
and I think it is also available at niord.shsu.edu (192.92.115.8).
 
Cheers,
Don Petcher
petcher@wuphys.wustl.edu
 
From Marcus Thu Jul 23 02:11:40 +0200 1992
Date: Thu, 23 Jul 92 02:11:40 +0200
From: Marcus Speh <marcus@ips102.desy.de>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Re: Intro.ps for FWEB on FILESERV/Niord
 
>>>>> On Wed, 22 Jul 92 23:48:45 BST, Timothy Murphy <tim@maths.tcd.ie> said:
 
Status: RO
 
> Marcus Speh <marcus@ips102.desy.de> was kind enough to forward along the
> Intro.ps result of fweaving the file Intro.web in the fweb-v1.23 release.
 
Tim> Does fweave not produce TeX output?
 
Correct. I made a Postscript file out of it. To do that, you have at
least to unpack the fweb distribution because a special macro is
needed. I thought this might suit those which just want to have a
look. The dvi to "Intro.tex" being PS'd alone is not complete [as far
as I remember: I did this some time ago].
-msp
 
  Marcus Speh                      INTERnet <marcus@ips102.desy.de>
  II. Institut f. Theor. Physik    BITnet   <I02MSP@DHHDESY3>
  Luruper Chaussee 149             DECnet   <13313::SPEH>
  2000 Hamburg 50/Germany   Tel.(040)8998-2260  FAX:(040)8998-2267
 
From Thorsten Thu Jul 23 03:55:48 +0200 1992
Date: Thu, 23 Jul 92 03:55:48 +0200
From: Thorsten Ohl <ohl@ips102.desy.de>
Reply-To: LITPROG@SHSU.edu
To: litprog@shsu.edu
Subject: ANSI CWEB (was: Re: WEB for Macintosh, Turbo C++)
 
>>>>> On Wed, 22 Jul 92 23:38:27 BST, Timothy Murphy <tim@maths.tcd.ie> said:
 
Status: RO
 
tim> I must admit that I was rather shocked at the size of FWEB.
 
-rwxr-xr-x   1 ohl      theory     307200 Jul 23 03:27 ftangle
-rwxr-xr-x   1 ohl      theory     270336 Jul 23 03:28 fweave
 
Most of FWEB's size can be attributed to the need of supporting vastly
different languages.  The input routines for a free form language are
not usable for Fortran and vice versa.  Furthermore, FWEB has a Ratfor
processor build in.  Which is a _big_ plus, though it is not strictly
related to `literate programming'.  [There also some features which I
would not miss.  But FWEB _is_ a useful piece of software!]
 
tim> Rather selfishly, I am only interested in C and C++.
tim> I wonder if FWEB would have any attractions for those like me?
 
Fweave handles ANSI-C and C++ quite nicely, while stock cweave has
quite some problems with prototypes.
 
tim> Of course CWEB has the great plus of association with DEK.
 
:-)
 
tim> On a different point, to me it is obvious that CWEB should be
tim> written in ANSI-C, and should be geared to producing ANSI-C
tim> output.  Especially as it must be so simple to make the necessary
tim> changes.
 
The problem is in prod.w.  It seems to be _very_ easy to screw up this
carefully woven web of productions ...   Actually, the C++ grammar in
spiderweb is not too bad, that could be a good starting point.
 
Somebody in Denmark is working on a ANSI-C CWEB,  but I have no
information on his recent progress:
 
  /iesd.auc.dk:/pub:
  -rw-rw-r--  1 2196     ftping     202045 Oct  1  1991 auc-cweb.tar.Z
 
tim> I had an argument with Karl Berry about this -- I was suggesting
tim> that web2c should produce ANSI output -- and I was surprised at
tim> Karl's view that K&R C is still the majority tongue.
 
Karl wants web2c to work with /bin/cc, which is _not_ ANSI on most
machines.  For the same reason, gcc is written in K&R C, because
people would not be able to bootstrap it otherwise.  Maybe you should
suggest to Karl to distribute gcc with web2c ...
 
////// Thorsten Ohl, DESY (-T-), Notkestr. 85, W-2000 Hamburg 52, F.R.G.
///////// net: ohl@crunch.ikp.physik.th-darmstadt.de, ohl@gnu.ai.mit.edu
//////////////////////// voice: +49-40-8998-3699,  fax: +49-40-8998-3282
 
From ath@linkoping.trab.se Thu Jul 23 08:25:12 +0200 1992
Date: Thu, 23 Jul 92 08:25:12 +0200
From: ath@linkoping.trab.se
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Re: Literate Programming in the Real World(tm) (was: FWEB for the PC?)
 
Timoty Murphy wrote:
Status: RO
 
>
>@book{knuth92
>  author = {Donald E. Knuth},
>  title = {Literate Programming},
>  publisher = {CSLI},
>  address = {Stanford},
>  year = {1992}}
 
Is this book/report any good? Seriously?
 
When I first read about literate programming, I was rather impressed
by the idea.  However, when I tried to read some of the Pascal WEB's
that Knuth wrote I was very disappointed.
 
The only major WEBs I've studied (the TeX and METAFONT source) are not
well adapted to human understanding: they present the pieces bottom up
instead of top down, which would be more natural for most readers.
 
Rather than going beyond the program structure imposed by the Pascal
syntax, they submit to it, so that the TeXl WEB is not more easily
read than an ordinary Pascal program: all the little pieces come
first, and the main program is kept a secret till the last few lines,
much like the verb in German sentences. The only difference from
straight Pascal code is that there is some descriptive text - but that
helps only micro-understanding of the program rather than
macro-understanding: the module structure, the flow of data, etc.
 
I don't doubt that literate programming can be good - I've just not
seen example where Knuth demonstrates it convincingly.  Now: is this
reference an improvement?
 
Alternatively, are there any good literate programs out there? Some
that really show what's literate programming is about?
 
I'd like to add to the references on literate programming:
 
I recall a series on literate programming in the ACM several years
ago. I can't find them again, so it must have been *several* years
ago.  In each article, as I recall it, a literate program by some
author (Knuth, Gries, Jackson?) was presented and then someone else
criticised it. I think these articles gave a pretty good insight into
the mechanism of writing a literate program *as well* as that of
reading one.
 
If anyone can give a more definite reference to these articles, I
would appreciate it.
 
Anders Thulin       ath@linkoping.trab.se
Telia Research AB, Teknikringen 2B, S-583 30 Linkoping, Sweden
 
From Hans-Hermann Thu Jul 23 15:23:30 MEZ 1992
Date: Thu, 23 Jul 92 15:23:30 MEZ
From: Hans-Hermann Bode <HHBODE%DOSUNI1.BITNET@SHSU.edu>
Reply-To: LITPROG@SHSU.edu
To: litprog@SHSU.edu
Subject: CWEB for ANSI C, C++, Turbo C++
 
Status: RO
 
Recently, some questions came up regarding to the subjects mentioned above.
I have developed a set of changefiles---adaptable to the latest version of
CWEB of June/July 1992---that may help in all three cases. Here is an
excerpt from the readme file:
 
>This is the PC implementation of Silvio Levy's and Donald E. Knuth's CWEB
>system, compiled and provided with changefiles for ANSI C and Turbo C++ and
>a makefile for Turbo Make by Hans-Hermann Bode. The changes are appropriate
>for ANSI-C compilers as well as for Turbo C++, where the latter are made
>conditional (they will become effective only if the symbol __TURBOC__ is
>defined, which automatically is the case when compiled with Turbo C++), so
>users of other systems with ANSI-C compilers might be interested also.
 
I don't promise that the sources now are compilable with every ANSI-C
compiler without editing (there are still some calls to non-standard library
functions), but the effort should be far less than starting from the
original.
 
>6. The tangle and weave processors of this PC implementation are able to
>understand traditional C, ANSI C, and C++. The latter feature, however, is
>just a first attempt, i.e., most C++ sources should be handled satisfactory,
>but some C++ constructions may yield unpleasant results in typesetting by
>CWEAVE. If you encounter problems, send a report to HHBODE@DOSUNI1.BITNET.
>Note that CTANGLE always uses a default extension .c for its output file;
>this may not be appropriate for C++ compilers, but you can work around this
>by supplying a third argument in the command line (see cwebman).
 
You will get such unpleasant results in particular with constructions like
|template|, |try|, or |throw|, that are not implemented yet.
 
My intention is to have a system around that can handle all three variants
of C without requiring a switch command to indicate one of them explicitly.
This implies that curious things like
 
  int b=a//* divide by 4 */4;
 
may not yield the desired effect. Since in general one can easily work
around this (just write |int b=a/ /* divide by 4 */4;|, if that was meant)
and, moreover, such constructions from compatibility reasons should be
avoided anyway, in my opinion such difficulties are not serious and I think
that the advantage of a homogeneous processing is more important.
 
The implementation (including precompiled exe files) is available as an
archive file cwebpc.zip from dione.rz.uni-osnabrueck.de (in the directory
pub/msdos/tex/web) and from ftp.uni-stuttgart.de (in the directory
soft/tex/web/cweb). Maybe, it's also available from Niord soon.
 
Hans-Hermann Bode
Arbeitsgruppe Systemforschung, Universit\"at Osnabr\"uck
Tel.: (49)-541-9692545
e-mail: HHBODE@DOSUNI1.BITNET
 
From Cameron Thu Jul 23 10:25:18 -0500 1992
Date: Thu, 23 Jul 1992 10:25:18 -0500
From: Cameron Smith <cameron@symcom.math.uiuc.edu>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Re: Literate Programming in the Real World(tm) (was: FWEB for the PC?)
 
Anders Thulin (ath@linkoping.trab.se) writes:
Status: RO
 
> I recall a series on literate programming in the ACM several years
> ago. I can't find them again, so it must have been *several* years
> ago.  In each article, as I recall it, a literate program by some
> author (Knuth, Gries, Jackson?) was presented and then someone else
> criticised it. I think these articles gave a pretty good insight into
> the mechanism of writing a literate program *as well* as that of
> reading one.
 
I think the CACM series you're talking about is the one that Knuth
alludes to in the preface to the Literate Programming anthology that
has already been cited so often in this forum.  If so, the editor of
that series was (according to Knuth) Chris Van Wyk, and it began not
too long (he isn't specific) after the Programming Pearls columns of
May and June 1986, in which Jon Bentley wrote about his impressions
of LP and presented two Web programs of Knuth's and a critique of the
longer one by Doug McIlroy.  I've been meaning to get over to the
library and chase them down; maybe I can do that this afternoon, and
if so I'll post citations (unless someone else does it first).
 
> Is this book/report any good? Seriously?
> When I first read about literate programming, I was rather impressed
> by the idea.  However, when I tried to read some of the Pascal WEB's
> that Knuth wrote I was very disappointed. [...]
> I don't doubt that literate programming can be good - I've just not
> seen example where Knuth demonstrates it convincingly.  Now: is this
> reference an improvement?
 
The book is an anthology of writings of Knuth's published over a
20-year period.  It is interesting to read in part because it gives
you an impression of how a brilliant man's ideas evolved, which I
think gives less gifted guys like me insights that we wouldn't perhaps
be able to achieve on our own.  Does it say anything that hasn't been
said before?  Of course not, by definition, because it's an anthology
of past works.  For me, the two most enlightening parts were the article
"Structured Programming with go to Statements", which antedates
Literate Programming by 5-10 years (it came out in 1974, five years
before Knuth developed WEB and almost exactly 10 years before the
"Literate Programming" article appeared), and McIlroy's incisive,
balanced and erudite critique of Knuth's literate program in the
Pearls column (which McIlroy praised as a piece of expository writing
but which, when considered as a piece of engineering, he called
"an industrial-strength Faberg\'e egg---intricate, wonderfully
worked, refined beyond all ordinary desires, a museum piece from
the start").  I also found the chapter on the errors of TeX valuable;
it's an insightful and reflective survey of the problems encountered
in a huge software engineering project.  I happen to think one case
study is worth a trunkful of textbooks, especially this one, because
he published not only his post facto evaluation of what transpired,
but also his log book, so you get a real feeling for how the project
progressed.  At any rate, here's a list of the chapters and their
dates of original appearance; you can track 'em down separately or
buy the book (or neither).
 
 Computer Programming as an Art  1974
    (This was Knuth's Turing Award lecture)
 
 Structured Programming with go to Statements  1974
 
 A Structured Program to Generate All Topological Sorting Arrangements  1974
 
 Literate Programming  1984
 
 Programming Pearls: Sampling  May, 1986
 
 Programming Pearls, Continued: Common Words  June, 1986
 
 How to Read a WEB  1986
    (This is only 6 pages long, and is completely redundant with
    other material in the book.  I have no idea why it was included,
    unless maybe to help out people who might want to read the TeX
    and Metafont excerpts without having read the preceding 3 chapters)
 
 Excerpts from the Programs for TeX and Metafont  1986
 
 Mathematical Writing  1987
    (This is an excerpt from course notes; you can get the full
    monograph from the AMS, but most of the rest has little to do
    with programming)
 
 The Errors of TeX  1989
 
 The Error Log of TeX  1978-1991
    (This is the complete log as of September 1991, including some
    hitherto unpublished material thought lost but recently discovered
    in the Stanford library archives)
 
 An Example of CWEB  1990
    (This program, written with Silvio Levy, is the "wc" example
    distributed with CWEB.)
 
Is it worth it?  I thought so, but if you aren't a TeX junkie and
you already understand what LP is about, maybe not.
 
--Cameron Smith
  cameron@symcom.math.uiuc.edu
 
From Timothy Thu Jul 23 16:31:31 BST 1992
Date: Thu, 23 Jul 92 16:31:31 BST
From: Timothy Murphy <tim@maths.tcd.ie>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Re: ANSI CWEB
 
Status: RO
 
> With these additions and changes I got an ANSI-CWEB that was quite
> satisfactory---at least for my own applications, I never got comments from
> others. In the latest version of CWEBPC things changed a little bit, i.e.,
> about 15 new rules were added and about 10 of the old rules were rewritten
> or extended to begin C++ support---too much to post it here.
 
Surely the .ch file(s) cannot have been too large?
I'd very much like to see your mods,
and I'm sure others would too.
 
Timothy Murphy
 
e-mail: tim@maths.tcd.ie
tel: +353-1-2842366 (home/office)
     +353-1-7021507 (university)
fax: +353-1-2842295
s-mail: School of Mathematics, Trinity College, Dublin 2, Ireland
 
From Timothy Thu Jul 23 16:54:09 BST 1992
Date: Thu, 23 Jul 92 16:54:09 BST
From: Timothy Murphy <tim@maths.tcd.ie>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Re: Literate Programming in the Real World(tm) (was: FWEB for the PC?)
 
Status: RO
 
> Rather than going beyond the program structure imposed by the Pascal
> syntax, they submit to it, so that the TeXl WEB is not more easily
> read than an ordinary Pascal program: all the little pieces come
> first, and the main program is kept a secret till the last few lines,
> much like the verb in German sentences.
 
As I'm sure everyone on this list will know,
this was a decision of Knuth's -- right or wrong --
and not a consequence of the WEB format,
which allows the main program to come at the beginning or at the end.
 
Timothy Murphy
 
e-mail: tim@maths.tcd.ie
tel: +353-1-2842366 (home/office)
     +353-1-7021507 (university)
fax: +353-1-2842295
s-mail: School of Mathematics, Trinity College, Dublin 2, Ireland
 
From Hans-Hermann Thu Jul 23 16:45:15 MEZ 1992
Date: Thu, 23 Jul 92 16:45:15 MEZ
From: Hans-Hermann Bode <HHBODE%DOSUNI1.BITNET@SHSU.edu>
Reply-To: LITPROG@SHSU.edu
To: litprog@SHSU.edu
Subject: Re: ANSI CWEB
 
Thorsten Ohl wrote:
 
Status: RO
 
>tim> On a different point, to me it is obvious that CWEB should be
>tim> written in ANSI-C, and should be geared to producing ANSI-C
>tim> output.  Especially as it must be so simple to make the necessary
>tim> changes.
>
>The problem is in prod.w.  It seems to be _very_ easy to screw up this
>carefully woven web of productions ...   Actually, the C++ grammar in
>spiderweb is not too bad, that could be a good starting point.
 
In earlier versions of CWEBPC (see another message of mine) I handled
function prototypes by the following two additional rules:
 
  decl_head lpar (decl_head | int_like) comma   -->   decl_head lpar
 
  decl_head lpar (decl_head | int_like) rpar   -->   decl_head
 
Note, that additionally in the implementation of rule 21 (cases for
|int_like|) the scrap pointer |pp| has to be decreased by 2 instead of by 1
in the call to |reduce|.
 
Furthermore, ANSI constructions like |int *const p;| will be supported by
 
  decl_head unorbinop int_like   -->   decl_head
 
where the translation should be $D{U}I\ $.
 
Finally, CWEAVE should have knowledge of some additional keywords, namely
|const|, |signed|, and |volatile| (the appropriate ilk is |int_like|), as
well as |elif|, |error|, and |pragma| (of ilk |if_like|).
 
With these additions and changes I got an ANSI-CWEB that was quite
satisfactory---at least for my own applications, I never got comments from
others. In the latest version of CWEBPC things changed a little bit, i.e.,
about 15 new rules were added and about 10 of the old rules were rewritten
or extended to begin C++ support---too much to post it here.
 
Hans-Hermann Bode
Arbeitsgruppe Systemforschung, Universit\"at Osnabr\"uck
Tel.: (49)-541-9692545
e-mail: HHBODE@DOSUNI1.BITNET
 
From George Thu Jul 23 12:18:52 CDT 1992
Date: Thu, 23 Jul 1992 12:18:52 CDT
From: "George D. Greenwade" <bed_gdg@SHSU.edu>
Reply-To: LITPROG@SHSU.edu
To: info-tex@SHSU.edu
Subject: CWEB, v 2.4, on FILESERV/Niord
 
Status: RO
 
Hans-Hermann Bode <HHBODE@DOSUNI1.BITNET> kindly pointed out that the
version of CWEB we had on FILESERV had been superceded by version 2.4
(April/June 1992).  I retrieved the files from labrea and now them now
available from SHSU.  Attached is the description file and instructions for
retrieval.  My thanks to Hans-Hermann for pointing this out.
 
Regards,   George
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
George D. Greenwade, Ph.D.                            Bitnet:  BED_GDG@SHSU
Department of Economics and Business Analysis         THEnet: SHSU::BED_GDG
College of Business Administration                    Voice: (409) 294-1266
P. O. Box 2118                                        FAX:   (409) 294-3612
Sam Houston State University              Internet:        bed_gdg@SHSU.edu
Huntsville, TX 77341                      bed_gdg%SHSU.decnet@relay.the.net
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                                   CWEB
                                   ----
The CWEB package includes the source and example files for Silvio Levy's C
language adaptation of Donald Knuth's WEB, originally written in Pascal.
This package includes version 2.4, dated April-June 1992.  Knuth's original
Pascal programs have been entirely rewritten in C; many changes were made
to take advantage of features offered by C but non-existent in Pascal.
 
CWEB is essentially a simplified subset of WEB. CWEB does not need WEB's
features for macro definition and string handling, because C and its
preprocessor already take care of macros and strings. Similarly, the WEB
conventions of denoting octal and hexadecimal constants by @'77 and @"3f
are replaced by C's conventions \v077\v and \v0x3f\v, respectively. All
other features of WEB have been retained, and a few new features have been
added.
 
To retrieve the 30 files in the CWEB package, include the command:
 SENDME CWEB
in teh text of a mail message to FILESERV@SHSU.BITNET (FILESERV@SHSU.edu).
If, for some reason, you only require a specific file from this package,
say CWEB.COMMON_C, include the command:
 SENDME CWEB.COMMON_C
in your mail message to FILESERV.  These files are available for anonymous
ftp retrieval from Niord.SHSU.edu (192.92.115.8), either individually or in
a ZIP archive, in the [FILESERV.CWEB] directory.
 
Files in this package: (1 Block = 512 bytes)
File                    Blocks  Save file as:
-------------------------------------------------------------------------------
CWEB.COMMON-VMS_CH           6  common-vms.ch            
CWEB.COMMON_C               34  common.c                 
CWEB.COMMON_H               17  common.h                 
CWEB.COMMON_W_1OF2          77  common.w (part 1 of 2)   
CWEB.COMMON_W_2OF2           8   (part 2 of 2)            
CWEB.CTANGLE-VMS_CH          3  ctangle-vms.ch           
CWEB.CTANGLE_C              49  ctangle.c                
CWEB.CTANGLE_W_1OF2         75  ctangle.w (part 1 of 2)  
CWEB.CTANGLE_W_2OF2         14   (part 2 of 2)            
CWEB.CWEAVE-VMS_CH           3  cweave-vms.ch            
CWEB.CWEAVE_W_1OF4          76  cweave.w (part 1 of 4)   
CWEB.CWEAVE_W_2OF4          77   (part 2 of 4)            
CWEB.CWEAVE_W_3OF4          76   (part 3 of 4)            
CWEB.CWEAVE_W_4OF4          48   (part 4 of 4)            
CWEB.CWEBMAC_TEX            25  cwebmac.tex              
CWEB.CWEBMAN_TEX_1OF2       77  cwebman.tex (part 1 of 2)
CWEB.CWEBMAN_TEX_2OF2       55   (part 2 of 2)            
CWEB.CWEB_1                  7  cweb.1                   
CWEB.CWEB_EL                19  cweb.el                  
CWEB.MAKEFILE                9  Makefile                 
CWEB.PROD_W                 17  prod.w                   
CWEB.README                  6  README                   
 
"Example" files (saved in examples subdirectory of CWEB):
CWEB.EXTEX_W_EXAMPLES       25  extex.w    
CWEB.KSPELL_EL_EXAMPLES     20  kspell.el  
CWEB.MAKEFILE_EXAMPLES       2  Makefile   
CWEB.README_EXAMPLES         6  README     
CWEB.TREEPRINT_W_EXAMPLES   15  treeprint.w
CWEB.WC_W_EXAMPLES          18  wc.w       
CWEB.WMERGE_W_EXAMPLES      45  wmerge.w   
CWEB.WORDTEST_W_EXAMPLES    42  wordtest.w 
 
Approximate total blocks in full CWEB package = 951
 
From BEEZER@UPS.EDU Thu Jul 23 13:47:29 -0700 1992
Date: Thu, 23 Jul 1992 13:47:29 -0700 (PDT)
From: BEEZER@UPS.EDU (Rob Beezer)
Reply-To: LITPROG@SHSU.edu
To: litprog@shsu.edu
Subject: ACM articles on Literate Programming
 
Status: RO
 
Here are some references for some of the articles about literate programming
from the Communications of the ACM.  The last three articles contain some
examples of literate programs *not* written by Knuth.
 
Jon Bentley, Don Knuth
Literate programming
Communications of the ACM, 29, no. 5 (1986) 364-369
 
Jon Bentley, Don Knuth, Doug McIlroy
A literate program
Communications of the ACM, 29, no. 6 (1986) 471-483
 
Jon Bentley, David Gries
Abstract data types
Communications of the ACM, 30, no. 4 (1987) 284-290
 
Christopher J. Van Wyk
Printing common words
Communications of the ACM, 30, no. 7 (1987) 593-599
 
Christopher J. Van Wyk
Processing transactions
Communications of the ACM, 30, no. 12 (1987) 1000-1010
 
............................................................................
:   Robert Beezer                   :         Internet:  beezer@ups.edu    :
:   Dept. of Mathematics and CS     :         Voice:     206.756.3564      :
:   University of Puget Sound       :         Fax:       206.756.3500      :
:   Tacoma, WA  98416               :                                      :
............................................................................
 
From George Thu Jul 23 16:33:57 CDT 1992
Date: Thu, 23 Jul 1992 16:33:57 CDT
From: "George D. Greenwade" <bed_gdg@SHSU.edu>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: RE: CWEB for ANSI C, C++, Turbo C++
 
On Thu, 23 Jul 92 15:23:30 MEZ, Hans-Hermann Bode <HHBODE@DOSUNI1.BITNET>
posted:
Status: RO
 
> Recently, some questions came up regarding to the subjects mentioned above.
> I have developed a set of changefiles---adaptable to the latest version of
> CWEB of June/July 1992---that may help in all three cases. Here is an
> excerpt from the readme file:
>.....
> The implementation (including precompiled exe files) is available as an
> archive file cwebpc.zip from dione.rz.uni-osnabrueck.de (in the directory
> pub/msdos/tex/web) and from ftp.uni-stuttgart.de (in the directory
> soft/tex/web/cweb). Maybe, it's also available from Niord soon.
 
I went to dione.rz.uni-osnabrueck.de and fetched everything in the
/pub/msdos/tex/web directory and have placed in the [FILESERV.PC-WEB]
directory on Niord.SHSU.edu (192.92.115.8).  This includes (the 00README.
file):
******************************************************************************
Index for directory:    ANONYMOUS@Niord.SHSU.edu:[FILESERV.PC-WEB]
Contents:
------------------------------------------------------------------------------
Name           Size     Type Description
------------------------------------------------------------------------------
00index           ---   A    this file
cwebpc.zip     304876   B    ANSI-C/Turbo-C++ Implementierung von
                             Levy/Knuth's WEB (Portierung HHBode)
fwebexe.zip    780496   B    FWEB System (Zielsprache Fortran)
spiderpc.zip  1084447   B    Spidery WEB System (Portierung HHBode)
tie.zip         81867   B    TIE Prozessor
tpmkprog.zip    35796   B    TP The Makeprog System
tpweb.zip      475062   B    TPWEB System (Zielsprache Turbo Pascal 6.0)
******************************************************************************
The actual files are:
Directory MX_ROOT:[FILESERV.PC-WEB]
00INDEX.;1                2  23-JUL-1992 16:26:54.85
CWEBPC.README;1          16  22-JUL-1992 00:57:32.00
CWEBPC.ZIP;1            596  23-JUL-1992 16:06:23.74
CWEBPC.ZIP-LST;1          4  23-JUL-1992 16:21:15.96
FWEBEXE.README;1          6  11-JUN-1992 00:15:18.00
FWEBEXE.READ_ME;1        42   9-JUN-1992 12:13:34.00
FWEBEXE.ZIP;1          1525  23-JUL-1992 16:06:33.26
FWEBEXE.ZIP-LST;1         2  23-JUL-1992 16:22:24.54
SPIDERPC.README;1        21   1-DEC-1991 00:10:56.00
SPIDERPC.ZIP;1         2119  23-JUL-1992 16:07:00.49
SPIDERPC.ZIP-LST;1       12  23-JUL-1992 16:12:55.27
TIE.README;1              5   2-AUG-1991 10:03:34.00
TIE.ZIP;1               160  23-JUL-1992 16:07:29.07
TIE.ZIP-LST;1             2  23-JUL-1992 16:15:22.90
TPMKPROG.ZIP;1           70  23-JUL-1992 16:07:32.69
TPMKPROG.ZIP-LST;1        1  23-JUL-1992 16:23:27.70
TPWEB.README;1            4   5-DEC-1989 18:15:02.00
TPWEB.ZIP;1             928  23-JUL-1992 16:07:34.52
TPWEB.ZIP-LST;1           4  23-JUL-1992 16:24:29.12
Total of 19 files, 5519 blocks.
 
Regards,   George
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
George D. Greenwade, Ph.D.                            Bitnet:  BED_GDG@SHSU
Department of Economics and Business Analysis         THEnet: SHSU::BED_GDG
College of Business Administration                    Voice: (409) 294-1266
P. O. Box 2118                                        FAX:   (409) 294-3612
Sam Houston State University              Internet:        bed_gdg@SHSU.edu
Huntsville, TX 77341                      bed_gdg%SHSU.decnet@relay.the.net
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
From Don Thu Jul 23 18:16 PST 1992
Date: Thu, 23 Jul 1992 18:16 PST
From: Don Hosek <DHOSEK@HMCVAX.CLAREMONT.EDU>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Re: CWEB for ANSI C, C++, Turbo C++
 
Status: RO
 
Well, I'll have to pick the files up down the line, but I'm
curious to know how Mr. Bode managed to get cweb to compile with
TCC: I spent a considerable amount of time trying to track down
problems (complicated by the fact that the Turbo debugger
apparently ignores the file part of #line statements) before
finally giving up. With ZTC's 32-bit compiler, I had no problem,
so I used that. Are arrays of a useful size in the 16-bit cweb?
 
-dh
 
From Don Thu Jul 23 18:23 PST 1992
Date: Thu, 23 Jul 1992 18:23 PST
From: Don Hosek <DHOSEK@HMCVAX.CLAREMONT.EDU>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Re: Literate Programming in the Real World(tm) (was: FWEB for the PC?)
 
Status: RO
 
-When I first read about literate programming, I was rather impressed
-by the idea.  However, when I tried to read some of the Pascal WEB's
-that Knuth wrote I was very disappointed.
 
-The only major WEBs I've studied (the TeX and METAFONT source) are not
-well adapted to human understanding: they present the pieces bottom up
-instead of top down, which would be more natural for most readers.
 
-Rather than going beyond the program structure imposed by the Pascal
-syntax, they submit to it, so that the TeXl WEB is not more easily
-read than an ordinary Pascal program: all the little pieces come
--first, and the main program is kept a secret till the last few lines,
-much like the verb in German sentences. The only difference from
-straight Pascal code is that there is some descriptive text - but that
-helps only micro-understanding of the program rather than
-macro-understanding: the module structure, the flow of data, etc.
 
My first WEB was DVIview, a previewer for VM/CMS in which I
followed a structure more like what was desired. The outline was
borrowed from somewhere else, but to summarize, the only @p
section read something like:
 
@p
program Dviview;
@<Constant definitions@>@;
@<Global variables@>@;
@<Forward function and procedure references@>@;
@<Global functions and procedures@>@;
begin
@<Initializations@>@;
@<First step@>@;
@<Second step@>@;
@<Etc.@>@;
end.
 
Then each piece was exploded as appropriate.
Aha... found it. A nice concise, well-written web: primes.web
(should be distributed with every Pascal WEB distribution). Not
quite the scheme above (not exactly necessary in this case), but
close enough.
 
-dh
 
From ath@linkoping.trab.se Fri Jul 24 12:22:03 +0200 1992
Date: Fri, 24 Jul 92 12:22:03 +0200
From: ath@linkoping.trab.se
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Re: Literate Programming in the Real World(tm) (was: FWEB for the PC?)
 
Timothy Murphy writes as a reply to my earlier post:
Status: RO
 
>
>> Rather than going beyond the program structure imposed by the Pascal
>> syntax, they submit to it, so that the TeXl WEB is not more easily
>> read than an ordinary Pascal program: [ ... ]
>
>As I'm sure everyone on this list will know,
>this was a decision of Knuth's -- right or wrong --
>and not a consequence of the WEB format,
>which allows the main program to come at the beginning or at the end.
 
Of course. But as always, people seem to learn by example. I've seen a
few attempts at literary programming in Pascal, and all used exactly
the same approach as in the TeXbook: main program last. When I asked
why, none of the authors knew exactly why.  It just turned out that
way - I can only assume that it somehow is an artefact of the coding
process. But since it followed the pattern of Knuth's texts, nobody
thought there was anything very much wrong with it.
 
And that is, I think, the point I'm trying to make. A literary program
should be written to mirror how someone learns about a new and complex
system - if necessary by lying a little (see the TeXbook). It should
be designed, rather than just grow. Those LPs I've read so far do not
show any clear evidence of design, or any discernible effort of trying
to present things in the right order for learning.
 
That's why I asked: are there any good literary programs around? -
programs that can serve as examples of the benefits of literary
programming as well as patterns to model ones own attempts at LP on. I
think that giving one of those to people who ask abut literate
programming will do much to demonstrate the utility of it all.
 
P.S. We've just made some radical changes locally, and some mail have
been lost. If anyone mailed any pointers to good literate programs to
me, I'd appreciate if you would remail them.
 
Anders Thulin       ath@linkoping.trab.se
Telia Research AB, Teknikringen 2B, S-583 30 Linkoping, Sweden
 
From brad@sol.nwc.navy.mil Fri Jul 24 16:08:31 PDT 1992
Date: Fri, 24 Jul 92 16:08:31 PDT
From: brad@sol.nwc.navy.mil (Bradford Clark ( Brad ))
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Re: Why Literate Programming? [was: Lit. Progr. in the Real World]
 
jongill@lilac.bldrdoc.gov (Jonathan M. Gilligan) writes:
 
>From LP-Mgr@SHSU.edu Fri Jul 24 10:25:27 1992
>X-Listname: Literate Programming Discussion List <LITPROG@SHSU.edu>
>Date: Fri, 24 Jul 92 10:42:45 -0600
>From: jongill@lilac.bldrdoc.gov (Jonathan M. Gilligan)
Status: RO
 
>........ A good web should begin with an overview of what
>the program does and how the task is broken into chunks. This is
>important not just for pedagogy, but for the new person on the
>project, who needs to learn what this colossal piece of code written
>by her predecessors does.
>
 
Ditto, ditto. I always start my WEB code off with a explaination that
will put the following program in context. What I would really LOVE is
to be able to talk to drawings included as part of the text file. A
picture is worth a thousand words.
 
Thanks,
                                            | Brad Clark
   ----,                  __                | Code 3916
  /___/               /  /  ' /          /  | NAWC-WD
 /    \  __  ___  ___/  /    / ___  __  /_/ | China Lake, CA 93555
/_____/_/ (_/__(_/__/  (____/_/__(_/ (_/ \_ | Ph: 619-939-6655
e-mail: brad.clark@nwc.navy.mil
 
From Marcus Fri Jul 24 13:51:52 +0200 1992
Date: Fri, 24 Jul 92 13:51:52 +0200
From: Marcus Speh <marcus@ips102.desy.de>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Why Literate Programming? [was: Lit. Progr. in the Real World]
 
>>>>> On Fri, 24 Jul 92 12:22:03 +0200, ath@linkoping.trab.se said:
 
Status: RO
 
ath> [...] A literary program
ath> should be written to mirror how someone learns about a new and complex
ath> system - if necessary by lying a little (see the TeXbook). It should
ath> be designed, rather than just grow. Those LPs I've read so far do not
ath> show any clear evidence of design, or any discernible effort of trying
ath> to present things in the right order for learning.
 
   I think this is too restricted a use of the WEB system.
I like the idea nevertheless, but:
If WEB could only be used for pedagogic purposes, it
could only serve as an individual toy.
   It is hard to convince my collaborators
to make the effort to try to understand my woven files;
they will only do so if I tell them: "Listen, this tool
is going to increase the productivity of our group".
   People will have to worry less if they someone else
passes them a started program, or a program to be maintained.
Most code "just grows" in the first place, and I am
never going to redo all that work.
 
Note: I am not talking about a company, but about
relatively large lattice field theory projects at our institute
which involve frequently changing people. The pure idea
of learning any new computing tool drives most of these
guys mad. This is a consequence of the (still) low
reputation of CS among (theoretical) physicists.
 
Might be I misunderstood you, Anders. I do not think
there is one and only "good style" in
LP (besides the usual programming sins which are largely
eliminated in LP anyway).
I think that the value of LP code will always be dictated by
the kind of application you are using it for.
 
ath> That's why I asked: are there any good literary programs around? -
ath> programs that can serve as examples of the benefits of literary
ath> programming as well as patterns to model ones own attempts at LP on.
ath> I think that giving one of those to people who ask abut literate
ath> programming will do much to demonstrate the utility of it all.
 
I second this point of yours! Though:
There might be "good" LPs for demonstrating
how the LProgrammer learnt to implement something,
and there might be others which serve "group production"
purposes. A third reason somebody else told me about (who
is using WEB for years) is simply to have a nice
documentation once he looks at old code again. It is
clear that these LPs may very well violate any "good style".
 
I guess that I have been trying hard to express with my
bad English what is trivially true for any meta-language [or
however the experts call systems like WEB].
 
Summarizing, I would rather reject any proposal for a "good style"
*on top* of Literate Programming,
because I want to use WEB in order to do *many* things, namely
 
... rewrite old code [often by others] in order to
   better understand it
... make code better understandable for others so that I
   can give it away without bad conscience,
... provide documentation for myself in case I am still
   in this business some years from now ;-(
... satisfy my own sick need for writing something I
   consider beautiful (my most objective goal *-)
 
[ I should say that I only used FWEB so far, but the philosophy is
the same everywhere, I assume.]
 
-msp
 
  Marcus Speh                      INTERnet <marcus@ips102.desy.de>
  II. Institut f. Theor. Physik    BITnet   <I02MSP@DHHDESY3>
  Luruper Chaussee 149             DECnet   <13313::SPEH>
  2000 Hamburg 50/Germany   Tel.(040)8998-2260  FAX:(040)8998-2267
 
From jongill@lilac.bldrdoc.gov Fri Jul 24 10:42:45 -0600 1992
Date: Fri, 24 Jul 92 10:42:45 -0600
From: jongill@lilac.bldrdoc.gov (Jonathan M. Gilligan)
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Why Literate Programming? [was: Lit. Progr. in the Real World]
 
Status: RO
 
Marcus Speh <marcus@ips102.desy.de> writes
   >>>>> On Fri, 24 Jul 92 12:22:03 +0200, ath@linkoping.trab.se said:
 
   ath> [...] A literary program
   ath> should be written to mirror how someone learns about a new and complex
   ath> system - if necessary by lying a little (see the TeXbook). It should
   ath> be designed, rather than just grow. Those LPs I've read so far do not
   ath> show any clear evidence of design, or any discernible effort of trying
   ath> to present things in the right order for learning.
 
      I think this is too restricted a use of the WEB system.
   I like the idea nevertheless, but:
   If WEB could only be used for pedagogic purposes, it
   could only serve as an individual toy.
      It is hard to convince my collaborators
   to make the effort to try to understand my woven files;
   they will only do so if I tell them: "Listen, this tool
   is going to increase the productivity of our group".
      People will have to worry less if they someone else
   passes them a started program, or a program to be maintained.
   Most code "just grows" in the first place, and I am
   never going to redo all that work.
 
But Anders's point is applicable here. Read TeX.web and try to get a
feel for how the program runs. First you get all the global data and
initialization, then you go through I/O character-set translation,
etc.  The main routine that links the parts together is the last thing
you see.
 
Nowhere is there an overview of what's going on or how the various
phases of processing are invoked. You are drawn inexorably into the
microscopic, despite what Knuth has said about a talent for
programming being a talent for switching context rapidly between the
forest and the trees. A good web should begin with an overview of what
the program does and how the task is broken into chunks. This is
important not just for pedagogy, but for the new person on the
project, who needs to learn what this colossal piece of code written
by her predecessors does.
 
Here, I find myself thinking of (and agreeing with) Doug McIlroy's
complaint (CACM Vol. 29, pp. 471--483 (1986)) that WEB-style literate
programming would be much better if there were facilities to include
diagrams to help explain what's going on.
 
---Jon
Disclaimer --- The government probably disagrees with my opinions.
 
From Hans-Hermann Fri Jul 24 17:17:40 MEZ 1992
Date: Fri, 24 Jul 92 17:17:40 MEZ
From: Hans-Hermann Bode <HHBODE%DOSUNI1.BITNET@SHSU.edu>
Reply-To: LITPROG@SHSU.edu
To: litprog@SHSU.edu
Subject: Re: ANSI CWEB---Addendum
 
Status: RO
 
Just to tell the truth. Yesterday, I supposed the rules
 
>  decl_head lpar (decl_head | int_like) comma   -->   decl_head lpar
>
>  decl_head lpar (decl_head | int_like) rpar   -->   decl_head
 
to handle function prototypes. These will fail with CWEAVE, Version 2.6,
since Knuth introduced the following exceptions:
 
>The |exp| in rules 24 and 30 should not be immediately followed by
>|lpar| or~|exp|.
 
These rules are:
 
24  decl_head exp   -->   decl_head
30  typedef_like decl_head (exp | int_like)   -->   typedef_like decl_head
 
Now, in a function prototype, we never get to the additional rules above if
rule 24 may not be followed by an |lpar|. Moreover, from such a restriction
some delicate problems arise (even for tradional C). Therefore, I decided
not to change the prototype rules but not to reflect those restrictions in
CWEBPC. Eventually, I could not figure out the significance of them anyway;
if someone can, please tell me.
 
Hans-Hermann Bode
Arbeitsgruppe Systemforschung, Universit\"at Osnabr\"uck
Tel.: (49)-541-9692545
e-mail: HHBODE@DOSUNI1.BITNET
 
From Hans-Hermann Fri Jul 24 17:18:49 MEZ 1992
Date: Fri, 24 Jul 92 17:18:49 MEZ
From: Hans-Hermann Bode <HHBODE%DOSUNI1.BITNET@SHSU.edu>
Reply-To: LITPROG@SHSU.edu
To: litprog@SHSU.edu
Subject: Re: ANSI CWEB
 
Timothy Murphy wrote:
 
Status: RO
 
>> With these additions and changes I got an ANSI-CWEB that was quite
>> satisfactory---at least for my own applications, I never got comments from
>> others. In the latest version of CWEBPC things changed a little bit, i.e.,
>> about 15 new rules were added and about 10 of the old rules were rewritten
>> or extended to begin C++ support---too much to post it here.
>
>Surely the .ch file(s) cannot have been too large?
>I'd very much like to see your mods,
>and I'm sure others would too.
 
The changefiles all together have a size of approx. 85 K, from which the one
for CWEAVE contributes about 35 K. This is, because they contain prototypes
for all functions in the code, PC-specific stuff, and the new production
rules. Thus, I would prefer if you could get them by ftp, e.g., from
niord.shsu.edu. If this is impossible, try mail-server@rus.uni-stuttgart.de
(send a mail containing HELP). If even that fails, send me a message and I
will mail the files to you.
 
Hans-Hermann Bode
Arbeitsgruppe Systemforschung, Universit\"at Osnabr\"uck
Tel.: (49)-541-9692545
e-mail: HHBODE@DOSUNI1.BITNET
 
From Hans-Hermann Fri Jul 24 17:20:42 MEZ 1992
Date: Fri, 24 Jul 92 17:20:42 MEZ
From: Hans-Hermann Bode <HHBODE%DOSUNI1.BITNET@SHSU.edu>
Reply-To: LITPROG@SHSU.edu
To: litprog@SHSU.edu
Subject: Re: CWEB for ANSI C, C++, Turbo C++
 
Don Hosek was wondering:
 
Status: RO
 
>Well, I'll have to pick the files up down the line, but I'm
>curious to know how Mr. Bode managed to get cweb to compile with
>TCC: I spent a considerable amount of time trying to track down
>problems (complicated by the fact that the Turbo debugger
>apparently ignores the file part of #line statements) before
>finally giving up. With ZTC's 32-bit compiler, I had no problem,
>so I used that. Are arrays of a useful size in the 16-bit cweb?
 
Oh, I just provided prototypes for all functions in the code and declared
pointers into large arrays as |huge|. More helpful in debugging than the
debugger (you are right: the Turbo Debugger is useless for tangled files;
fortunately, one rarely feels a need for it with WEB sources) is the
compiler that gives a warning if a huge pointer is assigned to a non-huge
one.
 
The arrays have exactly the same size as in the original CWEB except for
CTANGLE's |max_toks|, which has been reduced from 270000 bytes to 135000
bytes. This means, that in tangling cweave.w about 25 % of its capacity is
used. One can approximate that in spite of the reduction a WEB of several
100 pages may be processed by CTANGLE. Somewhere in this range, I think, is
the point where the file should be split up from other reasons, anyway.
 
Hans-Hermann Bode
Arbeitsgruppe Systemforschung, Universit\"at Osnabr\"uck
Tel.: (49)-541-9692545
e-mail: HHBODE@DOSUNI1.BITNET
 
From Donald Fri Jul 24 13:56:10 -0500 1992
Date: Fri, 24 Jul 1992 13:56:10 -0500
From: "Donald N. Petcher" <petcher@arthur.wustl.edu>
Reply-To: LITPROG@SHSU.edu
To: litprog@shsu.edu
Subject: Re: Literate Programming in the Real World(tm)
 
Anders Thulin writes:
>Timothy Murphy writes as a reply to my earlier post:
                          .
                          .
                          .
Status: RO
 
>>As I'm sure everyone on this list will know,
>>this was a decision of Knuth's -- right or wrong --
>>and not a consequence of the WEB format,
>>which allows the main program to come at the beginning or at the end.
>
>Of course. But as always, people seem to learn by example. I've seen a
>few attempts at literary programming in Pascal, and all used exactly
>the same approach as in the TeXbook: main program last. When I asked
>why, none of the authors knew exactly why.  It just turned out that
>way - I can only assume that it somehow is an artefact of the coding
>process. But since it followed the pattern of Knuth's texts, nobody
>thought there was anything very much wrong with it.
 
A literary program first of all is governed by personal taste as to what
is readable *and* enjoyable. For example, even though I have seen many C
programs that put the main program at the end, I have never been tempted
to do so. The way I think when I program dictates that I put the main
program *first*, whether I am programming in C or web, and when I read
my own programs at a later stage, this also seems intuitive to me.
Probably some others just like to start reading details and get to the
main story later, and still others like to put the program in the editor
and hit the "Go to end of file" key to start reading the program and
perhaps also turn to the back of the book first when reading the output.
(After all, some like philosophy, some like science, some like mystery
novels, and some like all three depending on the mood!) I still prefer
the overview to be the first thing I see. (By the same token, I find it
very frustrating reading Knuth's books.)
 
                          .
                          .
                          .
 
>That's why I asked: are there any good literary programs around? -
>programs that can serve as examples of the benefits of literary
>programming as well as patterns to model ones own attempts at LP on. I
>think that giving one of those to people who ask abut literate
>programming will do much to demonstrate the utility of it all.
>
 
Although web has been around for quite awhile, it has not had such a
following that these concepts are really fleshed out yet. We have some
idea what style is for writing books, but for writing programs we still
have a lot to learn and discuss. I anticipate that this group is a
beginning and hope strides will be made to move toward a more uniform
perspective on what tools we need to accomplish the goal, as well as an
appreciation for different styles of *good* literary programs. (Speaking
of tools, the issue is not settled from a programmer's standpoint
either, as differences in philosophy are already reflected in the
various versions of web around: e.g. fweb vs. funnel web.)
 
Until some clearer consensus evlolves, perhaps the best we can do is
submit some of our own efforts, and collectively judge what we consider
good examples of literate programming. Having said that though, I would
venture to guess that if I looked back over my own programs I would not
feel very confident about submitting any one as my own conception of
what literate programming ought to be. I don't think I have ever
polished one up to that extent. Just as in writing a research paper or a
novel, there are degrees along the way to a fully finished and
publishable product. To that extent, I guess the major examples remain
the programs TeX and Metafont, as reflecting the judgements of Knuth.
After all, he did publish them.
 
>
>Anders Thulin       ath@linkoping.trab.se
>Telia Research AB, Teknikringen 2B, S-583 30 Linkoping, Sweden
 
Don Petcher                              petcher@wuphys.wustl.edu
Department of Physics
Washington University
Saint Louis, Missouri 63130
 
From Cameron Fri Jul 24 15:17:39 -0500 1992
Date: Fri, 24 Jul 1992 15:17:39 -0500
From: Cameron Smith <cameron@symcom.math.uiuc.edu>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Re:  ACM articles on Literate Programming
 
Status: RO
 
Chris Van Wyk's Literate Programming column in CACM appeared
four more times in addition to the ones cited yesterday by
Rob Beezer:
 
December 1988, pp. 1376-1385 (the last time a complete program
appeared in this column)
 
June 1989, pp. 740-754 (fragments of a "literate" file differencing
program were published, with a critique by Harold Thimbleby, the
implementor of the *first* "cweb" system, which was based on Troff
rather than TeX)
 
September 1989, pp. 1051-1055 (an article by Norman Ramsey discussing
the implementation of Spider Web, the first attempt at a programming-
language-independent version of Web; no program or critique appeared)
 
March 1990, pages 361 and 365 (not inclusive; the article was divided)
(this is just a brief -- and rather sullen, I thought -- note from
Chris Van Wyk stating that the column was being dropped because
the only people who seemed to be writing literate programs were
people who had implemented literate programming systems)
 
IMHO Chris Van Wyk didn't do a very good job with the LP column;
a full year elapsed between the second and third installments,
and only once was the gap less than six months.  He should either
have worked harder or quit sooner.  Moreover, his own contributions
were limited to behind-the-scenes coordination and a few paragraphs
per column -- he left nearly all the writing to the guest writers
and critics, and I saw no indication that in three years he had ever
tried Web (or any other LP system) himself even once.  I don't think
he was entitled to ascribe the failure of the column to a general
lack of interest in literate programming.
 
As long as we're building a LP bibliography (if that's what we're
doing), Thimbleby's article on Troff-based "cweb" ought to be
mentioned; it appeared in the Computer Journal in June 1986
(volume 29 number 3, I think), on pages 201-211.
 
This group is now, what, a week old?
Do we need a FAQ list yet?  1/2 :-)
 
--Cameron Smith
  cameron@symcom.math.uiuc.edu
 
From Cameron Fri Jul 24 18:44:22 -0500 1992
Date: Fri, 24 Jul 1992 18:44:22 -0500
From: Cameron Smith <cameron@symcom.math.uiuc.edu>
Reply-To: LITPROG@SHSU.edu
To: litprog@shsu.edu
Subject: Pictures in Webs
 
Brad Clark (brad.clark@nwc.navy.mil) writes:
Status: RO
 
> What I would really LOVE is
> to be able to talk to drawings included as part of the text file. A
> picture is worth a thousand words.
 
Agreed.  A picture of a tricky data structure is invaluable, and
sometimes indispensable.  But have you tried psfig for including
illustrations in your listings? I have had no trouble using it with
CWEB, and the macros in cwebmac.tex appear very similar to the ones
in webmac.tex.  I realize the universe isn't entirely PostScript,
but for lots of people it's sufficient.  At any rate I thought
I'd mention it.
 
(Or did I misunderstand what you wanted?  I didn't quite follow
the part about "talking to drawings"; I assumed it was just a
mental slip.)
 
--Cameron Smith
  cameron@symcom.math.uiuc.edu
 
From fritzz@lamont.ldgo.columbia.edu Sat Jul 25 09:58:25 EDT 1992
Date: Sat, 25 Jul 92 09:58:25 EDT
From: fritzz@lamont.ldgo.columbia.edu (Fritz Zaucker)
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Pictures in Webs
 
   X-Listname: Literate Programming Discussion List <LITPROG@SHSU.edu>
   Date: Fri, 24 Jul 1992 18:44:22 -0500
   From: Cameron Smith <cameron@symcom.math.uiuc.edu>
   Reply-To: LITPROG@SHSU.edu
 
   Brad Clark (brad.clark@nwc.navy.mil) writes:
   > What I would really LOVE is
   > to be able to talk to drawings included as part of the text file. A
   > picture is worth a thousand words.
 
   Agreed.  A picture of a tricky data structure is invaluable, and
   sometimes indispensable.  But have you tried psfig for including
   illustrations in your listings? I have had no trouble using it with
   CWEB, and the macros in cwebmac.tex appear very similar to the ones
   in webmac.tex.  I realize the universe isn't entirely PostScript,
   but for lots of people it's sufficient.  At any rate I thought
   I'd mention it.
 
Status: RO
 
Why PostScript? If you wanna avoid it, draw a picture with PicTeX.
There is even a fig -> PicTeX converter.
 
Fritz
 
From Joey Sun Jul 26 22:37:38 +22313801 1992
Date: Sun, 26 Jul 1992 22:37:38 +22313801 (EDT
From: Joey Gibson <aix3!wjg@netcom.com>
Reply-To: LITPROG@SHSU.edu
To: LitProg Mail-List <netcomsv!LITPROG@SHSU.edu>
Subject: Web for Macintosh
 
Status: RO
 
Someone may have already asked this, but I don't remember. Is there a Web
for the Macintosh (68000 chip)? I have just gotten the pre-compiled FWeb
for the PC, and I really like it. Is there a pre-compiled Mac version? If
anyone could point me in the right direction, I'd appreciate it.
 
Joey Gibson
 
===> Please address all E-mail to <wjg@aix3.ema.com>
===> The views expressed here are not necessarily those of EMA.
 
From Joey Sun Jul 26 22:40:15 +22313801 1992
Date: Sun, 26 Jul 1992 22:40:15 +22313801 (EDT
From: Joey Gibson <aix3!wjg@netcom.com>
Reply-To: LITPROG@SHSU.edu
To: LitProg Mail-List <netcomsv!LITPROG@SHSU.edu>
Subject: Epsilon Web file?
 
Status: RO
 
Is there a customization file for Epsilon (Emacs clone for the PC) similar
to the CWeb.el file? If so, any info appreciated.
 
Joey Gibson
 
===> Please address all E-mail to <wjg@aix3.ema.com>
===> The views expressed here are not necessarily those of EMA.
 
From Timothy Mon Jul 27 13:29:56 BST 1992
Date: Mon, 27 Jul 92 13:29:56 BST
From: Timothy Murphy <tim@maths.tcd.ie>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Re: Web for Macintosh
 
Status: RO
 
> Someone may have already asked this, but I don't remember. Is there a Web
> for the Macintosh (68000 chip)? I have just gotten the pre-compiled FWeb
> for the PC, and I really like it. Is there a pre-compiled Mac version? If
> anyone could point me in the right direction, I'd appreciate it.
 
There are pre-compiled Mac versions of ctangle and cweave --
I take it that is what is meant here by Web? --
available from ftp.maths.tcd.ie in pub/TeX/CWEB/16-bit
(ctangle.hqx and cweave.hqx).
The (very small) change files used to create these are also there.
 
Change files for the standard web2c distribution (from Karl Berry)
are also available in pub/TeX/src-5.851c/16-bit .
The port is described in MacTeX.tex in that directory.
 
Timothy Murphy
 
e-mail: tim@maths.tcd.ie
tel: +353-1-2842366 (home/office)
     +353-1-7021507 (university)
fax: +353-1-2842295
s-mail: School of Mathematics, Trinity College, Dublin 2, Ireland
 
From George Mon Jul 27 12:23:35 CDT 1992
Date: Mon, 27 Jul 1992 12:23:35 CDT
From: "George D. Greenwade" <bed_gdg@SHSU.edu>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Re: Web for Macintosh
 
Status: RO
 
Had a little break from a few meetings, and.....
 
On Mon, 27 Jul 92 13:29:56 BST, Timothy Murphy <tim@maths.tcd.ie> posted:
> There are pre-compiled Mac versions of ctangle and cweave --
> I take it that is what is meant here by Web? --
> available from ftp.maths.tcd.ie in pub/TeX/CWEB/16-bit
> (ctangle.hqx and cweave.hqx).
> The (very small) change files used to create these are also there.
 
The files are available from FILESERV and Niord.  Attached is the
description file.
 
Time to return to meetings,   George
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
George D. Greenwade, Ph.D.                            Bitnet:  BED_GDG@SHSU
Department of Economics and Business Analysis         THEnet: SHSU::BED_GDG
College of Business Administration                    Voice: (409) 294-1266
P. O. Box 2118                                        FAX:   (409) 294-3612
Sam Houston State University              Internet:        bed_gdg@SHSU.edu
Huntsville, TX 77341                      bed_gdg%SHSU.decnet@relay.the.net
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                                CWEB-16BIT
                                ----------
The CWEB-16BIT package includes version 1.0 (12 July 1992) of Timothy
Murphy's <tim@maths.tcd.ie> change files for THINK C and BinHex'ed
executables for CWEB on the Macintosh.  If you want to re-compile ctangle
and/or cweave, you will need the actual *.w CWEB files -- common.w and
ctangle.w for ctangle, common.w, prod.w and cweave.w for cweave (these are
included in the CWEB distribution on FILESERV and Niord).
 
To retrieve the set of 9 files distributed in 11 parts, include:
 SENDME CWEB-16BIT
in the body of a mail message to FILESERV@SHSU.BITNET (FILESERV@SHSU.edu). 
To retrieve a specific file, such as SENDME CWEB-16BIT.WC_CH, include:
 SENDME SENDME CWEB-16BIT.WC_CH
in your mail request to FILESERV.  The individual files, along with a
compressed tar archive and a ZIP archive, are available for anonymous ftp
retrieval from Niord.SHSU.edu (192.92.115.8) in the [FILESERV.CWEB-16BIT]
directory.
 
Files in this package: (1 Block = 512 bytes)
File                       Blocks  Save file as:
-------------------------------------------------------------------------------
CWEB-16BIT.COMMON_CH            6  common.ch                  
CWEB-16BIT.CTANGLE_CH           7  ctangle.ch                 
CWEB-16BIT.CTANGLE_HQX_1OF2    77  ctangle.hqx (part 1 of 2)  
CWEB-16BIT.CTANGLE_HQX_2OF2     7   (part 2 of 2)             
CWEB-16BIT.CWEAVE_CH           11  cweave.ch                  
CWEB-16BIT.CWEAVE_HQX_1OF2     77  cweave.hqx (part 1 of 2)   
CWEB-16BIT.CWEAVE_HQX_2OF2     38   (part 2 of 2)             
CWEB-16BIT.README_TCD           2  README.TCD                 
CWEB-16BIT.TREEPRINT_CH         3  treeprint.ch               
CWEB-16BIT.WC_CH                3  wc.ch                      
CWEB-16BIT.WMERGE_CH            3  wmerge.ch                  
 
Approximate total blocks in full CWEB-16BIT package = 234
 
From Joey Tue Jul 28 23:53:39 +22313801 1992
Date: Tue, 28 Jul 1992 23:53:39 +22313801 (EDT
From: Joey Gibson <aix3!wjg@netcom.com>
Reply-To: LITPROG@SHSU.edu
To: LitProg Mail-List <netcomsv!LITPROG@SHSU.edu>
Subject: CWeb on the Mac: Problems?
 
Status: RO
 
Is anyone using the CWeave and CTangle which have been ported to the Mac?
I got them today, but when I run them and enter a Web file to process, all
I ever get in return is (That was a fatal error, my friend). I thought it
was because of the path I specified, so I tried several variations of the
path, and finally moved the file into the same directory as CWeave, but I
still get this error. Any ideas?
 
Joey Gibson
 
===> Please address all E-mail to <wjg@aix3.ema.com>
===> The views expressed here are not necessarily those of EMA.
 
From Cameron Wed Jul 29 00:51:09 -0500 1992
Date: Wed, 29 Jul 1992 00:51:09 -0500
From: Cameron Smith <cameron@symcom.math.uiuc.edu>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Re:  CWeb on the Mac: Problems?
 
Status: RO
 
> Is anyone using the CWeave and CTangle which have been ported to the Mac?
> I got them today, but when I run them and enter a Web file to process, all
> I ever get in return is (That was a fatal error, my friend). I thought it
> was because of the path I specified, so I tried several variations of the
> path, and finally moved the file into the same directory as CWeave, but I
> still get this error. Any ideas?
> Joey Gibson
 
I tried them and had this experience.  As far as I can tell, the
programs expect to be given a change file and bomb if none is specified.
I made an empty file named "null.ch" and I always give that as the
change file when I want to process a web file without changes.
Kludgy, but it works.
 
--Cameron Smith
  cameron@symcom.math.uiuc.edu
 
From George Wed Jul 29 07:57:48 CDT 1992
Date: Wed, 29 Jul 1992 07:57:48 CDT
From: "George D. Greenwade" <bed_gdg@SHSU.edu>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: RE: smtp mail failed
 
Status: RO
 
The moral of this story is never go home or logout if you own a list, I
guess.  I have notified the postmaster at the site which is merrily
bouncing mail back to the list that it has a configuration problem.  Under
the various SMTP-related RFCs, the LAST address a mailer daemon should
return bounces to is the Reply-To: field, which this site was doing.  The
proper specification of bouncing is:
 Return-Path: *+
 Errors-To: *+
 From:
 Sender: *
 Reply-To: *+
 To:
(those marked by * are optional fields, those marked by + are generated by
our mailer, those without marks are required and created).  The
Return-Path: and Errors-To: field both point to an alias,
<LP-Mgr@SHSU.edu>, which comes to me -- I routinely handle quite a few
bounces each day from among my 11 lists; I should have been the only one to
have seen these.
 
The list address, <LITPROG@SHSU>, is included and first seen in Reply-To:,
the site has a problem.  Nevertheless, I apologize for the junk mail you
have received -- I am quite aware that it is a terrible waste of bandwidth,
as well as rather annoying.
 
Regards,   George
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
George D. Greenwade, Ph.D.                            Bitnet:  BED_GDG@SHSU
Department of Economics and Business Analysis         THEnet: SHSU::BED_GDG
College of Business Administration                    Voice: (409) 294-1266
P. O. Box 2118                                        FAX:   (409) 294-3612
Sam Houston State University              Internet:        bed_gdg@SHSU.edu
Huntsville, TX 77341                      bed_gdg%SHSU.decnet@relay.the.net
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
From Joey Wed Jul 29 13:38:08 +22313801 1992
Date: Wed, 29 Jul 1992 13:38:08 +22313801 (EDT
From: Joey Gibson <aix3!wjg@netcom.com>
Reply-To: LITPROG@SHSU.edu
To: LitProg Mail-List <netcomsv!LITPROG@SHSU.edu>
Subject: No double sidedness?
 
Status: RO
 
Is there any way in FWeb or CWeb to turn of double sided pagination? IOW, I have
no plans to print out my .dvi files double-sided, so can I turn this off, so
that all page numbers are in the upper right hand corner and all section numbers
are in the upper left hand corner?
 
Joey Gibson
 
===> Please address all E-mail to <wjg@aix3.ema.com>
===> The views expressed here are not necessarily those of EMA.
 
From Timothy Wed Jul 29 17:24:52 BST 1992
Date: Wed, 29 Jul 92 17:24:52 BST
From: Timothy Murphy <tim@maths.tcd.ie>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Re:  CWeb on the Mac: Problems?
 
Status: RO
 
> I tried them and had this experience.  As far as I can tell, the
> programs expect to be given a change file and bomb if none is specified.
> I made an empty file named "null.ch" and I always give that as the
> change file when I want to process a web file without changes.
> Kludgy, but it works.
 
Sorry, I guess this is my fault ...
The 'standard' version 'reads' from /dev/null if no change file is given.
Unfortunately the Mac doesn't have such an animal,
so expects a change file to be given.
This should have been stated more explicitly.
 
Timothy Murphy
 
e-mail: tim@maths.tcd.ie
tel: +353-1-2842366 (home/office)
     +353-1-7021507 (university)
fax: +353-1-2842295
s-mail: School of Mathematics, Trinity College, Dublin 2, Ireland
 
From Hans-Hermann Wed Jul 29 16:52:59 MEZ 1992
Date: Wed, 29 Jul 92 16:52:59 MEZ
From: Hans-Hermann Bode <HHBODE%DOSUNI1.BITNET@SHSU.edu>
Reply-To: LITPROG@SHSU.edu
To: litprog@SHSU.edu
Subject: Re:  CWeb on the Mac: Problems?
 
Cameron Smith wrote:
 
Status: RO
 
>I tried them and had this experience.  As far as I can tell, the
>programs expect to be given a change file and bomb if none is specified.
>I made an empty file named "null.ch" and I always give that as the
>change file when I want to process a web file without changes.
>Kludgy, but it works.
 
I happen to know approximately nothing about Macs, but it seems to me that
the following statement in common.w has to be changed appropriately:
 
  if (!found_change) strcpy(change_file_name,"/dev/null");
 
(This is line 1007 in Version 2.4.)
 
Hans-Hermann Bode
Arbeitsgruppe Systemforschung, Universit\"at Osnabr\"uck
Tel.: (49)-541-9692545
e-mail: HHBODE@DOSUNI1.BITNET
 
From Donald Wed Jul 29 18:01:03 -0500 1992
Date: Wed, 29 Jul 1992 18:01:03 -0500
From: "Donald N. Petcher" <petcher@arthur.wustl.edu>
Reply-To: LITPROG@SHSU.edu
To: litprog@shsu.edu
Subject: Re: No double sidedness?
 
Status: RO
 
>
> Is there any way in FWeb or CWeb to turn of double sided pagination? IOW, I have
> no plans to print out my .dvi files double-sided, so can I turn this off, so
> that all page numbers are in the upper right hand corner and all section numbers
> are in the upper left hand corner?
>
>
> Joey Gibson
>
> ===> Please address all E-mail to <wjg@aix3.ema.com>
> ===> The views expressed here are not necessarily those of EMA.
 
In fweb, the command \identicalpageheadstrue (put in TeX part at
beginning of document) makes all page headers identical, but it puts the
page numbers in the upper LEFT corner and the section numbers in the
upper RIGHT corner. To do it the other way around you can either change
the macro normaloutput in fwebmac.sty as indicated:
 
\def\normaloutput#1#2#3{\shipout\vbox{
  \ifodd\pageno\hoffset=\pageshift\fi
  \vbox to\fullpageheight
    {
    \iftitle\global\titlefalse
    \else\hbox to\pagewidth
        {\vbox to10pt{}%
        \ifidenticalpageheads#3\else  % THIS WAS ORIGINALLY #2 <---------
            \ifodd\pageno
                #3% Makes page numbers alternate left \& right.
            \else#2\fi
        \fi
        }%
    \fi
    \vfill#1
    }}% Parameter |#1| is the page itself
  \global\advance\pageno by1}
 
or you can include the above version in your TeX file as a redefinition
of the macro. This is from version 1.22. If you have version 1.23 make
sure it hasn't changed. I don't know if there is an 'official' way of
doing this.
 
Cheers,
Don Petcher                             petcher@wuphys.wustl.edu
Department of Physics
Washington University
Saint Louis, Missouri
 
From Cameron Fri Jul 31 18:01:55 -0500 1992
Date: Fri, 31 Jul 1992 18:01:55 -0500
From: Cameron Smith <cameron@symcom.math.uiuc.edu>
Reply-To: LITPROG@SHSU.edu
To: litprog@shsu.edu
Subject: Sorry!
 
Status: RO
 
Sorry about that; I was *sure* I typed "listserv" but just after
I sent the preceding I realized that I had sent it to the list
instead.  Curse me for a novice!
 
BTW, is the sudden silence on this group just a result of the
TUG meeting being held now, or was the storm of interest in
literate programming merely a tempest in a teapot?
 
I am new to CWEB and to literate programming generally, and
I would be *very* interested to hear from people who've used
literate methods to develop substantial software, especially
if several people were cooperating on a project.  Did LP
make your programs better, easier to write, easier to debug,
easier to maintain, and/or more efficient?  Did it introduce
any problems that you wouldn't have had if you had used
traditional methods?  A full-blown case study isn't necessary;
anecdotes would be of interest.
 
Equally of interest would be stories from people who tried LP
and didn't like it (although maybe such people aren't on this
list!).  Anybody who tried WEB or CWEB or c-no-web or some such
and then abandoned it, would you care to say why?
 
Anyone want to vouchsafe a few paragraphs for the enlightenment
of others?
 
--Cameron Smith
  cameron@symcom.math.uiuc.edu
 
From Marcus Sat Aug 1 01:31:25 +0200 1992
Date: Sat, 1 Aug 92 01:31:25 +0200
From: Marcus Speh <marcus@ips102.desy.de>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Sorry!
 
>>>>> On Fri, 31 Jul 1992 18:01:55 -0500, Cameron Smith said:
 
Status: RO
 
Cam'l> Sorry about that; I was *sure* I typed "listserv" but just after
Cam'l> I sent the preceding I realized that I had sent it to the list
Cam'l> instead.  Curse me for a novice!
 
I'm not sure whether it is an old and outworn trick or not...for me
it's a new way of getting *all* the attraction...(sorry the "Cam'l":
 I will write a subsequent message to excuse it as a typing error 8-))
 
--Marcus Speh [another novice]           INTERnet <marcus@ips102.desy.de>
 
P.S. BTW, what is the result of REVIEW LITPROG, Cameron...
 
From Marcus Sat Aug 1 03:09:53 +0200 1992
Date: Sat, 1 Aug 92 03:09:53 +0200
From: Marcus Speh <marcus@ips102.desy.de>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: LitProg: A "Tempest in a Teapot"?
 
Cameron, you said first:
 
Status: RO
 
Cameron> BTW, is the sudden silence on this group just a result of the
Cameron> TUG meeting being held now, or was the storm of interest in
Cameron> literate programming merely a tempest in a teapot?
 
  I guess it hard in general to keep both novices and veterans together
on the same mailing list. For some reason, my "anecdotes" take the
form of propositions [that is so because in my recent work, it is
hard to be really exact...]:
 
PROPOSITION-1: In Literate Programming, novices either
drop out before they have really started,
or they become veterans quickly.
 
PROPOSITION-2: Veteran Literate Programmers are a special brand:
used to be made fun of, not appreciated as the perfectionists
who many of them are, they learnt to live alone
and without a mailing list for years.
Now, it is hard for them to learn to live as friends...
 
PROPOSITION-3: Programmers come in two different brands:
Literate Programmers and Non-Literate Programmers
[some mouth flamed the latter as "illiterates"
earlier on this list - but to justify the propositional,
and therefore 'neutral' character of this note,
let's be nice]. Many do not know, to which side they belong
- the bright or the dark one.
 
PROPOSITION-4: Many programming people do not know that they
actually perform Literal Programming. Definitely you can be a
Literal Programmer without knowing of applying any of the
kinds of WEB...life just may become harder for you.
 
PROPOSITION-5: Non-Literal Programmers cannot be easily
convinced that they might gain something changing side.
LitProgs are often considered perfectionists,
and for them Literal Programming is L'art-pour-L'art,
luxury, in other words.
 
PROPOSITION-6: Literal Programming *is* a luxury. But writing
programs in an 'i-just-let-it-grow'-style is a luxury,
too. Anything which stimulates me, wakes up my intellectual
curiosity, is a luxury - but a necessary one.
 
I'll rather drop the line now...I am definitely to be put into
the "novice" slot of literal programming - but I have thought
about it a bit - probably too much compared to the work
which has come out of it yet - and probably too little to
satisfy *your* needs, Big Brother.
 
Later you said,
 
Cameron> I'm interested to hear whether this literate
Cameron> programming really is a useful tool or just something for
Cameron> academics [...] who have the luxury of taking all the
Cameron> time they want on any project they want to play around with.
 
It is a useful tool for me. It definitely increased my level of
reflection upon what I was doing. It saves me time because the
programs mostly *do* run in the first place - it costs me
time because I now like to treat many otherwise neglectable
pieces of code like little diamonds - and cannot be sure that
this will pay beyond the fun.
  It definitely costs time because I am trying
to convince my colleagues that they should try *WEB, too. But
I am a born missionary anyway and so this meets my needs as well.
 
I find it important to note though, that nobody would
 carry out "research" knowing in advance what will be
useful...I even made the experience that scientific
creativity [sorry for using otherwise obscenely maltreated
words in this context] directly depended on me doing
the useless. But this is not a mailing list for Hegelian
dialectics, I understand. I am just trying to say that
the fast way is not always the best.
 
Being a semi-novice, that is the situation I am in [sort of] -
and NOW: rise, you veterans!
 
--Marcus Speh                      INTERnet <marcus@ips102.desy.de>
 
From Timothy Sat Aug 1 12:07:03 BST 1992
Date: Sat, 1 Aug 92 12:07:03 BST
From: Timothy Murphy <tim@maths.tcd.ie>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Re: LitProg: A "Tempest in a Teapot"?
 
Status: RO
 
Psst.
DEK isn't listening, is he?
I wonder has he got a mole in this group?
 
The truth is,
only pointy-heads and weirdos use plain TeX nowadays.
Everybody else in the world, including Dan Quayle,
is using LaTeX.
That's the main reason, IMHO,
for the relative failure of WEB
(as opposed to TeX itself).
 
Life is too short to study webmac,
when one could be listening to Enya.
 
Timothy Murphy
 
e-mail: tim@maths.tcd.ie
tel: +353-1-2842366 (home/office)
     +353-1-7021507 (university)
fax: +353-1-2842295
s-mail: School of Mathematics, Trinity College, Dublin 2, Ireland
 
From kardaras@ecn.purdue.edu Sat Aug 1 7:03:14 EST 1992
Date: Sat, 1 Aug 92 7:03:14 EST
From: kardaras@ecn.purdue.edu (George S Kardaras)
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Re: LitProg: A "Tempest in a Teapot"?
 
Status: RO
 
Sorry for doing it this way, but I'm going to leave for
three weeks and I tried to sign off but with no luck.
 
I would be obliged if the owners removed me from the list.
 
Thanks.
George Kardaras
 
From Marcus Sat Aug 1 17:39:25 +0200 1992
Date: Sat, 1 Aug 92 17:39:25 +0200
From: Marcus Speh <marcus@ips102.desy.de>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Time for Crimethink. Reply to Murphy's Guess.
 
Tim, you whispered:
 
Status: RO
 
Tim> Psst.
Tim> DEK isn't listening, is he?
whim> I wonder has he got a mole in this group?
 
Is there some congenial relationship between DEK
and Big Brother?
 
Tim> The truth is,
Tim> only pointy-heads and weirdos use plain TeX nowadays.
Tim> Everybody else in the world, including Dan Quayle,
Tim> is using LaTeX.
 
I agree with that. Though, I wonder..who's that potatoe
Dan Quayle - did he write a Macro that I should know?
 
  I do not agree with Murphy's Guess:
 
Tim> That's the main reason, IMHO,
Tim> for the relative failure of WEB
Tim> (as opposed to TeX itself).
 
I *am* using LaTeX with (F)WEB.
Never really learnt anything else but LaTeX.
I don't consider WEB a failure just because
it isn't a discipline by its own in Barcelona, yet.
 
Success relative to TeX's: ask one of the older chaps
what they thought, say, 7 years ago, seeing the
TeX source to what should become their paper...
in 1990, still, I had to fight hard to
convince anyone to use LaTeX instead of Plain TeX
(plus some self-made clumsy macros to set the title page)-
 no, not on Galapagos, but in a major European [aha!]
theoretical physics institute with lots of smarties around.
 
I do not think anyone could have
foreseen the enormous success of TeX in the scientific world
[the only mouse hole I know] - Why give
up hope for Literal Programming yet? It is not greater
computational complexity which makes people shrink back from
LitProg. Unlike LitProg, TeX did not really have
any serious competitor, though, I think.
 
As far as I can see, including the
previous postings in this group, most
people do not restrict themselves to literal
programming.
Of course this is Crimethink already.
 
The success of TeX seems to be rooted in the fact that
it was free from beginning and grew into an institution
pretty soon - inheriting some seriousness from DEK.
 
Question to anyone of the more veteran LP's: how
"institutionalized" is Literate Programming today?
 
o  Are there meetings, special journals?
o  Servers with special software?
o  Experiences with trying to *publish* a literate program
   "as-is"?
o  If not: what would you like to see?
 
[I myself do not read any CS related journal, being a truly
illiterate literate programmer.]
 
What can we do?
For now, we can only increase the popularity of Literate
Programming by creating a stimulating environment on
this list. And sharing code perhaps. In addition to what
has already been down-loaded. [\stimulate{LITPROG} is another
freely available environment.]
 
I case there is nobody at your place to ask:
I invite anyone who has in mind to start using FWEB,
or has started it not too long time ago
to ask, or discuss it with me. I was
happy enough to have a knowledgeable person here
when I started, and that helped a lot.
 
--marcus
 
Disclaimer: - I do not know anything about Galapagos, really.
 
Is there a deadline for ceasing
to send the typical Summertime postings?
  I would definitely respect it--my postings show the tendency to
grow beyond a certain length on these hot weekends in town...
 
  Marcus Speh                      INTERnet <marcus@ips102.desy.de>
  II. Institut f. Theor. Physik    BITnet   <I02MSP@DHHDESY3>
  Luruper Chaussee 149             DECnet   <13313::SPEH>
  2000 Hamburg 50/Germany   Tel.(040)8998-2260  FAX:(040)8998-2267
 
From CGL@RUGR86.RUG.NL Sat Aug 1 17:33 MET 1992
Date: Sat, 1 Aug 1992 17:33 MET
From: CGL@RUGR86.RUG.NL
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Re: LitProg: A "Tempest in a Teapot"?
 
Status: RO
 
I started with LaTeX and are now using TeX to my staisfaction. Because
it is more orthogonal, more compact and stable. Of course I don't
refrain from using any TeX especially when publishing houses support
the author, by providing guidelines et cetera. TUG itself allows users/
authors to submit LaTeX or TeX copy, so not everybody is using LaTeX.
 
With respect to literate programming the idea to write for humans is not new,
to supply tools which more or less force a programmer to document what
he is doing is something. But as far as I see it, and at the moment not
much experience with WeB, is the relational structure as opposed to the
hierarchical structure, the real break through. History in database programs
demonstrated the usefulness of that approach. I hope to contribute more
in future to this list or to the literature of literate programming by
`programming pearls.'
 
In the mean time I keep my ears open,
---Kees van der Laan---
 
From Joey Tue Aug 4 14:10:01 +22313801 1992
Date: Tue, 4 Aug 1992 14:10:01 +22313801 (EDT)
From: Joey Gibson <aix3!wjg@netcom.com>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Help with function pointers
 
In a web i created, I had the following declaration:
 
Status: RO
 
void far (*reset)();
 
to indicate a function pointer. When I tangle it, it works fine.
COmpiles without error. When I weave it, however, weave thinks
it is a function named far and typesets it like this:
 
void far(*reset)();
 
I know the space between far and the '(' is not a lot, but it
does help to explain the meaning of the code. If anyone knows
how to fix this, let me know.
 
BTW, I am using FWeb, v1.23 for the PC.
 
Joey Gibson
 
===> Please address all E-mail to <wjg@aix3.ema.com>
===> The views expressed here are not necessarily those of EMA.
 
From Thorsten Wed Aug 05 16:59:55 CDT 1992
Date: Wed, 05 Aug 1992 16:59:55 CDT
From: Thorsten Ohl <ohl@ips102.desy.de>
Reply-To: LitProg@SHSU.edu
To: LITPROG@SHSU.edu
Subject: FWEB on a HP9000 ??
 
>>>>> On Wed, 5 Aug 92 15:28:32 MDT, Fiegel Robert AM-T 678-3756 <rfiegel@wsmr-emh73.army.mil> said:
 
Status: RO
 
bob> Has anyone installed FWEB v1.23 on an HP machine?
 
Yes.
 
bob> I'm not a C programmer so tried the ANSI C make, but ran into
bob> errors.  The flags/options on the cc line are evidently not what
bob> HP C expects.
 
Either get GCC (the GNU C Compiler), or use (if you have it) the
unbundled HP ANSI C Compiler, which is invoked with `cc -Aa' (as cc(1)
explains in detail :-).  Then the make should proceed without any
problems.
 
////// Thorsten Ohl, DESY (-T-), Notkestr. 85, W-2000 Hamburg 52, F.R.G.
///////// net: ohl@crunch.ikp.physik.th-darmstadt.de, ohl@gnu.ai.mit.edu
//////////////////////// voice: +49-40-8998-3699,  fax: +49-40-8998-3282
 
From Jack Thu Aug 6 09:11 EDT 1992
Date: Thu, 6 Aug 92 09:11 EDT
From: "Jack W. Sharer 814 863-4116" <J0S%PSUVM.BITNET@SHSU.edu>
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Ada WEBs
 
Status: RO
 
I've collected the following information on Ada WEB versions over
the past several years.  I would recommend Ramsey's Spider WEB; and,
if your using DOS, Neuwirth's adaptation.
 
                                               Jack W. Sharer
                                               Penn State University
                                               j0s@psuvm.psu.edu
 
-------- SIMTEL20 Ada Software Repository Prologue ------------
--
-- Unit name    : AWEB release
-- Version      : 1.0 (based on Tangle 2.8)
-- Author       : U. Schweigert
--              : Unknown, somewhere in Germany...
--              : released in the states by Karl A. Nyberg,
--              : Grebyn Corporation, PO 497, Vienna, VA
--              : 22183-0497, 703-281-2194
-- DDN Address  : karl@grebyn.com
-- Copyright    : public domain
-- Date created : 7/14/89 - Bastille Day
-- Release date : 5/31/89
-- Last update  : 5/31/89
-- Machine/System Compiled/Run on : VAX/ULTRIX VADS 5.5c (kan)
--
---------------------------------------------------------------
--
-- Keywords     :  documentation, formatting, development
--
-- Abstract     :
--
-- This program converts an .AWEB file to an Ada file. It was written
-- ---originally for conversion to PASCAL---by D. E. Knuth in September,
-- 1981; a somewhat similar SAIL program had been developed in March,
-- 1979. Since this program describes itself, a bootstrapping process
-- involving hand-translation had to be used to get started. The
-- conversion to Ada has been done by U. Schweigert in May 1988.
--
-- The program consists of three parts : Ada code for atangle, aweave,
-- and supporting files for Tex.  Bootstrap versions of the .aweb files
-- are included within the supporting files .src file.
--
-- Thus there are three files: atangle.src, aweave.src, and texfiles.src.
--
-- All files have maintained the original names as distributed by the
-- original author.
--
-- Additional support files include local modifications by PCS GMBH for
-- their system by Horst Kern.
--
------------------ Revision history ---------------------------
--
-- DATE         VERSION	AUTHOR                  HISTORY
-- 7/14/89	1.0	U. Schweigert		Initial submission to ASR
--						by Karl A. Nyberg
...
-------------------END-PROLOGUE--------------------------------
 
Norman Ramsey, Department of Computer Science, Princeton University,
35 Olden Street, Princeton, New Jersey 08544, Internet:
nr@princeton.edu, Telephone: (609)-258-55388 has developed Spider
WEB.  It appears to me to be a meta-WEB system.  Using awk grammar
files, he has generated Unix WEB's for
 
     Ada
     AWK, a string processing language
     Kernighan and Ritchie C
     C++, courtesy of Ed Kademan
     Edsger Dijkstra's language of guarded commands  (flaky)
     The Larch Shared Language, used for specifying equational theories.
     Ada, extended with formal comments for verification
     The language of the Cornell Synthesizer Generator
 
Spidery WEB is available by anonymous ftp from princeton.edu:~ftp/pub.
 
See Ramsey. "Weaving A Language-Independent WEB," _CACM_, _32_, 9,
September 1989.
 
Sylvester Fernandez, ngcr@planet8.planet8.sp.unisys.com [sic], has
made corrections to the Ada Spider grammar.  His corrections are
supplied with Ramsey's standard distribution from princeton.edu.
 
Erich Neuwirth, a4422dab@awiuni11.bitnet, has adapted Ramsey's
Unix code to MSDOS with the Microsoft "C" compiler. I found his work
on host rusinfo.rus.uni-stuttgart.de, [129.69.1.12], in directory
soft/tex/web/spiderweb.
 
An Ada WEB from Baker and Yu (Florida State University):
 
-----------
         Plain_WEB    has the original WEB system with the webmac.tex
                      file.  You have to use the webmac.tex in order
                      to get correct results.
 
         Ada_WEB      has the compilable source file for Ada_WEB.
 
         Ada_WEB_Test has all Ada_WEB system test files, *.WEB.
 
         Tex_Files    has all tex files.
                                                    Y.C. Wu
                                                    1988
-----------
 
WARNING: These programs are known to have some bugs; be careful.
 
There is one file in this directory that does not come from FSU.
 
APE.macros  -- Ada TeX macros from Stanford University (c).
 
By the way another good way to handle Ada text in LaTeX is to use
the verbatim environment and an auxiliarly program to extract the
Ada code from the LaTeX file.  I did this using a special macro
(which ordinarily does nothing but expand to \begin{verbatim}) to
include the name of the file I wanted the code to go onto.  The
typesetting quality is poor, but avoids problems with indentation
since the font is fixed-width; it also insures agreement between
Ada code and text in paper.
 
--Ted Baker,  30 May 1989.
  Florida State University
  Tallahassee, FL 32306-4019
  tpb@sei.cmu.edu (may be temporary)
 
From jongill@lilac.bldrdoc.gov Thu Aug 6 09:34:40 -0600 1992
Date: Thu, 6 Aug 92 09:34:40 -0600
From: jongill@lilac.bldrdoc.gov (Jonathan M. Gilligan)
Reply-To: LITPROG@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Knuth and CWEB (was: Literate Programming is not necessarily
 
George D Greenwade <bed_gdg@SHSU.edu> writes:
 
   I am still admitting a HUGE ignorance of virtually all high-level
   languages, but I think it's worth noting that Knuth's name is now attached
   to Silvio Levy's CWEB (now Levy-Knuth CWEB).  It is relatively clear that
   Knuth not only has suggested that better interfaces should be built -- as I
   understand it, he has already made enhancements and extensions to other
   conceptual applications of WEB in other non-Pascal languages.
 
Status: RO
 
I include an interesting article that Timothy Murphy of Trinity College in
Dublin posted to the NTS mailing list a couple of months ago.
 
---Jon
 
%%%%%%%%%%%%%%%%%%%%%%%%%% Begin included article %%%%%%%%%%%%%%%%%%%%%%%%%
 
    Return-Path: <tim@maths.tcd.ie>
    From: Timothy Murphy <tim@maths.tcd.ie>
    Subject: Re: Eradicating artificial limitations in NTS
    To: "Jonathan M. Gilligan" <jongill@lilac.bldrdoc.gov>
    In-Reply-To: Jonathan M. Gilligan's message of Wed, 3 Jun 92 12:19:34 -0600
    Date: Thu, 4 Jun 92 2:40:03 BST
    Sender: tim@maths.tcd.ie
 
    > First, I don't see the advantage of C over Pascal. Pascal supports
    > dynamic allocation, it has an ISO standard, and it is strongly typed,
    > which C is not. I think C is just great --- no language flame wars,
    > please --- but I don't believe that there is one best language in
    > which to write NTS.  As well, I have spent enough time trying to port
    > abominable C code from UNIX to DOS to have been disabused forever of
    > the idea that C is automatically or easily portable. WEB could
    > presumably be extended rather simply to support dynamic allocation.
 
    I'm pretty sure that if Knuth were starting again
    he would use C rather than Pascal.
    We had the pleasure and honour of a long visit by him
    earlier this year,
    and he spent a great deal of his time hacking cweb.
    (This seemed the only part of TeX he was concerned with,
    at that time anyway.)
    He spoke strongly in favour of Literate Programming in C.
 
    He was absurdly modest about TeX,
    and complained that as he went round the world
    he found mathematicians everywhere crouched over their terminals
    typing in TeX when they should be in the library!
 
    When asked why he hadn't tried to make money out of TeX,
    he replied that he _had_ patented 1 algorithm
    (I wonder which one?)
 
    He was very interested and supportive
    of attempts to design an Irish font,
    and asked to see examples of old Irish printing.
 
    His own lectures, incidentally, were all handwritten
    in several colours on transparencies.
 
    Timothy Murphy
 
    e-mail: tim@maths.tcd.ie
    tel: +353-1-2842366 (home/office)
    +353-1-7021507 (university)
    fax: +353-1-2842295
    s-mail: School of Mathematics, Trinity College, Dublin 2, Ireland
 
From mfy@sli.com Fri Aug 7 21:12:59 -0400 1992
Date: Fri, 7 Aug 92 21:12:59 -0400
From: mfy@sli.com (Mike Yoder)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: LP -- pros & contras
 
Daniel Kustrin wrote:
 
Status: RO
 
>Has anyone had good/bad experiences with large programs in CWEB and if so are
>there things that we (novices) should know.
 
There is a problem I encountered with LP which can be very serious in large
programs and fairly minor in small ones.  It can be described as the problem of
incrementality; it can either be fixed in your LP tool or, possibly, in your
make files and source control.
 
Suppose you have a large program written using LP techniques, and now say that
you want to edit its documentation WITHOUT changing anything in the code.
You do so, and now your generated Ada or C or whatever looks out of date with
respect to the LP source.  So, the next time you do a "make" command, the LP
program will run, generating a new program (which happens to be the same as the
old one); its binaries now look out of date, so the compiler is invoked to
recompile the source; any modules that depend on this one may also end up
getting recompiled, and finally your linker will link the whole mess.
 
The result can be a very long and time-consuming null operation.
 
I solved this problem by having my LP tool compare all generated sources to
their old versions (when such existed) and to simply delete the new source if
it was the same as the old.  This makes all the dates look the way you want, so
a "make" will rebuild just what it would rebuild if you hadn't used LP
techniques.
 
Using this technique makes LP be an improvement over the technique of using
special comments, because in the latter method make will still recompile your
program if you edit only parts of the program that are inside comments.
 
I think that this ability is essential to an LP system used with large programs
(even with medium-sized programs, doing without it is painful).  And yes, this
does mean that I think the special comments method is inadequate for doing LP
with large programs.
 
	Michael F. Yoder [mfy%sli@uunet.uu.net]
 
From Cameron Mon Aug 10 00:40:29 -0500 1992
Date: Mon, 10 Aug 1992 00:40:29 -0500
From: Cameron Smith <cameron@symcom.math.uiuc.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: K&R CWEB sample requires current software
 
Status: RO
 
This posting explains some problems a couple of users have had with
my sample CWEB program, and how to work around at least one of them.
 
Two alert users of my CWEB sample program (based on the calculator
program from Chapter 4 of the K&R C book) have reported problems
TeX'ing the cweave output from "calc.w".  Both of them reported
the following behavior:
 
* TeX prompts for input from the keyboard when it ought to be
  reading from the file "mod.lst"
 
As far as I can tell from the feedback I've received, this happens
*only* to people using pre-3.0 versions of TeX.  Apparently the
"\par" token that is supposed to be generated at end-of-file
(which is what the code in "calc.w" uses to detect that it
has read all of "mod.lst") isn't generated by older versions
of TeX, at least not in this circumstance.  Perhaps someone more
familiar than I am with the recent evolution of TeX may recognize
this as a bug in file-reading that was fixed in release 3.0 or later?
At any rate, since the versions of TeX for which this failure has
been reported are three or more years old now, I don't regard this
as a critical defect, but I do advise anyone who is using so old
a version to get an update ASAP (whether or not s/he wishes to
try out my CWEB sample program).
 
Meanwhile, for those for whom an upgrade is not an immediate
possibility (because the TeX maintainers have other tasks in
their queues), you can patch things to work by adding the line
 
	echo "\par" >> mod.lst
 
to the Makefile in the actions for the "mod.lst" target (after the
line that writes the module names to the file); this explicit \par
token signals the loop that reads the module names from "mod.lst"
that the end of the list has arrived.  (For those not familiar
with the "make" utility, please note that this line *must* begin
with a tab character to be recognized properly; spaces will NOT do!)
 
In addition, one of the respondents reported problems that turned
out to be related to the use of an antique version (2.0) of CWEB.
The macros in "cwebmac.tex" had changed sufficiently to be slightly
incompatible with the (admittedly rather grungy) code in "calc.w".
This can, of course, easily be fixed by obtaining the current version
of CWEB (via FTP from labrea.stanford.edu or niord.shsu.edu, or via
email from FILESERV@niord.shsu.edu).  The CWEB utilities (ctangle
and cweave) are easy to compile; they, and the "cwebmac.tex" file,
are all you need in order to use CWEB, so this (unlike TeX) is
something that shouldn't be too hard for individual users to set up
without requiring the aid of system gurus (although of course if there
are many CWEBsters at one site it's better to have a single shared
copy of each tool than to have each user comiler his/her own).
 
Finally, the same person also reported problems when using a Sun
C++ compiler (the only ANSI-compatible C compiler available to him)
to compile the output of ctangle.  It seems that this compiler does
not respect the "static" declaration; the effect in the calculator
program is that hash is made of the routines that manipulate the
operand stack.  (Yes, folks, this poor soul had problems with TeX
*and* CWEB *and* his compiler; it's amazing he got anything to work
at all!)
 
In summary, to make everything in the sample program work "as is",
you need:
 
  * a reasonably current (at least 3.0) version of TeX,
 
  * a reasonably current version of CWEB, and
 
  * an ANSI-compatible, reasonably correct C compiler.
 
And if you have these, it *does* work -- at least, as far as I've
been able to tell from the feedback I've received so far.
Just thought I'd point this out since these questions have popped up
in the last couple of days; I'll add specific warnings to the README
file if I release a new version.
 
Thanks to all who have sent feedback!  To others who have tried it,
remember: Even if you have no bugs to report, or comments or suggestions
for improvement, I'd still be interested in knowing what systems it has
been successfully compiled with (and so, I'm sure, would other potential
users, who would be encouraged to be able to see in the README file that
it is indeed possible to get the program to work on their configurations!).
 
Cheers--
--Cameron Smith
 
From Hans-Hermann Mon Aug 10 14:11:46 MEZ 1992
Date: Mon, 10 Aug 92 14:11:46 MEZ
From: Hans-Hermann Bode <HHBODE%DOSUNI1.BITNET@SHSU.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: Help with function pointers
 
Joey Gibson wrote:
 
>In a web i created, I had the following declaration:
Status: RO
 
>
>void far (*reset)();
>
>to indicate a function pointer. When I tangle it, it works fine.
>COmpiles without error. When I weave it, however, weave thinks
>it is a function named far and typesets it like this:
>
>void far(*reset)();
 
Say
 
  @f far int
 
somewhere in your source. Weave does not by default recognize |far| as a
reserved word (this is definitely true for CWEAVE, but I think it's true for
FWEAVE, too).
 
Hans-Hermann Bode
Arbeitsgruppe Systemforschung, Universit\"at Osnabr\"uck
Tel.: (49)-541-9692545
e-mail: HHBODE@DOSUNI1.BITNET
 
From sanjeev@theory.cs.psu.edu Mon Aug 10 10:59:48 -0400 1992
Date: Mon, 10 Aug 1992 10:59:48 -0400
From: sanjeev@theory.cs.psu.edu (Sanjeev Y. Dharap)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Help with function pointers
 
Recently you wrote:
 
Joey> In a web i created, I had the following declaration:
 
Status: RO
 
Joey> void far (*reset)();
 
Joey> to indicate a function pointer. When I tangle it, it works fine.
Joey> COmpiles without error. When I weave it, however, weave thinks
Joey> it is a function named far and typesets it like this:
 
Joey> void far(*reset)();
 
Try making the foll. declaration
 
@f far int
 
hope that helps,
 
sanjeev
----
sanjeev dharap                 |
penn state university	       |      sanjeev@cs.psu.edu
333 whitmore lab	       |
university park, pa 16802      |
 
From Joey Mon Aug 10 15:16:12 +22313801 1992
Date: Mon, 10 Aug 1992 15:16:12 +22313801 (EDT
From: Joey Gibson <aix3!wjg@netcom.com>
Reply-To: LitProg@SHSU.edu
To: LitProg Mail-List <netcomsv!LITPROG@SHSU.edu>
Subject: FWeb on the Mac?
 
Status: RO
 
Has anyone tried to compile FWeb v1.23 on a Macintosh? I was considering
trying to make it an MPW tool, but if someone else has already done
this I would like to know.
 
Joey Gibson
 
=> "In the country of the blind, the one-eyed man is king." H.G. Wells <=
   ===> The views expressed here are not necessarily those of EMA. <==
 
From sanjeev@theory.cs.psu.edu Tue Aug 11 13:11:32 -0400 1992
Date: Tue, 11 Aug 1992 13:11:32 -0400
From: sanjeev@theory.cs.psu.edu (Sanjeev Y. Dharap)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Help with change file. Is this a bug?
 
Status: RO
 
Hi,
 
I am using CWEB Version 2.4. I wanted to make the following changes to
common.w
 
1. Print an error message if .c file already exists.
(So I dont overwrite it with what should have been a .h file).
 
2. If the change file name is 'null' or '/dev/null' make the
change-file name /dev/null.
(so I can give a command 'ctangle foo-h.w null foo.h)
 
3. Increase buf_size to 256.
 
I copied common.w to common.w.modified, made the changes I wanted and
created the change-file using a unified diff. (I have attached the
perl script to do that at the bottom). The change file is also
attached. Here's what happened.
 
> ctangle common common-syd.ch
This is CTANGLE (Version 2.4)
*1*5*7
! Hmm... 8 of the preceding lines failed to match. (l. 65 of change file)
@y
   *27*46*54*63*67
Writing the output file (common.c):.....500..
Done.
(Pardon me, but I think I spotted something wrong.)
 
I noticed that the error occurs because there is a partial match
between lines 1019 and 1035 of common.w (namely)
 
  1019    if (s-*argv > max_file_name_length-5)
  1035    if (s-*argv > max_file_name_length-4)
 
If I make a small change near 1019 (like adding a space) then that
line gets included in the change file and ctangle does not give any
errors.
 
I think there is sufficient context in the change file to make the
chunk in question unique. Am I doing anything wrong?
 
thanx
 
sanjeev.
---- common-syd.ch -------
@x
% permission notice identical to this one.
 
\def\v{\char'174} % vertical (|) in typewriter font
 
\def\title{Common code for CTANGLE and CWEAVE (Version 2.4)}
\def\topofcontents{\null\vfill
  \centerline{\titlefont Common code for {\ttitlefont CTANGLE} and
    {\ttitlefont CWEAVE}}
  \vskip 15pt
  \centerline{(Version 2.4)}
  \vfill}
\def\botofcontents{\vfill
\noindent
Copyright \copyright\ 1987,\thinspace1990 Silvio Levy and Donald E. Knuth
@y
% permission notice identical to this one.
 
\def\v{\char'174} % vertical (|) in typewriter font
 
\def\title{Common code for CTANGLE and CWEAVE (Version 2.41)}
\def\topofcontents{\null\vfill
  \centerline{\titlefont Common code for {\ttitlefont CTANGLE} and
    {\ttitlefont CWEAVE}}
  \vskip 15pt
  \centerline{(Version 2.41)}
  \vfill}
\def\botofcontents{\vfill
\noindent
Copyright \copyright\ 1987,\thinspace1990 Silvio Levy and Donald E. Knuth
@z
@x
Since |buf_size| is strictly less than |long_buf_size|,
some of \.{WEB}'s routines use the fact that it is safe to refer to
|*(limit+2)| without overstepping the bounds of the array.
 
@d buf_size 100 /* for \.{WEAVE} and \.{TANGLE} */
@d long_buf_size 500 /* for \.{WEAVE} */
 
@<Definitions...@>=
char buffer[long_buf_size]; /* where each line of input goes */
char *buffer_end=buffer+buf_size-2; /* end of |buffer| */
@y
Since |buf_size| is strictly less than |long_buf_size|,
some of \.{WEB}'s routines use the fact that it is safe to refer to
|*(limit+2)| without overstepping the bounds of the array.
 
@d buf_size 256 /* for \.{WEAVE} and \.{TANGLE} */
@d long_buf_size 656 /* for \.{WEAVE} */
 
@<Definitions...@>=
char buffer[long_buf_size]; /* where each line of input goes */
char *buffer_end=buffer+buf_size-2; /* end of |buffer| */
@z
@x
{
  if (s-*argv > max_file_name_length-4)
    @<Complain about argument length@>;
  if (dot_pos==NULL)
    sprintf(change_file_name,"%s.ch",*argv);
  else strcpy(change_file_name,*argv);
  found_change=1;
}
 
@y
{
  if (s-*argv > max_file_name_length-4)
    @<Complain about argument length@>;
  if (dot_pos==NULL)
	if (strcmp(change_file_name, "null"))
	   strcpy(change_file_name, "/dev/null");
	else sprintf(change_file_name,"%s.ch",*argv);
  else strcpy(change_file_name,*argv);
  found_change=1;
}
 
@z
@x
 
@ @<Scan arguments and open output files@>=
scan_args();
if (program==tangle) {
  if ((C_file=fopen(C_file_name,"w"))==NULL)
    fatal("! Cannot open output file ", C_file_name);
@.Cannot open output file@>
}
@y
 
@ @<Scan arguments and open output files@>=
scan_args();
if (program==tangle) {
  if ( access(C_file_name, 0) == 0)  {
     fprintf(stderr, "File %s exists!\n", C_file_name);
     exit(1);
  }
  if ((C_file=fopen(C_file_name,"w"))==NULL)
    fatal("! Cannot open output file ", C_file_name);
@.Cannot open output file@>
}
@z
------------------------
 
Perl script to generate change-files
 
--------- makechange-------
#!/usr/bin/perl
 
# Make .ch file from the diff of two files.
#
#  usage :  makech orig-file changed-file
#
 
$me = $0;
$me =~ s/^.*\///;
die "usage: $me orig-file changed-file\n" unless $#ARGV == 1;
open (FOO, "gdiff +unified=4 $ARGV[0] $ARGV[1] |");
 
<FOO>;
<FOO>;
<FOO>;
while ($line = <FOO>){
	$k = substr($line, 0, 1);
	$line =~ s/.//;
	$first .= $line, $second .= $line if ($k eq ' ');
	$first .= $line if ($k eq '-');
	$second .= $line if ($k eq '+');
	if ($k eq '@'){
		print STDOUT "@x\n$first@y\n$second@z\n";
		$first = '';
		$second = '';
		}
	}
	print STDOUT "@x\n$first@y\n$second@z\n";
---------------------------
 
sanjeev
----
sanjeev dharap                 |
penn state university	       |      sanjeev@cs.psu.edu
333 whitmore lab	       |
university park, pa 16802      |
 
From dan@minster.york.ac.uk Tue Aug 11 18:13:57  1992
Date: Tue, 11 Aug 92 18:13:57
From: dan@minster.york.ac.uk
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: CWEB
 
Status: RO
 
I am having a small (suite) of problem(s) with CWEB.
 
One of the more irritating is that it does not type set the following
correctly:
 
typedef enum {
	SINIT,          /* task initialised */
	SRUN,           /* ready to run */
	STERM,          /* task terminated */
	SACCEPT,        /* waiting for corresponding entry */
	ENTRYQ,         /* queued for corresponding accept */
	/* and so on for a few more states */
	} STATE;
 
Now we all see that STATE is a type. CWEB belives that it is a variable.
Although @f would work I don't want to have more @f statements then
code...
 
Also can I stop CWEB formating my C code. I am happy with the current
layout of my code, and I am not happy with the way WEB attacked it and
reformated it. Not nice.
 
Can anyone help?
 
--Dan
 
From Cameron Tue Aug 11 14:08:20 -0500 1992
Date: Tue, 11 Aug 1992 14:08:20 -0500
From: Cameron Smith <cameron@symcom.math.uiuc.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re:  CWEB
 
Dan (dan@minster.york.ac.uk) writes:
Status: RO
 
> [complaint about CWEB not parsing a "typedef enum" correctly...]
> Also can I stop CWEB formating my C code. I am happy with the current
> layout of my code, and I am not happy with the way WEB attacked it and
> reformated it. Not nice.
 
This is my own main complaint with CWEB: it is at once too dumb and
too clever in its formatting.  The idea of being able to write little
"scraps" of code in any order and poof! have ctangle magically assemble
them into a coherent program is *really* *nice*, but I'm still not convinced
that the convenience of this is worth putting up with the manhandling
that my code suffers at the hands of cweave.
 
After all, let's face it: until things reach the point where we can
directly edit the beautifully typeset output of cweave and TeX, the
major benefit of all this typographic niceness is in producing legible
documentation for archival purposes and for the benefit of future
programmers (including ourselves) who come in to work on our code.
While we're still in the heat of creation, we look at the WEB source
10 times as often as the typeset listing.  (This is my own experience;
others should of course feel free to relate their own!)  And that means
that to get work done, we still must manually maintain a fairly sanely
indented source file.  To do this we each develop a layout style that
makes sense to us.  I for one find it MOST IRRITATING to have my code
reformatted into someone else's style.  When the reformatting actually
introduces semantic confusion because the "clever" tool has misunderstood
my code, it's downright infuriating.  Perhaps this is petty, but it's
so.  Now, if it didn't involve actually rewriting the cweave program
I'd consider fixing this, doing a little customizing to suit my taste,
but I just don't have the *time* to tinker with someone else's massive
and complicated monolithic program.
 
Don't tell me that just tinkering with "prod.w" will fix this; it won't.
*Far* *too* *much* of the typesetting "smarts" is hard-coded into
cweave itself.  For example, I wanted to change the way indenting is
handled in short if/else constructs: instead of having
 
   if (a>b) x = y - 2;
   else t = 4;
 
I wanted
 
   if (a>b)
       x = y - 2;
   else
       t = 4;
 
Never mind whether this is better or worse; I wanted it.  "OK," I said,
"I'll just find the TeX macro that cweave emits after an if condition,
and redefine it to make a line break and indentation."  Not that hard
to do by looking at the TeX file created by cweave and the macros from
cwebmac.tex.  Great.  But the SAME TEX MACRO is used to do six other
kinds of indentation (such as laying out type declarations of variables),
so there's no way to change the if's without changing those too.  Levy
and Knuth just *knew* the "right" way to handle these things, so they
"optimized" the code by collapsing two logically distinct operations
into one, so I would have to re-write God knows how much of cweave to
get this fixed.  And of course it's not worth it, so I either grit
my teeth and live with it, or I don't use CWEB.
 
If CWEB is really going to fly, it needs to be redesigned so that a
great deal of the formatting decision-making is decoupled from the
compiled code.  Ideally, it would be table-driven; CWEB would be
distributed with a default set of formatting tables implementing the
Levy/Knuth style, but there would be a fairly transparent configuration
program that each user could run to generate his/her own private layout
tables.  Parser generator tools like lex and yacc, or tools for
generating tables from precedence grammars, already exist and could
perhaps be adapted to this purpose.  Also, the TeX code would use separate
names for each logical function, several of which could by default be
equated via \let to the same action, but with the cweave output using
the different names in different circumstances so you could redefine
the format of "if (a>b) x=2" without also reformatting "int x,a,b".
 
I will allow as how it's not reasonable to expect Knuth to have looked
ahead and anticipated all of this when he designed the original WEB,
and I know that Levy simply made the minimal set of changes to adapt
WEB to C in making CWEB.  I don't mean to disparage what they've done.
But as Fred Brooks said in "The Mythical Man-Month": "Plan to throw
one away; you will anyway."  In "The Errors of TeX" Knuth confesses that
he had qualms about letting the first TeX out for testing by others,
because as long as he was the only user, if he found something about
the language that he didn't like he could simply change the specification
and rewrite the code.  But he knew that he couldn't expect everyone who
needed TeX to do a task that he hadn't anticipated to rewrite the
program to make it work.  But this is EXACTLY the situation we face
with cweave.
 
Now that we have some experience with WEB derivatives being used by
many people other than their implementors, if we're still serious about
this approach to Literate Programming, then we really need to think about
designing a better LP tool.  It must be more customizable, it must be
better able to interact with make (no more re-compiling code because
the comments changed!), etc. etc.  I myself would LOVE to take off a year
or two and work just on this, but I'm not a tenured fellow of anything
and haven't been endowed or granted, so I'll have to decline.  But I'd
be very willing to contribute to a group effort on an as-time-permits basis.
 
Is there a grad student out there looking for a thesis topic who'd be
interested in spending a couple of years coordinating a distributed
volunteer effort?  Are there other LITPROG readers who'd be interested
in working with a dozen or more people you've never met on a not-for-profit
project?  Am I simply dreaming?
 
Meanwhile, I've promised to tone down my comments about c-no-web, so
I'll just quietly mention that it NEVER rearranges line breaks, and
then leave all of you to draw your own conclusions... ;-)
 
Have a Literate Day--
--Cameron Smith
  cameron@symcom.math.uiuc.edu
 
From Richard Tue Aug 11 22:27:08 +0200 1992
Date: Tue, 11 Aug 1992 22:27:08 +0200
From: Richard Kooijman DNPAP <Richard.Kooijman@dnpap.et.tudelft.nl>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re:  CWEB
 
Status: RO
 
I myself use NOWEB. It is simple and leaves all your code alone.
You miss out on features likes @d and @f but the first is language
specific and the latter not needed since NOWEB doesn't need hints
on how to 'interpret' your code (it just copies it the way it is).
 
It only understands @ to begin a chunk of documentation, <<...>>= to
start or continue a named chunk of code and <<...>> to insert
a chunk of code.
 
Furthermore it comes with some utilities (that may have their equivalents
in other implementations, but I don't know those enough) like noroots to
display the code chunks that have no parents in the hierarchy,
nountangle to tangle code but put the docu in comments. And
of course there are equivalents of tangle and weave.
 
It's simple and fast and language independent.
 
Just my humble opinion,
 
Richard.
 
From ras@skanda.zko.dec.com Tue Aug 11 16:43:20 -0400 1992
Date: Tue, 11 Aug 92 16:43:20 -0400
From: ras@skanda.zko.dec.com (Bob Surtees)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: CWEB formatting
 
Status: RO
 
One of the things I like about CWEB is that cweave *does* format the code fairly
consistantly so I don't have to be concerned about the different ways
different people prefer to pretty their code.
 
Perhaps there should be an execution switch and possibly some sort of template
file that would let both fweave and ftangle format their output for those
people who don't like the default.  My problem is that I can't get people too
excited about Literate Programming so when I'm done I have to use indent to
pretty up the C sources so they can support it.  Amazing!
 
Bob Surtees (ras@skanda.zko.dec.com)
 
From stevea@vast.unsw.edu.au Wed Aug 12 08:33:51 +1000 1992
Date: Wed, 12 Aug 92 08:33:51 +1000
From: stevea@vast.unsw.edu.au
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: CWEB
 
Status: RO
 
Hi all,
 
Cameron <cameron@symcom.math.uiuc.edu> sez:
 > This is my own main complaint with CWEB: it is at once too dumb and
 > too clever in its formatting...
 
and goes on to say (after a bit of griping about cweave):
 
 > It must be more customizable, it must be better able to interact with
 > make (no more re-compiling code because the comments changed!), etc.
 > etc...
 
	I don't know exactly how customizable it is, but have you
considered playing with something like Norman Ramsey's Spidery WEB? It
allows you to specify the grammar and how you would like it formatted,
which is a feature I like (I've already modified the way it handles
keywords like "extern", and it only took me about half an hour, and
thats starting from scratch).
	If you really wanted to rewrite the way weave treats your code,
this is a good place to start, without having to rewrite the entire WEB
code.
 
	cheers
	-steve
 
From zuazaga@ucunix.san.uc.EDU Wed Aug 12 01:24:20 -0500 1992
Date: Wed, 12 Aug 1992 01:24:20 -0500
From: zuazaga@ucunix.san.uc.EDU (Humberto Ortiz-Zuazaga)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.EDU
Subject: Re: K&R CWEB sample
 
Cameron Smith wrote:
> remember: Even if you have no bugs to report, or comments or suggestions
Status: RO
 
> for improvement, I'd still be interested in knowing what systems it has
> been successfully compiled with (and so, I'm sure, would other potential
> users, who would be encouraged to be able to see in the README file that
> it is indeed possible to get the program to work on their configurations!).
 
K&R CWEB sample programs, and CWEB 2.4 both run on linux 0.97-patch1
(and probably other versions too), with gcc 2.2.2 for linux. As a
matter of fact, this is a very nice setup for trying out literate
programming. I've also got fweb and noweb (and c-no-web) running,
although fweave drops core with a SIGIOT when writing the index.
 
Actually, noweb even works under DOS if you replace the slick shell
scripts with dumb batch files and use the Icon versions of nw and
noxref.
 
I'm still not happy. I want a tool that lets me write LaTeX in the
documentation section _and_ pipes my code through tgrind _and_ is easy
to use and clean. I think noweb comes close, I just need to see if I
can convice it to print my code out better. I think syntactical
highlighting is an important part of what literate programming should
be.
--
Humberto Ortiz-Zuazaga                            zuazaga@ucunix.san.uc.edu
Dept. of Physiology & Biophysics                   University of Cincinnati
 
From Cameron Wed Aug 12 01:24:20 -0500 1992
Date: Wed, 12 Aug 1992 01:24:20 -0500
From: Cameron Smith <cameron@symcom.math.uiuc.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re:  CWEB
 
Status: RO
 
Thanks for the pointers to Spider WEB and NOWEB (both of which are
creations of Norman Ramsey, I believe).  I (obviously) haven't tried
either one; I will make an effort to do so in the near future.
From the brief descrioptions it sounds like NOWEB is easier to get
working in a hurry but Spider WEB is closer to my own personal
idea of what an LP tool should be (i.e. I don't mind having code
reformatted for typesetting as long as I can control the nature
and extent of the reformatting).
At any rate, I've heard of both products before but never until now
had a reason to try them.
Thanks again--
--Cameron
 
From bart@cs.tamu.edu Wed Aug 12 09:50:26 CDT 1992
Date: Wed, 12 Aug 92 09:50:26 CDT
From: bart@cs.tamu.edu (Bart Childs)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re:  CWEB
 
Status: RO
 
Yes, they are both creations of Norman Ramsey.  I am sympathetic
to your views of what LP tools shoule be (rather I am in complete
agreement) but I fear making them so complex that they will be
harder to use.
 
To achieve what you want may require a significant extension of
the `webmac.tex' that must be more or less standard with Spider.
I think that it would be a little more direct than trying to change
an existing weave, except possibly fweave.  John may have put
enough of that into it.  It probably also helps that fwebmac.sty
is a web created from fwebmac.web.
 
I am going to go ahead and submit the note to the list.
 
Best regards
 
Bart
 
From bart@cs.tamu.edu Wed Aug 12 17:24:01 -0500 1992
Date: Wed, 12 Aug 92 17:24:01 -0500
From: bart@cs.tamu.edu
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: Tailorable Literate Programming systems
 
Status: RO
 
Cameron Smith's arguments are well stated.  If you read the
documentation that Krommes wrote in his FWEB (and it also does
C and C++) you can see that he experienced some of the same
pains that Dan and Cameron are talking about.
 
I agree with them and have suggested many times that we need a
``tailorable'' LitPgm system.  Norman Ramsey also used the
argument that some languages need to keep the programmers
`line breaks and indentation' in his design of NOWEB.
 
One word of caution about `tailorable' LitPgm systems.  One good
CS philosopher noted (approximately) ``if you want to make a
user interface unuseable, add functionality to it.''  The creation
of a system to aid the ``ordinary literate programmer'' in maintaining
or creating his/her own `preferred style' would be a monster.
For example, in WEB/CWEB the @: format uses the \9 TeX control
sequence (in FWEB it is @9).  I have probably written more lines
of WEB than most and have caused a large number of students to
do so; none of us have ever defined the \9 to tailor anything.
 
I apparently am a bit different from Cameron in that I rely on
the weave/tex output extensively.  I do that in spite of having
a nice 1280/1024 Xterminal on my desk and the printer being at
the other end of the building.  Also, I AM CONVINCEd of the value
of the nice formatting.
 
I have no desire for a WYSIWYG system because WYSIWYG is a lie!
What you see on the screen is at best a poor approximation of what
even a low resolution device like a laser printer gives.  (I don't
even have convenient access to a 400dpi NeXT printer much less
a high resolution device.)  I usually study the code in the
weave/tex output stage and when editing I want to see the
escapes into code mode (|code_mode|).  Too many programmers
will not use long names with the underscore and italicized words
are easily confused with variables.  His `10 times as often' is
overstated for me, but he still makes a good point.
 
Although I am a tenured professor, I plan to put up with the
indentation's ... until a willing graduate student comes along
and is willing to do that work along with some tests that would
help us understand its benefits, costs, ...  Obviously, it does
not infuriate me.  I would use the word annoy.  Incidentally,
I also would not call it monolithic: weave.w, common.w, prod.w,
...
 
Cameron gave a good example of a need for tailoring:
   if (a>b) x = y - 2;
   else t = 4;
Although I also prefer his form, in textual matter it is quoted
as common knowledge that the most readable information has 9 to
12 words per line.  Counting each `word', delimiter, variable,
and operator as a word, the first has 11 and the second has 4.
It would not surprise me that a code beautifully typeset and
using the `9 to 12' rule might be more comprehendable.  The reason
(IMHO) that we prefer these skinny presentations is that we have
been trained to expect code in that fashion.  I have trouble
reading skinny Fortran codes, C codes with indentation based on
8-space tabs, C codes with aligned braces, and aligned right
texts using monospace fonts.
 
In the paragraph where he mentions:
  Levy and Knuth just *knew* the "right" way
Don and Silvio are both great talents but I am sure they meant WEB
and CWEB to be simply a first step at making systems available for
the writing of better codes.
 
I have not spent a lot of time studying Spider, but I thought that
some of the `table-driven' part is there.  It probably relys on a
fairly small spidermac.tex/sty.  That may be a place to start.
 
I recall a lot of the earlier submissions being about WEB systems
too big to work on PCs.  Wouldn't making these `tailorable' also
cause even more problems in the same line?  We need to keep such
users in mind, but not as the primary design criteria.  I believe
that OS/2 and MAC-Sys 7 are both virtual memory systems.
 
Cameron's quotes of Brooks and Knuth are well chosen.  Knuth has
also said a number of times about how much he has learned from
making codes available for the public to help him debug.
Alas, we striving to do literate programming have lost him to
volume 4 of ACP.  I think that he would be pleased with these
kinds of discussion and that he will leave the changes for us
to design and implement.
 
The questions Cameron asked in his last paragraph are good and
the project(s) worthwhile.  I believe the bigger contributions
will be in the building of better user interfaces between things
like RCS, imake, dbx, and non-monolithic webs.
 
My compliments to the subscribers for some really good
comments about literate programming ..., especially Cameron
and Tim's note about Knuth's visit to Ireland.
 
Bart Childs
 
From Timothy Thu Aug 13 0:57:05 BST 1992
Date: Thu, 13 Aug 92 0:57:05 BST
From: Timothy Murphy <tim@maths.tcd.ie>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: Help with change file. Is this a bug?
 
Status: RO
 
> I think there is sufficient context in the change file to make the
> chunk in question unique. Am I doing anything wrong?
 
I don't think WEB or CWEB look much at the context.
They just try to match the first line of the change.
So if your change starts with something like
 
@<Glob...@>
 
it is very likely to be mistaken for somewhere else.
 
Timothy Murphy
 
e-mail: tim@maths.tcd.ie
tel: +353-1-2842366 (home/office)
     +353-1-7021507 (university)
fax: +353-1-2842295
s-mail: School of Mathematics, Trinity College, Dublin 2, Ireland
 
From Richard Thu Aug 13 07:57:42 +0200 1992
Date: Thu, 13 Aug 1992 07:57:42 +0200
From: Richard Kooijman DNPAP <Richard.Kooijman@dnpap.et.tudelft.nl>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: K&R CWEB sample
 
Status: RO
 
> Actually, noweb even works under DOS if you replace the slick shell
> scripts with dumb batch files and use the Icon versions of nw and
> noxref.
>
 
I have a working NOWEB under DOS using some PD sh. I had to hack up
the awk programs in the scripts, though. I have taken them out of
the scripts and put them in separate AWK files. The PD sh was complaining
that the command line was too long in several awk initiations. Not really
the fault of the DOS sh but of DOS limitations.
 
Richard.
 
From dan@minster.york.ac.uk Thu Aug 13 16:06:30  1992
Date: Thu, 13 Aug 92 16:06:30
From: dan@minster.york.ac.uk
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: cweb history
 
Status: RO
 
Just a small query.
 
	When was CWEB designed?
 
I keep finding 1987 as the year when Silvio Levy rewrote
the WEB system into C. Is this correct, 'cos I just found
a University of York paper written by Harold Thimbleby
entitled
"Experiences of 'Literate Programming' using CWEB [a variant of Knuth's WEB]"
which was written in 1984.
 
This is a part of his introduction:
 
"... After hearing Donald Knuth extol his literate programming system,
WEB [Knuth, 1982, 1984], I decided to implement a Unix version of it,
which came to be called cweb. ..."
 
The paper is dated August 31, 1984. And it's reference number is:
 
	YCS.74(1984)
 
Interestingly enough in the section 8.1 he points out that
"... in its current form cweb needs a table which specifies the
programming language lexemes, quoting mechanisms, and comment
conventions. These features can be expressed using regular
expressions... Language independence of a more limited form is often
required..."
 
He then expands on how regular expressions can be used to write a
"spidery"-like system. He also looks at formatter independent system.
 
Interesting, isn't it.
 
--dan
 
From Chris Thu Aug 13 11:08:48 MDT 1992
Date: Thu, 13 Aug 92 11:08:48 MDT
From: Chris Flatters <cflatter@aoc.nrao.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: cweb history
 
dan@minster.york.ac.uk writes:
Status: RO
 
> 	When was CWEB designed?
>
> I keep finding 1987 as the year when Silvio Levy rewrote
> the WEB system into C. Is this correct, 'cos I just found
> a University of York paper written by Harold Thimbleby
> entitled
> "Experiences of 'Literate Programming' using CWEB [a variant of Knuth's WEB]"
> which was written in 1984.
>
> This is a part of his introduction:
>
> "... After hearing Donald Knuth extol his literate programming system,
> WEB [Knuth, 1982, 1984], I decided to implement a Unix version of it,
> which came to be called cweb. ..."
>
> The paper is dated August 31, 1984. And it's reference number is:
>
> 	YCS.74(1984)
 
There is no connection between the two CWEBs.  Levy's CWEB is the
CWEB that is in common use today.  Thimbleby's was notable in using the
standard UNIX typesetting utility, troff, rather than TeX.
 
	Chris Flatters
	cflatter@nrao.edu
 
From Jeff Thu Aug 13 17:03 EST 1992
Date: Thu, 13 Aug 92 17:03 EST
From: Jeff Rummel <RUMMEL%DUKEFSB.BITNET@SHSU.edu>
Reply-To: LitProg@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Hacking at cnoweb
 
Status: RO
 
My coding work is such that c-no-web wins the bang for the buck analysis
(at least at this point).  I've made some changes to the file (to suit
my taste), but there was one thing I wanted to do that is outside my
TeXbility.  I find on occasion that a page break occurs just after a line
that has a { in it and I think it would look better to have the whole
block together on a page (if page breaking allows).  So I think I want a
<pi>goodbreak before the line, but is there some way to go back and insert
such a beast when the { occurs after part of the line has been read?
In this way TeX would see
 
  <pi>goodbreak if (x) {
 
Or could I throw a <pi>nobreak after the line?  TIA.
 
--jeff.
 
From dan@minster.york.ac.uk Mon Aug 17 12:39:26  1992
Date: Mon, 17 Aug 92 12:39:26
From: dan@minster.york.ac.uk
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: C and WEB - Problems
 
Status: RO
 
Does anyone know how can I get comments to appear on a separate line in
CWEB? Something like:
 
	while (foo>baz) {
	/* a comment */
		frobox;
		quux;
		}
 
I tried @/ and similar, but I didn't get thie right indentation.
 
(Oh, yes... SpiderWEB C environment changes would be fine too.
I tried an failed :(   I did manage to convince Spider-C that
bit-field colon is not a case colon, but that was very easy).
 
Any ideas?
 
From Hans-Hermann Mon Aug 17 15:54:03 MEZ 1992
Date: Mon, 17 Aug 92 15:54:03 MEZ
From: Hans-Hermann Bode <HHBODE%DOSUNI1.BITNET@SHSU.edu>
Reply-To: LitProg@SHSU.edu
To: litprog@SHSU.edu
Subject: Re: C and WEB - Problems
 
dan@minster.york.ac.uk asked:
 
Status: RO
 
>Does anyone know how can I get comments to appear on a separate line in
>CWEB? Something like:
>
>        while (foo>baz) {
>        /* a comment */
>                frobox;
>                quux;
>                }
 
Redefine the \C macro
 
  \def\C#1{\5\5\quad$/\ast\,$#1$\,\ast/$}
 
in cwebmac.tex or in the limbo section of your source file in the following
way:
 
  \def\C#1{\6\quad$/\ast\,$#1$\,\ast/$}
 
The \6 implies a forced line break instead of the optional \5 break. In the
example above, the comment will be aligned with |frobox|. If you prefer the
form exactly as given, insert a \4 (backspace one notch) in the definition,
i.e.,
 
  \def\C#1{\6\4\quad$/\ast\,$#1$\,\ast/$}
 
Hans-Hermann Bode
Arbeitsgruppe Systemforschung, Universit\"at Osnabr\"uck
Tel.: (49)-541-9692545
e-mail: HHBODE@DOSUNI1.BITNET
 
From stevea@vast.unsw.edu.au Tue Aug 18 12:43:39 +1000 1992
Date: Tue, 18 Aug 92 12:43:39 +1000
From: stevea@vast.unsw.edu.au
Reply-To: LitProg@SHSU.edu
To: litprog@SHSU.edu
Subject: Minor annoyance in Spidery WEB...
 
Status: RO
 
Hi all,
	I've come across a minor annoyance in the Spidery ceeweave
program, and I was wondering if anyone out there would know a quick
solution. Its really a TeX problem, but I thought I'd try here before
trying comp.text.tex.
	Anyhow, in Spidery ceeweave, if you have two consecutive modules
which are greater than one page in length, it causes a page break
between the two (it tries to start modules which won't fit on the
remainder of the page on a new page). Now, when it hits a module, it
redefines the headline using the \N command:
 
	\N107. 3Create Centre Mask.
 
Here 107 is the module number, 3 is the relative depth of the module
nesting, and "Create Centre Mask" is the module name. The command \N
looks like:
 
\outer\def\N#1.#2.{\MN#1.\headcheck#2\headcheck
  \message{*\modno} % progress report
  \edef\next{\write\cont{\thetocskip
      \Z{\theopen\relax
      \themodtitle}{\modno}{\noexpand\the\pageno}}}\next % to contents file
  \ifon\startsection{\bf\ignorespaces\themodtitle.\quad}\ignorespaces
  \edef\rhead{{\ignorespaces\lowercase\themodtitle}} % define running
  }
 
	Now, the problem occurs because the new headline is defined
prior to the current page being shipped out. As a result, the page
before the page on which the module begins, has that module name in the
header.
	Does anyone know how I might cause the page to be shipped out if
it is going to be, prior to redefining the header?
	Thanks...
 
	cheers
	-steve
 
From Lee Tue Aug 18 11:06:42 EDT 1992
Date: Tue, 18 Aug 92 11:06:42 EDT
From: Lee Wittenberg <leew@pilot.njin.net>
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: Minor annoyance in Spidery WEB...
 
Status: RO
 
I found the same problem with headlines in Spidery WEB and worked out an
imperfect (but better than what exists) fix to webkernel.tex.  Unfortunately,
all my Spidery stuff is still packed up (I'm in the process of moving).  If
anyone is interested in my fix when I get it unpacked (shouldn't be more than
a week), you can write me direct at
 
	leew@pilot.njin.net	(permanent account)
 
or
 
	leew@cs.utexas.edu	(current account while on sabbatical)
 
Either one will work.
 
		-- Lee
 
From Dave Fri Aug 21 13:45:59 +1000 1992
Date: Fri, 21 Aug 92 13:45:59 +1000
From: Dave Carlton <sacpms!dac@PacBell.COM>
Reply-To: LitProg@SHSU.edu
To: litprog@SHSU.edu
Subject: CWEB
 
Status: RO
 
I have been reading this list for some time now and have trying
to glean exactly what is Literate Programming, WEB, CWEB, and such.
I was hoping for a FAQ to come along but have not seen one.
 
So, could someone please explain what is this all about, why is it
good/bad. How can I try it out (on Unix BSD4.3 and Mac), and etc.
 
Perhaps the responses could be gathered for a FAQ list.
 
From jmu@ccr.jussieu.fr Fri Aug 21 13:32:16 +0200 1992
Date: Fri, 21 Aug 92 13:32:16 +0200
From: jmu@ccr.jussieu.fr (Johannes MULLER p73413)
Reply-To: LitProg@SHSU.edu
To: LITPROG@shsu.edu
Subject: FWEB Problem
 
Status: RO
 
I tried to tangle and compile the example CWEB program given
by Cameron Smith with my newly installed FWEB-System.
I had to modify some notations and nearly all worked fine. Only in file
"getop.w(eb) the command @o to open the file "getop.h" failed.
Look the example below (which I have stripped as far as possible).
 
What FWEB made is a bit strange: it added some non-ASCII characters
to the filename "getop.h". All other examples succeeded with the same
command structure.
 
@z -----test.web-----
    cf.:
%%% Save file as: getop.w                     Source: FILESERV@SHSU.BITNET
%%% This is a file from a sample of the use of CWEB provided by
%%% Cameron Smith <cameron@symcom.math.uiuc.edu>
 
@x --------------
 
@c
@* Introduction.
Here is the only unnamed code module in this file.
 
@A
@<Public |#define| statements to be exported@>@;
 
@
@<Function prototypes to be exported@>=
	@<Function prototype for |getop()|@>;
 
@ Export is done here:
@a
@o getop.h
	@<Public |#define| statements to be exported@>@;
	@<Function prototypes to be exported@>
 
@* The function |getop()|.
 
@<Function prototype for |getop()|@>=
int getop(char s[])
 
@
@<Public |#define| statements to be exported@>=
#define NUMBER '0'
 
@* Index.
------------------cut here------------------------
 
What ftangle made:
> ftangle test
This is ScRaMbLeD FTANGLE [SunOS/UNIX version 1.23a (April 13, 1992)].
Reading test.web... *1 *4 *6
Writing the output file(s):  (test.c)(getop.hQws)
Done.
CPU = 0.3 sec.; REAL = 0.8 sec.  CPU/REAL = 45.0%.
[FTANGLE:  No errors were found.]
------------------------------------------------------
Note the strange extension to getop.hxxxxx!
 
Who has an idea about this effect?
 
Thank you very much
 
Johannes Mueller
Inst. des Neurosciences
F-75005 Paris
 
From Hans-Hermann Fri Aug 21 15:57:53 MEZ 1992
Date: Fri, 21 Aug 92 15:57:53 MEZ
From: Hans-Hermann Bode <HHBODE%DOSUNI1.BITNET@SHSU.edu>
Reply-To: LitProg@SHSU.edu
To: litprog@SHSU.edu
Subject: CWEB-p -- a portable WEB for ANSI C and C++
 
Status: RO
 
Due to Klaus Guntermann <gunterma@iti.informatik.th-darmstadt.de> CWEBPC, a
CWEB adaptation supporting ANSI-C and C++ typesetting features (announced on
this list a few weeks ago), evolved from a somewhat portable PC application
to a really portable one. After some extensive exchange of diff files we got
a system that now without changes is compilable at least with the following
compilers:
 
- Turbo C++, Version 1.01, under PC-/MS-DOS,
- c89 under HP-UX 8.0 on a HP 9000/400,
- c89 under AIX 3.2 on a IBM RS/6000,
- gcc, Version 1.40, with option -ansi, for a MC680x0 processor.
 
On the face of it two things changed: first, I renamed the package in CWEB-p
(``p'' as ``portable''); second, with respect to the archive formats common
on the various systems, in addition to the usual zip file I compiled a tar.Z
archive (both with identical contents, but with appropriate line feeds,
respectively). You can find cweb-p.zip und cweb-p.tar.Z on
dione.rz.uni-osnabrueck.de (in pub/msdos/tex/web and pub/unix/TeX/WEB,
resp.) and on ftp.uni-stuttgart.de (in soft/tex/web/cweb).
 
There are no functional changes compared to CWEBPC, Version p5. Thus, if you
have this version running already, you don't need to upgrade.
 
Hans-Hermann Bode
Arbeitsgruppe Systemforschung, Universit\"at Osnabr\"uck
Tel.: (49)-541-9692545
e-mail: HHBODE@DOSUNI1.BITNET
 
From BEEZER@UPS.EDU Fri Aug 21 9:03:06 -0700 1992
Date: Fri, 21 Aug 1992 9:03:06 -0700 (PDT)
From: BEEZER@UPS.EDU (Rob Beezer)
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: Problems with @o in FWEB
 
Status: RO
 
Johannes Mueller posted an question recently about using the @o command in FWEB.
The following is taken directly from the read_me file distributed with FWEB:
 
###############################################################################
 
------------------------ v1.23b (not released to public) ---------------------
 
FTANGLE:
 
* Trouble with @o (still!) on some machines; spurious characters
in file names.
 
	Fixed.
 
################################################################################
 
............................................................................
:   Robert Beezer                   :         Internet:  beezer@ups.edu    :
:   Dept. of Mathematics and CS     :         Voice:     206.756.3564      :
:   University of Puget Sound       :         Fax:       206.756.3500      :
:   Tacoma, WA  98416               :                                      :
............................................................................
 
From Marcus Sat Aug 22 16:04:36 +0200 1992
Date: Sat, 22 Aug 92 16:04:36 +0200
From: Marcus Speh <marcus@ips102.desy.de>
Reply-To: LitProg@SHSU.edu
To: Literate Programmers <litprog@shsu.edu>
Subject: Query: FWEB release v1.23b?
 
Status: RO
 
I am referring to a recent posting by Rob Beezer concerning the @o command
in FWEB.
 
Later, Rob said:
 
> the read_me file
> that I quoted from was included in Hans-Hermann Bode's distribution of
> the compiled versions of FWEB for the PC.
 
Now, does anyone on the list know more about FWEB's version 1.23b -
the "official" release which can be obtained from lyman.pppl.gov or
from Niord.shsu.edu, is version 1.23a ?
 
Using FWEB quite a lot for a couple of months now, I have not
encountered any bug (yet) - maybe because I am cautious not to use
too many of its features (of which there a too many, I am afraid -
I'd like it a bit more minimalistic).
 
  An important point, esp for beginners, is the User's manual which
contains a hell of a lot of information - on more than 200 pages.
The problem is that it is quite a jungle to get lost in - written
along the evolution of FWEB. That would be a substantial improvement
even if now new code would have been written.
 
BTW, it puzzles me that neither John Krommes, nor Norman Ramsey nor...
whoever belongs to the elite club of original programmers of parts
of the WEB variants, are subscribed to this list (acc to a REVIEW from
August 20) ...did someone bother to tell them about its existence?
 
M. Speh
 
  Marcus Speh                      INTERnet <marcus@ips102.desy.de>
  II. Institut f. Theor. Physik    BITnet   <I02MSP@DHHDESY3>
  Luruper Chaussee 149             DECnet   <13313::SPEH>
  2000 Hamburg 50/Germany   Tel.(040)8998-2260  FAX:(040)8998-2267
 
From Marcus Sat Aug 22 20:08:12 +0200 1992
Date: Sat, 22 Aug 92 20:08:12 +0200
From: Marcus Speh <marcus@ips102.desy.de>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: LP-FAQ outline
 
>>>>> On Fri, 21 Aug 92 13:45:59 +1000, Dave Carlton said:
 
Status: RO
 
> I have been reading this list for some time now and have trying
> to glean exactly what is Literate Programming, WEB, CWEB, and such.
> I was hoping for a FAQ to come along but have not seen one.
 
I second Dave Carlton's hope for a FAQ, and I have been volunteering
today to participate in a FAQ for this list - we'll see how
George Greenwade thinks about it...
 
  CAVEAT: since I consider myself ignorant on many LP related
questions, I am afraid I will not have to offer too much besides
enthusiasm and some FWEB experience, as well as a bunch of sample
written in ratfor(1) (- no doubt FORTRAN is the secret love of
the majority of experts on this list ;-) so I urge the *real* experts
so come together and satisfy the novice's embryonic needs.
 
Now, before anything else is being done, I'd like to open
a discussion on what the LP FAQ should contain -
the people interested should express their wishes.
 
Below I have given a vague description of how I think the FAQ could
look. I should confess that the FAQ image I have in mind is Joe Wells'
FAQ for GNU Emacs (from the gnu. newsgroups) - but I haven't seen many
examples yet. I have converted it into a Texinfo file (for both online
info and a printed TeX-documentation - even without Emacs as an
editor) here at DESY, and it was exceptionally well received by many
novices.
 
Since LP is very much a philosophy, too, spanning a vast number of
possible applications and implementations, I think it would be nice
to let the finished FAQ be "refereed" by some real experts,
who should give comments and correct errors.
 
I'd like to propose [for discussion!] an outline for the FAQ.
 
----------------------------------------------------------------------
FAQ file forms: text (.ps ? .texinfo ? .info ? .tex ?)
 
@* CONTENTS.
 
@<Header@>=
 Notation, How to get this, What is planned etc.
 
@<Chapters@>=
    { Philosophy;          /* What I like most about LP...
      Implementations;     /* CWEB, FWEB, NOWEB, SPIDERWEB ...etc.
      Code Examples;       /* mainly FILESERV
      Developpers;         /* WEB variants, pointers to Addresses...
      Bibliography;        /* started on this list, see also Beebe/FILESERV
      Addresses;           /* Who's Who in LP...
    }
 
@ Sections =
 Questions and longer paragraphs - later, for more intricate
 questions one may ask an expert to write a couple of lines;
 this is also the place for people's experiences with LP.
 
----------------------------------------------------------------------
 
M. Speh
 
  Marcus Speh                      INTERnet <marcus@ips102.desy.de>
  II. Institut f. Theor. Physik    BITnet   <I02MSP@DHHDESY3>
  Luruper Chaussee 149             DECnet   <13313::SPEH>
  2000 Hamburg 50/Germany   Tel.(040)8998-2260  FAX:(040)8998-2267
 
From Marcus Sat Aug 22 20:09:43 +0200 1992
Date: Sat, 22 Aug 92 20:09:43 +0200
From: Marcus Speh <marcus@ips102.desy.de>
Reply-To: LitProg@SHSU.edu
To: Literate Programmers <litprog@shsu.edu>
Subject: Pointer to LITPROG for NOVICES
 
Status: RO
 
As a very pointer to several questions of implementation
and  WEB variants, this is an edited copy from my Mail header list -
 in his regular posting, George Greenwade says how to get the postings
this list is pointing at:
 
" The archives of LitProg are maintained on the Sam Houston State
University file server, FILESERV@SHSU.BITNET (FILESERV@SHSU.edu -- note
that this is FILEserv and not LISTserv). To get a copy of any month's
postings, send MAIL to FILESERV with the message:
 SENDME LitProg.yyyy-mm
where "yyyy" is the year and "mm" is the numeric representation of the
month.  For example, the message SENDME LitProg.1992-07 will access the
archives for July, 1992."
 
[You can also get the via anonymous FTP from niord.shsu.edu, in
directory FILESERV/LITPROG]
 
The following lists contains some selected messages - no
technicalities, no(t very much philosophy) - just a cocktail
of 25 out of > 130 contributions which might be helpful for novices.
 I do not know yet whether such a selection is an allowed  or a good
thing at all...I did not scan *everything*, so don't be upset if
you contributed  and do not find yours scintillating comment here!
 
The following categories are marked in the first column (some articles
contain more than one - e.g. an Implementation is often accompanied by a
definition):
 
I = Implementation (eg. "I installed CWEB on the MAC!")
E = Experiences (eg. "Why I am happy with NOWEB!")
D = Definition (eg. "What is FWEB, dammit?")
W = Where-from (eg. "Where can I get WEB for the MAC?")
 
------------------------------------------------------------------------------
I    Thorsten Ohl      Jul 21   46/2263  "FWEB for the PC?"
E    Cameron Smith     Jul 21   71/3885  "WEB-less literate programming"
I,E  Cameron Smith     Jul 22   35/1952  "New version of CWEB sample program"
D    Dave Love         Jul 22   19/929   "noweb [was Re: FWEB for the PC?]"
I    Timothy Murphy    Jul 22   79/2980  "Re: WEB for Macintosh, Turbo C++"
D,E  "Donald N. Petche Jul 22   15/747   "Re: WEB for Macintosh, Turbo C++"
W    Jonathan M. Gilli Jul 22   35/1648  "Literate Programming in the Real..."
D,E  Thorsten Ohl      Jul 23   51/2272  "ANSI CWEB (was: Re: WEB for Maci..."
I    Hans-Hermann Bode Jul 23   51/2727  "CWEB for ANSI C, C++, Turbo C++"
W    "George D. Greenw Jul 23   78/4276  "CWEB, v 2.4, on FILESERV/Niord"
E    Don Hosek         Jul 23   42/1644  "Re: Literate Programming in the ..."
W    "George D. Greenw Jul 27   56/3047  "Re: Web for Macintosh"
E    Mike Yoder        Aug  2  118/6703  "not liking literate programming"
E    Mike Yoder        Aug  2   41/2393  ""Veterans, rise up""
E    Mike Yoder        Aug  2   59/3398  "Sorry!"
D,I  Stephan Eggermont Aug  3   41/1937  "Re: Other LP tools?"
D,I  Cameron Smith     Aug  3   59/3421  "RE: Other LP tools?"
E    Thorsten Ohl      Aug  4   29/1359  "documenting changing code"
E,W  Thorsten Ohl      Aug  4   24/1295  "RE: Other LP tools?"
W    "George D. Greenw Aug 04   92/4814  "NOWEB (version 2.1) on FILESERV/Niord"
W    "Nelson H. F. Bee Aug  5   34/1147  "Bibliography of literate programming"
E    Bart Childs       Aug  5   73/3814  "LP is not necessarily monolithic"
W    Lee Wittenberg    Aug  5    8/319   "Spidery WEB for PC"
E,W  "Jack W. Sharer 8 Aug  6  134/5318  "Ada WEBs"
I,W  Hans-Hermann Bode Aug 21   27/1343  "CWEB-p/portable WEB for ANSI-C/C++"
------------------------------------------------------------------------------
 
Hope that helps,
M. Speh
 
  Marcus Speh                      INTERnet <marcus@ips102.desy.de>
  II. Institut f. Theor. Physik    BITnet   <I02MSP@DHHDESY3>
  Luruper Chaussee 149             DECnet   <13313::SPEH>
  2000 Hamburg 50/Germany   Tel.(040)8998-2260  FAX:(040)8998-2267
 
From Eric Sun Aug 23 16:17 GMT 1992
Date: Sun, 23 Aug 92 16:17 GMT
From: "Eric W. van Ammers, LUW, tel: (+31)8370-83356" <AMMERS@RCL.WAU.NL>
Reply-To: LitProg@SHSU.edu
To: LITPROG@shsu.edu
Subject: Suggestion for a FAQ on LP
 
Status: RO
 
The LITPROG discussion list is a good initiative. It was very sad when Van Wyk
decided to stop the literate programming column in CACM. He observed that all
contributions to his column came from people who had written their own
LP-system and this made him wonder how widespread LP would ever become.
However, he promised to continue the column as soon as people start writing
literate programs using tools made by others. No doubt the LITPROG discussion
list can be quite valuable in this respect.
 
Therefore I propose that the list of Frequently Asked Questions (FAQ) on LP
maintains an overview of tools for literate programming, together with their
particular strong and weak points. In parallel we should compile a list of
desirable properties users feel a LP-system should possess in general. I expect
that from this information rather soon an LP-tool will evolve that suits a wide
audience.
 
Eric W. van Ammers
 
From Timothy Mon Aug 24 13:36:27 BST 1992
Date: Mon, 24 Aug 92 13:36:27 BST
From: Timothy Murphy <tim@maths.tcd.ie>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: Suggestion for a FAQ on LP
 
Status: RO
 
A tiny point.
Could the abbreviation LP please {\em not} be used for LitProg.
Traditionally it stands for LinePrinter,
and its use in another sense will only cause confusion.
 
Timothy Murphy
 
e-mail: tim@maths.tcd.ie
tel: +353-1-2842366 (home/office)
     +353-1-7021507 (university)
fax: +353-1-2842295
s-mail: School of Mathematics, Trinity College, Dublin 2, Ireland
 
From bart@cs.tamu.edu Mon Aug 24 08:57:10 CDT 1992
Date: Mon, 24 Aug 92 08:57:10 CDT
From: bart@cs.tamu.edu (Bart Childs)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Acronym Mnemonic ...
 
Status: RO
 
Tim brought up a good point.  Many of us are also used to LP
meaning Linear Programming.  Gee, I wish there way to get a clean
vote and we agree to use
 
LitPgm, LitProg, LPR (which is what I think of a Line printer),
 or ???
 
Bart Childs
 
From Cameron Mon Aug 24 09:50:32 -0500 1992
Date: Mon, 24 Aug 1992 09:50:32 -0500
From: Cameron Smith <cameron@symcom.math.uiuc.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re:  Acronym Mnemonic ...
 
Bart Childs writes:
Status: RO
 
> ... Many of us are also used to LP meaning Linear Programming.
> Gee, I wish there way to get a clean vote and we agree to use
> LitPgm, LitProg, LPR (which is what I think of a Line printer), or ???
 
Well, my opinion is that it's appropriate to use the shortest,
handiest abbreviation and let context disambiguate it -- after
all, "LP" also refers to a certain type of phonograph record,
but I don't think that's caused any confusion in this forum!
If it becomes common to print Literate Programs on Line Printers
by means of Linear Programming algorithms, while listening to
music recorded on Long Playing records, then maybe we'll have
to face this problem... but until an actual conflict of usage
appears I'd favor using the short abbreviation.  In fact, since
this is a Literate Programming forum, if a conflict *did* arise
I'd be inclined to say that it's the other terms that should
acquire new shorthand (for use within this forum): how about
keeping LPR for line printer, and using LinProg for Linear
Programming?
 
But if we *do* adopt something other than "LP" as the standard
abbreviation for Literate Programming, then *please* let it be
something as easily pronounceable as "LP" is.  "LitProg" is OK
with me (after all, I picked that name for this list in the
first place), but "LitPgm" is right out -- how am I supposed
to pronounce that, "litpiggem"? :-)
 
--Cameron Smith
  cameron@symcom.math.uiuc.edu
 
P.S. I was away for a week; I'm back for 4 days, then gone for another week.
If email doesn't get a prompt response, please don't think I'm ignoring you!
 
From Cameron Mon Aug 24 09:50:32 -0500 1992
Date: Mon, 24 Aug 1992 09:50:32 -0500
From: Cameron Smith <cameron@symcom.math.uiuc.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re:  Acronym Mnemonic ...
 
Bart Childs writes:
Status: RO
 
> ... Many of us are also used to LP meaning Linear Programming.
> Gee, I wish there way to get a clean vote and we agree to use
> LitPgm, LitProg, LPR (which is what I think of a Line printer), or ???
 
Well, my opinion is that it's appropriate to use the shortest,
handiest abbreviation and let context disambiguate it -- after
all, "LP" also refers to a certain type of phonograph record,
but I don't think that's caused any confusion in this forum!
If it becomes common to print Literate Programs on Line Printers
by means of Linear Programming algorithms, while listening to
music recorded on Long Playing records, then maybe we'll have
to face this problem... but until an actual conflict of usage
appears I'd favor using the short abbreviation.  In fact, since
this is a Literate Programming forum, if a conflict *did* arise
I'd be inclined to say that it's the other terms that should
acquire new shorthand (for use within this forum): how about
keeping LPR for line printer, and using LinProg for Linear
Programming?
 
But if we *do* adopt something other than "LP" as the standard
abbreviation for Literate Programming, then *please* let it be
something as easily pronounceable as "LP" is.  "LitProg" is OK
with me (after all, I picked that name for this list in the
first place), but "LitPgm" is right out -- how am I supposed
to pronounce that, "litpiggem"? :-)
 
--Cameron Smith
  cameron@symcom.math.uiuc.edu
 
P.S. I was away for a week; I'm back for 4 days, then gone for another week.
If email doesn't get a prompt response, please don't think I'm ignoring you!
 
From Joey Mon Aug 24 16:34:37 +22313801 1992
Date: Mon, 24 Aug 1992 16:34:37 +22313801 (EDT
From: Joey Gibson <aix3!wjg@netcom.com>
Reply-To: LitProg@SHSU.edu
To: LitProg Mail-List <netcomsv!LITPROG@SHSU.edu>
Subject: Sections references in FWeb?
 
Status: RO
 
I may have missed this in the FWeb docs, but is it possible to reference a
section in a web, from another section? For example, can I have:
 
``For info on porting, see section 5''
 
and have it kept current for me automagically?
 
Joey Gibson
 
=> "In the country of the blind, the one-eyed man is king." H.G. Wells <=
   ===> The views expressed here are not necessarily those of EMA. <==
 
From stevea@vast.unsw.edu.au Tue Aug 25 13:33:05 +1000 1992
Date: Tue, 25 Aug 92 13:33:05 +1000
From: stevea@vast.unsw.edu.au
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: Sections references in FWeb?
 
Joey Gibson <aix3!wjg@netcom.com> sez:
 
  joey> I may have missed this in the FWeb docs, but is it possible to
  joey> reference a section in a web, from another section? For example,
  joey> can I have:
  joey> ``For info on porting, see section 5''
  joey> and have it kept current for me automagically?
 
	You can always cheat, and do what I do for spidery web.
Status: RO
 
Somewhere after you start the module, just throw in something like
\let\refporting=\modno and then reference it by "see
section~\refporting".
	Works for me.
 
	cheers
	-steve
 
From Eric Tue Aug 25 13:33:05 +1000 1992
Date: Tue, 25 Aug 92 13:33:05 +1000
From: "Eric W. van Ammers, LUW, tel: (+31)8370-83356" <AMMERS@RCL.WAU.NL>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re:  Acronym Mnemonic ...
 
Status: RO
 
I fully agree with Cameron Smith's ideas on acronyms for literate programming.
My prefrence is definitely "LP", but I'm willing to live with "litprog".
 
Eric W. van Ammers
 
From stevea@vast.unsw.edu.au Tue Aug 25 13:33:05 +1000 1992
Date: Tue, 25 Aug 92 13:33:05 +1000
From: stevea@vast.unsw.edu.au
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: Sections references in FWeb?
 
Joey Gibson <aix3!wjg@netcom.com> sez:
 
  joey> I may have missed this in the FWeb docs, but is it possible to
  joey> reference a section in a web, from another section? For example,
  joey> can I have:
  joey> ``For info on porting, see section 5''
  joey> and have it kept current for me automagically?
 
	You can always cheat, and do what I do for spidery web.
Status: RO
 
Somewhere after you start the module, just throw in something like
\let\refporting=\modno and then reference it by "see
section~\refporting".
	Works for me.
 
	cheers
	-steve
 
From Marcus Tue Aug 25 11:15:22 +0200 1992
Date: Tue, 25 Aug 92 11:15:22 +0200
From: Marcus Speh <marcus@ips102.desy.de>
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: Sections references in FWeb?
 
>>>>> On Mon, 24 Aug 1992 Joey Gibson said:
 
Status: RO
 
> I may have missed this in the FWeb docs, but is it possible to reference a
> section in a web, from another section? For example, can I have:
 
> ``For info on porting, see section 5''
 
In FWEB, this would be done by the following construct:
-----------------------------------------------------------
@ Porting.
\modlabel{PORTING}
 
.. more ...
 
@ ANOTHER SECTION.
 
For info on Porting, see \WEBsection{PORTING}.
 
-----------------------------------------------------------
I.e. "section" is inserted automagically.
 
[Explained in the FWEB v1.23a User's Manual, page 128, sec. 19.7.18 -
 more details are given there]
 
-marcus
 
  Marcus Speh                      INTERnet <marcus@ips102.desy.de>
  II. Institut f. Theor. Physik    BITnet   <I02MSP@DHHDESY3>
  Luruper Chaussee 149             DECnet   <13313::SPEH>
  2000 Hamburg 50/Germany   Tel.(040)8998-2260  FAX:(040)8998-2267
 
From Marcus Tue Aug 25 11:15:22 +0200 1992
Date: Tue, 25 Aug 92 11:15:22 +0200
From: Marcus Speh <marcus@ips102.desy.de>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: Sections references in FWeb?
 
>>>>> On Mon, 24 Aug 1992 Joey Gibson said:
 
Status: RO
 
> I may have missed this in the FWeb docs, but is it possible to reference a
> section in a web, from another section? For example, can I have:
 
> ``For info on porting, see section 5''
 
In FWEB, this would be done by the following construct:
-----------------------------------------------------------
@ Porting.
\modlabel{PORTING}
 
... more ...
 
@ ANOTHER SECTION.
 
For info on Porting, see \WEBsection{PORTING}.
 
-----------------------------------------------------------
I.e. "section" is inserted automagically.
 
[Explained in the FWEB v1.23a User's Manual, page 128, sec. 19.7.18 -
 more details are given there]
 
-marcus
 
  Marcus Speh                      INTERnet <marcus@ips102.desy.de>
  II. Institut f. Theor. Physik    BITnet   <I02MSP@DHHDESY3>
  Luruper Chaussee 149             DECnet   <13313::SPEH>
  2000 Hamburg 50/Germany   Tel.(040)8998-2260  FAX:(040)8998-2267
 
From dan@minster.york.ac.uk Tue Aug 25 09:38:33  1992
Date: Tue, 25 Aug 92 09:38:33
From: dan@minster.york.ac.uk
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re:  Acronym Mnemonic ...
 
Eric W. van Ammers writes:
 
Status: RO
 
> I fully agree with Cameron Smith's ideas on acronyms for literate programming.
> My prefrence is definitely "LP", but I'm willing to live with "litprog".
 
I agree with the above. LP is fine; litprog 2nd best choice.
Let's have a vote...
 
-dan
 
From dan@minster.york.ac.uk Tue Aug 25 09:38:33  1992
Date: Tue, 25 Aug 92 09:38:33
From: dan@minster.york.ac.uk
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re:  Acronym Mnemonic ...
 
Eric W. van Ammers writes:
 
Status: RO
 
> I fully agree with Cameron Smith's ideas on acronyms for literate programming.
> My prefrence is definitely "LP", but I'm willing to live with "litprog".
 
I agree with the above. LP is fine; litprog 2nd best choice.
Let's have a vote...
 
-dan
 
From jw24@sgi6.york.ac.uk Wed Aug 26 19:21:40 BST 1992
Date: Wed, 26 Aug 92 19:21:40 BST
From: jw24@sgi6.york.ac.uk (J Waldmann)
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu (literate programming mailing list)
Subject: TANGLE: Identifiers, Numbers
 
As I see from the archives, this list is mostly on philosophy. :-)
For a change, here's some technicalities:
 
Status: RO
 
1) Is there a way to get 32 bit numerical values during macro expansions
and arithmetics in tangle? Lots of pascal compilers could easily handle
such numbers.
 
It shouldn't be too hard to modify tangle.web or better tangle.ch to
achieve this, but maybe someone has done so already.
Or is it a sacrifice to do so?
 
2) Normally, in between alpha characters, underscores are removed from
names. But if an identifier *starts* with an underscore, tangle treats
this character like an unary plus and thus copies it into the .pas file.
Is this considered useful or, as I do, irritating?
 
Again, a slight modification to tangle's central character reading loop
would fix the problem by just declaring the underscore as an
ordinary character.
 
--
Regards ---  Johannes Waldmann
 
currently: jw24@tower.york.ac.uk / from oct 92 on: mwj@mathematik.uni-jena.de
 
From Timothy Wed Aug 26 23:16:32 BST 1992
Date: Wed, 26 Aug 92 23:16:32 BST
From: Timothy Murphy <tim@maths.tcd.ie>
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: TANGLE: Identifiers, Numbers
 
Status: RO
 
> 1) Is there a way to get 32 bit numerical values during macro expansions
> and arithmetics in tangle? Lots of pascal compilers could easily handle
> such numbers.
 
Note that you can write
 
@d x==1234567
 
(using == rather than =).
Most compilers nowadays would do the arithmetic that tangle does
at compile-time rather than run-time,
so it hardly seems worth worrying about.
 
I'd have thought there would be a stronger argument
for simplifying tangle by removing this facility
(for internal arithmetic) altogether.
 
I think Cweb has done this.
 
Timothy Murphy
 
e-mail: tim@maths.tcd.ie
tel: +353-1-2842366 (home/office)
     +353-1-7021507 (university)
fax: +353-1-2842295
s-mail: School of Mathematics, Trinity College, Dublin 2, Ireland
 
From bart@cs.tamu.edu Wed Aug 26 18:20:56 CDT 1992
Date: Wed, 26 Aug 92 18:20:56 CDT
From: bart@cs.tamu.edu (Bart Childs)
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: Fixed up Tangle.ch
 
Status: RO
 
I have mailed one to `yw24' that I think fixes his requests.
 
I agree that the fixes should have been done.  When Don Knuth
did his original WEB the world was quite different.  He intended
the pascal to be `unfit for human comsumption.'
 
The change file has several other little fixes of the same type
and is approximately twice the length of the one at labrea.
A part of that is because the changes always address complete
modules.
 
Bart Childs
 
From Timothy Thu Aug 27 0:38:36 BST 1992
Date: Thu, 27 Aug 92 0:38:36 BST
From: Timothy Murphy <tim@maths.tcd.ie>
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: Fixed up Tangle.ch
 
Status: RO
 
> I agree that the fixes should have been done.  When Don Knuth
> did his original WEB the world was quite different.  He intended
> the pascal to be `unfit for human comsumption.'
 
Does this mean you feed yourself on tangled code?
IMHO, tangle ain't broken, so there's no need to mend it.
 
Doesn't everyone use web2c anyway?
 
Timothy Murphy
 
e-mail: tim@maths.tcd.ie
tel: +353-1-2842366 (home/office)
     +353-1-7021507 (university)
fax: +353-1-2842295
s-mail: School of Mathematics, Trinity College, Dublin 2, Ireland
 
From Joachim Thu Aug 27 11:10:26 MESZ 1992
Date: Thu, 27 Aug 92 11:10:26 MESZ
From: Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: TANGLE: Identifiers, Numbers
 
Status: RO
 
If you have the fixes (at best in form of a changefile ;-) ready, it
would be very nice if you would redistribute them again.
 
E.g., you might put them via anonymous ftp on ftp.th-darmstadt.de,
directory pub/incoming and send me a mail. I will forward them to all
larger archives.
 
Thank you in advance.
 
--
Joachim
 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Joachim Schrod			Email: schrod@iti.informatik.th-darmstadt.de
Computer Science Department
Technical University of Darmstadt, Germany
 
	``How do we persuade new users that spreading fonts across the page
	like peanut butter across hot toast is not necessarily the route to
	typographic excellence?				-- Peter Flynn
 
From Joachim Thu Aug 27 11:31:12 MESZ 1992
Date: Thu, 27 Aug 92 11:31:12 MESZ
From: Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: TANGLE: Identifiers, Numbers
 
You wrote:
Status: RO
 
>
> Note that you can write
>
> @d x==1234567
>
> (using == rather than =).
> Most compilers nowadays would do the arithmetic that tangle does
> at compile-time rather than run-time,
> so it hardly seems worth worrying about.
>
> I'd have thought there would be a stronger argument
> for simplifying tangle by removing this facility
> (for internal arithmetic) altogether.
>
> I think Cweb has done this.
 
In C it is defined that constant expressions may be used in
declarations. This is not the case for ISO Pascal. I.e., assuming a
defined type identifier `T' and a constant `size',
 
    T field[size+1];
 
is a valid C declaration, while
 
    var field: array [size+1] of T;
 
is illegal Pascal code. That many compilers do support it, does not
change this fact.
 
Since this code is useful, and since a WEB system should support the
standard definition of a language, a Pascal WEB should make available
the substitution of constant expressions with a constant.
 
The comparison to Cweb is not relevant here.
 
--
Joachim
 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Joachim Schrod			Email: schrod@iti.informatik.th-darmstadt.de
Computer Science Department
Technical University of Darmstadt, Germany
 
	``How do we persuade new users that spreading fonts across the page
	like peanut butter across hot toast is not necessarily the route to
	typographic excellence?				-- Peter Flynn
 
From Joachim Thu Aug 27 11:34:28 MESZ 1992
Date: Thu, 27 Aug 92 11:34:28 MESZ
From: Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: Fixed up Tangle.ch
 
You wrote:
Status: RO
 
>
> Doesn't everyone use web2c anyway?
 
It seems hard to believe to some folks, but the answer is no:
 
Not everyone is working on a system with a UNIX API.
 
--
Joachim
 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Joachim Schrod			Email: schrod@iti.informatik.th-darmstadt.de
Computer Science Department
Technical University of Darmstadt, Germany
 
	``How do we persuade new users that spreading fonts across the page
	like peanut butter across hot toast is not necessarily the route to
	typographic excellence?				-- Peter Flynn
 
From jw24@sgi11.york.ac.uk Thu Aug 27 17:48:35 BST 1992
Date: Thu, 27 Aug 92 17:48:35 BST
From: jw24@sgi11.york.ac.uk (J Waldmann)
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu (literate programming mailing list)
Subject: Ada formatter
 
Status: RO
 
Is there a program that takes a plain Ada source and produces a nice
.tex from it? I know that's not very `literate' but I only want
- (often used) reserved words in boldface,
- linebreaks and indentation exactly as in the source
and possibly
- Ada comments interpreted as TeX or LaTeX
 
BTW, thanks for replies on the tangle questions.
 
--
Regards ---  Johannes Waldmann
 
currently: jw24@tower.york.ac.uk / from oct 92 on: mwj@mathematik.uni-jena.de
 
From stevea@vast.unsw.edu.au Fri Aug 28 09:56:27 +1000 1992
Date: Fri, 28 Aug 92 09:56:27 +1000
From: stevea@vast.unsw.edu.au
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: Ada formatter
 
Johannes <jw24@sgi11.york.ac.uk> sez:
 
  johannes> Is there a program that takes a plain Ada source and
  johannes> produces a nice .tex from it? I know that's not very
  johannes> `literate' but I only want
  johannes> - (often used) reserved words in boldface,
  johannes> - linebreaks and indentation exactly as in the source
  johannes> and possibly
  johannes> - Ada comments interpreted as TeX or LaTeX
 
	Ummm, probably tgrind is your best bet. Its available, I would
Status: RO
 
think, from the usual places (ymir, etc). You may have to write your own
vgrindefs for Ada, but it isn't very hard to do (I've done it for an HDL
we run here, and it takes only an hour or so). It only produces TeX, so
you may have to hack it a bit to get LaTeX.
	ObLP: You should consider using Spidery Ada WEB from now on :-)
 
	cheers
	-steve
 
From Eric Fri Aug 28 09:56:27 +1000 1992
Date: Fri, 28 Aug 92 09:56:27 +1000
From: "Eric W. van Ammers, LUW, tel: (+31)8370-83356" <AMMERS@rcl.wau.nl>
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re:  Acronym Mnemonic ...
 
Status: RO
 
I fully agree with Cameron Smith's ideas on acronyms for literate programming.
My prefrence is definitely "LP", but I'm willing to live with "litprog".
 
Eric W. van Ammers
 
From bbeeton Fri Aug 28 09:56:27 +1000 1992
Date: Fri, 28 Aug 92 09:56:27 +1000
From: bbeeton <BNB@MATH.AMS.ORG>
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: message about cweb and web from don knuth
 
Status: RO
 
recently, i forwarded to don knuth a message about cweb, and received
the attached reply.  i think it's of general interest to this group.
(silvio is silvio levy.)
 
as background, i must explain that for several years, i've been acting
as a semi-official agent, forwarding bug reports about tex and friends;
ordinarily knuth prefers to receive such reports on paper, but he
allows me to send them electronically to his secretary.  anyone who
has a well-documented report of a real bug can forward it through me,
or send it by regular post to knuth at the address shown in the tug
membership list.  bug reports sent to me for forwarding will be vetted
before they go to knuth; anything that is found to be spurious, or in
the nature of a suggestion rather than a bug will be politely returned
to the sender.
						-- bb
			--------------------
 
Date: 28 Aug 1992 22:26:13 -0700
To: bnb@MATH.AMS.ORG
Subject: note from Don
 
You asked about the status of CWEB: Yes, it has indeed taken on a life
of its own. I expect it will be my programming language for the rest\
of my life, and I'm actively maintaining it (with Silvio), currently
trying to make it better for systems programming (since it will greatly
improve all existing systems!!) and more portable to varieties of C
compilers. The CWEB master sources are now in their own directory
at labrea; the previous cweb subdirectory of the tex sources now
contains just a pointer to the main cweb directory.
 
WEB, on the other hand, is part of TeX and no longer being maintained
except for catastrophic errors; maybe even catastrophic errors will
be regarded as features, in fact, because I think WEB has evolved to
a desirable stable state. Those who wish to change it have made their
change files; any changes to WEB itself will screw up those numerous
change files.
 
From jw24@sgi8.york.ac.uk Wed Sep 2 13:57:06 BST 1992
Date: Wed, 2 Sep 92 13:57:06 BST
From: jw24@sgi8.york.ac.uk (J Waldmann)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: TANGLE identifiers (summary)
 
Status: RO
 
(sorry for empty mail from the first attempt,
that was due to an emacs/elm conspiracy...)
 
SUMMARY: A few days ago, I posted a mail on underscores in identifiers.
Here's some summarized information on what the problem is, where it was
encountered, and what fixes could be applied.
 
THE PROBLEM: when converting from .web to .pas, TANGLE removes underscores
from identifiers. But it will not do so in case the underscore is the very
first character of an identifier.
 
DISCUSSION: Mike (mgb1@abbey.york.ac.uk) said that this behaviour could
be used to express _compiler _directives. But I don't think that's much
good because such things will never be transportable and should therefore
be very @=_explicitely@> boxed and marked.
 
THE EXAMPLE: I first came across this when I had several variables and
stacks like |accu, accu_stack, aux, aux_stack, ...| and I wanted to do
@d push (#) == attach (#, #@&_stack)
For |push (accu)|, I expected an output like ATTACH(ACCU,ACCUSTACK)
and was very confused with ATTACH(ACCU,ACCU_STACK) which I got from TANGLE.
Then I found that |_sonic| produced SONIC, and the problem was located.
 
THE CAUSE: In fact TANGLE does think that such underscores are characters like
`+' or `-' (not being part of an identifier) and thus does a verbatim copy.
This can be seen from the |get_next| function in TANGLE:
--------------------------------------------------------------------------
case c of
"A",up_to("Z"),"a",up_to("z"): @<Get an identifier@>;
...
othercases if c>=128 then goto restart {ignore nonstandard characters}
 else do_nothing
--------------------------------------------------------------------------
Here, |othercases else do_nothing| is where `+', `-', and `_' go.
 
THE FIX (mine): change the above to
--------------------------------------------------------------------------
case c of
"_", "A",up_to("Z"),"a",up_to("z"): @<Get an identifier@>;
...
--------------------------------------------------------------------------
 
ANOTHER FIX (from the \def\title{TANGLE changes for Berkeley {\mc UNIX}},
kindly forwarded to my by bart@cs.tamu.edu): Tell TANGLE not to remove
underscores inside identifiers. Since they are read and stored as part
of the name and only removed by the output routine, this is simply done
by deleting the |else| branch from
--------------------------------------------------------------------------
@<Cases related to identifiers@>=
...
identifier: begin k:=0; j:=byte_start[cur_val]; w:=cur_val mod ww;
 while (k<max_id_length)and(j<byte_start[cur_val+ww]) do
   begin incr(k); out_contrib[k]:=byte_mem[w,j]; incr(j);
   if out_contrib[k]>="a" then out_contrib[k]:=out_contrib[k]-@'40
   else if out_contrib[k]="_" then decr(k);
   end;
 send_out(ident,k);
 end;
--------------------------------------------------------------------------
 
Regards ---  Johannes Waldmann
 
currently: jw24@tower.york.ac.uk / from oct 92 on: mwj@mathematik.uni-jena.de
 
--
Regards ---  Johannes Waldmann
 
currently: jw24@tower.york.ac.uk / from oct 92 on: mwj@mathematik.uni-jena.de
 
From Joachim Wed Sep 2 17:08:23 MESZ 1992
Date: Wed, 2 Sep 92 17:08:23 MESZ
From: Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: TANGLE identifiers (summary)
 
Johannes Waldmann wrote:
Status: RO
 
>
> ANOTHER FIX (from the \def\title{TANGLE changes for Berkeley {\mc UNIX}},
> kindly forwarded to my by bart@cs.tamu.edu): Tell TANGLE not to remove
> underscores inside identifiers. Since they are read and stored as part
> of the name and only removed by the output routine, this is simply done
> by deleting the |else| branch from
 
Isn't that dangerous? (It's long ago that I looked into the source, so
I'm not sure.)
    Is the warning for the id clash between |a_b| and |ab| still
issued with this change?
 
--
Joachim
 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Joachim Schrod			Email: schrod@iti.informatik.th-darmstadt.de
Computer Science Department
Technical University of Darmstadt, Germany
 
	``How do we persuade new users that spreading fonts across the page
	like peanut butter across hot toast is not necessarily the route to
	typographic excellence?				-- Peter Flynn
 
From Frank.Zimmermann@cdc2.quantenoptik.physik.uni-hannover.dbp.de Thu Sep 3 18:39:21 +0200 1992
Date: Thu, 3 Sep 1992 18:39:21 +0200
From: Frank.Zimmermann@cdc2.quantenoptik.physik.uni-hannover.dbp.de
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: CWEB-Shell??
 
Status: RO
 
Hi,
I'm new on this list, so it could be that my question is of type COMMON.
I really would like to use CWEB, but it's really suckin' that you
have such a long turnaround time (WEB-> CTANGLE -> TurboC ->WEB).
So my question is: Has anybody (seen) a shell for CWEB (perhaps
together with TurboC) for messDos??
Would be glad to hear from you...
 
Thanxs,
Frank.
 
frank.zimmermann@cdc2.quantenoptik.physik.uni-hannover.dbp.de
 
From Adrian Fri Sep 4 10:42:11 +0100 1992
Date: Fri, 4 Sep 92 10:42:11 +0100
From: Adrian F Clark <alien@essex.ac.uk>
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: Suggestion for a FAQ on LP
 
Eric W. van Ammers writes:
 
Status: RO
 
> The LITPROG discussion list is a good initiative. It was very sad when Van Wyk
> decided to stop the literate programming column in CACM. He observed that all
> contributions to his column came from people who had written their own
> LP-system and this made him wonder how widespread LP would ever become.
> However, he promised to continue the column as soon as people start writing
> literate programs using tools made by others. No doubt the LITPROG discussion
> list can be quite valuable in this respect.
 
So why doesn't someone try to start a literate programing column in
TUGboat?  I'm sure bb would be happy to at least discuss the matter.
 
 Dr Adrian F. Clark                                   JANET: alien@uk.ac.essex
 INTERNET: alien%uk.ac.essex@nsfnet-relay.ac.uk          FAX: (+44) 206-872900
 BITNET: alien%uk.ac.essex@ac.uk              PHONE: (+44) 206-872432 (direct)
 Dept ESE, University of Essex, Wivenhoe Park, Colchester, Essex, C04 3SQ, UK.
 
From jfieber@sophia.smith.edu Fri Sep 4 8:02:26 EDT 1992
Date: Fri, 4 Sep 92 8:02:26 EDT
From: jfieber@sophia.smith.edu (John Fieber)
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: cweb change log?
 
Status: RO
 
Cweb seems to be in active development; every time I log into
labrea.stanford.edu it seems that there is an updated version.
However, I have not found any change log or other document
indicating what has changed from one version to the next.  Does
such a thing exist?
 
From Marcus Fri Sep 4 16:42:36 +0200 1992
Date: Fri, 4 Sep 92 16:42:36 +0200
From: Marcus Speh <marcus@ips102.desy.de>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: RE: CWEB-Shell??
 
F. Zimmermann wrote:
> So my question is: Has anybody (seen) a shell for CWEB (perhaps
Status: RO
 
> together with TurboC) for messDos??
> Would be glad to hear from you...
 
*There was an earlier announcement by Bart Childs <bart@cs.tamu.edu>,
concerning "web-mode".
* Web-mode is to be used with the GNU Emacs editor, a beautiful
shell-like environment for LitProg. I have used it together
with FWEB, but it knows about WEB, CWEB and FWEB.
  It is capable of many things, including jumping to sections and
modules, inserting (and previewing) index entries, hiding and
exibiting the body of a LitProg file (showing the tree), inserting,
quoting, and consistently renaming modules etc. It supports
change files and journal files. Bart Childs says a new and much
improved version will be ready very soon - I am already happy
with the one I have: there are almost no flaws. Especially for
large LitProg files I would not like to miss it anymore.
 
* Though it might be outdated soon, the 20 pp. User's Manual
* gives a nice glimpse of web-mode's features - I will send
* the .tex or the .ps source to anyone who asks me for it.
 
* MS-DOS: there is the DEMACS editor, Emacs for MS-DOS.
I cannot say whether web-mode (which is a large Emacs lisp file
together with some limbo, basically) will run under DEMACS,
but I don't see why it shouldn't. One would have to ask Bart
about this point.
 
--marcus
 
  Marcus Speh                      INTERnet <marcus@ips102.desy.de>
  II. Institut f. Theor. Physik    BITnet   <I02MSP@DHHDESY3>
  Luruper Chaussee 149             DECnet   <13313::SPEH>
  2000 Hamburg 50/Germany   Tel.(040)8998-2260  FAX:(040)8998-2267
 
From Timothy Fri Sep 4 14:49:09 MED 1992
Date: Fri, 4 Sep 92 14:49:09 MED
From: "Timothy Larkin" <timothy_larkin@qmrelay.mail.cornell.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: Re- CWEB-Shell?-> Liped
 
        Reply to:   RE>Re: CWEB-Shell?-> Liped
Status: RO
 
stephan@blade.stack.urc.tue.nl writes
> There is a program called LIPED, literate program editor.
 
Sounds nice. How can we get a copy?
 
Tim Larkin
Federal Nutrition Laboratory
Ithaca, New York
Timothy_Larkin@qmrelay.mail.cornell.edu
 
From stephan@stack.urc.tue.nl Fri Sep 4 14:49:09 MED 1992
Date: Fri, 4 Sep 92 14:49:09 MED
From: stephan@stack.urc.tue.nl (Stephan Eggermont)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: CWEB-Shell?-> Liped
 
Status: RO
 
> I really would like to use CWEB, but it's really suckin' that you
> have such a long turnaround time (WEB-> CTANGLE -> TurboC ->WEB).
> So my question is: Has anybody (seen) a shell for CWEB (perhaps
> together with TurboC) for messDos??
 
There is a program called LIPED, literate program editor.
 
Judy M. Bishop & Kevin M. Gregson (1992) `Literate Programming and the LIPED
Environment', Structured Programming, (1), pp. 23-34.
 
The program works nicely, but is a bit un-polished, not like the borland
editors. It uses the same wordstar-like commands. The main problem with the
program is that I've been able to crash it about twice an hour. The author
claims there are some problems with memory management.
  The program uses different `views' on the program, between which fast
switching is possible. From the table-of-contents one can jump to the
literate view to the part the cursor was on, from there to the part of
the `real' program where the part is used or to the rest ( >+= ) of the
part. This I consider really impressive.
 
Stephan
stephan@blade.stack.urc.tue.nl
 
From stephan@stack.urc.tue.nl Fri Sep 4 17:54:08 MED 1992
Date: Fri, 4 Sep 92 17:54:08 MED
From: stephan@stack.urc.tue.nl (Stephan Eggermont)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Where to find LIPED
 
Status: RO
 
Judy Bishop can be reached at jbishop@rkw-risc.cs.up.ac.za.
I'm not sure if she regularly reads her email, because an answer
to my email request took about 2 months.
A quote from the article: "LIPED has been available from the authors as a
fully packaged product since 1988 and has been purchased and used at
several universities around the world, as well as at selected commercial
and research institutes."
 
Stephan
stephan@blade.stack.urc.tue.nl
 
From stevea@vast.unsw.edu.au Sat Sep 05 22:50:15 +1000 1992
Date: Sat, 05 Sep 92 22:50:15 +1000
From: stevea@vast.unsw.edu.au
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: Minor annoyance in Spidery WEB...
 
Status: RO
 
Hi Lee,
	On the 18th of August, you wrote:
 
  lee> I found the same problem with headlines in Spidery WEB and worked
  lee> out an imperfect (but better than what exists) fix to
  lee> webkernel.tex.  Unfortunately, all my Spidery stuff is still
  lee> packed up (I'm in the process of moving).  If anyone is
  lee> interested in my fix when I get it unpacked (shouldn't be more
  lee> than a week), you can write me direct at...
 
	Well, its sort of more than a week, so I hope that this is a
good time to ask: Do you have your fix handy? I would appreciate any
pointers you might be able to give me.
 
	Thanks
	-steve
 
From stevea@vast.unsw.edu.au Sun Sep 06 00:07:58 +1000 1992
Date: Sun, 06 Sep 92 00:07:58 +1000
From: stevea@vast.unsw.edu.au
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: Minor annoyance in Spidery WEB...
 
Status: RO
 
Damn! That's the second time today (tonight) I've posted to a list
because I forgot to check the "To:" field. Put it down to lack of sleep.
Sorry folks, won't happen again (at least not until next time).
 
	-steve
 
From jw24@tower.york.ac.uk Mon Sep 7 0:43:52 BST 1992
Date: Mon, 7 Sep 92 0:43:52 BST
From: jw24@tower.york.ac.uk (J Waldmann)
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu (literate programming mailing list)
Subject: WEB profiler?
 
Status: RO
 
Is there a WEB profiler? I'm looking for a tool that automagically
counts execution of certain statements and inserts appropriate messages
into the .web file.
 
If such a thing does not exist, I might volunteer to write it up myself.
I'd appreciate hints on design (rather than implementation, but see below).
 
A rude approach is to insert a counter after each |begin| in the pascal
text of a section; a more sophisticated one might include counting
visits to WEB sections --- although this seems difficult because WEB
sections can start at rather arbitrary points in the pascal text (and
not only after statements, where insertion of a step--counter--statement
would be safe).
 
Another problem is to find out where to initialize the counters, that is
finding the |begin| (and |end.|) of the main program. This should be quite
impossible to tell from the .web.
 
--
Regards ---  Johannes Waldmann
 
currently: jw24@tower.york.ac.uk / from oct 92 on: mwj@mathematik.uni-jena.de
 
From Hans-Hermann Tue Sep 08 17:49:12 MEZ 1992
Date: Tue, 08 Sep 92 17:49:12 MEZ
From: Hans-Hermann Bode <HHBODE%DOSUNI1.BITNET@SHSU.edu>
Reply-To: LitProg@SHSU.edu
To: litprog@SHSU.edu
Subject: New version of CWEB-p
 
Status: RO
 
I like to announce a new version of the ANSI-C/Turbo-C++ adaptation of CWEB
(CWEB-p, Version <Gamma>p6=) that on the one hand reflects the latest changes of
the original (as of August 1992) and on the other hand contains some
improvements by me.
 
Regarding to the original there are the folling major changes:
 
* There is a new @s control code that similar to @f allows formatting of
identifiers; the format statement itself, however, will not be shown in the
TeXed document. Due to this, the macro pair \formaton/off---just introduced
in the former version---disappeared.
 
* By means of @q...@> material can be included that will be completely
ignored by CTANGLE and CWEAVE.
 
* The macro package has been revised so that all plain-TeX macros for
accents and special text symbols will work except for \. (but one can use \:
instead).
 
* Some data types of the standard libraries (like |size_t|) now are typeset
as ``reserved'' words by default.
 
In CWEB-p, we have the following additional changes:
 
* The ellipsis |...| won't confuse CWEAVE anymore.
 
* All character constants defined by ANSI C and C++ now are correctly
processed by the @' control sequence (@'\a', @'\x...', etc.). Due to Klaus
Guntermann @'\'' now gives the expected result also.
 
* For all identifiers in macro definitions (@d) format statements are obeyed.
 
* A bug in processing short C++ comments (|//|) has been fixed.
 
* I have retained the pair of macros \formaton/off, because it is a nice
utility for globally switching on and off the displaying of @f statements;
thus, it continues to make sense even beside the new @s control sequence.
 
The new version is available as an archive file cweb-p.zip or cweb-p.tar.Z
from tethys.rz.uni-osnabrueck.de (new!) in the directories pub/msdos/tex/web
and pub/unix/TeX/WEB and from ftp.uni-stuttgart.de in the directory
soft/tex/web/cweb.
 
Hans-Hermann Bode
Arbeitsgruppe Systemforschung, Universit\"at Osnabr\"uck
Artilleriestr. 34, D-W-4500 Osnabr\"uck
Tel.: (49)-541-9692545
e-mail: HHBODE@DOSUNI1.BITNET, hhbode@rz.uni-osnabrueck.de
 
From baier@forwiss.uni-passau.de Fri Sep 11 18:18:18 MET 1992
Date: Fri, 11 Sep 92 18:18:18 MET DST
From: baier@forwiss.uni-passau.de (Joern Baier)
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: searching for pretty printer
 
Status: RO
 
Hi!
 
As the subject says it I'm looking for a pretty printer especially
for PROLOG-source code.
It should read a source code and write it down in a nicer format.
It should also be able to deal with comments and keep the variable
names. I have been looking for it in the libraries but I think there is
nothing appropriate.
 
I was told that your special interest is writing of sources in nice
formats so I asked you for help.
 
Thanx in advance,
                        Joern
--
Joern Baier     (baier@forwiss.uni-passau.de)
Jesuitengasse 9      __o
D-W8390 Passau     _ \<,_
Tel +49/851/35239 (_)/ (_)
 
From jw24@tower.york.ac.uk Sat Sep 12 14:52:24 BST 1992
Date: Sat, 12 Sep 92 14:52:24 BST
From: jw24@tower.york.ac.uk (J Waldmann)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: searching for pretty printer
 
Status: RO
 
> As the subject says it I'm looking for a pretty printer especially
> for PROLOG-source code.
> It should read a source code and write it down in a nicer format.
> It should also be able to deal with comments and keep the variable
> names. I have been looking for it in the libraries but I think there is
> nothing appropriate.
>
> Joern Baier     (baier@forwiss.uni-passau.de)
 
I suggest `tgrind' which reads the source and produces TeX/LaTeX output.
It is a generic program that can be adjusted for various languages.
The standard distribution contains facilities for Pascal, C, Prolog etc.
It is available from various FTP sites, e. g. src.doc.ic.ac.uk.
 
A few days ago I posted a similar request for an Ada formatted. A friendly
person from this list told me to look for `tgrind', which I didn't know
before. I found it quite easy to install and to use, and am satisfied with
the results. BTW, the `tgrindef' for Ada was not contained in the
distribution I ftp-ed, but some other friendly person from comp.lang.ada
sent it to me.
 
--
Regards ---  Johannes Waldmann
 
currently: jw24@tower.york.ac.uk / from oct 92 on: mwj@mathematik.uni-jena.de
 
From fulling@sarastro.tamu.edu Sat Sep 12 21:04:58 CDT 1992
Date: Sat, 12 Sep 92 21:04:58 CDT
From: fulling@sarastro.tamu.edu (Stephen A. Fulling)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re:  WEB profiler?
 
>From: jw24@tower.york.ac.uk (J Waldmann)
Status: RO
 
>
>Is there a WEB profiler? I'm looking for a tool that automagically
>counts execution of certain statements and inserts appropriate
messages
>into the .web file.
>
>If such a thing does not exist, I might volunteer to write it up
myself.
>I'd appreciate hints on design (rather than implementation, but see
below).
 
Well, if none of the regulars will answer this, I will.
 
There is a relevant article in the current TUGboat:
 
"Knuth's profiler adapted to the VMS operating system", R. M. Damerell,
TUGboat 13, No. 2, 139-145 (July 1992).
Author's address is Royal Holloway College, uhah208@uk.ac.ulcc.pluto
 
The article seems to include "hints on design" not specific to VMS.
 
				S. A. Fulling
				Texas A&M University (Math)
 
From Chris Wed Sep 16 17:40:18 MDT 1992
Date: Wed, 16 Sep 92 17:40:18 MDT
From: Chris Flatters <cflatter@aoc.nrao.edu>
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: SPIDER definition for ksh
 
Status: RO
 
Does anyone have a SPIDER definition for the KornShell (or know where I can
find one)?
 
	Chris Flatters
	cflatter@nrao.edu
 
From Cameron Thu Sep 17 16:17:55 -0500 1992
Date: Thu, 17 Sep 1992 16:17:55 -0500
From: Cameron Smith <cameron@symcom.math.uiuc.edu>
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: New CWEB and new sample program
 
Status: RO
 
Hello, LitProggers!
 
In case you haven't noticed, there's a new version of CWEB at
labrea.stanford.edu.  The current version number for ctangle,
cweave, and cwebmac.tex is now 2.7.  In this update several
changes have been made in the TeX macros used by CWEB.
 
Naturally, there is no "summary of changes" file -- after all,
what fun would it be if they *told* you what was going on?
It's left as an exercise for the reader to figure out what
incompatibilities have been introduced.  (Hint: save your old
versions of all CWEB files, and use the diff utility.)
 
I mention all this because I have discovered that the original
version of my CWEB sample program is not processed properly
by the new version of CWEB.  The names of several internal macros
have been changed, in complete disregard for existing code (like
mine) that redefines those macros in order to achieve special
formatting results (like an integrated table of contents and index
for a multi-source-file program).  Fortunately, it didn't take long
to figure out how to deal with this situation, and I've prepared
a new release of my sample program.  I've taken the opportunity
to expand the ReadMe file as well, to answer some questions that
have been raised by early users of this program.  Of course, the
changes in macro names mean that the new version can't be processed
by an old CWEB any more than the older version could by the new CWEB,
so I've included both old and new versions of the affected file
("calc.w") in the distribution.
 
I'm submitting the revised version to the SHSU archives this evening;
I imagine it will be available from FILESERV or via FTP from niord
within a day or so (assuming George is keeping up his typically excellent
standard of service!).  I have no idea what other archives this program
may have propagated to by now, but I hope that any archivist who has
grabbed the older version will also grab the new one now!
 
For newcomers and others who have no idea what this is all about:
the program I'm referring to is a demonstration program intended to
serve several purposes:
 
  -- a short, easily understood CWEB program that can serve as a
     "template" for new users of CWEB to pattern their own programs upon
  -- an example of using CWEB with a program that is split across
     multiple source files
  -- an example of using a Makefile to control compilation and typesetting
     for a multi-file CWEB project (the Makefile is quite generic and was
     written with the idea of using it in other CWEB projects)
  -- an illustration of a way to force CWEB to deal with ANSI function
     prototypes, which its grammar doesn't support directly
  -- a hack that permits a single integrated listing to be made of several
     source modules, with a combined table of contents and index
 
The particular program I use in this example is the RPN calculator from
chapter 4 of the Kernighan and Ritchie C book.  I chose this program because
it's short and simple, and because nearly everyone who uses C has access
to that book.  The "package" consisting of the CWEB sources, a heavily
commented Makefile, and a ReadMe file that explains everything.
A must have for the CWEB neophyte!  The package, available from the
SHSU archives as explained above, is called "KRCWSAMP" (for Kernighan
and Ritchie CWEB Sample).
 
While I'm thinking of it, maybe Tim Murphy could say when/whether
he can provide a new version of the Macintosh CWEB programs?  He made
pre-compiled BinHexed binaries of Mac versions of ctangle and cweave
available some while back, but of course those won't work with the new
CWEB macro file cwebmac.tex because of the changes in the macro names.
 
Regards to all--
--Cameron Smith
  cameron@symcom.math.uiuc.edu
 
From dak@POOL.informatik.rwth-aachen.de Fri Sep 18 07:41:03 +0200 1992
Date: Fri, 18 Sep 92 07:41:03 +0200
From: dak@POOL.informatik.rwth-aachen.de (David Kastrup)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re:  New CWEB and new sample program
 
Status: RO
 
On ftp.uni-stuttgart.de there is under soft/tex/web/cweb a version of
cweb in the file cweb-p.tar.Z (or cweb-p.zip for DOS, TC++) working
for ANSI C and C++. C++ is still experimental.
 
From Timothy Fri Sep 18 13:52:32 BST 1992
Date: Fri, 18 Sep 92 13:52:32 BST
From: Timothy Murphy <tim@maths.tcd.ie>
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: New CWEB and new sample program
 
Status: RO
 
> While I'm thinking of it, maybe Tim Murphy could say when/whether
> he can provide a new version of the Macintosh CWEB programs?  He made
> pre-compiled BinHexed binaries of Mac versions of ctangle and cweave
> available some while back, but of course those won't work with the new
> CWEB macro file cwebmac.tex because of the changes in the macro names.
 
Actually, these new programs (at least ctangle and cweave)
converted on the Mac (under Think C)
with the old change files (using the old ctangle).
 
Unfortunately cweave.c has just exceeded Think C's
maximal size for a single code segment (32k);
I think it was something like 6 bytes inside the limit before!
So it will have to be split.
I'll post that when I've done it.
(And indicate where .hqx files of the executables can be found)
 
Here is my ctangle change file, for anyone with a Mac.
(And anyone interested in dynamic array allocation.)
 
This is the change file for CWEB's CTANGLE under Think C on the Macintosh.
 
created:
    10-JUL-1992 Timothy Murphy <tim@maths.tcd.ie>
 
modified:
	not yet!
 
@x l.77 (TGM)
  argc=ac; argv=av;
  program=tangle;
@y
  ac = ccommand(&av);
  argc=ac; argv=av;
  program=tangle;
  @<Allocate memory for large arrays@>@;
@z
 
@x common.h l.35 (TGM)
#include <stdio.h>
@y
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <console.h>
@z
 
@x common.h l.88 (TGM)
extern char byte_mem[]; /* characters of names */
extern char *byte_mem_end; /* end of |byte_mem| */
extern name_info name_dir[]; /* information about names */
@y
extern char *byte_mem; /* characters of names */
extern char *byte_mem_end; /* end of |byte_mem| */
extern name_info *name_dir; /* information about names */
@z
 
@x common.h l.97 (TGM)
extern name_pointer id_lookup(); /* looks up a string in the identifier table */
extern name_pointer mod_lookup(); /* finds module name */
extern name_pointer prefix_lookup(); /* finds module name given a prefix */
@y
extern name_pointer id_lookup(char*, char*, unsigned short);
  /* looks up a string in the identifier table */
extern name_pointer mod_lookup(char*, char*);
  /* finds module name */
extern name_pointer prefix_lookup(char*, char*);
  /* finds module name given a prefix */
@z
 
@x common.h l.152 (TGM)
extern boolean changed_module[]; /* is the module changed? */
@y
extern boolean *changed_module; /* is the module changed? */
@z
 
@x l.140 (TGM)
text text_info[max_texts];
text_pointer text_info_end=text_info+max_texts-1;
text_pointer text_ptr; /* first unused position in |text_info| */
eight_bits tok_mem[max_toks];
eight_bits *tok_mem_end=tok_mem+max_toks-1;
@y
text *text_info;
text_pointer text_info_end;
text_pointer text_ptr;
eight_bits *tok_mem;
eight_bits*tok_mem_end;
@z
 
@x l.1039 (TGM) ANSI-C does not allow function arguments to be omitted
{int a=id_lookup(id_first,id_loc)-name_dir; app_repl((a / 0400)+0200);
@y
{int a= id_lookup(id_first,id_loc,normal)-name_dir;app_repl((a/0400)+0200);
@z
 
@x l.1043 (TGM)
case identifier: a=id_lookup(id_first,id_loc)-name_dir; app_repl((a / 0400)+0200);
@y
case identifier: a=id_lookup(id_first,id_loc,normal)-name_dir; app_repl((a / 0400)+0200);
@z
 
@x l.1159 (TGM)
  app_repl(((a=id_lookup(id_first,id_loc)-name_dir) / 0400)+0200); /* append the lhs */
@y
  app_repl(((a=id_lookup(id_first,id_loc,normal)-name_dir) / 0400)+0200); /* append the lhs */
@z
 
@x l.1227 (TGM)
@* Index.
@y
@* Mac specific code.
Unfortunately, the variable |h| is pre-defined in |MacHeaders|.
(It represents the horizontal co-ordinate.)
So we replace it here by |H|.
 
@d h H
 
@ We allocate memory for large arrays dynamically.
 
@<Allocate memory for large arrays@>=
text_info = (text*)calloc(max_texts, sizeof(text));
text_info_end= text_info+max_texts-1;
tok_mem = (eight_bits*)calloc(max_toks, sizeof(eight_bits));
tok_mem_end= tok_mem+max_toks-1;
if (text_info==NULL || tok_mem==NULL)
  fatal("ctangle: ", "memory allocation failure");
 
@* Index.
@z
 
Timothy Murphy
 
e-mail: tim@maths.tcd.ie
tel: +353-1-2842366 (home/office)
     +353-1-7021507 (university)
fax: +353-1-2842295
s-mail: School of Mathematics, Trinity College, Dublin 2, Ireland
 
From rosen@sfu.ca Fri Sep 18 9:39:50 PDT 1992
Date: Fri, 18 Sep 92 9:39:50 PDT
From: rosen@sfu.ca
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re:  New CWEB and new sample program
 
Status: RO
 
>
> On ftp.uni-stuttgart.de there is under soft/tex/web/cweb a version of
> cweb in the file cweb-p.tar.Z (or cweb-p.zip for DOS, TC++) working
> for ANSI C and C++. C++ is still experimental.
>
I was unable to successfully extract the cweb-p.zip file, with zip
complaining of several files in the archive failing the CRC check. As
I did transfer the file in binary mode (twice) I was curious as to
whether the integrity of cweb-p.zip has been compromised. Would you
be able to verify this?
 
Thanks very much.
 
Wilf Rosenbaum
rosen@sfu.ca
 
From ctrbdo%iapa.uucp@essex.ecn.uoknor.edu Fri Sep 18 14:09:15 CDT 1992
Date: Fri, 18 Sep 92 14:09:15 CDT
From: ctrbdo%iapa.uucp@essex.ecn.uoknor.edu (bryan d oakley)
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: first contact...
 
Status: RO
 
OK, I'm a newbie here.  New to the mailing list, new to the concept
(more or less).  I have no xWEB (FWEB, CWEB, etc.) software (yet), but
I do have questions.
 
A friend of my has given me glimpses into FWEB, and I've looked
through the past missives on this list.  I must say that the
correspondence is interesting.  ... seems to be a mix of philosophical
and practical advice.  It's the practical advice I'm after.  The
philosophy I pretty much go along with.  If I may attempt to
paraphrase, LP (or LitProg or whatever) is less like writing code and
more like writing a technical paper, where the code is in the
footnotes.  Somewhat like "Here's what I intend to do (and by the way,
here's how I did it)".  Am I correct so far?
 
I have looked at an extremely limited set of FWEB code and found it at
first glance to be difficult to read.  I'm sure that comes with the
territory; any new language is difficult at first.  I was impressed,
however, with the formatted documentation.
 
My question is this: presuming that using xWEB is a better way to
construct software (I assume that's the common belief...), is it wise
to begin using it in the middle of a medium sized project?  The
software I work with is 150,00 to 200,000 lines, roughly 1500 files
long.  Been around since the '70s.  And yes, it is in (good ol')
FORTRAN.  What's the practicality of using xWEB during the maintenance
of said software on a routine by routine basis?
 
Assuming for the moment that it is practical to use xWEB on a routine
by routine basis, how wise is it to use what amounts to an obscure
language on a project that must be supported for many, many years to
come (it's a government project...)?  I think it is safe to say that
very few programmers ever will learn a dialect of xWEB in college,
which would make it difficult to hire new programmers without
requiring additional training.  It's hard enough anymore just to find
programmers who know FORTRAN...
 
Correct me if I'm wrong, but I get the impression that most of the
dialog in this group is between individuals using xWEB for mostly
personal (ie: 1 person) projects.  How does this fit into a larger
project spaning 10 programmers or more?  The biggest issue seems to be
during turnover of the staff, when a new member of the development
team now not only has to learn the application (and possibly
hardware/software/OS of the application), but now has to learn xWEB
and possibly TEX as well.
 
On the surface I'm willing to learn xWEB myself in the interest of
improving my own work, but I'm hesitant to recommend it as a primary
tool for the project in general.  I would like to know if anyone has
tried to migrate to xWEB in the middle of a project staffed by more
than one programmer.
 
One final question so I may appear more literate in the future, just
what is the difference between the various dialects: web, fweb, cweb,
c-no-web, spider-web, et. al.?  Is one a 'root' version with the
others supersets, subsets, or both?  What is the best way to reference
the software in general (ie: xWEB, web, WEB, etc.)?  And lastly,
should I try one, which is the most robust.  If it helps for that last
part, my system is currently a Sun workstation, and will be some other
POSIX compatible machine about a year from now.
 
I would also like to reinforce a suggestion made by someone else, and
that is to see examples of some really good web'd code.
 
I will gladly summarize all replies received, should they require
summarizing.
 
----------------------------------------------------------------------
Bryan D. Oakley               ctrbdo%iapa.uucp@mailhost.ecn.uoknor.edu
KENROB and Associates, Inc.               voice: (405) 680-7176 (work)
5909 NW Expwy Suite 249           //__           (405) 366-6248 (home)
Oklahoma City, Ok.  73132         oooo
 
From George Fri Sep 18 14:19:26 CDT 1992
Date: Fri, 18 Sep 1992 14:19:26 CDT
From: "George D. Greenwade" <bed_gdg@SHSU.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: RE: New CWEB and new sample program
 
Status: RO
 
First, I apologize for any delinquencies I may have been involved with over
the past month.  I've been recovering from some surgery over this time
period and am just now even close to being able to catch up with what I
have ignored.  Basically fine now, although my physician is still limiting
the number of hours I can come in each day (and he's a very good friend of
my department chairman, who times me each day and makes me leave -- gotta
start coming in earlier).  
 
Second, I would like to thank everyone for looking after the list in my
absence (even though you most likely were unaware of it being an absence).
I haven't had adequate time to really look over the FAQ material (yes, my
e-mail is still *really* that backlogged; I've focused more on private
mail, INFO-TeX, and putting out a few "fires" on our system).  What I did
see looked like a good effort. Anyway....
 
On Thu, 17 Sep 1992 16:17:55 -0500, Cameron Smith
<cameron@symcom.math.uiuc.edu> posted:
> In case you haven't noticed, there's a new version of CWEB at
> labrea.stanford.edu.  The current version number for ctangle, cweave, and
> cwebmac.tex is now 2.7.  In this update several changes have been made in
> the TeX macros used by CWEB.
 
The new CWEB is on Niord.SHSU.edu (192.92.115.8) in [FILESERV.CWEB] for
anonymous ftp retrieval.  I have it packaged as both a compressed Unix tar
archive and in a ZIP archive there.  Alternately, include:
 SENDME CWEB
in the body of a mail message to FILESERV@SHSU.BITNET (FILESERV@SHSU.edu)
and it'll be delivered via e-mail as 26 files in 30 parts.
 
> I mention all this because I have discovered that the original version of
> my CWEB sample program is not processed properly by the new version of
> CWEB......
>
> I'm submitting the revised version to the SHSU archives this evening; I
> imagine it will be available from FILESERV or via FTP from niord within a
> day or so (assuming George is keeping up his typically excellent standard
> of service!).  
 
Thanks for submitting it; as far as any recent standard of service, well,
see above; I'll try to get caught up.
 
> The particular program I use in this example is the RPN calculator from
> Chapter 4 of the Kernighan and Ritchie C book.  I chose this program
> because it's short and simple, and because nearly everyone who uses C has
> access to that book.  The "package" consisting of the Cweb sources, a
> heavily commented Makefile, and a README file that explains everything. A
> must have for the Cweb neophyte!  The package, available from the SHSU
> archives as explained above, is called "KRCWSAMP" (for Kernighan and
> Ritchie CWEB sample).
 
Nearly right; indeed, very nice try!  The files (individually, with
FILESERV naming, as well as in a compressed Unix tar archive and in a ZIP
archive) are on Niord in [FILESERV.KR-CWEB-SAMPLE] as KRCWSAMP.TAR_Z
(rename to *.tar.Z on your end -- it's as close as I can get on VMS) and
*.ZIP.  To retrieve the set of 8 files via e-mail, include:
 SENDME KR-CWEB-SAMPLE 
in the body of your mail to FILESERV.
 
To get a listing via mail of either package, include:
 LIST CWEB
 LIST KR-CWEB-SAMPLE
in the body of your mail to FILESERV.  As usual, HELP retrieves FILESERV's
help file if you are unfamiliar with it.
 
Regards,   George
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
George D. Greenwade, Ph.D.                            Bitnet:  BED_GDG@SHSU
Department of Economics and Business Analysis         THEnet: SHSU::BED_GDG
College of Business Administration                    Voice: (409) 294-1266
P. O. Box 2118                                        FAX:   (409) 294-3612
Sam Houston State University              Internet:        bed_gdg@SHSU.edu
Huntsville, TX 77341                      bed_gdg%SHSU.decnet@relay.the.net
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
From dak@POOL.informatik.rwth-aachen.de Sat Sep 19 08:12:19 +0200 1992
Date: Sat, 19 Sep 92 08:12:19 +0200
From: dak@POOL.informatik.rwth-aachen.de (David Kastrup)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re:  New CWEB and new sample program
 
Status: RO
 
I do not know. But the cweb-p.tar.Z program is ok, contains the change
files for does as well and (it annoyed me) the executables.
 
I do not maintain the archive. I just use it.
 
From BEEZER@UPS.EDU Sat Sep 19 17:12:22 -0700 1992
Date: Sat, 19 Sep 1992 17:12:22 -0700 (PDT)
From: BEEZER@UPS.EDU (Rob Beezer)
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: Pascal WEB for the Macintosh
 
Status: RO
 
For some time now, I have been searching for a version of the original WEB that
will run on a Mac.  I posted a similar inquiry during the infancy of this list,
but now I have an undergraduate research student who will be undertaking a large
programming project using WEB, and if I do not get her a Mac version, then she
will have to switch allegiances to a PC.  Perhaps some new members of the list
will be able to help.
 
Can anyone give me pointers to executables or change files for a version of WEB
that will work with PASCAL on a Mac?  I am aware of Tim Murphy's CWEB for the
Mac, but our students learn Pascal as their first language and those that stay
in mathematics usually do not encounter C.  Thanks in advance for any help.
 
............................................................................
:   Robert Beezer                   :         Internet:  beezer@ups.edu    :
:   Dept. of Mathematics and CS     :         Voice:     206.756.3564      :
:   University of Puget Sound       :         Fax:       206.756.3500      :
:   Tacoma, WA  98416               :                                      :
............................................................................
 
From Cameron Sat Sep 19 19:31:08 -0500 1992
Date: Sat, 19 Sep 1992 19:31:08 -0500
From: Cameron Smith <cameron@symcom.math.uiuc.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re:  Pascal WEB for the Macintosh
 
Status: RO
 
Rob Beezer (hi, Rob!) asks for a Pascal WEB implementation for the Mac.
I don't have such a thing, and have no way to produce it, but I have
a thought: it should not be too difficult to adapt c-no-web to Pascal,
and that might be good enough.  Depending on how committed you are to
the Mac, and on how much you want to be able to take advantage of the
Mac's user interface features, it might be a better approach than switching
to a PC to use WEB.  It's just a thought.  The nice thing about c-no-web
is that *all* of its coding is in TeX, and hence is 100% portable from
system to system, without any change file hassles or anything like that.
(There are other nice things as well, but I've harped that tune several
times in the past...)
 
--Cameron Smith
  cameron@symcom.math.uiuc.edu
 
From kap1@cse.unl.edu Sun Sep 20 14:53:41 -0500 1992
Date: Sun, 20 Sep 92 14:53:41 -0500
From: kap1@cse.unl.edu (dietrich kappe)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: GNU texinfo as the "typesetter"
 
Status: RO
 
I was thinking of converting one of the litprog tools (probably
funnelweb) to use texinfo instead of just TeX. This would allow the
programmer to produce both printed docs and online hypertext like docs
readable under emacs.
 
Before I reinvent the wheel, has anyone already done this sort of
thing?
 
Thanks.
 
Dietrich Kappe
kap1@cse.unl.edu
 
From bjones@cambria.columbus.oh.us Sun Sep 20 22:33:25  1992
Date: Sun, 20 Sep 92 22:33:25
From: bjones@cambria.columbus.oh.us (Bill Jones)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Trying to locate a working WEB for C++
 
Status: RO
 
I just joined this list so please excuse me if this question has been beaten
to death before.
 
I am trying to find a working (or at least compilable) WEB for C++ vers 3.0
(with templates).  I am currently trying to get the C++ version of SpiderWeb
to work but I am having to build everything by hand because my system is
choking on the "make" used in the distribution.  I have also tried FWEBv1.23
but it will not produce an index.  And, I'm not sure if either of these will
deal at all with templates (although I think I have SpiderWeb modified to at
least try).
 
Any help will be appreciated.
 
Bill
 
From Allan Sun Sep 20 18:57:15 -0400 1992
Date: Sun, 20 Sep 92 18:57:15 -0400
From: "Allan Adler" <ara@martigny.ai.mit.edu>
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: CWEBbing someone else's code
 
Status: RO
 
I am interested in taking certain badly documented C programs and rewriting
them in CWEB. I'm just learning CWEB now, partly for that purpose.
 
I can understand how useful CWEB can be for documenting yomy own programs,
but it seems to me that there must be special problems in documenting
someone else's program, particularly if it is a program I could not possibly
have written myself and which I will have to decipher bit by bit as
I CWEBify it.
 
The program is between 500K and 1 MB of code spread out over 40 or 50 files.
I have a few insights into how it works but I certainly do not understand
it as a whole.
 
Any suggestions on how to undertake such a project will be welcome. I would be
glad to let someone else do it but I have been dropping hints to that effect
for years without any takers, so I am pretty much resigned to doing it myself.
 
Allan Adler
ara@altdorf.ai.mit.edu
 
From Allan Sun Sep 20 18:59:25 -0400 1992
Date: Sun, 20 Sep 92 18:59:25 -0400
From: "Allan Adler" <ara@martigny.ai.mit.edu>
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: spidery web on PC
 
Status: RO
 
I am under the impression that one cannot easily install Spidery web
on a PC. Is that correct? The compiler I use is DJGCC, a port of the
GNU C compiler to MSDOS.
 
Allan Adler
ara@altdorf.ai.mit.edu
 
From Dietrich Sun Sep 20 21:28:39 CDT 1992
Date: Sun, 20 Sep 92 21:28:39 CDT
From: Dietrich Kappe <stdkap1@icarus.spc.uchicago.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Texinfo as the typsetter
 
Status: RO
 
(Sorry if this appears twice, but I originally posted from a different
account than the one registered in the mailing list, so it may not
have been accepted.)
 
I was thinking about modifying one of the litprog tools (probably
funnelweb) to weave GNU texinfo rather than TeX.
 
The advantages of this approach are that the programmer can have both
printed (via TeX and texinfo.tex) and online (via info-mode under
emacs) documents.
 
If anyone has done this before, let me know, as I don't want to
reinvent the electric toothbrush.
 
Thanks.
 
Dietrich Kappe
stdkap1@icarus.uchicago.edu
 
From Hans-Hermann Mon Sep 21 12:21:06 MEZ 1992
Date: Mon, 21 Sep 92 12:21:06 MEZ
From: Hans-Hermann Bode <HHBODE%DOSUNI1.BITNET@SHSU.edu>
Reply-To: LitProg@SHSU.edu
To: litprog@SHSU.edu
Subject: Unzipping cweb-p.zip (was: Re: New CWEB and new sample program)
 
Wilf Rosenbaum stated:
 
Status: RO
 
>I was unable to successfully extract the cweb-p.zip file, with zip
>complaining of several files in the archive failing the CRC check. As
>I did transfer the file in binary mode (twice) I was curious as to
>whether the integrity of cweb-p.zip has been compromised. Would you
>be able to verify this?
 
Use PKUNZIP, Version 1.1 or later, or UNZIP, Version 4.2 (or later?). Both
programs should be available from nearly every server. PKUNZIP, Version 1.02,
will not work.
 
Hans-Hermann Bode
Arbeitsgruppe Systemforschung, Universit\"at Osnabr\"uck
Artilleriestr. 34, D-W-4500 Osnabr\"uck
Tel.: (49)-541-9692545
e-mail: HHBODE@DOSUNI1.BITNET, hhbode@rz.uni-osnabrueck.de
 
From bart@cs.tamu.edu Mon Sep 21 09:09:21 CDT 1992
Date: Mon, 21 Sep 92 09:09:21 CDT
From: bart@cs.tamu.edu (Bart Childs)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re:  Trying to locate a working WEB for C++
 
Status: RO
 
FWEB is in my humble opinion the best CWEB available.  It also
supports C, C++, F90, and writing TeX macros wherein tangle
produces .sty files.
 
Bart CHilds
 
From ctrbdo%iapa.uucp@essex.ecn.uoknor.edu Mon Sep 21 09:22:36 CDT 1992
Date: Mon, 21 Sep 92 09:22:36 CDT
From: ctrbdo%iapa.uucp@essex.ecn.uoknor.edu (bryan d oakley)
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: first contact
 
Status: RO
 
OK, I'm a newbie here.  New to the mailing list, new to the concept
(more or less).  I have no xWEB (FWEB, CWEB, etc.) software (yet), but
I do have questions.
 
A friend of my has given me glimpses into FWEB, and I've looked
through the past missives on this list.  I must say that the
correspondence is interesting.  ... seems to be a mix of philosophical
and practical advice.  It's the practical advice I'm after.  The
philosophy I pretty much go along with.  If I may attempt to
paraphrase, LP (or LitProg or whatever) is less like writing code and
more like writing a technical paper, where the code is in the
footnotes.  Somewhat like "Here's what I intend to do (and by the way,
here's how I did it)".  Am I correct so far?
 
I have looked at an extremely limited set of FWEB code and found it at
first glance to be difficult to read.  I'm sure that comes with the
territory; any new language is difficult at first.  I was impressed,
however, with the formatted documentation.
 
My question is this: presuming that using xWEB is a better way to
construct software (I assume that's the common belief...), is it wise
to begin using it in the middle of a medium sized project?  The
software I work with is 150,00 to 200,000 lines, roughly 1500 files
long.  Been around since the '70s.  And yes, it is in (good ol')
FORTRAN.  What's the practicality of using xWEB during the maintenance
of said software on a routine by routine basis?
 
Assuming for the moment that it is practical to use xWEB on a routine
by routine basis, how wise is it to use what amounts to an obscure
language on a project that must be supported for many, many years to
come (it's a government project...)?  I think it is safe to say that
very few programmers ever will learn a dialect of xWEB in college,
which would make it difficult to hire new programmers without
requiring additional training.  It's hard enough anymore just to find
programmers who know FORTRAN...
 
Correct me if I'm wrong, but I get the impression that most of the
dialog in this group is between individuals using xWEB for mostly
personal (ie: 1 person) projects.  How does this fit into a larger
project spaning 10 programmers or more?  The biggest issue seems to be
during turnover of the staff, when a new member of the development
team now not only has to learn the application (and possibly
hardware/software/OS of the application), but now has to learn xWEB
and possibly TEX as well.
 
On the surface I'm willing to learn xWEB myself in the interest of
improving my own work, but I'm hesitant to recommend it as a primary
tool for the project in general.  I would like to know if anyone has
tried to migrate to xWEB in the middle of a project staffed by more
than one programmer.
 
One final question so I may appear more literate in the future, just
what is the difference between the various dialects: web, fweb, cweb,
c-no-web, spider-web, et. al.?  Is one a 'root' version with the
others supersets, subsets, or both?  What is the best way to reference
the software in general (ie: xWEB, web, WEB, etc.)?  And lastly,
should I try one, which is the most robust.  If it helps for that last
part, my system is currently a Sun workstation, and will be some other
POSIX compatible machine about a year from now.
 
I would also like to reinforce a suggestion made by someone else, and
that is to see examples of some really good web'd code.
 
I will gladly summarize all replies received, should they require
summarizing.
 
			     (hi bob...)
----------------------------------------------------------------------
Bryan D. Oakley               ctrbdo%iapa.uucp@mailhost.ecn.uoknor.edu
KENROB and Associates, Inc.               voice: (405) 680-7176 (work)
5909 NW Expwy Suite 249           //__           (405) 366-6248 (home)
Oklahoma City, Ok.  73132         oooo
 
From Hans-Hermann Mon Sep 21 14:23:24 MEZ 1992
Date: Mon, 21 Sep 92 14:23:24 MEZ
From: Hans-Hermann Bode <HHBODE%DOSUNI1.BITNET@SHSU.edu>
Reply-To: LitProg@SHSU.edu
To: litprog@SHSU.edu
Subject: Re: spidery web on PC
 
Allan Adler wrote:
 
Status: RO
 
>I am under the impression that one cannot easily install Spidery web
>on a PC. Is that correct? The compiler I use is DJGCC, a port of the
>GNU C compiler to MSDOS.
 
You may try spiderpc.zip from niord.shsu.edu (in the directory pc-web). This
implementation is for Turbo C++, but may be a useful starting point for gcc
also. Note that, although the spiderpc changefiles are intended for general
ANSI-C compilers as well as for Turbo C++, in a parallel project (CWEB-p) it
came out in the meantime, that some ANSI-C compilers complain about
traditional function headers for already prototyped functions. So, you might
have to replace them by ANSI-style headers with gcc.
 
Hans-Hermann Bode
Arbeitsgruppe Systemforschung, Universit\"at Osnabr\"uck
Artilleriestr. 34, D-W-4500 Osnabr\"uck
Tel.: (49)-541-9692545
e-mail: HHBODE@DOSUNI1.BITNET, hhbode@rz.uni-osnabrueck.de
 
From <jmu%FRUNIP62.BITNET@SHSU.edu> Mon Sep 21 17:08:18 +0200 1992
Date: Mon, 21 Sep 92 17:08:18 +0200
From: <jmu%FRUNIP62.BITNET@SHSU.edu>
Reply-To: LitProg@SHSU.edu
To: litprog@SHSU.edu
Subject: fweb question
 
A fweb question:
Status: RO
 
What is the maximum number of characters, which are allowed to be equal
in different modul names?
I had to change in this piece of code the four "param" in the moduls
2 and 3 into "parm" to get my program compiled by ftangle. (V. 1.23a, SUN)
 
@<modify param param@>=
   if (t_1 == t_2)
      @<modify param param same types@>@;
   else
      @<modify param param different types@>@;
 
As far as I have looked up the doc, there is no limit, that is,
any different modul names will be distinguished, isn't it?
 
Thanks for any idea.
 
Johannes Mueller
 
From J. Mon Sep 21 09:33:21 PDT 1992
Date: Mon, 21 Sep 92 09:33:21 PDT
From: "J. D. Yeager" <yeager@vnet.ibm.com>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: CWEBbing someone else's code
 
Ref:  Your note of Sun, 20 Sep 92 18:57:15 -0400
 
Status: RO
 
My experience is due to trying to webify existing 370 assembler code,
but may be useful.
 
My first piece of advice is to understand the code you are
documenting.  While this appears a truism, it is tempting to use web
to record your growing understanding of the code as you work on it.
While this may work, the final product will not be particularly better
than if you had merely gone in and commented the code.  The fallback
that seemed to work for me was to try to understand the highest level
code and simulate development with structural decomposition using web.
While this does not always create an optimal presentation of the code,
it is usually understandable.
 
The other hint I can provide, is that in certain tragically
spaghettied cases, the best way to add structure via web is to
document the program as a finite state machine.  Often that is the
model a programmer using non-structured coding has in mind at least
unconsciously, and can often clarify the structure of otherwise
seeming random behavior.
 
Good luck.
 
John Yeager
 
From bart@cs.tamu.edu Tue Sep 22 08:29:21 CDT 1992
Date: Tue, 22 Sep 92 08:29:21 CDT
From: bart@cs.tamu.edu (Bart Childs)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re:  fweb question
 
Status: RO
 
That is a problem we encountered the other day and have yet to
notify John Krommes of the problem.  It apparently comes about
from having a module name that is an exact subset of a longer
name rather than a length.
 
Bart Childs
 
From Joey Tue Sep 22 14:29:07 +22313801 1992
Date: Tue, 22 Sep 1992 14:29:07 +22313801 (EDT
From: Joey Gibson <aix3!wjg@netcom.com>
Reply-To: LitProg@SHSU.edu
To: LitProg Mail-List <netcomsv!LITPROG@SHSU.edu>
Subject: Help with line breaks under FWeb
 
Status: RO
 
I am writing a program in C++ using FWeb, but am having a problem with how
FWeave massages the lines. The following is how my code would look under
normal conditions:
 
for (row = 0; row < 100; row++)
{
   for (column = 0; column < arraySize; column++)
   {
      arrayPtr[row][column] = aVariable;
      if (debugOn.ArrayWalk)
         cout << "Testing" << endl;
   }
}
 
But what I get after I weave this code is the following:
 
for(row = 0; row < 100; row++) { for(column = 0; column < arraySize;
   column++) { arrayPtr[row][column] = aVariable; if
   (debugOn.ArrayWalk) cout << arrayPtr[row][column] << endl; } }
 
What am I doing wrong? I have tried placing @; and @/ after each line,
but to no avail. When I used @# after the first for line, it broke
the line, skipped a line, and then started the next for statement, but it
was directly under the first for. Could someone please tell me what I
am doing wrong?
 
Thanks,
Joey
 
************************************************************************
*              Joey Gibson - Computer Services Department              *
*                           wjg@aix3.ema.com                           *
*                     Energy Management Associates                     *
*                    The Utilities  Division of EDS                    *
*          100 NorthCreek, Atlanta, GA 30327 - (404) 261-5256          *
************************************************************************
 
From Norman Tue Sep 22 13:13:26 -0400 1992
Date: Tue, 22 Sep 92 13:13:26 -0400
From: Norman Ramsey <nr@Princeton.EDU>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: using web on long-lived, multiperson projects
 
Status: RO
 
In 1987 or so we started using web on a multiperson project, government
funded, which is still going on.  We had a *big* training problem.
I still don't know of any satisfactory answers to that one.  We were left
with the feeling that using web was a win, but we weren't able to explain
why in any great detail.  We also came up with a long list of ways web
could be improved, some of which I've addressed in a later tool, noweb.
If you're interested in the details, I refer you to
 
@article{ramsey:literate,
  author="Norman Ramsey and Carla Marceau",
  title="Literate Programming on a Team Project",
  keywords="web",
  journal="Software---Practice \& Experience",
  month=jul,
  volume=21, number=7, pages="677--683",
  year="1991", refereed=1,
  also="Princeton tech report CS-TR-302-91"}
 
Norman Ramsey
 
From ctrbdo%iapa.uucp@essex.ecn.uoknor.edu Tue Sep 22 12:56:17 CDT 1992
Date: Tue, 22 Sep 92 12:56:17 CDT
From: ctrbdo%iapa.uucp@essex.ecn.uoknor.edu (bryan d oakley)
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: 1000 pardons...
 
Status: RO
 
It seems my 'first contact' message got posted twice, and for that I
apologize.  My mailer was acting up and I thought the first one got
lost, so I reposted.  Such is life I guess.
 
Thanks for the responses so far.
 
----------------------------------------------------------------------
Bryan D. Oakley               ctrbdo%iapa.uucp@mailhost.ecn.uoknor.edu
KENROB and Associates, Inc.               voice: (405) 680-7176 (work)
5909 NW Expwy Suite 249           //__           (405) 366-6248 (home)
Oklahoma City, Ok.  73132         oooo
 
From m-lp9966@jed.cs.nyu.edu Tue Sep 22 20:54:20 -0400 1992
Date: Tue, 22 Sep 92 20:54:20 -0400
From: m-lp9966@jed.cs.nyu.edu (Lewis Perin)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Trying to locate a working WEB for C++
 
Bill Jones wrote:
 
   I am trying to find a working (or at least compilable) WEB for C++ vers 3.0
   (with templates).  I am currently trying to get the C++ version of SpiderWeb
   to work but I am having to build everything by hand because my system is
   choking on the "make" used in the distribution.  I have also tried FWEBv1.23
   but it will not produce an index.  And, I'm not sure if either of these will
   deal at all with templates (although I think I have SpiderWeb modified to at
   least try).
 
Status: RO
 
Well, the same version of FWEB seems to do templates and indices for
me on a MS-DOS PC.  A sample file stolen from the C++ Annotated
Reference Manual follows my (non-)signature.
 
Cheers, Lew
 
\def\Wtitle{template/index demo}
 
\def\topofcontents{\null\vfill
  \centerline{\titlefont template/index demo}
  \vfill
}
 
\def\botofcontents{\vfill
  \centerline{\titlefont to allay your fears}
}
\pageno=\contentspageno \advance\pageno by 1
\let\maybe=\iftrue
@c++
 
@* The code itself.
@a template<class T> class vector
{
  @<Private members@>@;
public:
  @<Public members@>@;
};
 
@ @<Private...@>=
  T* v;
  int sz;
 
@ @<Public...@>=
  vector(int);
  T& operator[] (int);
  T& elem(int i) { return v[i]; }
 
@* Index.
 
From Joachim Wed Sep 23 11:31:11 MESZ 1992
Date: Wed, 23 Sep 92 11:31:11 MESZ
From: Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re:  fweb question
 
You wrote:
Status: RO
 
>
> That is a problem we encountered the other day and have yet to
> notify John Krommes of the problem.  It apparently comes about
> from having a module name that is an exact subset of a longer
> name rather than a length.
 
I don't know about FWEB, but in the original Pascal WEB (and in CWEB)
program part names [*] must be prefix free.
    I think the abbrevation possibility was more easily implementable
this way (when I remember correct, it's done as a binary search
tree).
 
[*]  Please, please, please: Don't use the term `module' for WEB
sections. It is used in Computer Science since two decades for
completely other entities. Otherwise, every serious CS person will
think that the LitProg folks don't know about the profession.
    Myself, I also don't speak of section names, I call them program
part names. It's because they are not bound to one section, ie, they
are not the name of a section. One can have sections without program
parts, and named program parts may be split over several sections.
(So the term `program part' is for me simply one refinement which is
to be inserted somewhere.)
 
--
Joachim
 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Joachim Schrod			Email: schrod@iti.informatik.th-darmstadt.de
Computer Science Department
Technical University of Darmstadt, Germany
 
From laakkone@cc.helsinki.fi Wed Sep 23 17:37:41 EET 1992
Date: Wed, 23 Sep 92 17:37:41 EET DST
From: laakkone@cc.helsinki.fi (Tero Laakkonen)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: web for gnu c++?
 
Status: RO
 
i saw an archive called cweb-p.tar.Z in a german ftp site the other day.
it's a web for turbo c++. does anyone know of a web for gnu c++?
 
thanks in advance,
 
tero laakkonen.
 
From Zdenek Wed Sep 23 10:33:32 MDT 1992
Date: Wed, 23 Sep 92 10:33:32 MDT
From: Zdenek Wagner <WAGNER%CSEARN.BITNET@SHSU.edu>
Reply-To: LitProg@SHSU.edu
To: Literate Progaramming list <LitProg@SHSU.edu>
Subject: Re: Help with line breaks under FWeb
 
Status: RO
 
Unfortunately you forgot to include the sample of the web-file. From my
small experience with CWEB I know that such things happen if left and right
braces {} do not match in the same module, e.g. if you start a loop statement
in one module and close it in the next module with explanations what the
loop is doing.
I hope this can give you some idea.
 
                                                ,
,~~~/        /`               /     /|      /~~~
   /        /           |_/  /_/   ' |     /
  /     /~~/ /~~/ /~~/ /~~/ /\       | /| / /~~/ /~~/ /~~/ /~~/ /~~~
 /   , /  / /~~~ /  / /~~~ /  \      |/ |/ /  /_/  / /  / /~~~ /
 ~~~~  ~~~  ~~~ '  '  ~~~ '    `           ~~~  ~~/ '  '  ~~~
                              Zdenek Wagner______/
 
From Timothy Wed Sep 23 18:49:02 BST 1992
Date: Wed, 23 Sep 92 18:49:02 BST
From: Timothy Murphy <tim@maths.tcd.ie>
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: first contact
 
Status: RO
 
> What is the best way to reference
> the software in general (ie: xWEB, web, WEB, etc.)?
 
On a tiny point of information,
I think "web" and "WEB" are the same thing,
and refer to Knuth's original tangle/weave software,
which is still an integral part of TeX software.
 
> And lastly, should I try one, which is the most robust.
 
I'm no sort of expert, but cweb has the Knuth imprimature,
for what that is worth.
(I feel it is basically good --
and reasonably small, which I find reassuring --
but it certainly has a number of rough corners
still to be smoothed.)
 
Timothy Murphy
 
e-mail: tim@maths.tcd.ie
tel: +353-1-2842366 (home/office)
     +353-1-7021507 (university)
fax: +353-1-2842295
s-mail: School of Mathematics, Trinity College, Dublin 2, Ireland
 
From leew@cs.utexas.edu Wed Sep 23 15:56:09 -0500 1992
Date: Wed, 23 Sep 1992 15:56:09 -0500
From: leew@cs.utexas.edu (Lee Wittenberg)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: spidery web on PC
 
  >
  >
  > I am under the impression that one cannot easily install Spidery web
  > on a PC. Is that correct? The compiler I use is DJGCC, a port of the
  > GNU C compiler to MSDOS.
  >
  > Allan Adler
  > ara@altdorf.ai.mit.edu
 
Status: RO
 
The only problem with installing Spidery WEB on a PC (aside from a few pointer
arithmetic bugs inherited from CWEB) is getting an AWK that can handle
SPIDER.  MKS Awk works fine.  The last time I tried GNU Awk (v2.13, I
think), it kept running out of memory.
 
I've been using Spidery WEB on my PC for about 6 months now (using Borland's
C/C++ compiler) with no P-specific problems.  If you like, I'll be glad to
send you a list of the changes you'll need to make to deal with the pointer
problems.  [Note to CWEB people:  These bugs still exist in CWEB 2.7 -- to
whom do I report them?]
 
Let me know if there's anything else I can do.
 
	-- Lee Wittenberg
	   leew@cs.utexas.edu (tporary)
	   leew@pilot.njin.net (permanent -- currently forwarded to utexas)
 
From leew@cs.utexas.edu Wed Sep 23 17:17:03 -0500 1992
Date: Wed, 23 Sep 1992 17:17:03 -0500
From: leew@cs.utexas.edu (Lee Wittenberg)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: Trying to locate a working WEB for C++
 
  > I just joined this list so please excuse me if this question has been beaten
  > to death before.
  >
  > I am trying to find a working (or at least compilable) WEB for C++ vers 3.0
  > (with templates).  I am currently trying to get the C++ version of SpiderWeb
  > to work but I am having to build everything by hand because my system is
  > choking on the "make" used in the distribution.  I have also tried FWEBv1.23
  > but it will not produce an index.  And, I'm not sure if either of these will
  > deal at all with templates (although I think I have SpiderWeb modified to at
  > least try).
  >
  > Any help will be appreciated.
  >
  > Bill
 
Status: RO
 
What system are you working on?  I have a makefile that works for Borland C++
on an IBM PC.  I also think I had to make a few changes to the makefile to get
Spidery WEB working on a NeXT.  I can let you see those changes if they'll
help.
 
	-- Lee Wittenberg
	   leew@pilot.njin.net
 
From leew@cs.utexas.edu Wed Sep 23 17:34:00 -0500 1992
Date: Wed, 23 Sep 1992 17:34:00 -0500
From: leew@cs.utexas.edu (Lee Wittenberg)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: first contact...
 
Bryan Oakley asks (among other things):
 
  > Correct me if I'm wrong, but I get the impression that most of the
  > dialog in this group is between individuals using xWEB for mostly
  > personal (ie: 1 person) projects.  How does this fit into a larger
  > project spaning 10 programmers or more?  The biggest issue seems to be
  > during turnover of the staff, when a new member of the development
  > team now not only has to learn the application (and possibly
  > hardware/software/OS of the application), but now has to learn xWEB
  > and possibly TEX as well.
 
Status: RO
 
Norman Ramsey's written an article on his experiences using WEB on
a group project.  I forget the name of the article (maybe I can dig it up).
Does anyone out there remember?
 
	-- Lee Wittenberg
	   leew@pilot.njin.net
 
From Joachim Thu Sep 24 14:03:23 MESZ 1992
Date: Thu, 24 Sep 92 14:03:23 MESZ
From: Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: first contact...
 
You wrote:
Status: RO
 
>
> Norman Ramsey's written an article on his experiences using WEB on
> a group project.  I forget the name of the article (maybe I can dig it up).
> Does anyone out there remember?
 
@article{litprog:ramsey:teams,
 author = {Norman Ramsey and Carla Marceau},
 title = {Literate Programming on a Team Project},
 journal = spe,
 volume = 21,
 number = 7,
 month = jul,
 year = 1991,
 pages = {677-683},
 annote = {\referee{N. Ramsey (author)} In 1987 or so we started
using \WEB{} on a multiperson project, government funded, which is
still going on.  We had a {\it big\/} training problem. I still don't
know of any satisfactory answers to that one.  We were left with the
feeling that using \WEB{} was a win, but we weren't able to explain
why in any great detail.  We also came up with a long list of ways
\WEB{} could be improved, some of which I've addressed in a later
tool, {\tt noweb}.
}
}
 
We are using WEB systems in medium-sized projects (5-10 persons over
a few years), too. Our biggest problem in training is not TeX (that
must be learned by new team members anyhow since all our docs are
written in TeX...). People seem to over-react on the paradigm of
Literate Programming. Either they are totally enthusiastic or they
say *NO*. They tend to forget that it's a method which helps only for
Programming in the Small, not for Programming in the Large.
    I usually try to show the similarities to Structured Programming.
While one would never use Structured Programming to design a larger
software system, it clearly has its place in the implementation of
classes. IMHO the same holds for LitProg, and it combines nicely with
SP. But that's another point of training: That program parts should be
described with pre- and postconditions, that invariants are stated,
etc. I can recommend
 
@book{spec:liskov:abstraction,
 author = {Barbara Liskov and John V. Guttag},
 title = {Abstraction and Specification in Program Development},
 publisher = mit,
 year = 1986,
 isbn = {0-262-12112-3},
 library = {D.1/Lis},
 annote = {Well written introductionary book on abstraction entities
and specification. Focuses on CLU.}
}
 
--
Joachim
 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Joachim Schrod			Email: schrod@iti.informatik.th-darmstadt.de
Computer Science Department
Technical University of Darmstadt, Germany
 
	``How do we persuade new users that spreading fonts across the page
	like peanut butter across hot toast is not necessarily the route to
	typographic excellence?				-- Peter Flynn
 
From Silvio Thu Sep 24 11:39:19 -0700 1992
Date: Thu, 24 Sep 92 11:39:19 -0700
From: Silvio Levy <levy@math.berkeley.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: fweb question
 
From: Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>
 
Status: RO
 
> I don't know about FWEB, but in the original Pascal WEB (and in CWEB)
> program part names [*] must be prefix free.
 
Yes, that is the case in theory.  If you have @<foo@> you can't say
@<foobar@> later, or vice versa.  Actually the first case was silently
allowed, which is perhaps unfortunate.
 
In the next version of CWEB (2.8) it is planned that abbreviations of
a section name can occur before the full name.  To make things
well-defined I then disallowed @<foo@> followed by @<foobar@>, and the
actual behavior now conforms with the documentation.
 
> [*]  Please, please, please: Don't use the term `module' for WEB section.
 
We're slowly making the change.  Version 2.8 will refer to sections,
not modules.  Still, there is a lot of polysemy in technical terms
(and not least in Computer Science), so I think the charge that
literate programmers are computer illiterate is unfounded.
 
Version 2.8 is expected out in a week or two.
 
Silvio
 
From fulling@sarastro.tamu.edu Thu Sep 24 16:39:59 CDT 1992
Date: Thu, 24 Sep 92 16:39:59 CDT
From: fulling@sarastro.tamu.edu (Stephen A. Fulling)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Nonsection nonmodules
 
>[*]  Please, please, please: Don't use the term `module' for WEB
Status: RO
 
>sections. It is used in Computer Science since two decades for
>completely other entities. Otherwise, every serious CS person will
>think that the LitProg folks don't know about the profession.
>    Myself, I also don't speak of section names, I call them program
>part names. It's because they are not bound to one section, ie, they
>are not the name of a section. One can have sections without program
>parts, and named program parts may be split over several sections.
>(So the term `program part' is for me simply one refinement which is
>to be inserted somewhere.)
>
>                      Joachim [Schrod]
 
How about "chapters"?
 
			      Steve Fulling
 
From Joachim Fri Sep 25 10:46:12 MESZ 1992
Date: Fri, 25 Sep 92 10:46:12 MESZ
From: Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: fweb question
 
Silvio wrote:
Status: RO
 
>
> > [*]  Please, please, please: Don't use the term `module' for WEB section.
>
> We're slowly making the change.  Version 2.8 will refer to sections,
> not modules.  Still, there is a lot of polysemy in technical terms
> (and not least in Computer Science), so I think the charge that
> literate programmers are computer illiterate is unfounded.
 
I don't want to leave a false impression: I did not and do not think
that literate programmers are computer illiterate. But when I
advocated to other CS folks the LitProg paradigm in general and WEB
systems in particular and gave them the docs, many complained about
the usage of the term `module' (which is a software component with a
specification and an implementation, the latter hopefully done in the
spirit of information hiding).
 
I know that CWEB 2.8 is avoiding the term module now, and I applaud
it. (Klaus Guntermann -- who sits in my neighbour room -- told me that
you even changed all variable names like mod_... Tough. :-) :-)
 
--
Joachim
 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Joachim Schrod			Email: schrod@iti.informatik.th-darmstadt.de
Computer Science Department
Technical University of Darmstadt, Germany
 
	``How do we persuade new users that spreading fonts across the page
	like peanut butter across hot toast is not necessarily the route to
	typographic excellence?				-- Peter Flynn
 
From Timothy Fri Sep 25 10:46:12 MESZ 1992
Date: Fri, 25 Sep 92 10:46:12 MESZ
From: "Timothy Larkin" <timothy_larkin@qmrelay.mail.cornell.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: Re-  fweb question
 
        Reply to:   RE>Re:  fweb question
Joachim Schrod writes:
>  Please, please, please: Don't use the term `module' for WEB
Status: RO
 
> sections. It is used in Computer Science since two decades for
> completely other entities. Otherwise, every serious CS person will
> think that the LitProg folks don't know about the profession.
 
I note that the CWEB documentation, which enjoys the nihil obstat of DEK
himself, explicitly uses the term "module" to refer to the unit of WEB
consisting of the TeX part, the definition part, and the implementation part.
Regardless of its use elsewhere in CS, any "serious CS person" who would
conclude that DEK "doesn't know about the profession" doesn't know about the
profession.
 
Tim Larkin
Federal Nutrition Laboratory
Tower Road
Ithaca, New York
tsl1@cornell.edu
 
From Joey Fri Sep 25 14:49:14 +22313801 1992
Date: Fri, 25 Sep 1992 14:49:14 +22313801 (EDT
From: Joey Gibson <aix3!wjg@netcom.com>
Reply-To: LitProg@SHSU.edu
To: LitProg Mail-List <netcomsv!LITPROG@SHSU.edu>
Subject: Another FWeb question
 
Status: RO
 
OK, I saw it once in the manual, but now I can;t find it. What do I need
to do to make a title appear on the contents page, like CWeb does? I
remember seeing it in the FWeb manual, but now I can;t find it. Thanks.
Joey
 
************************************************************************
*              Joey Gibson - Computer Services Department              *
*                           wjg@aix3.ema.com                           *
*                     Energy Management Associates                     *
*                    The Utilities  Division of EDS                    *
*          100 NorthCreek, Atlanta, GA 30327 - (404) 261-5256          *
************************************************************************
 
From Joachim Fri Sep 25 16:08:42 MESZ 1992
Date: Fri, 25 Sep 92 16:08:42 MESZ
From: Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: Nonsection nonmodules
 
Steve Fulling wrote:
Status: RO
 
>
> >Don't use the term `module' for WEB
> >sections. [...] I call [section names] program
> >part names. It's because they are not bound to one section, ie, they
> >are not the name of a section. One can have sections without program
> >parts, and named program parts may be split over several sections.
> >(So the term `program part' is for me simply one refinement which is
> >to be inserted somewhere.)
> >
> >                      Joachim [Schrod]
>
> How about "chapters"?
 
(Maybe I don't understand your question.) For me, chapters (in WEB
aka starred sections) are larger entities as sections, where there is
a consists-of-relationship between chapter and sections. (In SGML
terms, a section is a sub-element of a chapter.)
 
Whereas program parts are neither sub- nor super-elements of
sections. They don't fit in this model of a document structure as a
tree. That's because we have two document structures in parallel.
 -- The structure of the _literate_ parts of the document, ie,
    chapters/starred sections, sections, perhaps subsections.
 -- And the structure of the _program_ parts of the document, ie, the
    `unnamed program part' as the root, with inserted `named program
    parts', where each named program part is a list of `program part
    sections'. (Hmm, anybody has a better term for the last entity?)
 
Both structures may be defined as trees. (Thinking about, it may be
possible to define a DTD with CONCUR elements. Should check it.)
 
--
Joachim
 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Joachim Schrod			Email: schrod@iti.informatik.th-darmstadt.de
Computer Science Department
Technical University of Darmstadt, Germany
 
From fulling@sarastro.tamu.edu Fri Sep 25 14:24:18 CDT 1992
Date: Fri, 25 Sep 92 14:24:18 CDT
From: fulling@sarastro.tamu.edu (Stephen A. Fulling)
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: On second thought ...
 
>Subject: Nonsection nonmodules
Status: RO
 
>
>>[*]  Please, please, please: Don't use the term `module' for WEB
>>sections. It is used in Computer Science since two decades for
>>completely other entities. Otherwise, every serious CS person will
>>think that the LitProg folks don't know about the profession.
>>    Myself, I also don't speak of section names, I call them program
>>part names. It's because they are not bound to one section, ie, they
>>are not the name of a section. One can have sections without program
>>parts, and named program parts may be split over several sections.
>>(So the term `program part' is for me simply one refinement which is
>>to be inserted somewhere.)
>>
>>                      Joachim [Schrod]
>
>How about "chapters"?
>
>                             Steve Fulling
 
Before anyone takes it seriously, I wish to repudiate the foregoing
suggestion.  I misread what Joachim wrote; I thought he was referring
to the parts of the document (WEAVE output) begun by named sections.
He isn't.  Sorry.
 
				       SAF
 
From Silvio Fri Sep 25 21:25:52 -0700 1992
Date: Fri, 25 Sep 92 21:25:52 -0700
From: Silvio Levy <levy@math.berkeley.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: On second thought ...
 
Joachim Schrod:
 
Status: RO
 
>    Myself, I also don't speak of section names, I call them program
>part names. It's because they are not bound to one section, ie, they
>are not the name of a section. One can have sections without program
>parts, and named program parts may be split over several sections.
 
Well, some dogs have no name, and some names apply to several dogs.
Doesn't mean I'm wrong in saying that Rex is my dog's name.
 
Silvio
 
From zuazaga@ucunix.san.uc.EDU Fri Sep 25 21:25:52 -0700 1992
Date: Fri, 25 Sep 92 21:25:52 -0700
From: zuazaga@ucunix.san.uc.EDU (Humberto Ortiz-Zuazaga)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.EDU
Subject: Re: Nonsection nonmodules
 
Joachim Schrod wrote:
Status: RO
 
>  -- And the structure of the _program_ parts of the document, ie, the
>     `unnamed program part' as the root, with inserted `named program
>     parts', where each named program part is a list of `program part
>     sections'. (Hmm, anybody has a better term for the last entity?)
 
"Source scraps"?  They kind of feel like when you use scisors to
cut-and-paste a document together from other typed or printed
material. (Well, these two line and those two over there and ...)
--
Humberto Ortiz-Zuazaga                            zuazaga@ucunix.san.uc.edu
Dept. of Physiology & Biophysics                   University of Cincinnati
 
From Silvio Sat Sep 26 09:45:13 -0700 1992
Date: Sat, 26 Sep 92 09:45:13 -0700
From: Silvio Levy <levy@math.berkeley.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: fweb question
 
Joachim Schrod:
 
> I don't want to leave a false impression: I did not and do not think
Status: RO
 
> that literate programmers are computer illiterate. But when I
 
I know.  What I meant to say is that the claim, from whatever source,
is silly.  The other meaning of module is by now well-established, but
that was not the case yet when Knuth introduced the name.  In any
case, we are in agreement about the need to change the name.
 
Silvio
 
From Joachim Sat Sep 26 18:15:13 MESZ 1992
Date: Sat, 26 Sep 92 18:15:13 MESZ
From: Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: Re-  fweb question
 
Tim Larkins wrote:
Status: RO
 
>
>         Reply to:   RE>Re:  fweb question
> Joachim Schrod writes:
> >  Please, please, please: Don't use the term `module' for WEB
> > sections. It is used in Computer Science since two decades for
> > completely other entities. Otherwise, every serious CS person will
> > think that the LitProg folks don't know about the profession.
>
> I note that the CWEB documentation, which enjoys the nihil obstat of DEK
> himself, explicitly uses the term "module" to refer to the unit of WEB
> consisting of the TeX part, the definition part, and the implementation part.
> Regardless of its use elsewhere in CS, any "serious CS person" who would
> conclude that DEK "doesn't know about the profession" doesn't know about the
> profession.
 
I know very well how much DEK has done for CS. (It's quite normal if
you have an M.S. with honors in this field...) His one of the very
few persons where articles of the '60s still are very influential
today. He laid the theoretical foundation of many areas. Students
typically read him not enough, eg, his paper about the early
development of programming languages (pre-FORTRAN), his contribution
to the Structured Programming debate, his seminal papers to
attributed grammars should be a must.
 
But -- DEK is no God, he has his fields and his interests. And while
I have read a very large amount of papers and books from him, I have
yet to find something about Software Engineering. Something which
addresses the difference between Programming in the Small vs.
Programming in the Large.[*] His contributions (and Literate
Programming is IMHO not the least among them) belong all to the
former area.
    This is also very good recognizable if you look at his software.
It's of a typical style: monolithic, elegant, often beautiful, and
not connected to the outside world, often difficult to use within
other software systems. This shall in no case debase his software --
it's fitting to its requirements. But my requirements are usually
different; I'm a True Believer(tm) of the need for reusable and
maintainable software. LitProg helps for the latter, but not for the
former. Griese's answer to DEK[**] addresses this issue better than
it's possible in an email, so I don't want to repeat it here.
 
--
Joachim
 
[*]  The last time I used these terms in a c.t.t posting, I received
     questions. So:
 
	@article{se:deremer:large-vs-small,
	 author = {Frank DeRemer and Hans H. Kron},
	 title = {Programming-in-the-Large Versus Programming-in-the-Small},
	 journal = ieeese,
	 volume = {SE-2},
	 number = 2,
	 month = jun,
	 year = 1976,
	 pages = {80-86}
	}
 
[**]
	@article{litprog:gries:adt,
	 author = {Jon Bentley and David Gries},
	 title = {Programming Pearls --- Abstract Data Types},
	 journal = cacm,
	 volume = 30,
	 number = 4,
	 month = apr,
	 year = 1987,
	 pages = {284-290}
	}
 
     This paper was an answer to
 
	@article{litprog:knuth:hashtrie,
	 author = {Jon Bentley and Donald E. Knuth and Doug McIlroy},
	 title = {Programming Pearls --- A Literate Program},
	 journal = cacm,
	 volume = 29,
	 number = 6,
	 month = jun,
	 year = 1986,
	 pages = 471-483,
	}
 
Refer also to
 
    @incollection{se:dennis:modularity,
     author = {J. B. Dennis},
     title = {Modularity},
     editor = {Friedrich L. Bauer},
     booktitle = {Advanced Course on Software Engineering},
     publisher = springer,
     year = 1973,
     isbn = {0-387-06185-1},
     note = {Reprinted as LNCS~30}
    }
 
    @article{se:parnas:modules,
     author = {David L. Parnas},
     title = {On the criteria to be used in decomposing systems into modules},
     journal = cacm,
     volume = 15,
     year = 1972,
     pages = {1053-1058}
    }
 
    @article{prog:appelbe:encapsulation,
     author = {W. F. Appelbe and A. P. Ravn},
     title = {Encapsulation constructs in systems programming languages},
     journal = toplas,
     volume = 6,
     year = 1984,
     pages = {129-158}
    }
 
to name just a few of the canonical publications on this theme.
 
    @book{oops:booch:ood,
     author = {Grady Booch},
     title = {Object Oriented Design with Applications},
     publisher = benjamin,
     year = 1991,
     isbn = {0-8053-0091-0}
    }
 
gives a more modern view.
 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Joachim Schrod			Email: schrod@iti.informatik.th-darmstadt.de
Computer Science Department
Technical University of Darmstadt, Germany
 
From dan@minster.york.ac.uk Sat Sep 26 22:38:01  1992
Date: Sat, 26 Sep 92 22:38:01
From: dan@minster.york.ac.uk
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: LP and SoftEng
 
Tim Larkins wrote:
Status: RO
 
> I know very well how much DEK has done for CS. (It's quite normal if
> you have an M.S. with honors in this field...)
 
Even if you don't have an "M.S. with honors", if you are in CompSci you will.
Real programmers read Knuth in any form. Have you read Surreal Numbers
or Axioms and hulls, just to name two nice works?
 
> But -- DEK is no God...
 
Ah, how about alt.religion.knuth or comp.religion? I don't know about
you bu I think that he might be \ldots
 
Joking aside... you are right, he hasn't written anything about Software
Engineering, but LP is a step towards it. He integrated one
of more important parts of SE with the code: documentation. OK, it's
only a part of the Sys design and implementation in the life-cycle but
it's an important step as you must know otherwise you wouldn't be
reading this list. One objection I have with his approach is that is
very difficult to use it with exploratory programming and it doesn't
cope well with software evolution principles (although change files are
a novel and interesting approach). Was there any discussion about LP on
comp.software-eng?
 
                       Daniel Kustrin
              Distributed Ada Debugging Project
      Real-time and Distributed Systems Research Group
                     University of York
                       York,  England
                   dan@minster.york.ac.uk
 
From bart@cs.tamu.edu Mon Sep 28 11:51:06 -0500 1992
Date: Mon, 28 Sep 92 11:51:06 -0500
From: bart@cs.tamu.edu
Reply-To: LitProg@SHSU.edu
To: litProg@shsu.edu
Subject: Titles for WEBs
 
Status: RO
 
This message has three files attached.  The first is
``limbo.material'' which we use as the initial skeleton for
all WEBs.  There is a line containing ``\def\title''
which should be modified to include the `title' as Joey
inquired about.  Also note that the first few lines are
to encourage a little more documentation about the source.
A few lines further into this is a similar convenience to
add an abstract that will appear on the cover page too.
 
The second file is ``limbo.sty'' which is a convenient
place to record macros that are commonly used in WEBs.
 
We use these with WEBs for fweb, cweb, and the original.
 
The file ``time.tex'' just in case you don't have one.
 
Enjoy,
 
Bart Childs                      bart@cs.tamu.edu
Department of Computer Science
Texas A&M University
 
-----------------------  limbo.material ------------------
%
% ??????.web,   ?fweb version 1.23
% Author
% Address
% e-mail and phone
%
%  %  %  %  %  %  %  %  %  %  %  %  %  %  %
%
%   LIMBO MATERIAL
%
 
\input limbo.sty
 
\def\title{{\tt }}
 
%% Comment the previous and uncomment this if you don't use web-mode
%%\def\title{{\tt ?? I need a Title ??}}
 
%%% begin Bottom of Contents Page macro
\def\botofcontents{\vskip 0pt plus 1fil minus 1.5in
{\bigskip\parskip6pt plus2pt \parindent20pt
%% begin abstract
\vskip0.5in
\noindent{\bf Abstract. }\it
 
}%% end abstract
 
%% BC often puts this in as a comment about pre-release versions ...
 
%\vskip0.5in
%{\vfill\it %% comments on anything else ????
%
%\vfil}% end of comments on anything else
\vfil
  \rightline{My Name}% You can personalize your output here, for example.
  \rightline{\today     }% today.tex should be preloaded, input it if not
  \rightline{\miltime   }% time.tex  should be preloaded, input it if not
 
}%      end of botofcontents
 
%   END OF LIMBO MATERIAL
%
%
%   BEGINNING OF WEB
%
 
%% Delete the next line after appropriate substitution.
%% In fweb's you want an @c, @c++, @n, @n9, or @Lx at this point
 
@* First Module.
 
@* Index.
 
------------------------  limbo.sty -------------------------
% \input today %%%%% How Ridiculous, preload it!!!!!!!!!
\font\ninett=cmtt9
\font\ninerm=cmr9
\let\mc=\ninerm % medium caps for names like UNIX
\font\Csc=cmcsc10 % Computer Modern Computer Small Caps
\def\PASCAL{{\rm Pascal}}% Does very little
\def\WEB{{\ninett WEB}}%  use like \WEB{}  to make space significant
\let\web=\WEB \def\FWEB{{\ninett FWEB}} \let\fweb=\FWEB
\def\Fortran{{\Csc Fortran}} \def\Cee{{\bf C}}
\def\Unix{{\mc UNIX}}  \let\unix=\Unix
\def\BSl{{\rm\char'134}} \def\<{$\langle\,$} \def\>{$\,\rangle$}
%
%%% begin Top of Contents Page macro
%
\def\topofcontents{\hsize 6in
  \vglue -30pt plus 1fil minus 1.5in
  \centerline{\title}
  \vskip 15pt
  \centerline{\today}
\bigskip \vfill
  \def\?##1]{\hbox to 1in{\hfil##1.\ }}}% end of topofcontents
 
--------------------------  time.tex  ----------------------
\newcount\milhours\newcount\minutes\newcount\hours
\def\thetime{\milhours=\time
\divide\milhours by 60
\minutes=\milhours
\multiply \minutes by -60
\advance\minutes by \time
\hours=\time \divide\hours by 60
\ifnum \hours>12 \advance \hours by -12 \fi
\the\hours:\ifnum \minutes > 9 \the\minutes \else 0\the\minutes \fi}
 
\def\miltime{\milhours=\time
\divide\milhours by 60
\minutes=\milhours
\multiply \minutes by -60
\advance\minutes by \time
\the\milhours:\ifnum\minutes>9 \the\minutes\else 0\the\minutes \fi}
 
%% End of message from Bart Childs
 
From dan@minster.york.ac.uk Tue Sep 29 23:16:54  1992
Date: Tue, 29 Sep 92 23:16:54
From: dan@minster.york.ac.uk
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Problems with | in text...
 
Status: RO
 
Does anyone have a ready solution to the problem of using | in text
'bits' (not modules ... happy?). I am trying to use xypic with CWEB and
when I try to produce a stopped arrow with \rto|>\stop TeX naturally
complains. I suppose I could look through the macros (web) and fix it,
but I would rather have a ready made solution.
 
Anyone?
 
-- dan
 
From Glyn Wed Sep 30 11:15:41 BST 1992
Date: Wed, 30 Sep 92 11:15:41 BST
From: "Glyn Normington" <NORM@WINVMJ.VNET.IBM.COM>
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: Literate Programming Extensions
 
Status: RO
 
I am involved in some literate programming on IBM's Customer Information
Control System (CICS).  Our literate programs involve a systems-programming
flavour of PL/1 rather than Pascal and IBM Bookmaster rather than TeX, but
the concept is the same as WEB.  The major difference is that we we don't
pre-process our programs via an equivalent of WEAVE but have defined suitable
Bookmaster tags to achieve pretty printing and cross-referencing.  Another
slight twist is that we allow formal specifications, in the Z language, to
be included in literate programs so that we can reason about their correctness.
 
So far I have only seen Donald Knuth's "The WEB System of Structured
Documentation" and a couple of articles in Communications of the ACM.
 
I am interested in language extensions to the literate programming constructs
to support multiple source files.  I am considering an import and export
mechanism to allow a literate program to control what program fragments it
allows to be used by others (export) and what program fragments it uses from
others (import) - a bit like Modula/2 modules.
 
I am interested in any other references, text books, etc which deal with
literate programming in general and literate programming language extensions
in particular.
 
Please post replies to this list as I gather this is the convention.
 
Thanks
 
Glyn Normington
IBM UK Laboratories Ltd
Hursley Park, Winchester
 
From Tero Wed Sep 30 17:27:55 EET 1992
Date: Wed, 30 Sep 92 17:27:55 EET
From: Tero Laakkonen <laakkone@cc.helsinki.fi>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: FWEB for C++ with LaTeX...
 
Status: RO
 
i wrote to this mailing list about a week ago asking if anyone knew of a
web that can handle C++.
 
i got several replies;everyone recommended using FWEB.
 
i managed to compile FWB on my 80386-with-linux096c-and-gcc222, but i
have some more questions:
 
1. fweave dumps core pretty often. is this a bug or have i compiled it
badly?
2. are there any examples from the real world where LaTeX and C++ have
been used for literal programming?
 
thanks,
tero.
 
From George Wed Sep 30 13:24:10 CDT 1992
Date: Wed, 30 Sep 1992 13:24:10 CDT
From: "George D. Greenwade" <bed_gdg@SHSU.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: RE: Literate Programming Extensions
 
On Wed, 30 Sep 92 11:15:41 BST, "Glyn Normington"
<NORM@WINVMJ.VNET.IBM.COM> posted:
Status: RO
 
>....
> I am interested in any other references, text books, etc which deal with
> literate programming in general and literate programming language
> extensions in particular.
>....
 
Nelson Beebe's exhaustive listing of references on the subject of Literate
Programming is avaiable from a newly-created file/package available from
SHSU.  All printed out, it runs about 5 pages.  I've included the
associated LaTeX and BibTeX style files as these are not necessarily
included in many distributions.  Attached is the description file.
 
--George
***************************************************************************
                               LITPROG-BIB
                               -----------
The LITPROG-BIB package includes all files necessary to process  Nelson
Beebe's "A Bibliography of Literate Programming" (version 1.19; 3 August
1992), a record of books and articles on the subject of Literate
Programming.
 
To retrieve the complete set of 10 files, include:
 SENDME LITPROG-BIB
in the body of a mail message to FILESERV@SHSU.BITNET (FILESERV@SHSU.edu).
To retrieve a specific file, such as LITPROG-BIB.LITPROG_BIB, include:
 SENDME LITPROG-BIB.LITPROG_BIB
in your mail message to FILESERV.  These files are available for anonymous
ftp retrieval from Niord.SHSU.edu (192.92.115.8) in the directory
[FILESERV.LITPROG-BIB] either individually, or in a ZIP archive containing
all of the files (LITPROG-V1_19.ZIP).
 
Files in this package: (1 Block = 512 bytes)
File                          Blocks  Save file as:
-------------------------------------------------------------------------------
LITPROG-BIB.BIBMODS_STY            6  bibmods.sty
LITPROG-BIB.BIBNAMES_STY          10  bibnames.sty
LITPROG-BIB.IS-ABBRV_BST          48  is-abbrv.bst
LITPROG-BIB.IS-ALPHA_BST          55  is-alpha.bst
LITPROG-BIB.IS-PLAIN_BST          49  is-plain.bst
LITPROG-BIB.IS-UNSRT_BST          44  is-unsrt.bst
LITPROG-BIB.LITPROG_BIB           49  litprog.bib
LITPROG-BIB.LITPROG_LTX            6  litprog.ltx
LITPROG-BIB.SHOWTAGS_STY           7  showtags.sty
LITPROG-BIB.TEXNAMES_STY          22  texnames.sty
 
Approximate total blocks in full LITPROG-BIB package = 296
 
From jmu@ccr.jussieu.fr Thu Oct 1 10:54:21 +0100 1992
Date: Thu, 1 Oct 92 10:54:21 +0100
From: jmu@ccr.jussieu.fr (Johannes MULLER p73413)
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: debug macro in FWEB?
 
Status: RO
 
From (Pascal-)WEB I was used to define two macros "debug" and "gubed"
which enclosed optional code for debugging purposes. I tried the
following within FWEB to produce similar results:
 
@m debug @(
@m gubed @)
@f debug do
@f gubed while
 
FTANGLE worked fine, but FWEAVEs output was somewhat strange. In some
cases the use of these macros changed the outfit of the whole
WEB-part, also before the first appearance of "debug" in that part.
("part" is that, what is formerly called "module", could we say
"WEB-module" to limit the scope of this predefined name?)
 
It appears that the output is fine, if I preceed and terminate debug code
with newlines, but I would like a more elegant solution. Especially
the "retroaction" of these macros troubles me. Perhaps there is also
a better idea to the @f, the original formatted to "begin" and "end",
which is doubtless better adapted than "do" and "while".
I forgot: my overall language is C++.
 
I had also a look at FWEB's source, there this sort of debugging is done
with #if(DEBUG) ... #endif. Ok, but I prefer a (working) solution of
the above type.
 
Thanks for any suggestions
 
Johannes Mueller
 
From George Thu Oct 01 14:20:59 CDT 1992
Date: Thu, 01 Oct 1992 14:20:59 CDT
From: "George D. Greenwade" <bed_gdg@SHSU.edu>
Reply-To: LitProg@SHSU.edu
To: litprog@SHSU.edu
Subject: CWEB-to-Pascal???
 
Status: RO
 
This came up on another list altogether.
 
 >>> This program should be written in
 >>> eithher Pascal WEB or C WEB for maximum ease of porting.
 
 I can see that using Pascal WEB gives ease of porting, since it is
 processable both by native mode Tangle/Pascal and via Web-to-C,
 but I cannot see how the use of `C' WEB gives such portability;
 surely there does not exist a `CWEB-to-Pascal' utility?  (Also,
 I assume it would require implementation-specific change files
 to be written in C-WEB rather than standard WEB).
 
Does anyone know of such a beast??
 
Regards,   George
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
George D. Greenwade, Ph.D.                            Bitnet:  BED_GDG@SHSU
Department of Economics and Business Analysis         THEnet: SHSU::BED_GDG
College of Business Administration                    Voice: (409) 294-1266
P. O. Box 2118                                        FAX:   (409) 294-3612
Sam Houston State University              Internet:        bed_gdg@SHSU.edu
Huntsville, TX 77341                      bed_gdg%SHSU.decnet@relay.the.net
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
From bjones@cambria.columbus.oh.us Thu Oct 1 23:14:48  1992
Date: Thu, 1 Oct 92 23:14:48
From: bjones@cambria.columbus.oh.us (Bill Jones)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: FWEB for C++ with LaTeX...
 
According to Tero Laakkonen:
Status: RO
 
>
>i wrote to this mailing list about a week ago asking if anyone knew of a
>web that can handle C++.
>
>
>i got several replies;everyone recommended using FWEB.
>
>i managed to compile FWB on my 80386-with-linux096c-and-gcc222, but i
>have some more questions:
 
I have been trying to compile FWEB under linux 0.97.6 and the latest gcc.  I
have been sucessful and fweave will run without core dumps (at least I
haven't had one in my tests on the web sources included with FWEB) but it
will not produce an index of modules or an index of variables and function
calls.  If your version does, please let me know what you've done.  Better
yet, mail me a copy of your system header file and I'll go back to testing.
 
>
>thanks,
>tero.
 
Thanks also,
 
Bill
 
--
----------------------------------------------------------------------------
Bill Jones
bjones@cambria.columbus.oh.us
----------------------------------------------------------------------------
 
From Cameron Thu Oct 1 23:35:39 -0500 1992
Date: Thu, 1 Oct 1992 23:35:39 -0500
From: Cameron Smith <cameron@symcom.math.uiuc.edu>
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: Fix needed for CWEB sample program Makefile
 
Status: RO
 
I'm running a not-quite-curent TeX (the banner line says it's
"CTeX, NeXT Version 3.1a"), so I wasn't aware that the current
version (under UNIX, at least) has been modified to allow
the TeXing of files that don't have extensions.  Apparently the
current TeX, given the command "tex foo", will process a file
"foo" if one exists, and only if there is no "foo" will it
proceed to look for "foo.tex".  You have to explicitly say
"tex foo.tex" if you want the new version to look only at
"foo.tex".
 
Nelson Beebe has kindly alerted me to the fact that this new behavior
breaks the Makefile I'm distributing with my KR-CW-SAMPLE sample CWEB
program: the suffix rules for .tex.dvi and .w.dvi cause the command
"tex calc" rather than "tex calc.tex" to be executed, so if the
executable file "calc" has been built, TeX tries to process it.
The best fix I've thought of is to modify the Makefile as follows:
change the rules for building DVI files, which currently are
 
.tex.dvi:
        $(TEX) $*
 
.w.dvi:
        $(CWEAVE) $*
        $(TEX) $*
 
to use these actions instead:
 
.tex.dvi:
        $(TEX) $<
 
.w.dvi:
        make $*.tex
        make $*.dvi
 
(Note that simply changing "$*" to "$<" works in the .tex.dvi rule,
but in the .w.dvi rule it would cause TeX to process "calc.w".)
 
In a day or two I shall send off to the archives a new version of the
sample program incorporating this change.  If you've tried the program
and you have comments about its use of C, CWEB, make, TeX, or the English
language -- in short, if you have any suggestions for any kind of
improvement -- and you've been putting off sending them to me,
now would be an excellent time to do so.
 
Thanks to Nelson Beebe for drawing my attention to this, and thanks
to the many other users of the program who've sent in helpful comments!
The time you've taken to help improve this sample program is appreciated
by me and also by everyone else who's using it to learn CWEB!
 
--Cameron Smith
  cameron@symcom.math.uiuc.edu
 
From Joachim Fri Oct 2 13:39:27 MEZ 1992
Date: Fri, 2 Oct 92 13:39:27 MEZ
From: Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: Problems with | in text...
 
dan@minster.york.ac.uk wrote:
Status: RO
 
>
> Does anyone have a ready solution to the problem of using | in text
> 'bits' (not modules ... happy?).
 
:-) :-) :-)
 
> I am trying to use xypic with CWEB and
> when I try to produce a stopped arrow with \rto|>\stop TeX naturally
> complains. I suppose I could look through the macros (web) and fix it,
> but I would rather have a ready made solution.
 
Since nobody answered I'll give it a try.
 
Does TeX complain? I think CWEAVE will complain. Actually, I tried it,
CWEAVE told me:
 
    ! Missing '|' after C text. (l. 3)
 
That's because the vertical bar is a special character to CWEAVE, not
to TeX. In fact, TeX will not see the bar anymore, CWEAVE will have it
removed. So, it's unnecessary to look through the web macros -- you
cannot fix it there.
 
I see three possible solutions:
 
 1) Write your graph into another file and \input this file.
	(This is the ``When in doubt, use brute force'' approach.
	[cf. the Turing Award Lecture of Ritchie] )
 
 2) Change xypic so that another character is used instead of the
    vertical bar.
 
 3) Use the CWEB construction which is exemplified below:
 
	@ some text. bla bla.
 
	And now we'll show you the great picture:
 
	|@t\vbox{%
		<insert your xypic code here>
	}@>|
 
	@c
	foo() ...
 
    Ugly, isn't it?
 
    Vertical bars can occur in a TeX string, ie, in stuff between `@t'
    and `@>'. But a ``TeX string should be in C text only'' (this is
    the error message of CWEAVE ;-); so we put the TeX string in vertical
    bars itself which tag restricted C text (for CWEAVE). Since a TeX
    string is enclosed in an \hbox in the woven output, we'll add
    another \vbox. (I assume that xypic stuff must be typeset in
    vertical mode. If it can be typeset in restricted horizontal mode
    one can discard the \vbox.)
 
Enjoy.
 
--
Joachim
 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Joachim Schrod			Email: schrod@iti.informatik.th-darmstadt.de
Computer Science Department
Technical University of Darmstadt, Germany
 
From bjones@cambria.columbus.oh.us Sun Oct 4 2:11:36  1992
Date: Sun, 4 Oct 92 2:11:36
From: bjones@cambria.columbus.oh.us (Bill Jones)
Reply-To: LitProg@SHSU.edu
To: LITPROG@SHSU.edu
Subject: Problems with FWEB v1.23a
 
Status: RO
 
I have been trying to compile FWEB v1.23a under linux 0.97.6 and the latest
GCC (version 2.2.2d7 for those who care).  After getting my config.h,
defaults.mk, and setup.mk files edited correctly, I ran the make bootstrap.
ftangle compiled without incident except for warning that memcpy, memcmp,
strcmp, strcpy, and strlen were being multiply declared.  The resulting
ftangle was called by the makefile to create fweave.  The following
appeared:
 
ftangle /usr/users/bjones/src/fweb/web/fweave -uANSI -mANSI   -mGCC
-=/usr/users/bjones/src/fweb/web/fweave.c
This is FTANGLE [ANSI/Linux version 1.23a (April 13, 1992)].
Reading /usr/users/bjones/src/fweb/web/fweave.web...
 
!!! I'M CONFUSED; this shouldn't happen.  PLEASE REPORT THIS.  At
ini_reserved:  Language should already be defined here.
CPU = 0.6 sec.; REAL = 3.0 sec.  CPU/REAL = 20.7%.
[FTANGLE:  That was a fatal error, my friend.]
make: *** [/usr/users/bjones/src/fweb/web/fweave.c] Error 1
 
I have gone through and recompiled using a number of different flags to GCC
(-ansi always, -traditional sometimes, -m486 occasionally).  I have turned
on the debugging and turned off the optimization but still no luck.
 
Anyone have any pointers on what I can try next?  I am in the process of
trying to compile version 1.22 but am getting numerous parse errors
(something that I also got when trying to compile it on a DECStation) and
since the only extant versions of 1.22 listed on archie are in Europe, I
don't want to keep trying to get new copies unless necessary.
 
Thanks,
 
Bill
 
--
----------------------------------------------------------------------------
Bill Jones
bjones@cambria.columbus.oh.us
----------------------------------------------------------------------------
 
From BEEZER@UPS.EDU Sun Oct 4 11:16:01 -0700 1992
Date: Sun, 4 Oct 1992 11:16:01 -0700 (PDT)
From: BEEZER@UPS.EDU (Rob Beezer)
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: Summary: WEB for the Macintosh
 
Status: RO
 
A while back I inquired about finding a version of the original WEB (for Pascal
source) that would run on the Macintosh.   With courteous assistance and
direction from Jean-Claude Darchen (darchen@cicb.fr), I have found such a thing
(and what appears to be a version of WEB for C on the Mac). For future reference
(and ultimately an FAQ?) here are the results of my search:
 
ftp site:  ftp.uni-stuttgart.de [129.69.1.12]
directory:  /soft/tex/machines/mac/directtex
 
       512 Sep 22 10:40 ./
      1024 Sep 23 10:19 ../
     30798 Apr  7  1992 DiskCopy.hqx
   1012746 Sep 21 14:20 DiskImg1.hqx
   1065629 Sep 21 15:16 DiskImg2.hqx
    929284 Sep 21 16:07 DiskImg3.hqx
    947224 Sep 21 16:45 DiskImg4.hqx
    913067 Sep 21 17:18 DiskImg5.hqx
    942914 Sep 21 17:39 DiskImg6.hqx
   1048740 Sep 21 17:57 DiskImg7.hqx
      1859 Sep 21 18:09 ReadMe
    706129 Sep 21 18:09 TeXShell.hqx
 
DirectTeX is what appears to be a *very* complete version of TeX and Metafont
which runs under MPW (Macintosh Programmers Workbench).  The DiskCopy program is
needed to copy the 7 image files (after they have been unpacked) to diskettes.
Then installation can take place from the diskettes.  When running the
installation, it is necessary to do a custom installation and to ask for
"additional tools" in order to get tangle and weave - they are *not* part of the
"easy install."  I did a complete installation (very time-consuming), and then
installed the extra tools - you might be able to install just the tools using
only disks 1 and 3.
 
The TeXShell appears to be a customized version of MPW to work with DirectTeX.
It (or MPW) is needed to use tangle and weave.  I have only tested tangle on the
standard demo program, knights.web, and it seems to work fine.  There are also
tools called ctangle and cweave, but I have not experimented with them.
 
DirectTeX also lives at ftp.uni-kl.de [131.246.9.95] in /pub/mac/tex/directtex.
 
............................................................................
:   Robert Beezer                   :         Internet:  beezer@ups.edu    :
:   Dept. of Mathematics and CS     :         Voice:     206.756.3564      :
:   University of Puget Sound       :         Fax:       206.756.3500      :
:   Tacoma, WA  98416               :                                      :
............................................................................
 
From Robert Wed Oct 14 15:23:48 MET 1992
Date: Wed, 14 Oct 92 15:23:48 MET
From: Robert Raschke <rtr@cs.tu-berlin.de>
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: WEB with LaTeX ?
 
Status: RO
 
Hello,
 
We're trying to implement a WEB for a new language using Spidery WEB.
The resulting WEB should work with LaTeX. But Spidery WEB only works with
TeX. Does anyone have expierience adapting WEB to LaTeX ? Any hints on
how to rewrite the WEB macros for LaTeX are welcome.
 
		thanks, rob.
--
 
TU-Berlin, Germany
E-Mail : Robert.Raschke@cs.tu-berlin.de
 
From Don Wed Oct 14 15:23:48 MET 1992
Date: Wed, 14 Oct 92 15:23:48 MET
From: Don Hosek <DHOSEK@HMCVAX.CLAREMONT.EDU>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: CWEB-to-Pascal???
 
Status: RO
 
It's not likely to be possible since C provides certain useful
features which are not generally available in Pascal (e.g.,
pointers to functions). On the other hand, we are at a stage
where I don't think that there's a platform which doesn't have C
widely available--it's as close to a universal programming
language as we can get.
 
The one concern might be Ansi C vs. K&R C since the former is not
yet universal, but an Ansi to K&R filter should be relatively
easy to write.
 
-dh
 
From dk-b@minster.york.ac.uk Sun Oct 18 21:19:33  1992
Date: Sun, 18 Oct 92 21:19:33
From: dk-b@minster.york.ac.uk
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: appologies
 
Status: RO
 
I appologise for this message. It shouldn't be posted to the group,
I know, but I couldn't do anything else.
 
My old username dan@minster.york.ac.uk is not existant any more,
so any mail sent to it was probably bounced. I was away for a
few weeks, and noone told me about my old a/c being removed so...
All the LitProg info was lost (well... dumped on a tape).
 
I would like to be re-named to dk-b@minster.york.ac.uk
 
This was a public anouncment.
 
Ta.
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Daniel Kustrin, Computer Science, University of York, England ~
~                    dk-b@minster.york.ac.uk                    ~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
From dk-b@minster.york.ac.uk Mon Oct 19 11:31:38  1992
Date: Mon, 19 Oct 92 11:31:38
From: dk-b@minster.york.ac.uk
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu, LitProg@SHSU.edu
Subject: Re: Problems with | in text...
 
> I see three possible solutions:
Status: RO
 
>
>  1) Write your graph into another file and \input this file.
> 	(This is the ``When in doubt, use brute force'' approach.
> 	[cf. the Turing Award Lecture of Ritchie] )
 
Good idea...
 
>
>  2) Change xypic so that another character is used instead of the
>     vertical bar.
 
Rather not :)
>
>  3) Use the CWEB construction which is exemplified below:
>
> 	@ some text. bla bla.
>
> 	And now we'll show you the great picture:
>
> 	|@t\vbox{%
> 		<insert your xypic code here>
> 	}@>|
>
> 	@c
> 	foo() ...
>
>     Ugly, isn't it?
 
yes.
>
 
I solved it by defining new commands in limbo area. that felt as the best
solution.
 
Ta. (I like the brute force approach.)
>
> --
> Joachim
>
 
Dan
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Daniel Kustrin, Computer Science, University of York, England ~
~                    dk-b@minster.york.ac.uk                    ~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
From dk-b@minster.york.ac.uk Mon Oct 19 11:31:38  1992
Date: Mon, 19 Oct 92 11:31:38
From: dk-b@minster.york.ac.uk
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu, LitProg@SHSU.edu
Subject: Re: Problems with | in text...
 
> I see three possible solutions:
Status: RO
 
>
>  1) Write your graph into another file and \input this file.
> 	(This is the ``When in doubt, use brute force'' approach.
> 	[cf. the Turing Award Lecture of Ritchie] )
 
Good idea...
 
>
>  2) Change xypic so that another character is used instead of the
>     vertical bar.
 
Rather not :)
>
>  3) Use the CWEB construction which is exemplified below:
>
> 	@ some text. bla bla.
>
> 	And now we'll show you the great picture:
>
> 	|@t\vbox{%
> 		<insert your xypic code here>
> 	}@>|
>
> 	@c
> 	foo() ...
>
>     Ugly, isn't it?
 
yes.
>
 
I solved it by defining new commands in limbo area. that felt as the best
solution.
 
Ta. (I like the brute force approach.)
>
> --
> Joachim
>
 
Dan
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Daniel Kustrin, Computer Science, University of York, England ~
~                    dk-b@minster.york.ac.uk                    ~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
From bright@SCTC.COM Tue Oct 20 8:37:11 CDT 1992
Date: Tue, 20 Oct 92 8:37:11 CDT
From: bright@SCTC.COM (David A. Bright)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: Problems with | in text...
 
>dan@minster.york.ac.uk wrote:
Status: RO
 
>>
>> Does anyone have a ready solution to the problem of using | in text
>> 'bits' (not modules ... happy?).
>
 
For text in the "TeX" part of a "bit," I fixed this by modifying CWEB
to accept @| (math break) and output a vertical bar.  In other words,
I added the marked (with ! in col 1) lines in the following bit:
-----
  @ In the \TeX\ part of a module, we simply copy the source text, except that
  index entries are not copied and \cee\ text within \pb\ is translated.
 
  @<Translate the \T...@>= do {
    next_control=copy_TeX();
    switch (next_control) {
      case '|': init_stack; output_C(); break;
      case '@@': out('@@'); break;
!     case math_break:    /* In \TeX\ mode, allow the |math_break| to
!                            appear and use it to produce a vertical bar in
!                            the \TeX\ section. */
!         out('|');
!         break;
      case TeX_string: case xref_roman: case xref_wildcard: case xref_typewriter:
      case module_name: loc-=2; next_control=get_next(); /* skip to \.{@@>} */
        if (next_control==TeX_string)
          err_print("! TeX string should be in C text only"); break;
  @.TeX string should be...@>
      case thin_space:
      case line_break:
      case big_line_break: case no_line_break: case join:
      case pseudo_semi: err_print("! You can't do that in TeX text"); break;
  @.You can't do that...@>
    }
  } while (next_control<format);
-----
 
--
David A. Bright			dab@Bright.MN.ORG	(home)
Secure Computing		bright@SCTC.COM		(work)
 
From root@minster.york.ac.uk Sun Oct 25 04:41:33  1992
Date: Sun, 25 Oct 92 04:41:33
From: root@minster.york.ac.uk
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Subscribe
 
Status: RO
 
uuxqt cmd (rmail dk-b ) status (FAILED)
	-------Error output-------
rmail: error writing to /usr/spool/mail/dk-b. No space left on device
 
	-------Copy of input------
>From LitProg@SHSU.edu Mon Oct 19 11:31:38 1992
Errors-To: LP-Mgr@SHSU.edu
X-ListName: Literate Programming Discussion List <LitProg@SHSU.edu>
Received: from minster.york.ac.uk by Niord.shsu.edu (MX V3.1B) with SMTP; Mon,
          19 Oct 1992 07:26:15 CDT
From: dk-b@minster.york.ac.uk
Reply-To: LitProg@SHSU.edu
Date: Mon, 19 Oct 92 11:31:38
Message-ID: <swordfish.719497535@minster.york.ac.uk>
Subject: Re: Problems with | in text...
To: LitProg@SHSU.edu, LitProg@SHSU.edu
In-Reply-To: Joachim Schrod's message of Fri, 2 Oct 92 13:39:27 MEZ
Organization: University of York Computing Department
 
> I see three possible solutions:
>
>  1) Write your graph into another file and \input this file.
> 	(This is the ``When in doubt, use brute force'' approach.
> 	[cf. the Turing Award Lecture of Ritchie] )
 
Good idea...
 
>
>  2) Change xypic so that another character is used instead of the
>     vertical bar.
 
Rather not :)
>
>  3) Use the CWEB construction which is exemplified below:
>
> 	@ some text. bla bla.
>
> 	And now we'll show you the great picture:
>
> 	|@t\vbox{%
> 		<insert your xypic code here>
> 	}@>|
>
> 	@c
> 	foo() ...
>
>     Ugly, isn't it?
 
yes.
>
 
I solved it by defining new commands in limbo area. that felt as the best
solution.
 
Ta. (I like the brute force approach.)
>
> --
> Joachim
>
 
Dan
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Daniel Kustrin, Computer Science, University of York, England ~
~                    dk-b@minster.york.ac.uk                    ~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
From Marcus Wed Nov 4 13:54:44 +0100 1992
Date: Wed, 4 Nov 92 13:54:44 +0100
From: Marcus Speh <marcus@ips102.desy.de>
Reply-To: LitProg@SHSU.edu
To: Literate Programmers <litprog@shsu.edu>
Subject: Announcement: FWEB FAQ ready
 
  Nearly one month ago, I finished the first LitProg FAQ for FWEB.
Status: RO
 
Its text version will follow this posting, since I will not
have time for an update before late December and the LitProg
mail seems to reach me again after a delay of more than a month.
 
  There are also *.texinfo, *.ps, *.dvi and *.info versions of it
which I hope will be available from FILESERV soon. So far, I
have not managed to get into contact with George Greenwade, though.
 
  Though the text was checked by some people from the list,
I still changed it here and there - please accept my apologies
for any remaining error.
 
  Comments, complaints and suggestions concerning this FAQ will
be very much appreciated.
 
My thanks for help with this edition of the FAQ
go to Rob Beezer, Joey Gibson and Don Petcher.
 
--Marcus
 
PS. Unfortunately, there is no anonymous FTP server at my site -
    on request I will send the Texinfo (30 kB), Info (39 kB) or
    PostScript (200 kB) files to you. The PS and Info (for Emacs)
    files also have an index.
 
From Marcus Wed Nov 4 14:08:23 +0100 1992
Date: Wed, 4 Nov 92 14:08:23 +0100
From: Marcus Speh <marcus@ips102.desy.de>
Reply-To: LitProg@SHSU.edu
To: Literate Programmers <litprog@shsu.edu>
Subject: FWEB-FAQ (10/92)
 
Status: RO
 
**************************************************************************
*                                                                        *
*                 FWEB in Questions and Answers (10/92)                  *
*                                                                        *
*          [complaints to: Marcus Speh, marcus@ips102.desy.de]           *
*                                                                        *
**************************************************************************
 
   This text file contains frequently asked questions and their
answers concerning the FWEB system of "Literate Programming" from the
LitProg mailing list, until October 1992. Later, this file might
become part of a FAQ for LitProg.
 
   If you are using the GNU Emacs editor, you may want to put the
file `FAQ.1992-10.INFO' into your Info tree. You can also just print
the PostScript file `FAQ.1992-10.PS' or process the DVI file
`FAQ.1992-10.DVI'. All these were generated from the Texinfo source
file `FAQ.1992-10.TEXI'.
 
   If you are not yet subscribed to LitProg, but you are interested,
send a MAIL message to `LISTSERV@SHSU.BITNET, or listserv@shsu.edu,
or LitProg-Request@shsu.edu' stating in the text of the MAIL:
`SUBSCRIBE LITPROG  "myname"', where `myname' is your name.
 
   [NB: Thanks to Rob Beezer, Joey Gibson and Don Petcher for help
with this number of the FAQ.]
 
* Menu:
 
* Introduction - What Is What::
* FWEB sources/Manual/Installation::
* Common Things People Want To Do::
* General Questions/Bugs/Problems::
* Index::
 
 -- The Detailed Node Listing --
 
Introduction - What Is What
 
* [0] What is in here?::
* [1] How can I contribute?::
* [2] What is FWEB?::
 
FWEB sources/Manual/Installation
 
* [3] Where can I get FWEB from?::
* [4] What is the latest version of FWEB?::
* [5] Where can I get FWEB for the PC?::
* [6] Is FWEB small enough to compile on a PC?::
* [7] Has anyone installed FWEB on an HP machine?::
 
Common Things People Want To Do
 
* [8] Can I use LaTeX with FWEB?::
* [9] Which WEB shall I use for C++ ?::
* [10] Does FWEB support Makefiles?::
* [11] FWEB with the GNU Emacs editor::
* [12] How do I turn off double sided pagination in FWEB?::
* [13] Can I define (and format) new reserved words?::
* [14] Symbolic debugging of FWEB files::
* [15] Automatic referencing in documentation sections::
* [16] How do I make a title appear on the contents page?::
 
[16] How do I make a title appear on the contents page?
 
* limbo.material::
* limbo.sty::
* time.tex::
 
General Questions/Bugs/Problems
 
* [17] What if I think I found a bug in FWEB?::
* [18] Why is FWEB so huge?::
* [19] Problem opening a new output file for tangled code?::
* [20] Maximum number of equal characters in different section names?::
* [21] What is the difference between CWEB and FWEB?::
 
Introduction - What Is What
***************************
 
* Menu:
 
* [0] What is in here?::
* [1] How can I contribute?::
* [2] What is FWEB?::
 
[0] What is in here?
 
   For this first version of Frequently Asked Questions and Answers
on FWEB from the LitProg mailing list, most answers are directly
taken from the postings, with very little moderation from my side.
The original postings are archived at `niord.shsu.edu' in directory
`[FILESERV.LITPROG]'.
 
FAQs are not manuals.
---------------------
 
   Most of the stuff in FAQs *is* in the manual, but people either
don't read the manual, or it is too hidden to be found (the FWEB
User's Manual currently has more than 200 pages). Thus the FAQ
provides, if you will, an index to the manual for those questions
that come up regularly. Where possible, sections of the User's Manual
for the last release (FWEB version 1.23a) are referred to by their
section numbers in square brackets, as in "[M-10.2]".
 
[1] How can I contribute?
 
   If you think that structure or content of this part of the FAQ can
be improved, or if you think you have discovered an error, either
write to me or post your comment to LitProg (with `FWEB-FAQ (10/92)'
somewhere in the `Subject' line).
 
   If you are interested in participating in the FAQ for LitProg,
contact George D. Greenwade (E-mail: `bed_gdg@shsu.edu' [Internet],
`bed_gdg@shsu' [Bitnet], `shsu::bed_gdg' [DECnet]), who maintains
LitProg as well as the `FILESERV' repository at Sam Houston State
University (*thanks a lot, George!*).
 
[2] What is FWEB?
 
The WEB system.
---------------
 
   In D.E. Knuth's [author of the original WEB, coauthor of CWEB] own
words, [M-2.4]
 
     "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 (1) 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."
 
FWEB - a multilingual WEB variant.
----------------------------------
 
   FWEB which is being supported and upgraded by John Krommes is a
substantial extension of CWEB that works for C, C++, Fortran,
Fortran90, and Ratfor, and with some support for WEBbing collections
of TeX macros). It runs on most platforms: VMS, PC, UNIX, and pretty
much anything that the GNU C compiler (GCC) is supported for.
 
   John Krommes [M-1]:
 
     "The principal design contributions to this version of WEB are
 
     1) the concept of a current language,
     so that one can process code written in multiple languages
     in the same WEB run;
 
     2) new production rules for Fortran, Ratfor, and TeX (and some
     modifications of Levy's (2) rules for C;
 
     3) a C-like built-in macro preprocessor;
 
     4) the ability to directly translate Ratfor into Fortran.
 
     In addition, many miscellaneous details have been changed and a variety of
     convenience features has been added."
 
   ---------- Footnotes ----------
 
   (1)  [which itself is written in Knuth's original Pascal WEB -MS]
 
   (2)  [Silvio Levy and D.E. Knuth are the authors of the C variant
of WEB, called CWEB -MS]
 
FWEB sources/Manual/Installation
********************************
 
* Menu:
 
* [3] Where can I get FWEB from?::
* [4] What is the latest version of FWEB?::
* [5] Where can I get FWEB for the PC?::
* [6] Is FWEB small enough to compile on a PC?::
* [7] Has anyone installed FWEB on an HP machine?::
 
[3] Where can I get FWEB from?
 
   You can get FWEB (version 1.23a) via anonymous FTP either from
`lyman.pppl.gov', in directory `pub/fweb/v1.23':
 
       /anonymous@lyman.pppl.gov:/pub/fweb/v1.23:
 
       -rwxr-xr-x  1 4145     589          8396 Apr 14 22:45 INSTALL.FWEB*
       -rw-r--r--  1 4145     589         18967 Apr 14 22:45 Makefile
       -rw-r--r--  1 4145     589          3068 Apr 14 22:45 READ_ME.FWEB
       -rw-r--r--  1 4145     589            94 Apr 14 22:45 TAR.exclude
       -rw-r--r--  1 4145     589       1419071 Apr 14 22:45 TAR.v1.23.Z
       drwxr-sr-x  2 4145     589           512 Apr 14 22:45 demos/
       drwxr-sr-x  2 4145     589          1536 Apr 15 18:06 manual/
       ...
 
   Or from `niord.shsu.edu', in directory `[FILESERV.FWEB]':
 
       /anonymous@niord.shsu.edu:/ANON_DEV:/FILESERV/FWEB:
 
       FWEB-V1_23.TAR_Z;1       2772  21-JUL-1992 12:28 (RWE,RWED,RE,RE)
       FWEB-V1_23.ZIP;1         2370  21-JUL-1992 13:10 (RWE,RWED,RE,RE)
       ...
       INTRO.PS;1                175  22-JUL-1992 16:52 (RWE,RWED,RE,RE)
       ...
 
The PostScript file `INTRO.PS' gives a short introduction to Literate
Programming in general, combined with a simple Fortran example
program in FWEB.
 
[4] What is the latest version of FWEB?
 
   The latest version of FWEB is 1.23a - version 1.23b is assumed to
contain mainly bug fixes, such as the one referred to in [19].
 
   The latest version can be retrieved via anonymous FTP as described
in [3].
 
[5] Where can I get FWEB for the PC?
 
   Hans-Hermann Bode <HHBODE@dosuni1.bitnet> announced his
precompiled files for the PC. They can be retrieved from
 
   `anonymous@niord.shsu.edu:[FILESERV.PC-WEB]':
 
     00INDEX.;1                2  23-JUL-1992 16:26:54.85
     ...
     FWEBEXE.README;1          6  11-JUN-1992 00:15:18.00
     FWEBEXE.READ_ME;1        42   9-JUN-1992 12:13:34.00
     FWEBEXE.ZIP;1          1525  23-JUL-1992 16:06:33.26
     FWEBEXE.ZIP-LST;1         2  23-JUL-1992 16:22:24.54
     ...
 
   or in Europe from `dione.rz.uni-osnabrueck.de' (in directory:
`pub/msdos/tex/web'), and from `ftp.uni-stuttgart' (in directory
`soft/tex/web/cweb').
 
   PC executables can also be obtained from FWEB's official
distribution site `lyman.pppl.gov' (see [3]) buried deep down in
`pub/fweb/v1.23/boot/ibm/pc':
 
      ...
      312 -rw-r--r-x  1 4145     589        304636 Apr 15  1992 ftangle.exe*
      272 -rw-r--r-x  1 4145     589        268878 Apr 15  1992 ftangle0.exe*
      280 -rw-r--r-x  1 4145     589        277032 Apr 15  1992 fweave.exe*
      ...
 
   `ftangle0.exe' is ftangle without the Ratfor preprocessor (see
[18]).
 
[6] Is FWEB small enough to compile on a PC?
 
   Yes.  It is known to compile with MicroSoft C 6.00 and Turbo C.
 
   On LitProg, Tero Laakkonen <laakkonen@cc.helsinki.fi> reported
that FWEB also compiles under linux-096c with gcc-2.2.2 on a 80386.
 
   In general, John Krommes offers support for porting FWEB to new
systems - contact <krommes@lyman.pppl.gov>.
 
[7] Has anyone installed FWEB on an HP machine?
 
   Either get GCC (the GNU C Compiler), or use (if you have it) the
unbundled Hewlett-Packard ANSI C Compiler, which is invoked with `cc
-Aa -D _HPUX_SOURCE' (as `cc(1)' explains in detail). Then `make'
should proceed without any problems.
 
Common Things People Want To Do
*******************************
 
* Menu:
 
* [8] Can I use LaTeX with FWEB?::
* [9] Which WEB shall I use for C++ ?::
* [10] Does FWEB support Makefiles?::
* [11] FWEB with the GNU Emacs editor::
* [12] How do I turn off double sided pagination in FWEB?::
* [13] Can I define (and format) new reserved words?::
* [14] Symbolic debugging of FWEB files::
* [15] Automatic referencing in documentation sections::
* [16] How do I make a title appear on the contents page?::
 
[8] Can I use LaTeX with FWEB?
 
   In principle, you may use any package of TeX macros you like.
 
   As for LaTeX which is probably the package most widely used, you
have to do two things at minimum [M-19.7.22]:
  1. Use the command-line option `-PL' (or place them into your init
     file `~/.fweb').
 
  2. Process fweave's output with `latex' instead of `tex'.
 
   Since FWEB overrides the `\output' routine of LaTeX, some clever
page layout facilities will not work - e.g. there are no floating
bodies: while the `table' environment is lost, the `tabular'
environment still works. See [M-19.22] for details.
 
[9] Which WEB shall I use for C++ ?
 
   In the opinion of many people, FWEB is the best CWEB available. It
also supports C, C++, F90, Ratfor, Ratfor-90, and writing TeX macros
wherein (f)tangle produces `.sty' files.
 
[10] Does FWEB support Makefiles?
 
   Not yet. This is planned, though [M-10.2].
 
[11] FWEB with the GNU Emacs editor
 
   If you are developing your FWEB programs using the GNU Emacs
editor, there is `web-mode.el' by Mark Motl <motl@cs.tamu.edu>; the
corresponding GNU Emacs "mode" can deal with WEB, CWEB and FWEB.
It is capable of many things, including jumping to sections and
modules, inserting (and previewing) index entries, hiding and
exibiting the body of a `.web' file (showing the tree), inserting,
quoting, and consistently renaming modules etc. It supports change
files and journal files. It is especially useful when dealing with
large `.web' files.
For more information, you may obtain a User's Manual and the source
files from the author or from Bart Childs <bart@cs.tamu.edu>.
 
[12] How do I turn off double sided pagination in FWEB?
 
   In FWEB, the command `\identicalpageheadstrue' [to be put in the
so called "limbo" part of your FWEB file] makes all page headers
identical, but it puts the page numbers in the upper LEFT corner and
the section numbers in the upper RIGHT corner. As Don Petcher pointed
out, to do it the other way around you can either change the macro
`\normaloutput' in `fwebmac.sty' as indicated:
 
     \def\normaloutput#1#2#3{\shipout\vbox{
       \ifodd\pageno\hoffset=\pageshift\fi
       \vbox to\fullpageheight
        {
         \iftitle\global\titlefalse
         \else\hbox to\pagewidth
             {\vbox to10pt{}%
             \ifidenticalpageheads#3\else  % THIS WAS ORIGINALLY #2 <---------
                 \ifodd\pageno
                     #3% Makes page numbers alternate left \& right.
                 \else#2\fi
             \fi
             }%
         \fi
         \vfill#1
         }}% Parameter |#1| is the page itself
       \global\advance\pageno by1}
 
or you can include the above version in your TeX file as a
redefinition of the macro.
 
[13] Can I define (and format) new reserved words?
 
   Assume you want to declare `far' to indicate a function pointer:
     void far (*reset)();
 
In order for fweave to treat `far' like a reserved word in C (or any
of the language supported by FWEB), say
       @f far int
 
   somewhere in your source. Weave does not by default recognize
`|far|' as a reserved word (this property extends to cweave as well).
 
   The formatting with `@f' is *language-specific*; it only applies
to identifiers used in the language in force at the point the format
statement is encountered. This feature allows a WEB programmer to
invent new reserved words and/or to unreserve some reserved
identifiers [M-11.12].
 
[14] Symbolic debugging of FWEB files
 
   FWEB inserts sync lines `#line 137 foo.web' into the code, so any
compiler/debugger worth its money should respect them. (Including
those running under MS-DOS.)
 
   NB: well thought out code needs less time debugging - comments like
"since I've started using *WEB, my debugger has just been collecting
dust..." were reported from many people on the list.
 
[15] Automatic referencing in documentation sections
 
   To produce the woven output
     For info on porting, see section 5
 
   you can cheat and, somewhere after you start the module, just
throw in something like `\let\refporting=\modno' and then reference
it by `see section~\refporting'.
 
   Another way to refer to a section from another section is
described in [M-19.7.18]; write
     @ Porting.
     \modlabel{PORTING}
 
     ... more ...
 
     @ Another section.
     \modlabel{ANOTHER}
 
     For info on Porting, see \WEBsection{PORTING}.
 
   `section' is inserted automagically. In the same fashion, the
label `ANOTHER' allows to refer to that section number.
 
[16] How do I make a title appear on the contents page?
 
   Bart Childs <bart@cs.tamu.edu> contributed three short files to
solve that problem (the listings will disappear here once the full
`web-mode.el' distribution is available from FILESERV):
 
   * `limbo.material' may be used as the initial skeleton for all WEB
     files. There is a line containing `\def\title' which should be
     modified to include the `title'. Also note that the first few
     lines are to encourage a little more documentation about the
     source. A few lines further into this is a similar convenience to
     add an abstract that will appear on the cover page too.
 
   * `limbo.sty' is a convenient place to record macros that are
     commonly used in WEB files.
 
   * `time.tex', required by `limbo.material'.
 
* Menu:
 
* limbo.material::
* limbo.sty::
* time.tex::
 
`limbo.material'
----------------
 
     -----------------------  limbo.material ------------------
     %
     % ??????.web,   ?fweb version 1.23
     % Author
     % Address
     % e-mail and phone
     %
     %   LIMBO MATERIAL
     %
     \input limbo.sty
 
     \def\title{{\tt }}
 
     %% Comment the previous and uncomment this if you don't use web-mode
     %%\def\title{{\tt ?? I need a Title ??}}
 
     %%% begin Bottom of Contents Page macro
     \def\botofcontents{\vskip 0pt plus 1fil minus 1.5in
     {\bigskip\parskip6pt plus2pt \parindent20pt
     %% begin abstract
     \vskip0.5in
     \noindent{\bf Abstract. }\it
 
     }%% end abstract
 
     %% BC often puts this in as a comment about pre-release versions ...
 
     %\vskip0.5in
     %{\vfill\it %% comments on anything else ????
     %
     %\vfil}% end of comments on anything else
     \vfil
       \rightline{My Name}% You can personalize your output here, for example.
       \rightline{\today     }% today.tex should be preloaded, input it if not
       \rightline{\miltime   }% time.tex  should be preloaded, input it if not
 
     }%      end of botofcontents
 
     %   END OF LIMBO MATERIAL
     %
     %
     %   BEGINNING OF WEB
     %
 
     %% Delete the next line after appropriate substitution.
     %% In fweb's you want an @c, @c++, @n, @n9, or @Lx at this point
 
     @* First Module.
 
     @* Index.
 
`limbo.sty'
-----------
 
     ------------------------  limbo.sty -------------------------
     % \input today %%%%% How Ridiculous, preload it!!!!!!!!!
     \font\ninett=cmtt9
     \font\ninerm=cmr9
     \let\mc=\ninerm % medium caps for names like UNIX
     \font\Csc=cmcsc10 % Computer Modern Computer Small Caps
     \def\PASCAL{{\rm Pascal}}% Does very little
     \def\WEB{{\ninett WEB}}%  use like \WEB{}  to make space significant
     \let\web=\WEB \def\FWEB{{\ninett FWEB}} \let\fweb=\FWEB
     \def\Fortran{{\Csc Fortran}} \def\Cee{{\bf C}}
     \def\Unix{{\mc UNIX}}  \let\unix=\Unix
     \def\BSl{{\rm\char'134}} \def\<{$\langle\,$} \def\>{$\,\rangle$}
     %
     %%% begin Top of Contents Page macro
     %
     \def\topofcontents{\hsize 6in
       \vglue -30pt plus 1fil minus 1.5in
       \centerline{\title}
       \vskip 15pt
       \centerline{\today}
     \bigskip \vfill
       \def\?##1]{\hbox to 1in{\hfil##1.\ }}}% end of topofcontents
 
`time.tex'
----------
 
     --------------------------  time.tex  ----------------------
     \newcount\milhours\newcount\minutes\newcount\hours
     \def\thetime{\milhours=\time
     \divide\milhours by 60
     \minutes=\milhours
     \multiply \minutes by -60
     \advance\minutes by \time
     \hours=\time \divide\hours by 60
     \ifnum \hours>12 \advance \hours by -12 \fi
     \the\hours:\ifnum \minutes > 9 \the\minutes \else 0\the\minutes \fi}
 
     \def\miltime{\milhours=\time
     \divide\milhours by 60
     \minutes=\milhours
     \multiply \minutes by -60
     \advance\minutes by \time
     \the\milhours:\ifnum\minutes>9 \the\minutes\else 0\the\minutes \fi}
 
General Questions/Bugs/Problems
*******************************
 
* Menu:
 
* [17] What if I think I found a bug in FWEB?::
* [18] Why is FWEB so huge?::
* [19] Problem opening a new output file for tangled code?::
* [20] Maximum number of equal characters in different section names?::
* [21] What is the difference between CWEB and FWEB?::
 
[17] What if I think I found a bug in FWEB?
 
   John Krommes <krommes@pppl.lyman.gov> actively supports FWEB -- he
must be considered the ultimate source of wisdom.
 
   Once you think you've found a bug, put it out on the list. If
nobody responds, cut your file down to the smallest subfile that
still exhibits the problem you encountered. Then you may contact John.
 
[18] Why is FWEB so huge?
 
   Most of FWEB's size can be attributed to the need of supporting
vastly different languages.  The input routines for a free form
language are not usable for Fortran and vice versa.  Furthermore,
FWEB has a Ratfor processor build in (which is a *big* plus, though
it is not strictly related to literate programming).
 
   If you do not want the Ratfor preprocessor, you can make a smaller
`ftangle' with the option `LOAD\_RATFOR=0' (see the file
`web/ratfor0.web' of the FWEB distribution, and [5]).
 
[19] Problem opening a new output file for tangled code?
 
   If you're using FWEB's `@o' option in order to open a new output
file for tangled code (with local scope - i.e. for the duration of
the current section only [M-11.21]), you may see output looking like
this:
 
     > ftangle test
     This is ScRaMbLeD FTANGLE [SunOS/UNIX version 1.23a (April 13, 1992)].
     Reading test.web... *1 *4 *6
     Writing the output file(s):  (test.c)(getop.hQmSWs)
     Done.
     CPU = 0.3 sec.; REAL = 0.8 sec.  CPU/REAL = 45.0%.
     [FTANGLE:  No errors were found.]
 
   with spurious characters in the output file names.
 
   This is a bug which will be fixed in FWEB version 1.23b.
 
Note added in proof
...................
 
   Aside the list, Don Petcher reports a more specific version of the
problem (this seems to affect both the local `@o' and the global
scope command `@O'):
If you change output files with the `@O' command (or the `@o' command)
and the second filename is shorter than the first, then the second
filename gets spurious characters added.
 
   E.g. creating `*.cc' files and `*.h' files, the `*.h' file always
gets an extra character after the first writing to the `*.cc' file. A
temporary cludge is obvious - add an extra character to the `*' part
of the `*.h' file. So your file names don't go together well, but you
escape the problem.
 
[20] Maximum number of equal characters in different section names?
 
   FWEB may have problems distinguishing section names, if one of
them is an exact subset of a longer name rather than a length.
 
[21] What is the difference between CWEB and FWEB?
 
   See [M-19.8], Appendix H, for a short list comparing these two
variants of the WEB system.
 
From Joachim Thu Nov 5 11:10:16 MEZ 1992
Date: Thu, 5 Nov 92 11:10:16 MEZ
From: Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>
Reply-To: LitProg@SHSU.edu
To: marcus@ips102.desy.de
Subject: Re: Announcement: FWEB FAQ ready
 
You wrote:
Status: RO
 
>
>   Nearly one month ago, I finished the first LitProg FAQ for FWEB.
 
Thanks for your effort.
 
> PS. Unfortunately, there is no anonymous FTP server at my site -
>     on request I will send the Texinfo (30 kB), Info (39 kB) or
>     PostScript (200 kB) files to you. The PS and Info (for Emacs)
>     files also have an index.
 
Please do either send it to me or put it via anonymous ftp on
ftp.th-darmstadt.de, directory pub/incoming (sending me a short notice
in addition).
 
I'll transfer it within one day to
 
 -- ftp.th-darmstadt.de [130.83.55.75]
    directory pub/tex/src/webware
 
and to
 
 -- ftp.uni-stuttgart.de [129.69.1.12]
    directory soft/tex/???	% there where the other fweb stuff is...
 
It will also be no problem to install an automatic distribution
mechanism for the future. Mention it in your mail if you want.
 
I've CC'ed this message to the LitProg list. (This is the reason I
write in English.) Just as an information that the FAQ will be
available on anon ftp archives RSN.
 
--
Joachim
 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Joachim Schrod			Email: schrod@iti.informatik.th-darmstadt.de
Computer Science Department
Technical University of Darmstadt, Germany
 
From Ken Thu Nov 05 15:39:49 -0500 1992
Date: Thu, 05 Nov 92 15:39:49 -0500
From: Ken Latta <klatta@tdis.icpsr.umich.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: Announcement: FWEB FAQ ready
 
Status: RO
 
Please send the postscript version to klatta@merit.edu
Thanks.
 
From jmu@ccr.jussieu.fr Fri Nov 6 10:18:08 +0100 1992
Date: Fri, 6 Nov 92 10:18:08 +0100
From: jmu@ccr.jussieu.fr (Johannes MULLER p73413)
Reply-To: LitProg@SHSU.edu
To: Litprog@shsu.edu
Subject: FWEB-FAQ cludge does not work
 
Status: RO
 
Hello,
I was very glad to see a cludge in the just posted FWEB FAQ concerning
spurious characters in files output by @o. I added one 'x', I added
'xx' to the names of my .h files... it does not work...
What a pity! Let's wait for 1.23b...
 
-- Johannes
 
From jmu@ccr.jussieu.fr Fri Nov 6 10:21:44 +0100 1992
Date: Fri, 6 Nov 92 10:21:44 +0100
From: jmu@ccr.jussieu.fr (Johannes MULLER p73413)
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: Excuses
 
OH! Excuse me, in my posting FWEB-FAQ cludge... you have to read:
Status: RO
 
...spurious characters in file-NAMES output by @o (rather than FILES).
 
-- Johannes
 
From Cameron Fri Nov 6 23:16:16 -0600 1992
Date: Fri, 6 Nov 1992 23:16:16 -0600
From: Cameron Smith <cameron@symcom.math.uiuc.edu>
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: New version of CWEB sample program
 
Status: RO
 
Hello, everyone!
My, it's nice to have LITPROG back in service again!
 
I sent the message below a couple of weeks ago, but it bounced back
from the list server, and I've been waiting for some indication
that the list was back up to re-send it.  Yesterday I saw a
posting in comp.text.tex from George Greenwade, and today I started
receiving mail from LITPROG again, so I guess things are getting
back to normal.
 
As explained below, I've created a new version of my CWEB sample
program based on the Kernighan and Ritchie RPN calculator example.
I've checked, and it's available now from the Niord archive, via
FTP and FILESERV.  The new version is compatible with CWEB version
2.8, and the Makefile has been improved.  Anyone actually using this
as a "template" for his/her own CWEB programming should get the new
version.
 
Regards--
--Cameron Smith
  cameron@symcom.math.uiuc.edu
 
=== Original message follows:
 
> From cameron Thu Oct 22 23:12:15 1992
> To: litprog@shsu.edu
> Subject: New version of CWEB sample program
 
Well, CWEB has changed again (version 2.8 now), and so it's time
again for an update to the K&R sample calculator program.
This new version incorporates changes to the Makefile to work
with new versions of TeX (in contrast to former behavior, the
command "tex calc" will now run TeX on the binary file "calc"
if it exists, instead of forcing the name to be extended to
"calc.tex"), and to work better with certain versions of the
make utility.  It also uses "\secno" instead of "\modno" to be
consistent with the new nomenclature in CWEB.  As before, the
CWEB changes once again mean that old versions of "calc.w" won't
work with the new CWEB, nor will the new version work with the
old CWEB.  As before, the new KR-CW-sample release includes
versions of "calc.w" that do work with older CWEB's, for those
who want the package (for the Makefile enhancements) but don't
want to (or aren't authorized to) update CWEB at their sites.
 
By the way, thanks again to Nelson Beebe, who made several
helpful suggestions on improving the Makefile.
 
--Cameron Smith
  cameron@symcom.math.uiuc.edu
 
From Marcus Sat Nov 7 16:48:41 +0100 1992
Date: Sat, 7 Nov 92 16:48:41 +0100
From: Marcus Speh <marcus@ips102.desy.de>
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: RE: FWEB-FAQ cludge does not work
 
>>>>> On Fri, 6 Nov 92 10:18:08 +0100, Johannes Muller said:
 
Status: RO
 
> I was very glad to see a cludge in the just posted FWEB FAQ concerning
> spurious characters in files output by @o. I added one 'x', I added
> 'xx' to the names of my .h files... it does not work...
> What a pity! Let's wait for 1.23b...
 
   I apologize for having presented what I thought was a "cludge"
in the FAQ for FWEB (question [19]).
 
   In fact it seems as if this bug is pretty much machine dependent.
The way out which was in the FAQ (adding characters to the name part
of the secondary output file) works for Don Petcher on his
NeXT workstation.
 
   Stirred up by Johannes' complaint Don and I tried a couple of
silly programs on his NeXT, on a HP9000, on an Apollo 700 and on a
Sun Sparc- the result is that none of the machines behaves the same
with the programs we tried. The Apollo does not exhibit the bug at
all, for the NeXT Don's cludge works. The HP accepts output file
names "g" and "g." but produces spurious characters for "g.h" - the
Sun only accepts "g" but not "g." and "g.h".
 
   I will try to get into contact with John Krommes about this
problem - the corresponding section of the FAQ will be revisited
for its next edition (late December, I hope).
 
--Marcus
 
  Marcus Speh                      INTERnet <marcus@ips102.desy.de>
  II. Institut f. Theor. Physik    BITnet   <I02MSP@DHHDESY3>
  Luruper Chaussee 149             DECnet   <13313::SPEH>
  2000 Hamburg 50/Germany   Tel.(040)8998-2260  FAX:(040)8998-2267
 
From Marcus Sat Nov 7 16:52:12 +0100 1992
Date: Sat, 7 Nov 92 16:52:12 +0100
From: Marcus Speh <marcus@ips102.desy.de>
Reply-To: LitProg@SHSU.edu
To: Literate Programmers <litprog@shsu.edu>
Subject: FWEB FAQ will be available through Anon FTP soon
 
    If you have access to FTP, please do not send requests for the
    FAQ anymore. The communication problem with GDG has been resolved.
    The files have been downloaded at FILESERV and at the European
    servers ftp.imada.ou.dk in directory pub/faq (see also the recent
    posting by J. Schrod).
 
    For FILESERV, George Greenwade will post an announcement on
    LitProg soon.
 
    --Marcus
 
  Marcus Speh                      INTERnet <marcus@ips102.desy.de>
  II. Institut f. Theor. Physik    BITnet   <I02MSP@DHHDESY3>
  Luruper Chaussee 149             DECnet   <13313::SPEH>
  2000 Hamburg 50/Germany   Tel.(040)8998-2260  FAX:(040)8998-2267
 
From George Sat Nov 07 15:54:17 CST 1992
Date: Sat, 07 Nov 1992 15:54:17 CST
From: "George D. Greenwade" <bed_gdg@SHSU.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: RE: New version of CWEB sample program
 
Status: RO
 
On Fri, 6 Nov 1992, Cameron Smith <cameron@symcom.math.uiuc.edu> posted
about the new version of his CWEB sample program.  It's on FILESERV/Niord
for your access (my thanks to Cameron for getting it here).
 
To retrieve it from FILESERV, include:
 SENDME KR-CWEB-SAMPLE
in the body of a mail message to FILESERV@SHSU.BITNET (FILESERV@SHSU.edu). 
This will send you the 9 files involved in the sample.  For anonymous ftp
retrieval from Niord.SHSU.edu (192.92.115.8), the files are available
individually, as a compressed Unix tar archive, or as a ZIP archive
(KRCWSAMP.[TAR_Z][ZIP]).
 
Regards,   George
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
George D. Greenwade, Ph.D.                            Bitnet:  BED_GDG@SHSU
Department of Economics and Business Analysis         THEnet: SHSU::BED_GDG
College of Business Administration                    Voice: (409) 294-1266
P. O. Box 2118                                        FAX:   (409) 294-3612
Sam Houston State University              Internet:        bed_gdg@SHSU.edu
Huntsville, TX 77341                      bed_gdg%SHSU.decnet@relay.the.net
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
From ajcd@dcs.ed.ac.uk Mon Nov 9 14:24:09 GMT 1992
Date: Mon, 9 Nov 92 14:24:09 GMT
From: ajcd@dcs.ed.ac.uk
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Current research?
 
Status: RO
 
I am currently preparing a survey of Literate Programming systems and current
research into Literate Programming, to present at a colloquium. I would like to
hear about any published research into literate programming or visual
presentation of programs which I do not have in my bibliography; the
bibliography currently includes all of Nelson Beebe's literate programming
bibliography, and the entries from:
 
@Article{smith:bib,
    author	 = "Lisa M.~C.~Smith and Mansur H.~Samadzadeh",
    title	 = {An Annotated Bibliography of Literate Programming},
    journal	 = sigplan,
    year	 = 1991,
    volume	 = 26,
    number	 = 1,
    pages	 = "14--20",
    month	 = jan
}
 
I am particularly interested in recent and ongoing work; if you know of any
papers or information which is available by ftp or mail, or any references
which are not in the bibliographies above, please mail me.
 
a.
--
Angus Duggan, Department of Computer Science,	| I'm pink, therefore I'm Spam.
University of Edinburgh, JCMB,			| JANET:  ajcd@uk.ac.ed.dcs
The King's Buildings, Mayfield Road,		| VOICE:  (UK) 031 650 5126
Edinburgh, EH9 3JZ, Scotland.	                | INET: ajcd@dcs.ed.ac.uk
 
From hammons@phys.udallas.edu Mon Nov 9 10:11:29 -0600 1992
Date: Mon, 9 Nov 1992 10:11:29 -0600
From: hammons@phys.udallas.edu
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re:  Announcement: FWEB FAQ ready
 
Status: RO
 
Please send the postscript version of the FWEB FAQ to me at
 
        hammons@phys.udallas.edu
 
regards,
 
-- Bud Hammons
-- Charles ("Bud") Hammons               voice:     (214)721-5032
-- University of Dallas      Internet:   hammons@phys.udallas.edu
-- 1845 East Northgate Drive             hammons@cse.uta.edu
-- Irving, TX 75062-4799     CompuServe: 71160,3220
 
From m-lp9966@jed.cs.nyu.edu Tue Nov 10 12:33:25 -0500 1992
Date: Tue, 10 Nov 92 12:33:25 -0500
From: m-lp9966@jed.cs.nyu.edu (Lewis Perin)
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: FWEB and LaTeX
 
Status: RO
 
I've been happily using FWEB for quite a while, but not with LaTeX
until recently.  So far, out of 2 things I've tried with FWEB (1.23a)
and LaTeX, one has worked fine (bringing lex and yacc scripts in via
*verbatim*) but the other hasn't (footnotes.)  What happens with
footnotes is that the superscript appears in the main text, but the
actual footnote is nowhere to be seen.
 
There isn't a lot of info on using LaTeX in the FWEB manual (not to
blame heroic John Krommes - it's pretty huge as is) and the same goes
for the FWEB FAQ.  I'm just beginning to try out LaTeX features and
would like to do some fairly ambitious things, like graphics, but
would prefer to act like a pioneer only if nobody has actually come
this way before.  Has anyone a store of useful information?
 
Thanks a lot, Lew
 
From Zdenek Wed Nov 11 09:52:31 MDT 1992
Date: Wed, 11 Nov 92 09:52:31 MDT
From: Zdenek Wagner <WAGNER%CSEARN.BITNET@SHSU.edu>
Reply-To: LitProg@SHSU.edu
To: Literate Progaramming list <LitProg@SHSU.edu>
Subject: Re: FWEB and LaTeX
 
Status: RO
 
Unfortunately I do not use FWEB (I use CWEB) but I could guess some reason
for losing the footnotes. LaTeX loses footnotes if they appear inside some
environments - the same as you wrote happens e.g. in multicolpar. There is
a style for correcting it -- this is "ftn.sty" available from SHSU. However,
there is a bug in it so that this style does not work well if there are more
footnotes in the single environment. I posted this some time ago into Info-TeX
but probably my version is not archived anywhere. Now I leave for Paris till th
e end of this week and I have my file at home, so that I can send it to you
on Monday.
 
Hope this helps
 
                                                ,
,~~~/        /`               /     /|      /~~~
   /        /           |_/  /_/   ' |     /
  /     /~~/ /~~/ /~~/ /~~/ /\       | /| / /~~/ /~~/ /~~/ /~~/ /~~~
 /   , /  / /~~~ /  / /~~~ /  \      |/ |/ /  /_/  / /  / /~~~ /
 ~~~~  ~~~  ~~~ '  '  ~~~ '    `           ~~~  ~~/ '  '  ~~~
                              Zdenek Wagner______/
 
From Eric Wed Nov 11 09:52:31 MDT 1992
Date: Wed, 11 Nov 92 09:52:31 MDT
From: "Eric W. van Ammers, LUW, tel: (+31)8370-83356" <AMMERS@RCL.WAU.NL>
Reply-To: LitProg@SHSU.edu
To: LITPROG@shsu.edu
Subject: Re: FWEB and LaTeX
 
Status: RO
 
Can anybody be so kind as to explain to me how I can get a copy of the FAQ
on LP (postsccript format please) that seems to have been prepared by a
certain Marcus ...
 
Eric W. van Ammers
ammers@clc.wau.nl
 
From George Thu Nov 12 17:11:57 CST 1992
Date: Thu, 12 Nov 1992 17:11:57 CST
From: "George D. Greenwade" <bed_gdg@SHSU.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: FWEB FAQs on FILESERV/Niord
 
On 11 Nov 1992 17:22 +0000 (GMT), Eric W. van Ammers <AMMERS@RCL.WAU.NL>
asked:
Status: RO
 
> Can anybody be so kind as to explain to me how I can get a copy of the FAQ
> on LP (postsccript format please) that seems to have been prepared by a
> certain Marcus ...
 
Been working on that.  First, since the majority of subscribers are on
Internet hosts, I assume ftp is available.  The host, as you probably can
guess, is Niord.SHSU.edu (192.92.115.8).  The appropriate directory is
[FILESERV.FWEB].  I am somewhat bastardizing Marcus' README file from the
FAQ.FWEB.* distribution, since we don't support multiple periods.
 
[1] FAQ-FWEB.TEXI  the Texinfo source file. All other versions can be
                   produced with this one. At least this is true if
                   you have the GNU Texinfo package release 2.15 [the
                   latest version can be retrieved via Anon FTP from
                   prep.ai.mit.edu in directory pub/gnu]. 
 
[2] FAQ-FWEB.INFO  the Info file for the GNU Emacs Info tree.
                   If you are using "makeinfo" to produce the Info file,
                   inspite of warnings, a correct Info file [including an 
                   Index] will be made - the warnings can be cured using 
                   the command "texinfo-every-node-update". If you have 
                   any other serious problem processing this file, you 
                   may contact me. 
 
[3] FAQ-FWEB.DVI   the DVI file from the Texinfo source [1], produced with
                   "texi2dvi" from the Texinfo package release 2.15.  
 
[4] FAQ-FWEB.PS    the PostScript file, made using "dvips" [Radical Eye, 
                   release 5.495, Oct 92] from [3].
 
To retrieve these files via e-mail, include:
 SENDME filename_below
in the body of a mail message to FILESERV@SHSU.BITNET (FILESERV@SHSU.edu),
where "filename_below" is in the "FILESERV name" column below:
ftp name        FILESERV name
------------------------------
FAQ-FWEB.TEXI   FWEB.FAQ_TEXI
FAQ-FWEB.INFO   FWEB.FAQ_INFO
FAQ-FWEB.DVI    FWEB.FAQ-DVI_UUE (UUENCODEd ZIP file of the DVI file)
FAQ-FWEB.PS     FWEB.FAQ-PS_UUE* (two-part UUENCODEd ZIP file of the 
                                  PostScript file -- note use of *)
To retrieve the family of files, include SENDME FWEB.FAQ* in you mail to
FILESERV.
 
The plain text copy of the FAQ is available in [FILESERV.FAQ] as FAQ.FWEB
and may be retrieved from FILESERV by including SENDME FAQ.FWEB in your
mail to it.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Please do NOT include the message:
 SENDME FWEB
in your mail to FILESERV as there is the FWEB version 1.23 distribution
also there (unless, of course, you want this distribution also).  To
retrieve the FWEB sources, use the command SENDME FWEB.UUE* -- you'll get a
43-part UUENCODEd ZIP file of the sources.  For your reference, I include
the FWEB 1.23 listing below my sig (and if there's a later version, please
let me know and I'll update this!).
 
Regards,   George
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
George D. Greenwade, Ph.D.                            Bitnet:  BED_GDG@SHSU
Department of Economics and Business Analysis         THEnet: SHSU::BED_GDG
College of Business Administration                    Voice: (409) 294-1266
P. O. Box 2118                                        FAX:   (409) 294-3612
Sam Houston State University              Internet:        bed_gdg@SHSU.edu
Huntsville, TX 77341                      bed_gdg%SHSU.decnet@relay.the.net
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[fweb-v1_23.zip] comment:
FWEB, version 1.23a, April 13, 1992
Author: John A. Krommes <krommes@princeton.edu>
Original Source: hyman.pppl.gov:/pub/fweb/v1.23/TAR.v1.23.Z
UNTARred and ZIPped: July 21, 1992
                 by: George D. Greenwade <bed_gdg@SHSU.edu>
 
 Length    Date    Time   Name ("^" ==> case
 ------    ----    ----   ----   conversion)
   8396  04-13-92  12:09  fweb/v1_23/INSTALL.FWEB
  18967  04-13-92  08:01  fweb/v1_23/Makefile
   3068  04-14-92  06:19  fweb/v1_23/READ_ME.FWEB
  12145  04-14-92  12:46  fweb/v1_23/boot/misc/custom.h
   3146  04-02-92  13:47  fweb/v1_23/boot/misc/READ_ME.MISC
    190  04-02-92  13:47  fweb/v1_23/boot/misc/fweb.ini
    190  04-02-92  13:47  fweb/v1_23/boot/misc/.fweb
   1189  04-13-92  10:27  fweb/v1_23/boot/misc/defaults.mk
  12182  04-14-92  12:46  fweb/v1_23/boot/ibm/mvs/custom.h
    333  04-02-92  13:47  fweb/v1_23/boot/ibm/mvs/READ_ME.MVS
     57  04-02-92  13:47  fweb/v1_23/boot/ibm/mvs/fweb.ini
   1127  04-02-92  13:47  fweb/v1_23/boot/ibm/mvs/defaults.mk
  12752  04-14-92  12:46  fweb/v1_23/boot/ibm/pc/custom.h
  10280  04-13-92  10:27  fweb/v1_23/boot/ibm/pc/READ_ME.PC
     61  04-02-92  13:47  fweb/v1_23/boot/ibm/pc/fweb.ini
    776  04-02-92  13:47  fweb/v1_23/boot/ibm/pc/builtins.mak
   1805  04-13-92  17:34  fweb/v1_23/boot/ibm/pc/defaults.mk
    380  04-02-92  13:47  fweb/v1_23/boot/ibm/READ_ME.IBM
  12172  04-14-92  12:46  fweb/v1_23/boot/vax/custom.h
   1764  04-02-92  13:47  fweb/v1_23/boot/vax/READ_ME.VAX
    201  04-02-92  13:47  fweb/v1_23/boot/vax/fweb.ini
    201  04-02-92  13:47  fweb/v1_23/boot/vax/.fweb
    665  04-02-92  13:47  fweb/v1_23/boot/vax/compile_fweb.com
   1346  04-13-92  10:27  fweb/v1_23/boot/vax/defaults.mk
    667  04-02-92  13:47  fweb/v1_23/boot/vax/fweb.com
  13727  04-02-92  13:47  fweb/v1_23/boot/vax/fweb.hlp
     28  04-02-92  13:47  fweb/v1_23/boot/vax/fweb.opt
  12167  04-14-92  12:46  fweb/v1_23/boot/unix/ansi/custom.h
   1382  04-02-92  13:47  fweb/v1_23/boot/unix/ansi/READ_ME.ANSI
     78  04-02-92  13:47  fweb/v1_23/boot/unix/ansi/fweb.ini
     78  04-02-92  13:47  fweb/v1_23/boot/unix/ansi/.fweb
   1358  04-13-92  10:27  fweb/v1_23/boot/unix/ansi/defaults.mk
  12157  04-14-92  12:46  fweb/v1_23/boot/unix/apollo/custom.h
   4407  04-02-92  13:47  fweb/v1_23/boot/unix/apollo/READ_ME.APOLLO
    208  04-02-92  13:47  fweb/v1_23/boot/unix/apollo/fweb.ini
    208  04-02-92  13:47  fweb/v1_23/boot/unix/apollo/.fweb
   1195  04-13-92  10:27  fweb/v1_23/boot/unix/apollo/defaults.mk
  12128  04-14-92  12:46  fweb/v1_23/boot/unix/dsu/custom.h
    837  04-02-92  13:47  fweb/v1_23/boot/unix/dsu/READ_ME.DSU
    216  04-02-92  13:47  fweb/v1_23/boot/unix/dsu/fweb.ini
    216  04-02-92  13:47  fweb/v1_23/boot/unix/dsu/.fweb
   1206  04-13-92  10:27  fweb/v1_23/boot/unix/dsu/defaults.mk
  12122  04-14-92  12:46  fweb/v1_23/boot/unix/sgi/custom.h
    841  04-02-92  13:47  fweb/v1_23/boot/unix/sgi/READ_ME.SGI
    215  04-02-92  13:47  fweb/v1_23/boot/unix/sgi/fweb.ini
    215  04-02-92  13:47  fweb/v1_23/boot/unix/sgi/.fweb
   1187  04-13-92  10:27  fweb/v1_23/boot/unix/sgi/defaults.mk
  12149  04-14-92  12:46  fweb/v1_23/boot/unix/sun/cc/custom.h
    477  04-02-92  13:47  fweb/v1_23/boot/unix/sun/cc/READ_ME.CC
    202  04-02-92  13:47  fweb/v1_23/boot/unix/sun/cc/fweb.ini
    202  04-02-92  13:47  fweb/v1_23/boot/unix/sun/cc/.fweb
   1268  04-13-92  10:27  fweb/v1_23/boot/unix/sun/cc/defaults.mk
  12253  04-14-92  12:46  fweb/v1_23/boot/unix/sun/gcc/custom.h
    179  04-02-92  13:47  fweb/v1_23/boot/unix/sun/gcc/READ_ME.GCC
    212  04-02-92  13:47  fweb/v1_23/boot/unix/sun/gcc/fweb.ini
    212  04-02-92  13:47  fweb/v1_23/boot/unix/sun/gcc/.fweb
   1253  04-13-92  10:27  fweb/v1_23/boot/unix/sun/gcc/defaults.mk
    909  04-02-92  13:47  fweb/v1_23/boot/unix/sun/READ_ME.SUN
    684  04-02-92  13:47  fweb/v1_23/boot/unix/READ_ME.UNIX
   8388  04-02-92  13:47  fweb/v1_23/boot/unix/fweb.1
    976  04-02-92  13:44  fweb/v1_23/demos/READ_ME.DEMOS
  19064  04-02-92  13:44  fweb/v1_23/demos/Intro.tex
   2221  04-02-92  13:44  fweb/v1_23/demos/verbatim.sty
   1705  04-13-92  12:09  fweb/v1_23/demos/Newton.f
  10365  04-13-92  10:25  fweb/v1_23/demos/Newton.web
  65773  04-13-92  10:25  fweb/v1_23/demos/adj.web
   3647  04-13-92  10:25  fweb/v1_23/demos/breakpt.web
    436  04-02-92  13:44  fweb/v1_23/demos/demo.ch
  42806  04-13-92  10:25  fweb/v1_23/demos/demo.web
   1701  04-13-92  10:25  fweb/v1_23/demos/macros.hweb
  10224  04-13-92  10:25  fweb/v1_23/demos/newton.web
  35906  04-13-92  10:25  fweb/v1_23/demos/series.web
   2023  04-02-92  13:44  fweb/v1_23/manual/READ_ME.MANUAL
  50860  04-02-92  13:45  fweb/v1_23/manual/INSTALL_FWEB.tex
    302  04-02-92  13:45  fweb/v1_23/manual/demos.sty
   2411  04-13-92  10:25  fweb/v1_23/manual/demo0.web
   2491  04-13-92  17:15  fweb/v1_23/manual/demo0.tex
    228  04-13-92  17:15  fweb/v1_23/manual/demo0.ndx
     55  04-13-92  17:15  fweb/v1_23/manual/demo0.mds
   1306  04-13-92  10:25  fweb/v1_23/manual/demo1.web
   1644  04-13-92  17:15  fweb/v1_23/manual/demo1.tex
    242  04-13-92  17:15  fweb/v1_23/manual/demo1.ndx
    176  04-13-92  17:15  fweb/v1_23/manual/demo1.mds
   1207  04-13-92  10:25  fweb/v1_23/manual/demo2.web
   1285  04-13-92  17:15  fweb/v1_23/manual/demo2.tex
     78  04-13-92  17:15  fweb/v1_23/manual/demo2.ndx
    110  04-13-92  17:15  fweb/v1_23/manual/demo2.mds
   1546  04-13-92  10:25  fweb/v1_23/manual/demo3.web
   2138  04-13-92  17:15  fweb/v1_23/manual/demo3.tex
    393  04-13-92  17:15  fweb/v1_23/manual/demo3.ndx
     85  04-13-92  17:15  fweb/v1_23/manual/demo3.mds
   9269  04-02-92  13:45  fweb/v1_23/manual/equations.sty
  15211  04-02-92  13:45  fweb/v1_23/manual/fmanmacs.tex
   2378  04-13-92  10:25  fweb/v1_23/manual/f90_cpp.web
   4346  04-13-92  17:15  fweb/v1_23/manual/f90_cpp.tex
    581  04-13-92  17:15  fweb/v1_23/manual/f90_cpp.ndx
    164  04-13-92  17:15  fweb/v1_23/manual/f90_cpp.mds
    245  04-02-92  13:45  fweb/v1_23/manual/f0to_web.src
    686  04-13-92  10:25  fweb/v1_23/manual/f0to_web.web
   1875  04-02-92  13:45  fweb/v1_23/manual/f_to_web.f
    686  04-02-92  13:45  fweb/v1_23/manual/f_to_web.src
   3934  04-13-92  17:15  fweb/v1_23/manual/f_to_web.tex
   3417  04-13-92  10:25  fweb/v1_23/manual/f_to_web.web
    379  04-13-92  17:15  fweb/v1_23/manual/f_to_web.ndx
     56  04-13-92  17:15  fweb/v1_23/manual/f_to_web.mds
  55339  04-02-92  13:45  fweb/v1_23/manual/fwebmac.tex
  24362  04-13-92  17:15  fweb/v1_23/manual/fwebmac.sty
  39651  04-13-92  10:25  fweb/v1_23/manual/fwebmac.web
 370855  04-13-92  10:25  fweb/v1_23/manual/fwebman.tex
    526  04-02-92  13:45  fweb/v1_23/manual/guide.tex
  53822  04-13-92  08:01  fweb/v1_23/manual/guide0.tex
   2693  04-13-92  08:20  fweb/v1_23/manual/indexing.tex
    529  04-02-92  13:45  fweb/v1_23/manual/indexmac.tex
    315  04-02-92  13:45  fweb/v1_23/manual/mx.sty
    646  04-10-92  12:41  fweb/v1_23/manual/auto.stl
   2211  04-10-92  12:41  fweb/v1_23/manual/ccodes.stl
   2119  04-10-92  12:41  fweb/v1_23/manual/colors.stl
    568  04-10-92  12:41  fweb/v1_23/manual/contents.stl
   1153  04-10-92  12:41  fweb/v1_23/manual/t.stl
   2045  04-10-92  12:41  fweb/v1_23/manual/formats.stl
   2734  04-10-92  12:41  fweb/v1_23/manual/index.stl
    694  04-10-92  12:41  fweb/v1_23/manual/modules.stl
    841  04-10-92  12:41  fweb/v1_23/manual/subs.stl
    736  04-10-92  12:41  fweb/v1_23/manual/wmisc.stl
   1239  04-10-92  12:41  fweb/v1_23/manual/wtmisc.stl
   1576  04-13-92  08:01  fweb/v1_23/manual/dots.tex
   1052  04-13-92  17:15  fweb/v1_23/manual/f0to_web.tex
    115  04-13-92  17:15  fweb/v1_23/manual/f0to_web.ndx
      8  04-13-92  17:15  fweb/v1_23/manual/f0to_web.mds
    528  04-02-92  13:44  fweb/v1_23/setup.mk
   1825  04-02-92  13:44  fweb/v1_23/setup0.mk
    452  04-02-92  13:45  fweb/v1_23/web/READ_ME.WEB
   1156  04-02-92  13:45  fweb/v1_23/web/fweb.sty
   2528  04-02-92  13:45  fweb/v1_23/web/fweb.tex
   4037  04-13-92  10:25  fweb/v1_23/web/ccodes.hweb
  11440  04-13-92  17:13  fweb/v1_23/web/common.hweb
    815  04-13-92  10:25  fweb/v1_23/web/formats.hweb
   1722  04-13-92  17:13  fweb/v1_23/web/includes.hweb
   1911  04-13-92  17:13  fweb/v1_23/web/macs.hweb
  17293  04-13-92  17:13  fweb/v1_23/web/map.hweb
    779  04-13-92  10:25  fweb/v1_23/web/mem.hweb
    475  04-13-92  10:25  fweb/v1_23/web/os.hweb
   3285  04-13-92  10:25  fweb/v1_23/web/output.hweb
   3010  04-13-92  10:25  fweb/v1_23/web/proto.hweb
   5321  04-13-92  10:25  fweb/v1_23/web/scraps.hweb
   2639  04-13-92  10:25  fweb/v1_23/web/sfile.hweb
   3425  04-13-92  10:25  fweb/v1_23/web/stacks.hweb
   8786  04-13-92  10:25  fweb/v1_23/web/t_codes.hweb
   3559  04-13-92  10:25  fweb/v1_23/web/texts.hweb
   1824  04-13-92  10:25  fweb/v1_23/web/time.hweb
   2031  04-13-92  10:25  fweb/v1_23/web/tokens.hweb
   1449  04-13-92  10:25  fweb/v1_23/web/trunc.hweb
  40101  04-13-92  17:13  fweb/v1_23/web/typedefs.hweb
   1292  04-13-92  10:25  fweb/v1_23/web/val.hweb
   6580  04-13-92  10:25  fweb/v1_23/web/os.web
   4876  04-13-92  17:13  fweb/v1_23/web/xrefs.hweb
    719  04-13-92  10:25  fweb/v1_23/web/a_type.web
   7619  04-13-92  10:25  fweb/v1_23/web/c_type.web
    797  04-13-92  10:25  fweb/v1_23/web/d_type.web
   2125  04-13-92  10:25  fweb/v1_23/web/e_type.web
   4244  04-13-92  10:25  fweb/v1_23/web/m_type.web
   4513  04-13-92  10:25  fweb/v1_23/web/p_type.web
   4948  04-13-92  10:25  fweb/v1_23/web/r_type.web
   2327  04-13-92  10:25  fweb/v1_23/web/s_type.web
   4001  04-13-92  10:25  fweb/v1_23/web/t_type.web
   3155  04-13-92  10:25  fweb/v1_23/web/w_type.web
    821  04-13-92  10:25  fweb/v1_23/web/y_type.web
 167062  04-14-92  12:45  fweb/v1_23/web/common.web
  20145  04-14-92  12:45  fweb/v1_23/web/custom.web
  26826  04-14-92  12:45  fweb/v1_23/web/eval.web
 155465  04-14-92  12:45  fweb/v1_23/web/ftangle.web
 185284  04-14-92  12:45  fweb/v1_23/web/fweave.web
  69415  04-13-92  17:13  fweb/v1_23/web/macs.web
 107584  04-13-92  17:14  fweb/v1_23/web/prod.web
  67137  04-14-92  12:45  fweb/v1_23/web/ratfor.web
   2268  04-13-92  17:14  fweb/v1_23/web/ratfor0.web
  43266  04-13-92  17:14  fweb/v1_23/web/reserved.web
   1983  04-14-92  12:45  fweb/v1_23/web/strmac.web
  25601  04-13-92  17:15  fweb/v1_23/web/style.web
   1286  04-13-92  17:15  fweb/v1_23/web/termcap0.web
   1651  04-13-92  17:15  fweb/v1_23/web/stdlib0.h
   6894  04-14-92  12:45  fweb/v1_23/web/os.h
   1635  04-14-92  12:45  fweb/v1_23/web/strmac.h
    604  04-14-92  12:45  fweb/v1_23/web/a_type.h
   7176  04-14-92  12:45  fweb/v1_23/web/c_type.h
    512  04-14-92  12:45  fweb/v1_23/web/d_type.h
   1796  04-14-92  12:45  fweb/v1_23/web/e_type.h
   3837  04-14-92  12:45  fweb/v1_23/web/m_type.h
   4225  04-14-92  12:45  fweb/v1_23/web/p_type.h
   4534  04-14-92  12:45  fweb/v1_23/web/r_type.h
   2000  04-14-92  12:45  fweb/v1_23/web/s_type.h
   3667  04-14-92  12:45  fweb/v1_23/web/t_type.h
   2852  04-14-92  12:45  fweb/v1_23/web/w_type.h
    524  04-14-92  12:45  fweb/v1_23/web/y_type.h
 152926  04-14-92  12:45  fweb/v1_23/web/common.c
  56372  04-14-92  12:45  fweb/v1_23/web/eval.c
 174572  04-14-92  12:45  fweb/v1_23/web/ftangle.c
 178291  04-14-92  12:45  fweb/v1_23/web/fweave.c
  96771  04-14-92  12:45  fweb/v1_23/web/macs.c
 156504  04-14-92  12:46  fweb/v1_23/web/prod.c
  98697  04-14-92  12:46  fweb/v1_23/web/ratfor.c
  32349  04-14-92  12:46  fweb/v1_23/web/ratfor0.c
  74982  04-14-92  12:46  fweb/v1_23/web/reserved.c
  60138  04-14-92  12:46  fweb/v1_23/web/style.c
   1005  04-14-92  12:46  fweb/v1_23/web/termcap0.c
 ------                   -------
3257328                   205    
 
From George Sun Nov 15 11:01:48 CST 1992
Date: Sun, 15 Nov 1992 11:01:48 CST
From: "George D. Greenwade" <bed_gdg@SHSU.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: FWEB and LaTeX
 
On Wed, 11 Nov 92 09:52:31 MDT, Zdenek Wagner
<WAGNER%CSEARN.BITNET@SHSU.edu> posted:
Status: RO
 
> There is a style for correcting it -- this is "ftn.sty" available from
> SHSU. However, there is a bug in it so that this style does not work well
> if there are more footnotes in the single environment. I posted this some
> time ago into Info-TeX but probably my version is not archived anywhere. 
 
Wagner's revisions to ftn.sty are now on the SHSU archive.  To retrieve the
modified file, include: 
 SENDME STY.FTN
in the body of a mail message to FILESERV@SHSU.BITNET (FILESERV@SHSU.edu). 
For anonymous ftp retrieval, look for the file STY.FTN in the directory
[FIELSERV.STY] on Niord.SHSU.edu (192.92.115.8).
 
Regards,   George
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
George D. Greenwade, Ph.D.                            Bitnet:  BED_GDG@SHSU
Department of Economics and Business Analysis         THEnet: SHSU::BED_GDG
College of Business Administration                    Voice: (409) 294-1266
P. O. Box 2118                                        FAX:   (409) 294-3612
Sam Houston State University              Internet:        bed_gdg@SHSU.edu
Huntsville, TX 77341                      bed_gdg%SHSU.decnet@relay.the.net
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
From joe@inuo30.mathematik.uni-jena.de Mon Nov 16 9:14:47 CST 1992
Date: Mon, 16 Nov 92 9:14:47 CST
From: joe@inuo30.mathematik.uni-jena.de (Johannes Waldmann)
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu (literate programming mailing list)
Subject: wanted: pascal.spider
 
Status: RO
 
A friend of mine has begun working with Spider Web,
but he didn't find a .spider file for Pascal.
Could someone on the list please help us out.
 
--
Johannes Waldmann,                 | joe@inuo30.mathematik.uni-jena.de
Mathematische Fakult\"at,          |
Universit\"at Jena, UHH, 15. OG,   |
Jena, O-6900, Germany.             | phone (03641) 82 24770
 
From leew@cs.utexas.edu Tue Nov 17 11:09:17 -0600 1992
Date: Tue, 17 Nov 1992 11:09:17 -0600
From: leew@cs.utexas.edu (Lee Wittenberg)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: wanted: pascal.spider
 
Johannes Waldmann writes:
 
  > A friend of mine has begun working with Spider Web,
  > but he didn't find a .spider file for Pascal.
  > Could someone on the list please help us out.
 
Status: RO
 
There isn't a pascal.spider file that I know about.  One of the problems is
that Spider restricts strings in single quotes to a single character (with
possible escape characters).  I believe that this is because Ada makes the
single quote do double duty as an attribute marker, but you'd have to ask
Norman Ramsey to be sure.
 
I believe that there are only 2 places in the code where this is dealt with
(one in TANGLE, one in WEAVE), but I don't have the source handy to give
you the section numbers or the lines in the .web files.  If you've got the
woven source, they're not too hard to find.  You could change your own
copies of tangle & weave.web to avoid this kludge or (better) create a
pascal.ch change file that make can automatically use when creating a
Pascal WEB.
 
The best solution, of course, is to have Spider allow a grammar file to
specify string delimiters.  This is one of the projects that I've set for
myself, but it'll be a while before I can get to it.
 
	-- Lee Wittenberg
 
From Joey Mon Nov 23 17:16:04 +22322903 1992
Date: Mon, 23 Nov 1992 17:16:04 +22322903 (EST
From: Joey Gibson <aix3!wjg@netcom.com>
Reply-To: LitProg@SHSU.edu
To: LitProg Mail-List <netcomsv!LITPROG@SHSU.edu>
Subject: WebMode.el?
 
Status: RO
 
Could someone please tell me where to find the webmode.el file? I
heard about it before I got GNU emacs on the PC, and now that I have
it, I want to do web stuff in it. THanks for any info.
 
************************************************************************
*              Joey Gibson - Computer Services Department              *
*                           wjg@aix3.ema.com                           *
*                     Energy Management Associates                     *
*                    The Utilities  Division of EDS                    *
*          100 NorthCreek, Atlanta, GA 30327 - (404) 261-5256          *
************************************************************************
 
From Marcus Tue Nov 24 02:42:24 +0100 1992
Date: Tue, 24 Nov 92 02:42:24 +0100
From: Marcus Speh <marcus@ips102.desy.de>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: RE: WebMode.el?
 
From the FWEB FAQ (that's what it is there for, Joey):
 
Status: RO
 
[11] FWEB with the GNU Emacs editor
 
   If you are developing your FWEB programs using the GNU Emacs
editor, there is `web-mode.el' by Mark Motl <motl@cs.tamu.edu>; the
corresponding GNU Emacs "mode" can deal with WEB, CWEB and FWEB.
It is capable of many things, including jumping to sections and
modules, inserting (and previewing) index entries, hiding and
exibiting the body of a `.web' file (showing the tree), inserting,
quoting, and consistently renaming modules etc. It supports change
files and journal files. It is especially useful when dealing with
large `.web' files.
For more information, you may obtain a User's Manual and the source
files from the author or from Bart Childs <bart@cs.tamu.edu>.
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Hope that helps,
Marcus
 
  Marcus Speh                      INTERnet <marcus@ips102.desy.de>
  II. Institut f. Theor. Physik    BITnet   <I02MSP@DHHDESY3>
  Luruper Chaussee 149             DECnet   <13313::SPEH>
  2000 Hamburg 50/Germany   Tel.(040)8998-2260  FAX:(040)8998-2267
 
From bart@cs.tamu.edu Mon Nov 23 21:53:40 CST 1992
Date: Mon, 23 Nov 92 21:53:40 CST
From: bart@cs.tamu.edu (Bart Childs)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: RE: WebMode.el?
 
Status: RO
 
The form we distribute webmode in requires a slight change in the
weave processors for the original and CWEB.  The changes are
included in Mark Motl's manual.  Peter Gragert has also sent me
a change to the ELisp that allows it to not have that requirement.
This will be included in the next revision with some kind of a
configuration file for selection of either means of processing
the index of variables and index of modules (oooops, I mean sections.)
 
I hope to use the holidays to catch up and get this revision out.
If I miss the one this week, the longer one in December should do.
 
Bart Childs
 
From uunet!SHSU.EDU!ucs_kas Sun Dec  6 03:37:25 1992
Date: Thu, 03 Dec 1992 16:50:48 CST
From: MX mailing list processor <uunet!SHSU.edu!ListServ>
To: grodecki@informix.com
Subject: Subscription to mailing list LitProg
 
You have been added to mailing list:
                 LitProg@SHSU.BITNET (LitProg@SHSU.edu).
Status: RO
 
LitProg is a network list dealing with topics related to Literate
Programming.  This includes general issues of style and philosophy, such as
"what is literate programming?" or "is literate programming compatible with
writing portable programs?", as well as specific issues relating to
particular literate programming systems, such as "is it possible to use
CWEB with ANSI C?"  Novices are welcome; it is intended that this group
should be a place where newcomers can be welcomed into the fold as well as
a place where seasoned literate programmers can discuss fine points of
technique.
 
Further administrative requests regarding this list should be sent in the
body of a mail message to
                 LISTSERV@SHSU.BITNET (LISTSERV@SHSU.edu)
                               -- or to --
                         LitProg-Request@SHSU.edu
The following commands can be handled automatically by the list processor:
 
 SIGNOFF LitProg       - to remove yourself from the list
 SET LitProg NOMAIL    - to remain on the list but not receive mail
 SET LitProg MAIL      - to resume receiving mail from the list
 SET LitProg CONCEAL   - to conceal your address from REVIEW commands
 SET LitProg NOCONCEAL - to reveal your address in REVIEW commands
 SET LitProg REPRO     - to receive from the list posts you made to it
 SET LitProg NOREPRO   - to not receive from the list posts you made to it
 REVIEW LitProg        - to get a list of subscribers
 QUERY LitProg         - to get the status of your entry on the list
 LIST                  - to get a list of mailing lists served by this host
 HELP                  - to receive a help file
 
Please do NOT send administrative messages to the list address
(LitProg@SHSU.BITNET or LitProg@SHSU.edu) as posts to this address are
distributed to all subscribers of the list.
 
By default, new subscribers are set to MAIL, NOCONCEAL, REPRO.  Please note
that all posts to LitProg should have the list address in the Reply-To:
field.  This default Reply-To design is intended to better foster the
discussions which arise on the list.  If you would like to privately reply
to a post, you will need to physically address it, unless your mailer has
selective capabilities from among the fields created.
 
     -------------------- About LitProg Archives --------------------
 
LitProg archives are maintained at Sam Houston State University and are
available via SHSU's file server, FILESERV@SHSU.BITNET (FILESERV@SHSU.edu)
for mail retrieval, as well as via anonymous ftp from Niord.SHSU.edu
[192.92.115.8].  Please note that the archives and files are supported by
FILEserv, while list-related commands are supported by LISTserv.
 
For FILESERV, the filename structure is LitProg.yyyy-mm, where "yyyy"
represents the year and "mm" represents the numeric equivalent of the
month.  For example, the archives of LitProg for July, 1992, would be
LitProg.1992-07.  To retrieve LitProg archives (via mail) for July, 1992,
include the command:
 SENDME LitProg.1992-07
in the body of a mail message to FILESERV@SHSU.BITNET (FILESERV@SHSU.edu).
You may send FILESERV multiple commands so long as each resides on a unique
line of the MAIL message.  If you are interested in available FILESERV
commands, include the command HELP in the body of a mail message to it.
 
For anonymous ftp retrieval from Niord, the archives for LitProg are
retained in the directory [FILESERV.LITPROG] using the same filename syntax
as above.
 
             ----------- LitProg companion lists -----------
 
Sam Houston State University additionally supports three additional lists of
potential interest to LitProg subscribers -- INFO-TeX, ctt-Digest, and
TeX-Pubs.
 
INFO-TeX is an unmoderated discussion list for TeX-related topics,
providing a broad range of discussion on virtually all topics associated
with TeX and it's derivative products, such as LaTeX, AMS(La)TeX, REVTEX,
METAFONT, etc.  It is mirrored to the USENET newsgroup comp.text.tex, so a
post to it is broadcast to quite possibly the widest audience of skilled
individuals to assist you.  You are invited to become involved on this list
or to simply monitor it.  To subscribe to INFO-TeX, please include the
command:
 SUBSCRIBE INFO-TeX "Your Name"
in the body of a mail message to the SHSU list server, LISTSERV@SHSU.BITNET
(LISTSERV@SHSU.edu).  If you would like to post a query to INFO-TeX (and on
to comp.text.tex), the address is INFO-TeX@SHSU.BITNET (INFO-TeX@SHSU.edu).
 
ctt-Digest is an automatically generated daily digest of posts made to
USENET's comp.text.tex newsgroup which do not originate on INFO-TeX.  Also,
efforts are made to exclude periodical postings, such as those carried on
TeX-Pubs.  The creation of this list allows mail-based subscribers to have
the widest coverage possible on all discussions associated with TeX-related
topics.  You are invited to receive these digests, along with your TeX-Pubs
postings and interactive access on INFO-TeX.  To subscribe to ctt-Digest,
please include the command:
 SUBSCRIBE ctt-Digest "Your Name"
in the body of a mail message to the SHSU list server, LISTSERV@SHSU.BITNET
(LISTSERV@SHSU.edu).
 
TeX-Pubs is a redistribution list for TeX-related electronic-format
periodicals, including TeXhax, UKTeX, TeXMaG, the "Frequently Asked
Questions" and "Supplementary TeX Information" from the comp.text.tex
newsgroup, and the TeX Users Group's "TeX and TUG News".  TeX-Pubs provides
subscribers with a single address for handling the administrative details
associated with a subscription to each of these journals, so you will need
to subscribe or signoff only once instead of multiple times.  TeX-Pubs will
provide you with copies of each of these electronic digests as soon as they
are received for forwarding. To minimize the size of daily postings from
ctt-Digest, these periodicals are removed from the ctt-Digest distribution.
Users interested in receiving these periodicals are encouraged to subscribe
to to TeX-Pubs by including the command:
 SUBSCRIBE TeX-Pubs "Your Name"
in the body of a MAIL message to LISTSERV@SHSU.BITNET (LISTSERV@SHSU.edu).
 
If you have any questions or comments about this list, or are in need of
assistance, please do not hesitate to contact the list owner directly at
any of the addresses provided below.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
George D. Greenwade, Ph.D.                            Bitnet:  BED_GDG@SHSU
Department of Economics and Business Analysis         THEnet: SHSU::BED_GDG
College of Business Administration                    Voice: (409) 294-1266
P. O. Box 2118                                        FAX:   (409) 294-3612
Sam Houston State University              Internet:        bed_gdg@SHSU.edu
Huntsville, TX 77341                      bed_gdg%SHSU.decnet@relay.the.net
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
(This message was generated automatically.)
 
----- End Included Message -----
 
From bart@cs.tamu.edu Tue Dec 8 11:35:54 CST 1992
Date: Tue, 8 Dec 92 11:35:54 CST
From: bart@cs.tamu.edu (Bart Childs)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: An extract from comp.text.tex
 
Newsgroups: comp.text.tex
Subject: Lecture of Donal E. Knuth
Message-ID: <1992Dec7.161857.20099@wisipc.weizmann.ac.il>
From: dov@menora.weizmann.ac.il (Dov Grobgeld)
Date: Mon, 7 Dec 1992 16:18:57 GMT
Sender: news@wisipc.weizmann.ac.il
Organization: Weizmann Institute of Science, Computation Center.
X-Newsreader: Tin 1.1 PL4
Lines: 40
 
Status: RO
 
We have had the pleasure the last week of having Donal E. Knuth as
a guest lecturer here at the Weizmann Institute of Science.
 
He said somethings about TeX that might interest a general audience:
 
Version of TeX:
 
The current version of TeX is 3.141. Every year in February DEK takes
a period of two years to go over his E-mail on TeX (preprocessed by
his secretary) and carries out changes if there are any. If a new
version will need to be created in February it will get the version
number 3.1415. Here is a quote what DEK said about the TeX versions
"You might see a pattern in these version numbers. The day I die
I want someone to go into TeX and change the version to $\pi$, and
then it shall not change any more."
 
After the lecture today I went up and asked him about the philosophy
of TeX. Did he anticipate that people would actually write complicated
programs in TeX? His answer was that he thought there would be much
more use of the TeX web files. That any more complicated programming
would take place on the web level, through change files. The bulk
of a TeX file should be the text itself. He didn't even want to make
it easy to program.
 
IMHO: Perhaps it is time to make a super-TeX program. First of all
it should give a standard dvi files as output. But it should have a
complete programming language as its engine, instead of the
crippled language that TeX is. I'm imagining a program with an
escape mechanism for switching between text mode and programming
mode. And the language should be as powerful as perl, python, or
icon.
 
--
                                                        ___   ___
                                                      /  o  \   o \
Dov Grobgeld                                         ( o  o  ) o   |
The Weizmann Institute of Science, Israel             \  o  /o  o /
"Where the tree of wisdom carries oranges"              | |   | |
                                                       _| |_ _| |_
 
From grodecki@quivira.informix.com Mon Dec 7 13:01:11 CST 1992
Date: Mon, 7 Dec 92 13:01:11 CST
From: grodecki@quivira.informix.com (Don Grodecki)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: c++web
 
Status: RO
 
(Reply to grodecki@informix.com)
I am just learning a bit about web, and I would like to know if anyone
knows about a version for C++ ?  Also, rather than using TeX I think that
we would prefer to write in FrameMaker, and then extract a file for
processing by tangle.  I am pretty good at extracting such things from
FrameMaker MIF files.  If anyone has done anything like this please let
me know.  Thanks!!
 
From Cameron Tue Dec 8 00:19:13 -0600 1992
Date: Tue, 8 Dec 1992 00:19:13 -0600
From: Cameron Smith <cameron@symcom.math.uiuc.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re:  c++web
 
Status: RO
 
> I am just learning a bit about web, and I would like to know if anyone
> knows about a version for C++ ?  [...]
 
Hans-Hermann Bode some time ago made available his patches for CWEB
to support C++.  Levy and Knuth are presently working on incorporating
those patches, and some other new features, into a new version of
CWEB, which is now being beta-tested.  I expect that in not too many
weeks a new official release will be available that supports C++ and
ANSI C.
 
--Cameron Smith
  cameron@symcom.math.uiuc.edu
 
From Silvio Tue Dec 08 00:00:16 -0800 1992
Date: Tue, 08 Dec 92 00:00:16 -0800
From: Silvio Levy <levy@math.berkeley.edu>
Reply-To: LitProg@SHSU.edu
To: grodecki@quivira.informix.com
Subject: Re: c++web
 
Status: RO
 
Hans-Hermann Bode wrote modifications to Cweb that allow it to cope
with C++ syntax, and I have incorporated these changes, with his
permission, onto a beta version of Cweb.  When Knuth returns to the US
later this month we plan to make that the official version.  But if
you would like to test it out, I can send it to you.
 
Silvio
 
From Marcus Tue Dec 8 13:10:43 +0100 1992
Date: Tue, 8 Dec 92 13:10:43 +0100
From: Marcus Speh <marcus@ips102.desy.de>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: C++ WEB is available [Re: c++web]
 
Status: RO
 
[This is taken from the FWEB FAQ file, 10/92. It can be obtained
 by including SENDME FAQ.FWEB in a mail to FILESERV@SHSU.edu ]
...
 
[9] Which WEB shall I use for C++ ?
 
   In the opinion of many people, FWEB is the best CWEB available. It
also supports C, C++, F90, Ratfor, Ratfor-90, and writing TeX macros
wherein (f)tangle produces `.sty' files.
 
...
 
Marcus
 
From infmx!quivira!grodecki@uunet.UU.NET Tue Dec 8 08:30:28 CST 1992
Date: Tue, 8 Dec 92 08:30:28 CST
From: infmx!quivira!grodecki@uunet.UU.NET (Don Grodecki)
Reply-To: LitProg@SHSU.edu
To: uunet!SHSU.edu!LitProg@uunet.UU.NET
Subject: Re:  c++web
 
Status: RO
 
Thanks for the note.  Levy actually responded to me and he may be sending
me a copy of his beta.
 
> From uunet!SHSU.edu!LP-Mgr Tue Dec  8 03:53:14 1992
> X-Listname: Literate Programming Discussion List <LitProg@SHSU.edu>
> Date: Tue, 8 Dec 1992 00:19:13 -0600
> From: Cameron Smith <uunet!symcom.math.uiuc.edu!cameron>
> Reply-To: uunet!SHSU.edu!LitProg
> To: LitProg@SHSU.edu
> Subject: Re:  c++web
>
> > I am just learning a bit about web, and I would like to know if anyone
> > knows about a version for C++ ?  [...]
>
> Hans-Hermann Bode some time ago made available his patches for CWEB
> to support C++.  Levy and Knuth are presently working on incorporating
> those patches, and some other new features, into a new version of
> CWEB, which is now being beta-tested.  I expect that in not too many
> weeks a new official release will be available that supports C++ and
> ANSI C.
>
> --Cameron Smith
>   cameron@symcom.math.uiuc.edu
>
 
From gilligan@central.bldrdoc.gov Tue Dec 8 09:23:16 MST 1992
Date: Tue, 8 Dec 92 09:23:16 MST
From: gilligan@central.bldrdoc.gov (Jonathan M. Gilligan)
Reply-To: LitProg@SHSU.edu
To: grodeck@informix.com
Subject: Re: c++web
 
   (Reply to grodecki@informix.com)
   I am just learning a bit about web, and I would like to know if anyone
   knows about a version for C++ ?  Also, rather than using TeX I think that
   we would prefer to write in FrameMaker, and then extract a file for
   processing by tangle.  I am pretty good at extracting such things from
   FrameMaker MIF files.  If anyone has done anything like this please let
   me know.  Thanks!!
 
Status: RO
 
FWEB and Hans Hermann Bode's CWEB-P support C++. CWEB-P is quite
imperfect: for example, the weave parser handles the trailing const in
a construction like
 
   int operator+ (int arg) const
 
incorrectly and tangle also handles some ansi constructs, like the letter
`U' or `u' after a constant to indicate that it's unsigned
(e.g. @d UNSIGNED_CONST 10240U), improperly---it inserts a space in the
tangled output, and thus confusing the c compiler.
 
However, it's a good start and one can try to improve the tokenizer
and parser to handle these defects.
 
I haven't used FWEB much, but it gets good comments from those who do.
 
Sorry that I don't know anything about Framemaker.
 
---Jon
 
From tfj@apusapus.demon.co.uk Tue Dec 08 23:45:22 GMT 1992
Date: Tue, 08 Dec 92 23:45:22 GMT
From: tfj@apusapus.demon.co.uk (Trevor Jenkins)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Can't unzip CWEB ZIP file :-(
 
Status: RO
 
I just grabbed the ZIP file for CWEB v2.7 off of the fileserver but my
(MS-DOS) version of ZIP baulks at every file. Each one is marked with
"Unknown" as the storage mode.
 
I knew getting my hands on a literate programming tool was too good to be
true! Seriously, is the ZIP broken or is my zipper undone? :-)
 
Regards, Trevor.
 
---------------------------------------------------------------------------
Trevor Jenkins                                                Re: "deemed!"
134 Frankland Rd, Croxley Green, Rickmansworth, WD3 3AU, England
email: tfj@apusapus.demon.co.uk                               radio: G6AJG
phone: +44 (0)923 776436
 
From Cameron Wed Dec 9 00:07:26 -0600 1992
Date: Wed, 9 Dec 1992 00:07:26 -0600
From: Cameron Smith <cameron@symcom.math.uiuc.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re:  Can't unzip CWEB ZIP file :-(
 
Status: RO
 
> I just grabbed the ZIP file for CWEB v2.7 off of the fileserver but my
> (MS-DOS) version of ZIP baulks at every file. [...]
 
CWEB v2.8 was released last October, so probably the best thing for
you to do is to grab that directly from the source (labrea.stanford.edu,
36.8.0.47).  That should tide you over until next month, when CWEB v2.9++
(featuring support for C++ and ANSI C) is released (as Silvio Levy indicated
in a previous note).  I believe that v2.8 came out during the unfortunate
interval when a combination of George's illness and hardware problems
with the server prevented updating the archives, and it probably got
overlooked.
 
If you're totally new to CWEB, then in addition to the example programs
that are stored with the CWEB sources, you might also want to look at
a sample program I put together, the latest version of which *is* available
at the SHSU archive.  It illustrates several things: the use of a Makefile
with CWEB, breaking up a literate C program into multiple source files
(or "compilation units"), a tricky hack for merging separate listings
of the parts into a single listing with combined index and table of
contents, the use of ANSI function prototypes, and a few other tricks.
I wrote it when I was learning CWEB, to have a clean, simple example
to base other programs on, and I thought it might be useful to other
CWEB newcomers for the same purpose.  It is based on the (very basic)
RPN calculator example program from chapter 4 of the second edition
of the Kernighan and Ritchie C book.  I picked that example because
nearly every C programmer has that book, and I think that reading the
CWEB version in parallel with the K&R version is a good way to start
figuring out how CWEB works.
 
Please excuse the plug.
 
--Cameron Smith
  cameron@symcom.math.uiuc.edu
 
From Hans-Hermann Wed Dec 09 12:46:00 MEZ 1992
Date: Wed, 09 Dec 92 12:46:00 MEZ
From: Hans-Hermann Bode <HHBODE@dosuni1.rz.Uni-Osnabrueck.DE>
Reply-To: LitProg@SHSU.edu
To: litprog@SHSU.edu
Subject: Re: c++web
 
<gilligan@central.bldrdoc.gov> pointed out:
 
Status: RO
 
>... tangle also handles some ansi constructs, like the letter
>`U' or `u' after a constant to indicate that it's unsigned
>(e.g. @d UNSIGNED_CONST 10240U), improperly---it inserts a space in the
>tangled output, and thus confusing the c compiler.
 
This can be fixed by applying the change
 
@x
  found: if (*loc=='l' || *loc=='L') loc++;
@y
  found: while (*loc=='l' || *loc=='L' || *loc=='u' || *loc=='U') loc++;
@z
 
to ctangle.w, Version 2.7, 2.8, or 2.9++ (beta). The line is located near
the end of the section <Get a constant>. This change should be associated by
a similar one to cweave.w (same versions, same location):
 
@x
  if (*loc=='l' || *loc=='L') {*id_loc++='$'; loc++;}
@y
  while (*loc=='l' || *loc=='L' || *loc=='u' || *loc=='U')
    {*id_loc++=*loc; loc++;}
@z
 
or something like that.
 
Jon stated further:
 
>... CWEB-P is quite
>imperfect: for example, the weave parser handles the trailing const in
>a construction like
>
>   int operator+ (int arg) const
>
>incorrectly ...
 
It sounds as you have detected more problems like this. If so, please tell,
because it's more efficient to fix a whole group of productions than to
repair single ones separately.
 
Hans-Hermann Bode
Arbeitsgruppe Systemforschung, Universit\"at Osnabr\"uck
Artilleriestr. 34, D-W-4500 Osnabr\"uck
Tel.: (49)-541-9692545
e-mail: HHBODE@DOSUNI1.BITNET, hhbode@dosuni1.rz.uni-osnabrueck.de
 
From Daniel Wed Dec 09 08:36:08 CST 1992
Date: Wed, 09 Dec 92 08:36:08 CST
From: "Daniel H. Luecking" <DL24794@UAFSYSB.UARK.EDU>
Reply-To: LitProg@SHSU.edu
To: LitProg <litprog@shsu.edu>
Subject: How did tangle and weave get there names
 
   I know very little about web (actually not terribly much about programming
Status: RO
 
in general). I follow this list because of an overdeveloped curiosity gland.
 
   Now I'm curious why "tangle" and "weave" were given those names. I DO
realize that Knuth likes to play with words and the connection with the word
"web" is unmistakeable, but why choose "tangle" for the process that produces
the program source and "weave" for the process that produces the TeX file for
documentation? (Rather than, say, the other way around.) I have something of
a bad memory for names and I need hooks to hang them on. Presently I reason:
Tangle and TeX both start with "T" so naturally they are NOT associated, thus
weave produces the TeX file. I'd prefer a less perverse hook.
 
Dan Luecking
 
P.S. No flames, please, if I've got the names the wrong way round.
 
From thompson@qmsbs2.er.usgs.GOV Wed Dec 9 08:48:26 -0600 1992
Date: Wed, 9 Dec 1992 08:48:26 -0600
From: thompson@qmsbs2.er.usgs.GOV (David Thompson)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: Can't unzip CWEB ZIP file :-(
 
Status: RO
 
You need to pick up a copy of unzip from niord.shsu.edu (or another archive
nearby).  I've found that there is another compression mode available to
some (non-msdos) versions of a compression utility called "zip" (not pkzip)
incompatible with your familiar utility.
 
Good luck!
 
-=d (thompson@qmsbs2.er.usgs.gov)
 
From Daniel Wed Dec 09 08:56:14 CST 1992
Date: Wed, 09 Dec 92 08:56:14 CST
From: "Daniel H. Luecking" <DL24794@UAFSYSB.UARK.EDU>
Reply-To: LitProg@SHSU.edu
To: LitProg <LitProg@SHSU.edu>
Subject: Re: Can't unzip CWEB ZIP file :-(
 
On Tue, 08 Dec 92 23:45:22 GMT Trevor Jenkins said:
Status: RO
 
>I just grabbed the ZIP file for CWEB v2.7 off of the fileserver but my
>(MS-DOS) version of ZIP baulks at every file. Each one is marked with
>"Unknown" as the storage mode.
>
>I knew getting my hands on a literate programming tool was too good to be
>true! Seriously, is the ZIP broken or is my zipper undone? :-)
>
>Regards, Trevor.
>email: tfj@apusapus.demon.co.uk
>
If you are using PKzip, you may just need to upgrade. Latest version is 2.0
but I don't think it is shareware any longer.
 
Dan Luecking
 
From Marcus Wed Dec 9 16:48:57 +0100 1992
Date: Wed, 9 Dec 92 16:48:57 +0100
From: Marcus Speh <marcus@ips102.desy.de>
Reply-To: LitProg@SHSU.edu
To: Literate Programmers <litprog@shsu.edu>
Subject: Wanted: Routine posting
 
Status: RO
 
It seems LitProg has now got more than 300 subscribers --
maybe it is time for another of George Greenwade's
"Routine Postings", mentioning the existence of a FAQ
for FWEB and informing about the state of FAQ affairs?
 
There are quite some FAQ already, concerning CWEB, C++
etc. - I wonder whether nobody else has volunteered;
if that is the case, I might enlarge the FWEB FAQ by
some really frequent FAQ's, such as those concerning
Cameron Smith's K&R-sample for CWEB etc. Since I plan
to update the FWEB FAQ by end of the year [i.e. now ;-],
I would very much appreciate receiving pieces and bits
from knowledgeable people to "web" them into the FAQ.
  Alternatively [preferred], if you have already decided
that you want to contribute, have an anonymous look at
niord.shsu.edu, the file [FILESERV.FAQ]FAQ.WRITING and
contact me if you want a Texinfo template.
 
Again, any kind of feedback regarding the present
form of the FAQ list is appreciated. Thanks to those
of you who have already responded.
 
"a certain" Marcus.
 
  Marcus Speh                      INTERnet <marcus@ips102.desy.de>
  II. Institut f. Theor. Physik    BITnet   <I02MSP@DHHDESY3>
  Luruper Chaussee 149             DECnet   <13313::SPEH>
  2000 Hamburg 50/Germany   Tel.(040)8998-2260  FAX:(040)8998-2267
 
From Timothy Wed Dec 9 16:48:57 +0100 1992
Date: Wed, 9 Dec 92 16:48:57 +0100
From: "Timothy Larkin" <Timothy_Larkin@qmrelay.mail.cornell.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: How did tangle and weave
 
        Reply to:   RE>How did tangle and weave get their names
From the WEB user manual:
 
Status: RO
 
The TANGLE program is so named because it takes a given web and moves the
modules from their web structure into the order required by Pascal; the
advantage of programming in WEB is that the algorithms can be expressed in
"untangled" form, with each module explained separately. The WEAVE program is
so named because it takes a given web and intertwines the TeX and Pascal
portions contained in each module, then it knits the whole fabric into a
structured document. (Get it? Wow.) Perhaps there is some deep connection here
with the fact that the German word for "weave" is "web", and the corresponding
Latin impaerative is "texe"!
 
From cfarnum@valhalla.cs.wright.edu Wed Dec 09 10:56:01 -0500 1992
Date: Wed, 09 Dec 92 10:56:01 -0500
From: cfarnum@valhalla.cs.wright.edu
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: How did tangle and weave get there names
 
Status: RO
 
tangle produces ugly, tangled up Pascal code.  (tangle intentionally
   produces code that is difficult to read.)
weave produces a tex file that eventually produces a beautiful,
   tapestry-like document.
 
  /charlie
 
From Marcus Wed Dec 9 17:35:20 +0100 1992
Date: Wed, 9 Dec 92 17:35:20 +0100
From: Marcus Speh <marcus@ips102.desy.de>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: How did tangle and weave get there names
 
Status: RO
 
> Now I'm curious why "tangle" and "weave" were given those names. I DO
> realize that Knuth likes to play with words and the connection
>  with the word "web" is unmistakeable, ...
 
is it really? -- In his "FWEB User's Manual" [M-2.6], John Krommes
is quoting DEK himself:
 
" The name WEB itself was chosen in honor of [Knuth's] wife's mother,
  Wilda Ernestine Bates."
 
> ...but why choose "tangle" for the process that produces
> the program source and "weave" for the process that produces the
> TeX file for documentation?
 
because...
 
" The TANGLE program is so named
   because it takes a given web and moves the
   modules from their web structure into the order required by the
   compilers...
  The WEAVE program is so named
   because it takes a given web and intertwines the TeX and code
   portions contained in each module, then it knits the whole fabric
   into a structured document...
   Perhaps there is some deep connection here with the fact that the
   German word for 'weave' is 'web', and the corresponding Latin
   imperative is 'texe'! "
 
Hope that provides a "less perverse hook' ;-)
--Marcus
 
From jfieber@sophia.smith.edu Wed Dec 9 11:53:34 EST 1992
Date: Wed, 9 Dec 92 11:53:34 EST
From: jfieber@sophia.smith.edu (John Fieber)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: How did tangle and weave get there names
 
Status: RO
 
> tangle produces ugly, tangled up Pascal code.
 
If that isn't the understatement of the week...
 
Actually, the various web systems that have evolved since the
first pascal web tend not to "tangle" the code so the name may not
be so appropriate any more.  I'm sure it will remain for historical
reasons though.
 
> weave produces a tex file that eventually produces a beautiful,
>    tapestry-like document.
 
tangle produces a source file that eventually produces a
beautiful functioning program.  (in theory, practice may differ)
 
-john
 
From George Wed Dec 09 11:39:27 CST 1992
Date: Wed, 09 Dec 1992 11:39:27 CST
From: "George D. Greenwade" <bed_gdg@SHSU.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: RE: Can't unzip CWEB ZIP file :-(
 
A quick collection of comments on the topic:
 
First, on Tue, 08 Dec 92 23:45:22 GMT, Trevor Jenkins
<tfj@apusapus.demon.co.uk> posted:
Status: RO
 
> I just grabbed the ZIP file for CWEB v2.7 off of the fileserver but my
> (MS-DOS) version of ZIP baulks at every file. Each one is marked with
> "Unknown" as the storage mode.
>
> I knew getting my hands on a literate programming tool was too good to be
> true! Seriously, is the ZIP broken or is my zipper undone? :-)
 
Which was followed by David Thompson's <thompson@qmsbs2.er.usgs.GOV>:
> You need to pick up a copy of unzip from niord.shsu.edu (or another archive
> nearby).  I've found that there is another compression mode available to
> some (non-msdos) versions of a compression utility called "zip" (not pkzip)
> incompatible with your familiar utility.
 
As noted above, for ZIPping purposes, I use the platform-independent
(UN)ZIP suite from Info-ZIP (ZIP 5.0 and UNZIP 1.9, through patchlevel 1). 
I recommend either including:
 SENDME ZIP_PC_COMPILED
or
 SENDME ZIP_MAC_COMPILED
in the body of a mail message to FILESERV@SHSU.BITNET (FILESERV@SHSU.edu)
for the precompiled executable for MS-DOS and Macintosh (respectively); or
using anonymous ftp to Niord.SHSU.edu (192.92.115.8) and getting the files
UNZIP50.EXE and ZIP19P1X.ZIP in [FILESERV.ZIP_PC_COMPILED] (MS-DOS) or
ZIP_UZIP.HQX in [FILESERV.ZIP_MAC_COMPILED].
 
This was followed by Daniel H. Luecking <DL24794@UAFSYSB.UARK.EDU>:
> If you are using PKzip, you may just need to upgrade. Latest version is 2.0
> but I don't think it is shareware any longer.
 
In another package of economic data I uploaded on Monday (hey, I'm an
economist, after all!), there was PKUNZIP2.EXE.  Curiously, this doesn't
appear at many sites (it's probably at ftp.tex.ac.uk, but...).  This is
indeed Phil Katz's new version and it can handle files created by ZIP 5.0. 
I have moved this into [FILESERV.ZIP_PC_COMPILED] for retrieval, if you are
interested.  I will note that, following a few experiments, it appears to
be somewhat superior to UNZIP 1.9 in that it is capable of using the -d
switch found in PKUNZIP (to define target paths), which is not presently
supported in UNZIP 1.9.  It continues to be shareware (ZIP and UNZIP are
pd), and the license price has increased, as has the extra contribution for
more extended information and support.  If there is interest, I will make
PKUNZIP2 available from FILESERV somehow.
 
In the interim, Cameron Smith <cameron@symcom.math.uiuc.edu> noted:
> CWEB v2.8 was released last October, so probably the best thing for you to
> do is to grab that directly from the source (labrea.stanford.edu,
> 36.8.0.47).  That should tide you over until next month, when CWEB v2.9++
> (featuring support for C++ and ANSI C) is released (as Silvio Levy
> indicated in a previous note).  I believe that v2.8 came out during the
> unfortunate interval when a combination of George's illness and hardware
> problems with the server prevented updating the archives, and it probably
> got overlooked.
 
Yes, I was unaware of this (sorry).  I have retrieved the new file set; the
description is provided following my signature.  Please notify me when the
new files are out and I will move them here as soon as feasible.  Anyway,
the new files are now here and I am attaching the description file below. 
No one has really complained about the format I am now tending toward --
to UUENCODE a ZIP archive (yes, you need UNZIP 5.0/PKUNZIP 2.0).  This is a
*real* time and disk space saver at our end, so I am going to continue with
this unless someone has an objection.  These will probably be VVENCODEd
once the VV*CODE suite is formally announced (yes, in addition to forcing
you to a superior archiving software, I am going to force you to a superior
encoding software 8-)).
 
Regards,   George
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
George D. Greenwade, Ph.D.                            Bitnet:  BED_GDG@SHSU
Department of Economics and Business Analysis         THEnet: SHSU::BED_GDG
College of Business Administration                    Voice: (409) 294-1266
P. O. Box 2118                                        FAX:   (409) 294-3612
Sam Houston State University              Internet:        bed_gdg@SHSU.edu
Huntsville, TX 77341                      bed_gdg%SHSU.decnet@relay.the.net
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                                   CWEB
                                   ----
The CWEB package includes a UUENCODEd ZIP archive of the source and example
files for Silvio Levy's C language adaptation of Donald Knuth's WEB,
originally written in Pascal. This package includes version 2.8, dated
October, 1992.  Knuth's original Pascal programs have been entirely
rewritten in C; many changes were made to take advantage of features
offered by C but non-existent in Pascal.
 
CWEB is essentially a simplified subset of WEB. CWEB does not need WEB's
features for macro definition and string handling, because C and its
preprocessor already take care of macros and strings. Similarly, the WEB
conventions of denoting octal and hexadecimal constants by @'77 and @"3f
are replaced by C's conventions \v077\v and \v0x3f\v, respectively. All
other features of WEB have been retained, and a few new features have been
added.
 
To retrieve the set of 7 files in the UUENCODEd ZIP distribution of CWEB,
include:
 SENDME CWEB
in the text of a mail message to FILESERV@SHSU.BITNET (FILESERV@SHSU.edu).
The ZIP file, CWEB-2_8.ZIP is available for anonymous ftp retrieval from
Niord.SHSU.edu (192.92.115.8) in the [FILESERV.CWEB] directory.  The
individual files within their original directory structure reside in the
tree rooted at [FILESERV.CWEB.2_8].
 
Files in this package: (1 Block = 512 bytes)
File                          Blocks  Save file as: CWEB-2_8.UUE
-------------------------------------------------------------------------------
CWEB.UUE_1OF7                         UUDECODEs to CWEB-2_8.ZIP
 through
CWEB.UUE_6OF7                     77 (each)
CWEB.UUE_7OF7                     44
 
Approximate total blocks in full CWEB package = 506
***************************************************************************
Files in CWEB-2_8.ZIP
[cweb-2_8.zip] comment:
CWEB, version 2.8 (October 1992)
Copyright (C) 1987,1990,1992 Silvio Levy and Donald E. Knuth
Original authoritative sources at:
 anonymous@labrea.stanford.edu:/pub/cweb/*
 
 Length  Method   Size  Ratio   Date    Time    Name ("^" ==> case
 ------  ------   ----  -----   ----    ----    ----   conversion)
      0  Stored       0   0%  12-09-92  07:51   cweb/
    737  Deflate    390  47%  10-03-92  20:49   cweb/common-man.ch
   2486  Deflate   1129  55%  04-06-92  00:00   cweb/common-vms.ch
  19348  Deflate   5566  71%  10-03-92  19:20   cweb/common.c
   7926  Deflate   2766  65%  10-01-92  06:20   cweb/common.h
  47801  Deflate  15431  68%  10-03-92  19:19   cweb/common.w
    738  Deflate    392  47%  10-03-92  20:51   cweb/ctangle-man.ch
   1074  Deflate    527  51%  10-02-92  06:35   cweb/ctangle-vms.ch
  24510  Deflate   6779  72%  10-03-92  19:49   cweb/ctangle.c
  46433  Deflate  14817  68%  10-03-92  17:31   cweb/ctangle.w
    737  Deflate    389  47%  10-03-92  20:51   cweb/cweave-man.ch
   1060  Deflate    534  50%  10-02-92  06:36   cweb/cweave-vms.ch
 141574  Deflate  42748  70%  10-02-92  01:17   cweb/cweave.w
   3366  Deflate   1584  53%  06-15-92  23:57   cweb/cweb.1
   8899  Deflate   3227  64%  07-13-92  06:52   cweb/cweb.el
  12419  Deflate   4827  61%  10-03-92  19:46   cweb/cwebmac.tex
  67665  Deflate  23337  66%  10-03-92  18:10   cweb/cwebman.tex
      0  Stored       0   0%  12-09-92  07:44   cweb/examples/
  12125  Deflate   4634  62%  07-08-92  06:54   cweb/examples/extex.w
  10289  Deflate   3183  69%  07-13-92  22:15   cweb/examples/kspell.el
   8027  Deflate   2092  74%  08-07-92  15:34   cweb/examples/oemacs.el
  38418  Deflate  14642  62%  10-03-92  18:05   cweb/examples/oemacs.w
   6830  Deflate   2889  58%  07-08-92  18:38   cweb/examples/treeprint.w
   8516  Deflate   3715  56%  10-22-91  00:00   cweb/examples/wc.w
  22289  Deflate   7735  65%  07-08-92  19:04   cweb/examples/wmerge.w
  20856  Deflate   7753  63%  07-07-92  21:22   cweb/examples/wordtest.w
   1929  Deflate    642  67%  08-22-92  05:42   cweb/examples/xlib_types.w
   5882  Deflate   1435  76%  08-22-92  05:42   cweb/examples/xview_types.w
   2946  Deflate   1458  51%  10-03-92  18:16   cweb/examples/README
    962  Deflate    424  56%  10-03-92  18:25   cweb/examples/Makefile
   8346  Deflate   2665  68%  07-08-92  20:26   cweb/prod.w
   2673  Deflate   1197  55%  10-03-92  19:07   cweb/README
   4328  Deflate   1699  61%  10-03-92  12:31   cweb/Makefile
   2016  Deflate    498  75%  12-09-92  07:39   cweb/ls-lr.labrea
 ------          ------  ---                    -------
 543205          181104  67%                    34     
 
From bart@cs.tamu.edu Wed Dec 9 12:25:41 -0600 1992
Date: Wed, 9 Dec 92 12:25:41 -0600
From: bart@cs.tamu.edu
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: Names, names, names
 
Status: RO
 
A quote from the original paper about Literate Programming
(which is reprinted in the book, Literate Programming.)
  ``I chose the name \WEB\ partly because it was one of
    the few three-letter words of English that hadn't
    already been applied to computers. But as time went on,
    I've become extremely pleased with the name, because
    I~think that a complex piece of software is, indeed,
    best regarded as a {\it web\/} that has been delicately
    pieced together from simple materials.
    We understand a complicated system by understanding its
    simple parts, and by understanding the simple relations
    between those parts and their immediate neighbors.
    If we express a program as a web of ideas, we can emphasize
    its structural properties in a natural and satisfying way.''
 
Please don't consider this a flame (Dan Luecking's note) but
the actual names are not all that important.
 
I know that Don wrote somewhere that WEB is/was the initials
of his Mother-in-Law's maiden name, Wilda Ernestine Bates.
INMHO, the tenor of that statement was please don't make
something out of the (non)mnemonic/(non)acronym.
 
I don't recall any real statement as to why tangle and weave
except that they go with WEBs.  You might want to think of
the results of our verbs tangle and weave.  The result of
weaving should be visually nice.  The document can be whereas
the program (especially tangle output) is not.
 
From Roger_Alexander@rock.intersolv.com Wed Dec 9 12:25:41 -0600 1992
Date: Wed, 9 Dec 92 12:25:41 -0600
From: Roger_Alexander@rock.intersolv.com
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re[2]: c++web
 
Status: RO
 
I'd also like to get a copy of c++web.  How can I do so ?
 
Roger Alexander (roger_alexander@intersolv.com)
Intersolv
 
From Roger_Alexander@rock.intersolv.com Wed Dec 9 12:25:41 -0600 1992
Date: Wed, 9 Dec 92 12:25:41 -0600
From: Roger_Alexander@rock.intersolv.com
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: FWEB for PC
 
Status: RO
 
Can someone tell me how I can obtain a version of FWEB for the pc ?
Please note that I do not have access to ftp.
 
Thanks,
 
Roger Alexander (roger_alexander@intersolv.com)
 
From Joachim Wed Dec 9 18:48:43 MEZ 1992
Date: Wed, 9 Dec 92 18:48:43 MEZ
From: Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: How did tangle and weave get there names
 
Dan Luecking wrote:
Status: RO
 
>
>    Now I'm curious why "tangle" and "weave" were given those names.
 
Ha! Folklore -- I love folklore. My 0.02 DM are coming...
 
> I DO
> realize that Knuth likes to play with words and the connection with the word
> "web" is unmistakeable,
 
Really? Y'a know what WEB means? To quote from webman.tex:
 
    The name WEB itself was chosen in honor of my wife's mother,
    Wilda Ernestine Bates.
 
> but why choose "tangle" for the process that produces
> the program source and "weave" for the process that produces the TeX file for
> documentation?
 
Hmm, let's quote DEK again:
 
    The TANGLE program is so named because it takes a given web and moves
    the modules from their web structure into the order required by
    PASCAL; the advantage of programming in WEB is that the algorithms
    can be expressed in ``untangled'' form, with each module explained
    separately.  The WEAVE program is so named because it takes a given
    web and intertwines the TeX and PASCAL portions contained in each
    module, then it knits the whole fabric into a structured document.
    (Get it? Wow.)  Perhaps there is some deep connection here with the
    fact that the German word for ``weave'' is ``web'', and the
    corresponding Latin imperative is ``texe''!
 
[Actually, the German word for ``weave'' is not ``web,'' it's ``weben.'']
 
And now, why do I mail this? Easy answer: To show my new signature. :-) :-)
 
--
Joachim
 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Joachim Schrod			Email: schrod@iti.informatik.th-darmstadt.de
Computer Science Department
Technical University of Darmstadt, Germany
 
	    @d infinity=255 {$\infty$ (approximately)}
							[DEK, in weave.web]
 
PS: There are more quotes from DEK about the name:
 
    I chose the name WEB partly because it was one of the few
    three-letter words of English that hadn't already been applied to
    computers. But as time went on, I've become extremely pleased with
    the name, because I think that a complex piece of software is,
    indeed, best regarded as a web that has been delicately pieced
    together from simple materials. We understand a complicated system by
    understanding its simple parts, and by understanding the simple
    relations between those parts and their immediate neighbors. If we
    express a program as a web of ideas, we can emphasize its structural
    properties in a natural and satisfying way.
						[DEK, Literate Programming]
 
From tfj@apusapus.demon.co.uk Wed Dec 09 20:50:41 GMT 1992
Date: Wed, 09 Dec 92 20:50:41 GMT
From: tfj@apusapus.demon.co.uk (Trevor Jenkins)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: Can't unzip CWEB ZIP file :-(
 
In message <9212091726.AA02829@central.bldrdoc.gov> Jon Gilligan wrote:
 
Status: RO
 
> Trevor Jenkins writes,
>    I just grabbed the ZIP file for CWEB v2.7 off of the fileserver but my
>    (MS-DOS) version of ZIP baulks at every file. Each one is marked with
>    "Unknown" as the storage mode.
>
>    I knew getting my hands on a literate programming tool was too good to be
>    true! Seriously, is the ZIP broken or is my zipper undone? :-)
>
> You probably are using Phil Katz's PKUNZIP.
 
Several others made the same comment and you all surmise correctly. I was
trying to use PKUNZIP.
 
>...To unzip the .zipped files
> from SHSU, you need the free UNZIP program (get the file UNZIP50.EXE,
 
I saw the UNZIP stuff and thought "Nah, I dont need that!"
 
> which is self-extracting (ironically, it seems to use Yoshi's Lharc
> self-extracter).
 
I regularly use LHARC (I only have PKUNZIP cos the UK PD archive insists
upon using it).
 
Off to shsu.edu to get UNZIP. Maybe I get to produce my literate
masterpieces after all. :-)
 
Regards, Trevor.
 
---------------------------------------------------------------------------
Trevor Jenkins                                                Re: "deemed!"
134 Frankland Rd, Croxley Green, Rickmansworth, WD3 3AU, England
email: tfj@apusapus.demon.co.uk                               radio: G6AJG
phone: +44 (0)923 776436
 
From Marty Wed Dec 9 14:51:54 PST 1992
Date: Wed, 9 Dec 1992 14:51:54 PST
From: "Marty Leisner" <leisner@eso.mc.xerox.com>
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: How did tangle and weave get there names
 
I think from:
 
Status: RO
 
"What a tangled web we weave"
 
marty
leisner@eso.mc.xerox.com leisner.henr801c@xerox.com
Member of the League for Programming Freedom
"People cannot be managed.  Inventories can be managed, but people must be led"  -- H. Ross Perot
 
From George Wed Dec 09 17:13:18 CST 1992
Date: Wed, 09 Dec 1992 17:13:18 CST
From: "George D. Greenwade" <bed_gdg@SHSU.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: RE: FWEB for PC
 
On 09 Dec 92 16:28, Roger Alexander (roger_alexander@intersolv.com) posted:
Status: RO
 
> Can someone tell me how I can obtain a version of FWEB for the pc ? Please
> note that I do not have access to ftp.
 
The sources are in the FWEB package, so SENDME FWEB in a mail message to
FILESERV ought to get these.  The precompiled version is in
[FILESERV.PC-WEB] and has not not previously been FILESERV'able.  Since the
ZIP is there, I UUENCODEd it and broke it into mailer-digestible size
chunks.  It comes in 28 parts (and I haven't yet put the standard SHSU
headers on them or checksums, or anything else, but will -- look at the
subject line from FILESERV for the right sequence).
 
Anyway, to retrieve the precompiled executables for version 1.23a (which is
supposed to handle C++; this is still technically the beta release, I
believe -- Hans Herman?) via email, include:
 SENDME PC_WEB.FWEBEXE*
in the body of a mail message to FILESERV@SHSU.BITNET (FILESERV@SHSU.edu).
 
Regards,   George
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
George D. Greenwade, Ph.D.                            Bitnet:  BED_GDG@SHSU
Department of Economics and Business Analysis         THEnet: SHSU::BED_GDG
College of Business Administration                    Voice: (409) 294-1266
P. O. Box 2118                                        FAX:   (409) 294-3612
Sam Houston State University              Internet:        bed_gdg@SHSU.edu
Huntsville, TX 77341                      bed_gdg%SHSU.decnet@relay.the.net
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
From stevea@vast.unsw.edu.au Thu Dec 10 10:25:57 +1100 1992
Date: Thu, 10 Dec 92 10:25:57 +1100
From: stevea@vast.unsw.edu.au
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: Change files for @i files
 
Status: RO
 
Hi all,
	I have a bit of a sticky problem with Spider WEB, but it will
probably be the same for all WEBs that allow include files (@i).
	I have a set of changes I want to apply to a file that is common
between two main web files (actual it is the common.web for tangle.web
and weave.web). I have made some changes, and have diligently put them
in a file common.ch. Problem is, how do I now apply the change file
seeing as common.web is never explicitly tangled? I've tried putting the
changes in a change file for the individual programs (ie. in weave.ch
for weave.web), but it appears that tangle does not read in the included
file until after the changes have been applied.
	Anyone got any idea how to get around this hassle (other than
hacking tangle to apply changes after reading the included file) ?
 
	cheers
	-steve
 
From ohl@chico.harvard.edu Wed Dec 9 18:50:19 -0500 1992
Date: Wed, 9 Dec 92 18:50:19 -0500
From: ohl@chico.harvard.edu (Thorsten Ohl)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: How did tangle and weave get there names
 
Status: RO
 
[ This is *completely* off the topic, but I can't resist ... ]
 
>>>>> On Wed, 9 Dec 92 18:48:43 MEZ, Joachim Schrod <schrod@iti.informatik.th-darmstadt.de> said:
 
Joachim> Ha! Folklore -- I love folklore. My 0.02 DM are coming...
 
Joachim> Hmm, let's quote DEK again:
 
Joachim>     [...] Perhaps there is some deep connection here with the
Joachim>     fact that the German word for ``weave'' is ``web'', and the
Joachim>     corresponding Latin imperative is ``texe''!
                                 ^^^^^^^^^^
 
Joachim> [Actually, the German word for ``weave'' is not ``web,'' it's
Joachim> ``weben.'']
 
Bzzzzt!  You are wrong & DEK is right!  The German *imperative*
for `weave!' *is* `web!'.
 
Ciao,
-Thorsten
 
/// Thorsten Ohl, Physics Dept, Harvard University, Cambridge, MA 02138, USA
//////// net: ohl@physics.harvard.edu, ohl@crunch.ikp.physik.th-darmstadt.de
////////////////////////////// voice: +1-617-495-3219,  fax: +1-617-496-8396
 
From Joachim Thu Dec 10 11:19:04 MEZ 1992
Date: Thu, 10 Dec 92 11:19:04 MEZ
From: Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: How did tangle and weave get there names
 
Thorsten Ohl wrote:
Status: RO
 
>
> [ This is *completely* off the topic, but I can't resist ... ]
 
Me, too.
 
> Joachim>     [...] Perhaps there is some deep connection here with the
> Joachim>     fact that the German word for ``weave'' is ``web'', and the
> Joachim>     corresponding Latin imperative is ``texe''!
>                                  ^^^^^^^^^^
> Joachim> [Actually, the German word for ``weave'' is not ``web,'' it's
> Joachim> ``weben.'']
>
> Bzzzzt!  You are wrong & DEK is right!  The German *imperative*
> for `weave!' *is* `web!'.
 
Do you know a German word with four characters, colloquially used for
questions? : H\"a? ... (Some misguided spell it H"a...)
 
In this context I don't care what the German imperative is; read the
sentence part which you underlined again. There it talks about the
**Latin** imperative. A line above it's the German *word*, and that's
still ``weben''. (Btw, I also don't see an exclamation mark in my quote.)
 
:-)
 
--
Joachim
 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Joachim Schrod			Email: schrod@iti.informatik.th-darmstadt.de
Computer Science Department
Technical University of Darmstadt, Germany
 
	    @d infinity=255 {$\infty$ (approximately)}
							[DEK, in weave.web]
 
From Joachim Thu Dec 10 11:37:15 MEZ 1992
Date: Thu, 10 Dec 92 11:37:15 MEZ
From: Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu (Literate Programming Discussion List)
Subject: Award for LitProg work, info anyone?
 
From the SIGCHI Bulletin, October '92 issue:
 
Status: RO
 
----------------
 
1991 AWARDS OF THE SIGCHI GRANT-IN-AID OF RESEARCH FOR STUDENTS
 
As part of its on-going commitment to develop the educational base for
the field of Human-Computer Interaction and to provide opportunities
for students, the SIGCHI Executive Committee has provided an endowment
to support grants-in-aid of research. This program is being
administered by Sigma Xi, the Scientific Research Society. [...]
 
During 1991, the following awards were made:
 
[...]
 
Christopher Bertholf, Portland State University --- Program
Comprehension of Literate Programs by Novice, Intermediate, and Expert
Programmers
 
----------------
 
Has anybody more info on this work? Eg,
 -- Email address of Christopher
 -- ftp-able technical reports (yes, sometimes I dream ;-)
 -- snail mail address to order reports
 -- some short abstract about the preconditions and the results
	(is it still bound to WEB, does it use a modern programming
	language instead of Pascal, ...)
 
etc.
 
--
Joachim
 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Joachim Schrod			Email: schrod@iti.informatik.th-darmstadt.de
Computer Science Department
Technical University of Darmstadt, Germany
 
	    @d infinity=255 {$\infty$ (approximately)}
							[DEK, in weave.web]
 
From Reed Thu Dec 10 12:32:40 +0000 1992
Date: Thu, 10 Dec 92 12:32:40 +0000
From: "Reed Shilts" <modicon!RSHILTS@uunet.UU.NET>
Reply-To: LitProg@SHSU.edu
To: SHSU.edu!LitProg@pcd3.
Subject: Receipt confirmation
 
Confirmation: message read at 8:45, 10 Dec 92
Subject: Re: How did tangle and weave
Status: RO
 
++rls;          a.k.a.  uunet!modicon!rshilts
 
From George Thu Dec 10 08:56:17 CST 1992
Date: Thu, 10 Dec 1992 08:56:17 CST
From: "George D. Greenwade" <bed_gdg@SHSU.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: RE: Receipt confirmatioon (and a few other things)
 
Status: RO
 
Yesterday, Marcus suggested a routine message for LitProg.  I will attempt
to get one put together sometime soon.  In the interim:
 
First, on 10 Dec 92 08:45:14 EDT, "Reed Shilts"
<modicon!RSHILTS@uunet.UU.NET> forwarded to the list:
> Confirmation: message read at 8:45, 10 Dec 92
> Subject: Re: How did tangle and weave
> ++rls;          a.k.a.  uunet!modicon!rshilts
 
I don't know is this was automatically generated or not (my real fear is
that it was).  I have removed the address from the LitProg distribution as
I don't want to get all kinds of bandwidth-wasting looping going on here. 
As I have no idea just how many posting may be affected here, I urge
everyone to have some patience with the list over the next few days as
these may come streaming back in.
 
I am by no means discouraging subscription as I believe what the list has
been (and is) accomplishing is marvelous (even though I sometimes have no
idea what some of you are talking about).  Reed: if this was a one-time
error which is not generally reproducable and was a simple mistake, please
re-subscribe; if it is a part of your mailer software, *please* visit with
your system administrator and figure out how to stop it before your
re-subscribe.  There are at least three things wrong with how your mailer
handled this (assuming it was a mailer problem).  If it is a mailer
problem, it needs to be fixed, regardless of your subscription to LitProg.
 
I will put up with bounces to me as list owner for quite some time prior to
unilaterally removing someone from any of my lists (and make every effort
to contact the Postmaster at the site where I get bounces from, or their
identifiable up-stream hosts or servers, as there is often a local problem
which usually requires some local attention); HOWEVER, I will automatically
remove anyone for anything which appears to be a possible loop producer as
these use up valuable bandwidth and disk space resources very quickly, in
addition to clogging up otherwise valuable discussion.
 
Second, if you should ever wish to have your name removed from the list of
subscribers and no longer receive LitProg, please send a MAIL message to
                 LISTSERV@SHSU.BITNET (LISTSERV@SHSU.edu)
                                 -- or --
                        LitProg-Request@SHSU.edu
stating in the text of the MAIL:
 SIGNOFF LitProg
Please remember to SIGNOFF of LitProg should you have reason to lose or
give up your account.
 
If you have any questions, comments, or suggestions about LitProg, please
contact the list owner at any of the addresses below.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
George D. Greenwade, Ph.D.                            Bitnet:  BED_GDG@SHSU
Department of Economics and Business Analysis         THEnet: SHSU::BED_GDG
College of Business Administration                    Voice: (409) 294-1266
P. O. Box 2118                                        FAX:   (409) 294-3612
Sam Houston State University              Internet:        bed_gdg@SHSU.edu
Huntsville, TX 77341                      bed_gdg%SHSU.decnet@relay.the.net
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
From Hans-Hermann Thu Dec 10 16:23:31 MEZ 1992
Date: Thu, 10 Dec 92 16:23:31 MEZ
From: Hans-Hermann Bode <HHBODE@dosuni1.rz.Uni-Osnabrueck.DE>
Reply-To: LitProg@SHSU.edu
To: litprog@SHSU.edu
Subject: RE: FWEB for PC
 
George D. Greenwade wrote:
 
Status: RO
 
>Anyway, to retrieve the precompiled executables for version 1.23a (which is
>supposed to handle C++; this is still technically the beta release, I
>believe -- Hans Herman?) via email, include:
 
It is not quite clear, whether FWEB 1.23a is still beta or not. FWEB's
read_me states:
 
>  The newest release, v1.23, is intended primarily for SYSTEM DEVELOPERS
>and KNOWLEDGEABLE FRIENDS willing to serve as ad hoc BETA TESTERS.  In
>fact, this version should be quite robust, but it needs to be beta-tested
>before I'm willing to announce it to the public.
 
And later:
 
>  Version 1.23 was updated to 1.23a in order to fix a bug that appeared on
>all machines for which |signed char| is the default.  Some files missing
>from the manual subdirectory were also restored.
 
Since, in contrast to v1.23, version 1.23a HAS BEEN announced to the public,
one could conclude that it isn't beta anymore. On the other hand, the first
statement above is located at the very top of the read_me, so it may still
be valid. I've found no hint that could remove this contradiction.
 
Hermann
 
From Hans-Hermann Thu Dec 10 16:25:12 MEZ 1992
Date: Thu, 10 Dec 92 16:25:12 MEZ
From: Hans-Hermann Bode <HHBODE@dosuni1.rz.Uni-Osnabrueck.DE>
Reply-To: LitProg@SHSU.edu
To: litprog@SHSU.edu
Subject: Re: Change files for @i files
 
stevea@vast.unsw.edu.au asked:
 
Status: RO
 
>        I have a set of changes I want to apply to a file that is common
>between two main web files (actual it is the common.web for tangle.web
>and weave.web). I have made some changes, and have diligently put them
>in a file common.ch. Problem is, how do I now apply the change file
>seeing as common.web is never explicitly tangled?
 
I guess, what you really mean is common.h instead of common.web. The
solution to your problem is a WEB file merger that takes a source file and a
change file as input and produces the resulting changed source. To my
knowledge there exist two such programs: tie and wmerge.
 
With tie you can even merge several change files at once to a source or you
can build an overall change file from several ones. Klaus Guntermann may
post, where the latest version is available.
 
The wmerge program is somewhat simpler, but if you only have one change
file, it will do its job as well. It comes as an example with CWEB.
 
Hermann
 
From gilligan@central.bldrdoc.gov Thu Dec 10 09:35:46 MST 1992
Date: Thu, 10 Dec 92 09:35:46 MST
From: gilligan@central.bldrdoc.gov (Jonathan M. Gilligan)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Change files for @i files
 
Status: RO
 
What you do is to apply the change to the common file using something
like wmerge that incorporates your change file common.ch into common.web
produces a third file, which you call something like
``new_common.web.''  You then put the lines
 
@x
@i common.h
@y
@i new_common.h
@z
 
into weave.ch and tangle.ch. This is quite awkward, but it's hard to
think of a better way to handle changes on included files without
breaking the ability to change lines that include an @i command.
 
(This should be the introduction to my claim that I have a better way,
but I must disappoint you).
 
BTW, I don't have my CWEB files on this computer, so I can't tell you
the origin of wmerge, but I got my version as part of Hans Hermann
Bode's CWEB-P package. I think HHB may have written it, but I'm not
sure. Apologies in advance if I have misdirected the credit.
 
---Jon
 
From Marcus Thu Dec 10 17:47:15 +0100 1992
Date: Thu, 10 Dec 92 17:47:15 +0100
From: Marcus Speh <marcus@ips102.desy.de>
Reply-To: LitProg@SHSU.edu
To: Literate Programmers <litprog@shsu.edu>
Subject: LiteratureProg [Re: How did tangle and weave get their names]
 
Status: RO
 
Marty>> I think from
Marty>> "What a tangled web we weave"
 
Encouraged [and enlightened] by the surprising fact that
truly linguistic issues are suddenly becoming an issue on the
list (see the fascinating debate on " 'weben' vs. 'web'" between
two German subscribers |-(, I inquired:
 
Marcus> excuse my illiteracy: what source are you quoting here?
Marcus> [It sounds like Shakespeare to me, but...]
Marcus> I probably cannot resist to put this piece into the FAQ.
 
Marty> The full quote (It came to me when I was driving into work...)
Marty> "What a tangled web we weave, when we practice to deceive"
Marty> I think its Shakespeare...but I'm not sure...
 
It is not enough to know that it wasn't brought up during the
presidential campaign ["It's all about WEB, stupid!"]...
on the other hand, [my edition of] Shakespeare does not have
an index (proving that it's really coming on us from another century ;-).
 
Thus: anybody knows where the quote stems from??? --
 
Hoping that there is an unambiguous answer to *this* question,
Marcus
 
From Daniel Thu Dec 10 15:21:38 CST 1992
Date: Thu, 10 Dec 92 15:21:38 CST
From: "Daniel H. Luecking" <DL24794@UAFSYSB.UARK.EDU>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: How did tangle and weave
 
On 9 Dec 1992 11:15:28 -0500 Timothy Larkin said:
Status: RO
 
>                                ... Perhaps there is some deep connection here
>with the fact that the German word for "weave" is "web", and the corresponding
>Latin impaerative is "texe"!
>
A connection, but not deep: the english "weave" is cognate to Germen "weben"
and "textile" to latin "texe".
 
As was pointed out, the german for ONE meaning of weave (the imperative) is
web. The german for other meanings of weave include weben, webe, and webst,
wirken, flechten, zusammenf\"ugen, einflechten, verflechten, verweben,
erfinden, erdichten, ersinnen, durchschl\"angeln, Webart, and Gewebe.
(Source: the New Casall's German Dictionary, 1971)
So everyone who said "THE german word (singular!) for weave is" <anything
at all> or who claimed anyone else was wrong, was wrong (in a way).
 
Oh! What a tangled web we weave...
 
Dan Luecking
 
From Marcus Thu Dec 10 23:18:34 +0100 1992
Date: Thu, 10 Dec 92 23:18:34 +0100
From: Marcus Speh <marcus@ips102.desy.de>
Reply-To: LitProg@SHSU.edu
To: Literate Programmers <litprog@shsu.edu>
Subject: multiple source files in FWEB
 
Status: RO
 
For an FWEB project with multiple source files (*),
I'd like to have a hack similar to that of Cameron in
file "calc.w" of his KR-Sample for CWEB.
 
 The nicest feature I am interested in is Cameron's hack of
 indexing and preparing a table of contents in cwebmac.sty.
 The goal: to produce a toc like:
 
source module 1: main         Sect Page
introduction..................1.1  1.1
main pgm......................1.4  1.2
index.........................1.10 1.4
 
source module 2: getop
introduction..................2.1  2.1    etc.
 
a combined index (in fact one index per source file appended)
and the same for the section index:
 
Index for source module 1: main
...
Index for source module 2: getop
...
....
 
Sections in source module 1: main
<case for newlines 9> used in section 4...
...
 
It seems as if one has to hack the fwebmac.sty for this.
Anybody already tried something similar and would like to
share it with me?
 
(*) yes, inspite of the by now well-known fact that
    the @o command to spit out .h and .c files is sick
    for FWEB.
 
From tfj@apusapus.demon.co.uk Fri Dec 11 00:39:29 GMT 1992
Date: Fri, 11 Dec 92 00:39:29 GMT
From: tfj@apusapus.demon.co.uk (Trevor Jenkins)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Compiling Cweb 2.8 with MS C/C++ v7.0
 
Status: RO
 
You guys are going to hate telling me how to UNZIP the CWEB 2.8 ZIP file;
which thank you very I managed to do once I'd grabbed UNZIP50.EXE. Why
should you hate me? Cos now I can't get CTANGLE.C to compile with Microsoft
C/C++ version 7.0! I've gotten the files across to my office VAX and it
compiled okay there. But I want to be able to use it here (at home) on my
PC as well, so... How do I bootstrap it across? Or where is there a
pre-compiled/pre-linked version I can snarf?
 
Regards, Trevor.
 
---------------------------------------------------------------------------
Trevor Jenkins                                                Re: "deemed!"
134 Frankland Rd, Croxley Green, Rickmansworth, WD3 3AU, England
email: tfj@apusapus.demon.co.uk                               radio: G6AJG
phone: +44 (0)923 776436
 
From Silvio Thu Dec 10 18:00:16 -0800 1992
Date: Thu, 10 Dec 92 18:00:16 -0800
From: Silvio Levy <levy@math.berkeley.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: Change files for @i files
 
In response to Jonathan M. Gilligan:
 
Status: RO
 
wmerge is essentially a skeletal version of common.w, which I hacked
together.  I've recently found out that it fails to give an error
message if some entry in the change file doesn't match the web file --
it simply stops making changes.  I won't be fixing this it any time
soon, so caveat emptor.  (Of course, if someone else fixes it, they'll
be rendering a signal service to humankind.)
 
Silvio
 
From Cameron Fri Dec 11 00:57:09 -0600 1992
Date: Fri, 11 Dec 1992 00:57:09 -0600
From: Cameron Smith <cameron@symcom.math.uiuc.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re:  LiteratureProg [Re: How did tangle and weave get their names]
 
Status: RO
 
Marcus Speh (Hi, Marcus!) asks
Marcus> excuse my illiteracy: what source are you quoting here?
Marcus> [It sounds like Shakespeare to me, but...]
Marcus> I probably cannot resist to put this piece into the FAQ.
 
Marty Leisner replied
Marty> The full quote (It came to me when I was driving into work...)
Marty> "What a tangled web we weave, when we practice to deceive"
Marty> I think its Shakespeare...but I'm not sure...
 
One of the problems with having a single preeminent writer in a language
is that everyone always assumes that any enduring tidbit came from his
pen... I thought so too, until I saw (in the WEB manual -- note, WEB,
not CWEB) the attribution
 
  O, what a tangled web we weave
  When first we practise to deceive!
    -- Sir Walter Scott, _Marmion_, canto 6, verse xvii (1808)
 
Marcus, please *do* put this in the FAQ list, and please put this gem
(also from the WEB manual) in with it:
 
  O, what a tangled WEB we weave
  When TeX we practise to conceive!
    -- Richard Palais (1982)
 
--Cameron Smith
  cameron@symcom.math.uiuc.edu
 
From Hans-Hermann Fri Dec 11 11:05:08 MEZ 1992
Date: Fri, 11 Dec 92 11:05:08 MEZ
From: Hans-Hermann Bode <HHBODE@dosuni1.rz.Uni-Osnabrueck.DE>
Reply-To: LitProg@SHSU.edu
To: litprog@SHSU.edu
Subject: Re: Change files for @i files
 
<gilligan@central.bldrdoc.gov> wrote:
 
Status: RO
 
>BTW, I don't have my CWEB files on this computer, so I can't tell you
>the origin of wmerge, but I got my version as part of Hans Hermann
>Bode's CWEB-P package. I think HHB may have written it, but I'm not
>sure. Apologies in advance if I have misdirected the credit.
 
No, I have not written it, it's by Silvio Levy. As I stated in a previous
message, wmerge is an example program that comes with the original CWEB
distribution. The primary source is on labrea.stanford.edu in the directory
pub/cweb/examples.
 
Further:
 
>@x
>@i common.h
>@y
>@i new_common.h
>@z
 
You can do this with recent versions of CWEB, but not with Spidery WEB
("! No includes allowed in change file"). Therefore, the original common.h
must be renamed or put in another directory and the changed product must be
called common.h also.
 
Hermann
 
From Edward Fri Dec 11 06:44:34 EST 1992
Date: Fri, 11 Dec 1992 06:44:34 EST
From: "Edward F. Keith" <ed@efkport.kew.com>
Reply-To: LitProg@SHSU.edu
To: "Literate Programming List" <LitProg@SHSU.edu>
Subject: Re: LiteratureProg [Re: How did tangle and weave get their names]
 
On Thu, 10 Dec 92 17:47:15 +0100, "Marcus Speh" <marcus@ips102.desy.DE> wrote:
Status: RO
 
> Marty> The full quote (It came to me when I was driving into work...)
> Marty> "What a tangled web we weave, when we practice to deceive"
> Marty> I think its Shakespeare...but I'm not sure...
>
> It is not enough to know that it wasn't brought up during the
> presidential campaign ["It's all about WEB, stupid!"]...
> on the other hand, [my edition of] Shakespeare does not have
> an index (proving that it's really coming on us from another century ;-).
>
> Thus: anybody knows where the quote stems from??? --
>
> Hoping that there is an unambiguous answer to *this* question,
> Marcus
 
The Home Book of Quotations attributes it to Scott, Marmion. Canto
vi, st 17.
 
	-Ed K.
 
--
Ed Keith
Telephone: 1(703)370-5217      U.S. Snail: 4535 Taney Ave. #201
Internet : ed@efkport.kew.com              Alexandria, VA 22304
 
I am I, Don Quixote, The Lord of La Mancha . . .
 
From George Fri Dec 11 09:09:18 CST 1992
Date: Fri, 11 Dec 1992 09:09:18 CST
From: "George D. Greenwade" <bed_gdg@SHSU.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: RE: Compiling Cweb 2.8 with MS C/C++ v7.0
 
On Fri, 11 Dec 92 00:39:29 GMT, tfj@apusapus.demon.co.uk (Trevor Jenkins)
posted:
Status: RO
 
> You guys are going to hate telling me how to UNZIP the CWEB 2.8 ZIP file;
> which thank you very I managed to do once I'd grabbed UNZIP50.EXE. Why
> should you hate me? Cos now I can't get CTANGLE.C to compile with Microsoft
> C/C++ version 7.0! I've gotten the files across to my office VAX and it
> compiled okay there. But I want to be able to use it here (at home) on my
> PC as well, so... How do I bootstrap it across? Or where is there a
> pre-compiled/pre-linked version I can snarf?
 
It's not 2.8, but....  I attempted to ftp to dione.rz.uni-osnabrueck.de
(where Hans Hermann [I believe] keeps just about everything for the PC). 
Unfortunately, after connecting, I was unable to issue any commands as I
never got a prompt.  So I went to ftp.uni-stuttgart.de and retrieved
cweb-p.zip and have made it available from Niord.SHSU.edu as
[FILESERV.PC-WEB]CWEB-P27.ZIP (version 2.7 for DOS, with executables,
etc.).  I added the "27" to better identify the version number (sorry to
have bastardized the filename).
 
I have UUENCODEd the ZIP file, so include:
 SENDME PC-WEB.CWEB-P27*
will get you the 11 part distribution via e-mail.
 
Quick question to you literate programmers out there: where in the heck do
you generally retain the version numbers in your releases?  Is there a
given file to look at or is it embedded in some specific place?  Or is this
a topic which hasn't been discussed among literate programmers (this is not
true, I am pretty sure).  Sure would make archiving easier, if......... ;-)
 
Regards,   George
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
George D. Greenwade, Ph.D.                            Bitnet:  BED_GDG@SHSU
Department of Economics and Business Analysis         THEnet: SHSU::BED_GDG
College of Business Administration                    Voice: (409) 294-1266
P. O. Box 2118                                        FAX:   (409) 294-3612
Sam Houston State University              Internet:        bed_gdg@SHSU.edu
Huntsville, TX 77341                      bed_gdg%SHSU.decnet@relay.the.net
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
From Nelson Fri Dec 11 08:14:22 MST 1992
Date: Fri, 11 Dec 92 08:14:22 MST
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
Reply-To: LitProg@SHSU.edu
To: tfj@apusapus.demon.co.uk (Trevor Jenkins)
Subject: Re: Compiling Cweb 2.8 with MS C/C++ v7.0
 
Status: RO
 
I've been working for two weeks on the problem of making CWeb 2.9
run on the IBM PC.  This is difficult because of the segmented memory
architecture, and a great many source changes are necessary.  I have
made considerable progress this week, and hope to be able to report
success in the near future.  In the meantime, I'd suggest postponing
further attempts at porting to that architecture to avoid duplication
of labor.
 
Nelson H. F. Beebe                      Tel: +1 801 581 5254
Center for Scientific Computing         FAX: +1 801 581 4148
Department of Mathematics, 105 JWB      Internet: beebe@math.utah.edu
University of Utah
Salt Lake City, UT 84112, USA
 
From chavey@beloit.edu Fri Dec 11 09:58:15 -0600 1992
Date: Fri, 11 Dec 1992 09:58:15 -0600
From: chavey@beloit.edu (Darrah Chavey)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re:  LiteratureProg [Re: How did tangle and weave get their names]
 
Status: RO
 
>One of the problems with having a single preeminent writer in a language
>is that everyone always assumes that any enduring tidbit came from his
>pen... I thought so too, until I saw (in the WEB manual -- note, WEB,
>not CWEB) the attribution
>
>  O, what a tangled web we weave
>  When first we practise to deceive!
>    -- Sir Walter Scott, _Marmion_, canto 6, verse xvii (1808)
>
>--Cameron Smith
>  cameron@symcom.math.uiuc.edu
 
Darn, I always thought it came from Swinburne:
    For in the time we know not of
    Did fate begin
    Weaving the web of days that wove
    Your doom, Faustine.
       [Faustine, 1866]
 
;-)
 
--Darrah Chavey                  Department of Math & Computer Science
  chavey@beloit.edu              Beloit College, Beloit, Wisc.
 
From George Fri Dec 11 11:34:11 CST 1992
Date: Fri, 11 Dec 1992 11:34:11 CST
From: "George D. Greenwade" <bed_gdg@SHSU.edu>
Reply-To: LitProg@SHSU.edu
To: thompson@qmsbs2.er.usgs.GOV
Subject: RE: faq for litprog
 
Status: RO
 
In a private posting from thompson@qmsbs2.er.usgs.GOV (David Thompson) on
Fri, 11 Dec 1992 10:32:42 -0600:
> Is anyone working on a faq for the litprog mailing list?  I'm interested in
> the concept, and am beginning to see the need.  I'm not sure I (can or want
> to) do it (yet), but am intrigued by the idea.  (Gee, have I waffled enough
> yet?) :-)
 
This is a gray area which certainly needs addressing; therefore, I am
replying to the entire address on this.  The list itself probably should
have a family of FAQs, rather than a single FAQ.  Topics within a family
would focus on (I would hope):
 1.  Something specific to the administrative details of the list, similar
     to my "Routine Postings" on INFO-TeX.  This can be reduced
     significantly w.r.t. the INFO-TeX RP as I believe that other topics
     will cover the required areas.  I am very biased on this as a
     component of the LitProg FAQ family.  I believe that the bandwidth
     consumed by a single posting on "How do I get [the list][my mail]
     to..." and "How do I find out about FILESERV..." alleviates a lot of
     problems commonly found on unmoderated lists.  Since I have the
     templates for this and I am familiar with the problems to expect, I
     can handle this (and will as soon as grading finals is over with).
 2.  A FAQ for each of the major Literate Programming tools.  Marcus Speh
     <marcus@ips102.desy.de> has already done the LitProg community a great
     service with his FAQ for FWEB.  In addition, there probably needs to
     be one for CWEB, with the possibility of SpiderWEB, (C)NoWEB,
     FunnelWEB, MWEB, (maybe) WEB2C and WEB itself lurking, as well as
     other tools I am unfamiliar with. 
 
     To retrieve the FWEB FAQ, include:
      SENDME FAQ.FWEB
     in the body of a mail message to FILESERV@SHSU.BITNET
     (FILESERV@SHSU.edu), or come in via anonymous ftp to Niord.SHSU.edu
     (192.92.115.8) and get [FILESERV.FAQ]FAQ.FWEB.  A variety of formats
     (DVI, TeXinfo, PostScript) are also available in [FILESERV.FWEB].
 3.  A master LP FAQ which answers commonly asked general questions (i.e.,
     "what is Literate Programming?"), along with an index of the FAQ family,
     including appropriate cross-references between packages, as well as a
     listing of hosts where the tools exist.  This second aspect should 
     easily be covered as most of the package authors are subscribed and 
     know where the things are so that the authoritative server can be
     identified, along with mirror-like hosts where packages are available.
 
Marcus also provided me with an FAQ on writing FAQs (the FAQ FAQ).  It is a
load of good information for anyone interested in writing an FAQ.  This is
available via email by including:
 SENDME FAQ.WRITING
in the body of a mail message to FILESERV, or on Niord in
[FILESERV.FAQ]FAQ.WRITING.
 
Precisely how you, as a group, want to stake a claim to this, I don't know. 
As noted, I will take care of item 1 above; Marcus has already started on
item 2 (and I imagine just keeping up with one package is an adequate
task!); the remainder is a good concept, IMO.  Certainly, everyone is free
to disagree with my outline for a family; however, a single document FAQ is
probably way out of reason simply due to sheer size, maintenance, and other
reasons.
 
Hope I've strirred up the mud adequately with this answer -- didn't
everyone plan on working on this over the holidays anyway? 8-)
 
Regards,   George
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
George D. Greenwade, Ph.D.                            Bitnet:  BED_GDG@SHSU
Department of Economics and Business Analysis         THEnet: SHSU::BED_GDG
College of Business Administration                    Voice: (409) 294-1266
P. O. Box 2118                                        FAX:   (409) 294-3612
Sam Houston State University              Internet:        bed_gdg@SHSU.edu
Huntsville, TX 77341                      bed_gdg%SHSU.decnet@relay.the.net
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
From gilligan@central.bldrdoc.gov Fri Dec 11 11:34:42 MST 1992
Date: Fri, 11 Dec 92 11:34:42 MST
From: gilligan@central.bldrdoc.gov (Jonathan M. Gilligan)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Compiling Cweb 2.8 with MS C/C++ v7.0
 
Status: RO
 
There's a precompiled version of CWEB 2.7 (Hans Hermann Bode's CWEB-P),
which has change files for compiling with Turbo-C++.
 
Let me take this opportunity to clear up any misunderstandings that
may have arisen from my last posting about CWEB-P. I mentioned a two
bugs, one in weaving C++ and one in tangling ANSI-C, but these are
minor bugs and easy to work around. I have used CWEB-P quite a bit
since getting it last month and only have found two or three small
bugs, and HHB posted a correction to the most serious one (which
actually existed in the original CWEB) earlier this week.  CWEB-P is a
good port, and I recommend it either in its precompiled form or as a
starting point for other 16-bit ports. As HHB says in the
documentation for CWEB-P, the C++ support is a first attempt (and a
very good first attempt to hit a moving target), so the fact that a
few unusual constructions might not weave in the most aesthetically
pleasing manner is only to be expected.
 
I am working (in the evenings) on a port of 2.8 to MSC, but there are
still too many bugs for me to release it now. This may be a wasted
effort, since it appears that 2.9 is due to be released in a few
months, but porting CWEB seems good from an autodidactic perspective,
he says waxing sesquipedalian.
 
---Jon
 
From gilligan@central.bldrdoc.gov Fri Dec 11 11:34:42 MST 1992
Date: Fri, 11 Dec 92 11:34:42 MST
From: gilligan@central.bldrdoc.gov (Jonathan M. Gilligan)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Compiling Cweb 2.8 with MS C/C++ v7.0
 
Status: RO
 
There's a precompiled version of CWEB 2.7 (Hans Hermann Bode's CWEB-P),
which has change files for compiling with Turbo-C++.
 
Let me take this opportunity to clear up any misunderstandings that
may have arisen from my last posting about CWEB-P. I mentioned a two
bugs, one in weaving C++ and one in tangling ANSI-C, but these are
minor bugs and easy to work around. I have used CWEB-P quite a bit
since getting it last month and only have found two or three small
bugs, and HHB posted a correction to the most serious one (which
actually existed in the original CWEB) earlier this week.  CWEB-P is a
good port, and I recommend it either in its precompiled form or as a
starting point for other 16-bit ports. As HHB says in the
documentation for CWEB-P, the C++ support is a first attempt (and a
very good first attempt to hit a moving target), so the fact that a
few unusual constructions might not weave in the most aesthetically
pleasing manner is only to be expected.
 
I am working (in the evenings) on a port of 2.8 to MSC, but there are
still too many bugs for me to release it now. This may be a wasted
effort, since it appears that 2.9 is due to be released in a few
months, but porting CWEB seems good from an autodidactic perspective,
he says waxing sesquipedalian.
 
---Jon
 
From Roger_Alexander@rock.intersolv.com Fri Dec 11 16:35:42 -0500 1992
Date: Fri, 11 Dec 1992 16:35:42 -0500
From: Roger_Alexander@rock.intersolv.com
Reply-To: LitProg@SHSU.edu
To: litprog@SHSU.edu
Subject: tugnews.sty
 
Status: RO
 
Can someone tell me where I can get version 1.3 of tugnews.sty (I
believe that it is now called 'ttn1n3.sty) ?
 
Thanks,
 
Roger Alexander
 
From metasoft!kjeld@uunet.UU.NET Fri Dec 11 16:35:42 -0500 1992
Date: Fri, 11 Dec 1992 16:35:42 -0500
From: metasoft!kjeld@uunet.UU.NET
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: Compiling Cweb 2.8 with MS C/C++ v7.0
 
Status: RO
 
>I've been working for two weeks on the problem of making CWeb 2.9
>run on the IBM PC.  This is difficult because of the segmented memory
>architecture, and a great many source changes are necessary.
 
Have you considered porting it to Windows NT, where you have a flat
32 bit memory architecture (386/486 CPU)?
 
From dak@POOL.informatik.rwth-aachen.de Sat Dec 12 00:31:46 +0100 1992
Date: Sat, 12 Dec 92 00:31:46 +0100
From: dak@POOL.informatik.rwth-aachen.de
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re:  LiteratureProg [Re: How did tangle and weave get their names]
 
Status: RO
 
>
>>One of the problems with having a single preeminent writer in a language
>>is that everyone always assumes that any enduring tidbit came from his
>>pen... I thought so too, until I saw (in the WEB manual -- note, WEB,
>>not CWEB) the attribution
>>
>>  O, what a tangled web we weave
>>  When first we practise to deceive!
>>    -- Sir Walter Scott, _Marmion_, canto 6, verse xvii (1808)
>>
>>--Cameron Smith
>>  cameron@symcom.math.uiuc.edu
 
This is especially strange when you notice that this piece has four
stresses per line, as opposed to Shakespeare's usual five.
(four stresses do appear in Shakespeare, for example for effect. See the
witches in Macbeth. Their chants have four stresses.)
 
Of course this information is based solely on my memory, might not be
imperative and subject to criticism. But that is all fine in the course
of literacy (the subject of this list ;]).
 
From coates@spectro.jussieu.fr Sat Dec 12 14:51:20 +0100 1992
Date: Sat, 12 Dec 92 14:51:20 +0100
From: coates@spectro.jussieu.fr
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: Compiling Cweb 2.8 with MS C/C++ v7.0
 
Status: RO
 
>
> >I've been working for two weeks on the problem of making CWeb 2.9
> >run on the IBM PC.  This is difficult because of the segmented memory
> >architecture, and a great many source changes are necessary.
>
> Have you considered porting it to Windows NT, where you have a flat
> 32 bit memory architecture (386/486 CPU)?
>
 
Similarly, CWeb for OS/2 would give you the same flat memory architecture, and
nicely complement the current public domain implementations of C++, TeX, and
Emacs for OS/2.  However, OS-overload does seem to be becoming more of a
problem, doesn't it :-) .
						Cheers,
								Tony.
________________________________________________________________________________
A.B.Coates (Tony)
Labortoire de Spectroscopie Hertzienne de l'ENS
Universite Pierre et Marie Curie
Case 74, 4 place Jussieu		Email:	   coates@spectro.jussieu.fr
F-75252 Paris CEDEX 05			Telephone: +33 1 44 27 44 09
France					Fax:	   +33 1 44 27 38 45
 
"J'ai mes opinions.  L'universite a ses opinions.  L'intersection de ces deux ensembles est probablement vide."
"I have my opinions.  The university has its opinions.  The intersection of these two sets is probably empty."
________________________________________________________________________________
 
From plyon@emx.cc.utexas.edu Sat Dec 12 11:52:05 -0600 1992
Date: Sat, 12 Dec 92 11:52:05 -0600
From: plyon@emx.cc.utexas.edu (Paul Lyon)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Compiling Cweb 2.8 with MS C/C++ v7.0
 
Status: RO
 
> Have you considered porting it to Windows NT, where you have a flat
> 32 bit memory architecture (386/486 CPU)?
 
Given that Windows NT is not yet generally available, it seems to me
that a port to OS/2 2.0, which IS available, is more to the point.
Furthermore, if one is willing to confine use to 386/486 boxes running
MS-DOS and ignore 086/286 machines, then a port using either version
of gcc that uses a DOS extender (the ddj version or the emx version),
should also be straightforward. The code generated by those last will
not run under Windows 3.x or in a DOS box under OS/2 2.0, since the
DOS extenders used are not compatible with what OS/2 2.0 and Windows
3.x expect. On the other hand, if one uses the emx system, the code
you nget will run fine under OS/2 2.0 itself, either full screen or in
a command window; for, indeed, Eberhard Mattes' emx system is primarly
meant as an OS/2 2.0 compiler. (If that name sounds familiar, Mattes
is the "em" of emTeX.) I can't point you to a specific archive site
for the ddj version of gcc, but emx can be had either from its home
port (ftp.uni-stuttgart.de) or from ftp-os2.nmsu.edu.
 
On a related note, I have done a port of funnelweb to OS/2 2.0. I used
the _other_ port of gcc to OS/2 2.0 (yes, there are two of them!),
namely gcc/2. That does not have DOS extender capability, so the
executable will only run under OS/2 2.0. If there is any interest,
this could be made available. (I plan to upload it to ftp-os2.nmsu.edu
fairly soon, anyway.)
 
Has anyone else used funnelweb? I quite like it, perhaps in part
because Ross Williams did such a fine job of it.  Indeed, it may be
worth acquiring just for that reason. It is as good as anything I have
ever seen, and could serve as a model of how to put a modest size
software package together.
 
Ciao,
 
Paul Lyon
 
From Marcus Sun Dec 13 21:32:29 +0100 1992
Date: Sun, 13 Dec 92 21:32:29 +0100
From: Marcus Speh <marcus@ips102.desy.de>
Reply-To: LitProg@SHSU.edu
To: Literate Programmers <litprog@shsu.edu>
Subject: Re: faq for litprog
 
I second GDG's proposal for a family of LitProg FAQ lists:
 
Status: RO
 
[1] Routine postings [probably handled by GDG himself]
[2] A FAQ for each major Literate Programming tool,
    [only FWEB covered until now, it seems]
[3] A master LitProg FAQ [packages, "trivia", hosts, developers]
 
David Thompson (priv. email) had the idea for a FAQ on the "philosophy"
of LitProg. Starting from that, I'd like to enlarge the familiy
by proposing
 
[4] a MISC FAQ list [name open to discussion] for topics *not*
    related to software.
    David Thompson's initiative could be a good starting point.
    The reason for that split simply being that most people
    who page through [3] searching packages do not want to be
    bothered by discussions on something they haven't even looked
    at really. [Discussions who might tend to be lengthy and
    controversial, I assume.]
 
On the other hand (referring to an earlier posting by Eric van Ammers),
it seems desirable that Literate Programming converges towards a
unified tool [does it, really??]. This would imply that any discussion on
"philosophy" has to enter the killing fields of real software at some point.
 
A more technical point:
The simplest way of retaining homogeneity inspite of splitting
an all-embracing LitProg FAQ, is a common format for the FAQ lists.
  More specifically, I propose that all the FAQ lists should have
Texinfo format (*).
From my (reading) experience, most FAQ(-families) seek that format
at some point since it provides both on-line information
[as an Emacs info file]  and a nice form for printout [TeX, DVI, PS].
 
For people who'd like to contribute writing or co-authoring a FAQ
but are unwilling to write Texinfo files, I offer to do that job
[at least as long as it concerns a few files only] or send a template
to anyone who's willing to try himself.
Usually, it is easy and straightforward to turn a well-organized text
file into Texinfo and doesn't require substantial rewriting
(all one has to do is inserting control code for the title, headings,
 chapters, sections....and possibly index entries).
 
Also, I am curious how many people do really use which of the tools
 discussed on this list; from the traffic I'd guess that most
people are engaged with CWEB and FWEB which definitely are the
first FAQ files to be prepared. I do not know how you think about it,
but I like to read self-introductions ["I am working on so-and-so....
I (do not) work with xWEB because..." etc.] -- natural questions once
you receive several private mails from another (Literate) Programmer.
 
What do you think?--
--Marcus
 
(*) Texinfo does not the GNU Emacs editor -- it's just much simpler
if you have one [the same is true for the Info facility -- there is
a standalone "info" executable].
The current distribution [texinfo-2.1?.tar.Z]
can be retrieved via Anonymous FTP prep.ai.mit.edu
in directory pub/gnu. Installation is easy since
the FSF [Free Software Foundation] provides self-configuring files
for a wide variety of machines. Without Emacs, what the minimum
needed is two executables,
o "texi2dvi" for the step .texinfo -> .dvi, and
o "makeinfo" for the step .texinfo -> .info (i.e. text),
together with a collection of macros
o "texinfo.tex".
   If you have Emacs on your system, most probably you will also
have those files somewhere in a /local/ dir.
 
  Marcus Speh                      INTERnet <marcus@ips102.desy.de>
  II. Institut f. Theor. Physik    BITnet   <I02MSP@DHHDESY3>
  Luruper Chaussee 149             DECnet   <13313::SPEH>
  2000 Hamburg 50/Germany   Tel.(040)8998-2260  FAX:(040)8998-2267
 
From eds2@cornell.edu Mon Dec 14 19:23:42 -0500 1992
Date: Mon, 14 Dec 1992 19:23:42 -0500
From: eds2@cornell.edu (Eric Scharff)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Texinfo
 
Status: RO
 
>  More specifically, I propose that all the FAQ lists should have
>Texinfo format (*).
>From my (reading) experience, most FAQ(-families) seek that format
>at some point since it provides both on-line information
>[as an Emacs info file]  and a nice form for printout [TeX, DVI, PS].
 
I personall would find this to be an acceptable format, but I use emacs
regularly.  For those users that don't, a similar approach may be taken by
not using the texinfo macros and simply creating a Master LitProg style
sheet and distributing the faq in TeX format.  Whould anyone else like to
comment on these alternatives?
 
-Eric Scharff
 eds2@cornell.edu
 
From jfieber@sophia.smith.edu Mon Dec 14 21:19:18 EST 1992
Date: Mon, 14 Dec 92 21:19:18 EST
From: jfieber@sophia.smith.edu (John Fieber)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: Texinfo
 
Status: RO
 
> I personall would find this to be an acceptable format, but I use emacs
> regularly.  For those users that don't, a similar approach may be taken by
> not using the texinfo macros and simply creating a Master LitProg style
> sheet and distributing the faq in TeX format.
 
Why would making a custom LitProg style be any simpler than using
the texinfo macros that already exists?  If people don't want to
use emacs, (and there certainly are some) there is a standalone
info reader that I believe has been ported quite a few platforms.
If that still doesn't satisfy people, they can just feed it to
TeX and get a nice paper copy.
 
I personally like TeXinfo documentation because it can painlessly
be converted into my Amiga's "native" hypertext so I can use a
nice gui based hypertext browser to read them with.  Has anybody
done this on other platforms?  I know ms-windows has a hypertext
sort of help system but know nothing of the format...
 
My vote would be for TeXinfo since the same source document can
be so easily adapted to the user's preferred form.
 
-john
 
From Marcus Tue Dec 15 13:21:39 +0100 1992
Date: Tue, 15 Dec 92 13:21:39 +0100
From: Marcus Speh <marcus@ips102.desy.de>
Reply-To: LitProg@SHSU.edu
To: Literate Programmers <litprog@shsu.edu>
Subject: Re: Texinfo
 
Status: RO
 
> Why would making a custom LitProg style be any simpler than using
> the texinfo macros that already exists?  If people don't want to
> use emacs, (and there certainly are some) there is a standalone
> info reader that I believe has been ported quite a few platforms.
> If that still doesn't satisfy people, they can just feed it to
> TeX and get a nice paper copy.
 
I certainly agree with that point of view.
The info reader mentioned by John is part of the Texinfo distribution
available from prep.ai.mit.edu (in directory pub/gnu) (*).
 
Just in case people who haven't heard of Texinfo are getting confused
here: the debate on a format for the FAQ doesn't really have to bother
anyone but the prospective FAQ-maintainers, unless you insist
on having a true TeX FAQ file (as Eric Scharff proposed).
As John Fieber pointed out, once a FAQ has been prepared in Texinfo,
the mere consumer of the FAQ has a couple of options, and it's quite
improbable that none of Texinfo's children will be unusable for him.
 
--Marcus
--<marcus@ips102.desy.de>
 
(*) Alternatively one may invoke Emacs just to read the Info tree;
    in this case the info.el file can be easily adapted shielding
    a user unwilling to tinker with Emacs from any other but the
    one-letter commands of Info. That is what we are doing on our
    cluster where few people know anything else but vi(1).
 
From Marcus Tue Dec 15 13:27:09 +0100 1992
Date: Tue, 15 Dec 92 13:27:09 +0100
From: Marcus Speh <marcus@ips102.desy.de>
Reply-To: LitProg@SHSU.edu
To: Literate Programmers <litprog@shsu.edu>
Subject: Re: Texinfo
 
 Of course I meant
 
Status: RO
 
> As John Fieber pointed out, once a FAQ has been prepared in Texinfo,
> the mere consumer of the FAQ has a couple of options, and it's quite
> improbable that none of Texinfo's children will be   usable for him.
                                                     ^^
[The non-native English speaker's heavy burden.]
 
--Marcus
--<marcus@ips102.desy.de>
 
From Joachim Tue Dec 15 13:56:51 +0100 1992
Date: Tue, 15 Dec 92 13:56:51 +0100
From: Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: [comp.lang.apl] APLWEB and Literate Programming in APL
 
Status: RO
 
FYI, for those without News access.
 
I'll add APLWEB to the WEB archive in Darmstadt [*] RSN. (Ie, it will
be there tomorrow.)
 
Enjoy,
    Joachim
 
[*] ftp.th-darmstadt.de:/pub/tex/src/webware
 
---------------- included article follows:
 
Archive-name: auto/comp.lang.apl/APLWEB-and-Literate-Programming-in-APL
 
			Literate programming in APL
				and APLWEB
 
	A few years ago, Donald Knuth introduced WEB, a system for
	presenting source code and documentation in a single document.
	His scheme allows an author to give extended and copious notes
	about the intention of the code, along with the code itself, in
	a single document.
 
	Most readers will have heard about TeX, the most famous example
	of a successful product done this way, and I am sure that there
	must be other programming products done with WEB, but I can not
	name any others.  Now, from the University of Bielefeld comes
	APLWEB, a method for presenting APL code in a literate way.
	With APLWEB exposition and code may be blended into a single
	source document.  Two tools, TANGLE and WEAVE, are provided,
	which extract the APL executable code and produce TeX source,
	respectively.
 
	APLWEB is a means by which one may write an article or book,
	and include along with it, in one place, the APL source for the
	immediate execution lines and APL functions that accompany it.
 
	The developer of APLWEB is Dr. Christoph von Basum, e-mail
	<CvB@erasmus.hrz.uni-bielefeld.de>, who has written his Ph.D.
	thesis about literate programming in APL.  He is the author
	of all the C-code and TeX-macros. The ccapl-font was designed
	by students at the University of Bielefeld.
 
	This work was communicated to us by Bernhard Strohmeier, whose
	e-mail address is <bstrohmeier@erasmus.hrz.uni-bielefeld.de>.
	Mr. Strohmeier is a Ph.D. student at the University of
	Bielefeld, working under the supervision of Professor Peter
	Naeve and Dr. Peter Wolf.  Mr.  Strohmeier is using APLWEB as a
	tool to aid in the writing of his doctoral thesis about causal
	networks.
 
	The first English language release of this work works with IBM
	APL2 and STSC APL and is now available by anonymous ftp at
	watserv1.uwaterloo.ca (129.97.129.140) in the directory
	languages/apl/aplweb.  It is designed to run on IBM personal
	computers.
 
	Lee Dickey
	1992-12-07
 
--
Prof. Leroy J. Dickey, Faculty of Mathematics, U of Waterloo, Canada  N2L 3G1
   Internet:      ljdickey@math.UWaterloo.ca
                  ljdickey@math.waterloo.edu
   UUCP:          ljdickey@watmath.UUCP
 
--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Joachim Schrod			Email: schrod@iti.informatik.th-darmstadt.de
Computer Science Department
Technical University of Darmstadt, Germany
 
	    @d infinity=255 {$\infty$ (approximately)}
							[DEK, in weave.web]
 
From Eric Tue Dec 15 13:56:51 +0100 1992
Date: Tue, 15 Dec 92 13:56:51 +0100
From: "Eric W. van Ammers, LUW, tel: (+31)8370-83356" <AMMERS@RCL.WAU.NL>
Reply-To: LitProg@SHSU.edu
To: LITPROG@shsu.edu
Subject: Aboout FAQ's and Discussions
 
Status: RO
 
Discussions and FAQ's
 
The first FAQ on Literate Programming, dedicated to FWEB, has been born. This
is a good start and it will definitely help many newcomers in the field to find
their way much more efficiently. However, I would like stimulate the discussion
within this group towards more general topics and some of the more recent mails
suggest the time is ripe. Evidently a FAQ is to summarize each discussion.
    First of all I want to support and extend the earlier made suggestion to
start a discussion on literate programming tools. Not only would I like to have
an overview of the specific tools that are around, but in addition I would
welcome a discussion on the properties that we think such a tool should exhibit
in general and which properties we consider of highest priority. By means of
this discussion it maybe even possible to get to a sort of specification for a
future LP-tool.
    Secondly I'm interested in the more 'philosophical' aspects of literate
programming. I'm convinced that this will be very helpful to spread the word.
Although I'm a fairly experienced literate programmer myself, I have e.g. a lot
of trouble explaining the superiority of the LP paradigm. Let me jot down a few
of the questions that in my opinion belong to this category
a.  What makes a literate program superior compared to more conventional
     techniques e.g. stepwise refined modules in combination with a
     (consistent) documentation.
b.  Is a literate program superior to a documentation that contains every
     refinement as a separate routine described independently? And if yes, why?
c.  Most people agree these days that "programming" is essentially independent
     of any particular "programming language". That is a "good" programmer will
     deliver "good" programs in any language (given a couple of weeks to learn
     the language), while a "bad" programmer will never produce good programs
     (no matter what language they use). Now, if it is true that LP somehow
     captures the essentials of "good programming", then it must necessarily be
     independent of any particular language. Can we define these essential
     characteristics of LP?
 
It seems to me that this sort of discussions are in the long run much more
important and interesting then the strictly technical ones that currently
dominate.
    A final remark about the format of FAQ's. A certain Texinfo format has been
mentioned several times. But please take notice that not everyone programs
literate with WEB and LaTeX. So I strongly recommend a more formatter
independent format for FAQ's.
 
Eric W. van Ammers    (ammers@rcl.wau.nl)
 
From Hans-Hermann Tue Dec 15 12:57:50 MEZ 1992
Date: Tue, 15 Dec 92 12:57:50 MEZ
From: Hans-Hermann Bode <HHBODE@dosuni1.rz.Uni-Osnabrueck.DE>
Reply-To: LitProg@SHSU.edu
To: litprog@SHSU.edu
Subject: RE: Compiling Cweb 2.8 with MS C/C++ v7.0
 
George D. Greenwade wrote:
 
Status: RO
 
>It's not 2.8, but....  I attempted to ftp to dione.rz.uni-osnabrueck.de
>(where Hans Hermann [I believe] keeps just about everything for the PC).
>Unfortunately, after connecting, I was unable to issue any commands as I
>never got a prompt.  So I went to ftp.uni-stuttgart.de and retrieved
>cweb-p.zip and have made it available from Niord.SHSU.edu as
>[FILESERV.PC-WEB]CWEB-P27.ZIP (version 2.7 for DOS, with executables,
>etc.).  I added the "27" to better identify the version number (sorry to
>have bastardized the filename).
 
The server in Osnabr\"uck has been changed to tethys.rz.uni-osnabrueck.de
(131.173.17.10). I have mentioned this in my announcement of the latest
CWEB-p release, but the hint maybe has not been broad enough. Sorry for that.
 
Anyway, the Stuttgart version of cweb-p.zip is up-to-date as well. It is a
port of CWEB 2.7, indeed. Although I have a set of changes to CWEB 2.8 also,
I will not make them public, as I experimented a bit with the structure of
the changes with the result, that it requires certain tools to adapt them. I
think, it's not worth to make an effort to remove these requirements in view
of the upcoming 2.9++ release of CWEB. Because the changes that will remain
in this version are almost exclusively PC related, I will rename the package
from CWEB-p to CWEBPC as it has been called earlier; it will be released
soon after CWEB 2.9++ gets out of beta state. (By the way, George: the
current CWEBPC.ZIP on niord is a previous version of CWEB-P27.ZIP, so you
can delete it.)
 
>Quick question to you literate programmers out there: where in the heck do
>you generally retain the version numbers in your releases?  Is there a
>given file to look at or is it embedded in some specific place?  Or is this
>a topic which hasn't been discussed among literate programmers (this is not
>true, I am pretty sure).  Sure would make archiving easier, if......... ;-)
 
Hm, I never took part in such a discussion. I think, the version number
should be located somewhere at the beginning of each source file, and---if
there is more than one source file---there should be a README file that also
contains the (most recent) version number somewhere at the beginning (I
admit that I sometimes have forgotten the latter). I would refuse to use a
more rigid pattern here, because the layout of a file in my opinion is a
very individual matter. However, if it would be helpful for archiving, I
suggest to include a file VERSION in each package that contains nothing than
the version number and the date of the most recent source file.
 
Hermann
 
From mcguire@cs.tamu.edu Tue Dec 15 09:19:54 CST 1992
Date: Tue, 15 Dec 92 09:19:54 CST
From: mcguire@cs.tamu.edu (Dr. Tim McGuire)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: Texinfo
 
Status: RO
 
This discussion of TeXinfo format for the FAQ-list has given me
a brainstorm about a problem we're discussing here at the Institute.
 
We are considering using FWEB for our development of scientific
codes.  The question was raised concerning on-line documentation.
Is there a tool that will display a WEB with TeXinfo?  We desire
on-line documentation that is easily navigable, displayable on a
variety of display devices, relatively compact, and has the ability
to include graphic diagrams in say encapsulated PostScript.
 
Any information you can give me would be much appreciated.
 
Tim McGuire
mcguire@cs.tamu.edu
------
Research Associate
Institute for Scientific Computation
\TeX{}as A\&M University
------
 
From jfieber@sophia.smith.edu Tue Dec 15 12:45:35 EST 1992
Date: Tue, 15 Dec 92 12:45:35 EST
From: jfieber@sophia.smith.edu (John Fieber)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: Texinfo
 
Status: RO
 
> Is there a tool that will display a WEB with TeXinfo?  We desire
> on-line documentation that is easily navigable, displayable on a
> variety of display devices, relatively compact, and has the ability
> to include graphic diagrams in say encapsulated PostScript.
 
Or, since TeXinfo is already tuned to computer documentation,
maybe an extension or two to TeXinfo along with a tangle that
takes a TeXinfo document as its `web' source.  (I have not
thought out any of the details; just an extension of Tim's
brainstorm)
 
Another mostly unrelated brainstorm, has anybody tried out cweb
with eplain rather than plain TeX?
 
-john
 
From eds2@cornell.edu Tue Dec 15 12:57:45 -0600 1992
Date: Tue, 15 Dec 1992 12:57:45 -0600
From: eds2@cornell.edu (Eric Scharff)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: Texinfo
 
Status: RO
 
>Just in case people who haven't heard of Texinfo are getting confused
>here: the debate on a format for the FAQ doesn't really have to bother
>anyone but the prospective FAQ-maintainers, unless you insist
>on having a true TeX FAQ file (as Eric Scharff proposed).
>As John Fieber pointed out, once a FAQ has been prepared in Texinfo,
>the mere consumer of the FAQ has a couple of options, and it's quite
>improbable that none of Texinfo's children will be unusable for him.
 
I agree.  The only reason I had proposed a pure TeX file was because I have
never used a texinfo file outside of emacs, so I didn't know how convenient
it would (or would not) be.  It seems then that there should be no problem
with the texinfo file.
 
By the way, I don't know anything about the windows Hypertext systems, but
I am pretty sure that there is an MS-DOS based hypertext program that can
read info files.
 
-Eric Scharff
 eds2@cornell.edu
 
From Peter Tue Dec 15 19:43:09 MEZ 1992
Date: Tue, 15 Dec 92 19:43:09 MEZ
From: Peter Schmitt <A8131DAL%AWIUNI11.BITNET@SHSU.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: Texinfo
 
Status: RO
 
>
>I agree.  The only reason I had proposed a pure TeX file was because I have
>never used a texinfo file outside of emacs, so I didn't know how convenient
>it would (or would not) be.  It seems then that there should be no problem
>with the texinfo file.
>
 
I have never looked at a texinfo file yet - therfore:
 
Is it (easily) readable *without any tool*?
I think, a FAQ should be usable with a pure ASCII file viewer -
everything else would only be a bonus ---
Remember: FAQ's are also (or even especially) for not so
 computer literate people!
(They should not need another FAQ: How to read a FAQ? before consulting it!)
 
Peter
 
Peter Schmitt                             a8131dal@awiuni11.edvz.univie.ac.at
                                                        schmitt@awirap.bitnet
-----------------------------------------------------------------------------
Institute of Mathematics                                     Strudlhofgasse 4
University of Vienna                                              A-1090 Wien
                                                                      Austria
 
From leew@cs.utexas.edu Tue Dec 15 13:54:56 -0600 1992
Date: Tue, 15 Dec 1992 13:54:56 -0600
From: leew@cs.utexas.edu (Lee Wittenberg)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: LiteratureProg [Re: How did tangle and weave get their names]
 
Just to get into the act:
 
	I don't really know where the "Oh what a tangled web..." quote
	comes from (and my _Oxford_Dictionary_of_Quotations_ is back in New
	Jersey), but there is a "punctured" ending (which may or may not be
	from Richard Armour's _Punctured_Poems_) that give us:
 
		Oh what a tangled web we weave
		When first we practice to deceive.
		But when we've practiced quite a while,
		How vastly we improve our style!
 
	If the modified version is not Armour's, I'd appreciate someone
	letting me know who wrote it.
 
		-- Lee Wittenberg
 
From leew@cs.utexas.edu Tue Dec 15 14:41:06 -0600 1992
Date: Tue, 15 Dec 1992 14:41:06 -0600
From: leew@cs.utexas.edu (Lee Wittenberg)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: Compiling Cweb 2.8 with MS C/C++ v7.0
 
Nelson Beebe writes:
 
  > I've been working for two weeks on the problem of making CWeb 2.9
  > run on the IBM PC.  This is difficult because of the segmented memory
  > architecture, and a great many source changes are necessary.  I have
  > made considerable progress this week, and hope to be able to report
  > success in the near future.  In the meantime, I'd suggest postponing
  > further attempts at porting to that architecture to avoid duplication
  > of labor.
 
Status: RO
 
The segmented architecture problem really doesn't require all that many
changes.  I was able to get CWEB v2.4 compiled under Borland C fairly
easily.  I don't think there have been any significant changes regarding
portability since then (I've been using Spidery WEB, since CWEB doesn't yet
support Standard C).  The only changes I had to make were as follows:
 
	For CTANGLE:  I simply reduced the size of each array to <= 64K
	bytes, compiled with the compact memory model (small code/large
	data), and used the -Ff option (which automatically assigns arrays
	larger than a certain size their own segment).  In Microsoft C, you
	should be able to keep the arrays their original size and compile
	using the huge memory model.  The /Gt option is supposed to do the
	same thing as Borland's -Ff.  (I say "should" because I haven't
	yet been able to scare up enough disk space to install the Microsoft
	compiler, so that I can try it).
 
	For CWEAVE:  I reduced the array sizes as with CTANGLE (ditto on
	the compact memory model and the -Ff option), but there is an
	interesting flaw in the CWEAVE code.  I say flaw, rather than bug,
	because the code is correct, it is just not portable.  There are
	a number of places in the code where constructions like:
 
		n + p - q
	or
 
		p + n - q
 
	(where p and q are pointers and n is an integer) appear.  On
	a machine with a 64K address space (like the IBM-PC or PDP-11), the
	addition can cause an arithmetic overflow, but since there is an
	invisible multiplication in the pointer arithmetic, the subtraction
	does not undo the problem -- it makes it worse.  Theoretically, this
	could also happen in a 32-bit pointer environment (if the array is
	located in *very* high memory -- maybe it *is* a bug, after all).
	I don't know if it is fixed in the latest version -- it was still
	in 2.7.  The only way to fix it is to parenthesize the expression
	so that the pointer subtraction occurs before the integer value is
	added.  That way overflow can never occur.
 
	Once I fixed this problem, I had no problem getting CWEAVE running
	on my PC.  Incidentally, the same comments apply to Spidery WEB, if
	anyone is interested.
 
	Personal note:  It was the discovery of this bug that converted me
	to Literate Programming.  If I had not had the woven listing, I
	would have given up long before I found the problem (the index was
	especially helpful).  As it was, I was able to track down a
	particularly well-hidden bug in a fairly short period of time
	(less than 2 weeks, part-time).
 
Hope this helps.
 
	-- Lee
 
From dak@POOL.informatik.rwth-aachen.de Tue Dec 15 23:19:59 +0100 1992
Date: Tue, 15 Dec 92 23:19:59 +0100
From: dak@POOL.informatik.rwth-aachen.de
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: Texinfo
 
Status: RO
 
TeXinfo files are pretty readable even using ordinary editors. Of course
I exempt TeX formulas which aren't displayed by emacs and info properly
as well. In addition, if you have texinfo.tex (available from the
standard GNU sites), plain TeXing will produce a printed doc (that
is, you do not need a precompiled format)
So TeXinfo should be ok, the problem is not as much reading it, but
the additional work in creating it.
 
From adb-b@minster.york.ac.uk Wed Dec 16 01:22:59  1992
Date: Wed, 16 Dec 92 01:22:59
From: adb-b@minster.york.ac.uk
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: How tangle and weave got their name
 
	leew@cs.utexas.edu (Lee Wittenberg)
	writes:
>	Just to get into the act:
 
Status: RO
 
>		I don't really know where the "Oh what a tangled web..." quote
>		comes from (and my _Oxford_Dictionary_of_Quotations_ is back in New
>		Jersey), but there is a "punctured" ending (which may or may not be
>		from Richard Armour's _Punctured_Poems_) that give us:
>
>			Oh what a tangled web we weave
>			When first we practice to deceive.
>			But when we've practiced quite a while,
>			How vastly we improve our style!
>
>		If the modified version is not Armour's, I'd appreciate someone
>		letting me know who wrote it.
>
>			-- Lee Wittenberg
 
Although I haven't heard of the modified version, I
can help you with the original.
The quote is referenced Jon Bentley in CACM 29(5) [May 1986], p365;
and was written by Walter Scott.
 
Andy.
 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|Andrew D. Brydon   |                                                        |
|Univeristy of York |      Email:     adb-b@minster.york.ac.uk               |
|York, ENGLAND.     |    Project:     adb-b-web@minster.york.ac.uk           |
|YO1 5DD            |                                                        |
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
From uunet!emx.cc.utexas.edu!plyon Wed Dec 16 20:12:13 1992
Date:  Wed, 16 Dec 92 19:56:57 -0600
From: uunet!emx.cc.utexas.edu!plyon (Paul Lyon)
Subject: funnelweb
 
Status: RO
 
Fweb and funnelweb are quite distinct. Fweb is built on top of the
Cweb framework; although the parser in its weave processor can do
more---all of ratfor, C, C++, and (though the support is not
complete), TeX, it is still confined to those specific languages, and
still imposes on the user the formatting conventions that please its
author. To get something different you will have to hack the weave
processor. (One could possibly get somewhere by modifying the TeX
macro package that Fweb uses, but that might be the harder way to go,
unless, of course, you are already a TeXpert :-)
 
Funnelweb, on the other hand, does not try to parse the "source" code
at all; it just takes the layout of the source as written, turns off
the meaning of plain TeX's special characters, sets typewriter font,
and then invokes \obeylines and \obeyspaces; all this together causes
TeX to print the source verbatim (the paragraph formatting is turned
off, and TeX does not gobble spaces). The original WEB, Cweb, Fweb,
and Spiderweb all parse and format the source, inserting TeX math
codes for the operators, putting keywords in boldfont, adjusting the
indentation, and so on. If you like the style chosen for the
programme, it looks much nicer that way. Except for Spiderweb, which
can be adapted to various languages by allowing a fair range of
variation in specifying the pretty printing grammar using a large awk
script to process the grammar spec and generate replacement code for
significant chunks of weave, the pretty printing parser(s) in the
other are hard coded. This has it uses besides making the typeset code
more attractive; WEB, Cweb, Fweb, and Spiderweb all do an index of
identifiers for the code that can differentiate, for the most part,
between declaration and use of an identifier (they know enough about
the grammar to do that, but not, of course, as much as a compiler or
interpreter).
 
None of the tangles (funnelweb included) distinguishes code from
documentation by seeing what is TeX and what is not. Instead they all
use special indicators for the one and the other. In funnelweb, e.g.,
anything enclosed in a `@{', `@}' pair is "source", anything without
is either documentation or other directives to its tangle and weave
components. In WEB, Cweb, Fweb, and Spiderweb, file positioning also
counts. Funnelweb views its source file as chunks of of code
interspersed with documentation, but without restrictions on how many
chunks of code, say, can follow one another without intervening text.
In the others the file is deemed to made up of sections, each of which
has a (possibly empty) documentation section, followed by a (possibly
empty) definition section (macros) followed by a (possibly empty) code
section. The only end delimiter for any one of these parts is the
opening delimiter for the next part. In any case, though one may have
multiple macros in the definition section, one may have at most one
named code chunk in the code part. Effectively, then, the file is
broken up by the @-whitespace-char or `@*' combinations that mark the
beginning of the TeX part of a web section (or module, as Knuth used
to call it, until remonstrations to Silvio Levy (the coauthor of Cweb)
about the use of the term were made in this mailing-list).
 
Hope this helps...
 
Paul Lyon
 
----- End Included Message -----
 
From grodecki@quivira.informix.com Thu Dec 17 08:17:30 CST 1992
Date: Thu, 17 Dec 92 08:17:30 CST
From: grodecki@quivira.informix.com (Don Grodecki)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: funnelweb
 
Status: RO
 
There is some great information in the attached that I thought
others might want to know:
 
----- Begin Included Message -----
 
From Timothy Thu Dec 17 16:47:02 GMT 1992
Date: Thu, 17 Dec 92 16:47:02 GMT
From: Timothy Murphy <tim@maths.tcd.ie>
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Compiling Cweb 2.9++ with Borland-C++
 
Status: RO
 
Sylvio Levy kindly sent me Cweb 2.9++,
and I found it compiled on the PC with Borland-C++ very easily.
I was using v2.0 of the compiler,
but I doubt if that makes any difference.
 
The change files are so small that it is quicker to give them
than to describe the changes needed!
The reduced arrays are large enough to tangle and cweave
cweave itself, anyway.
Here they are, followed by the makefile.
They are available from ftp.maths.tcd.ie in pub/TeX/CWEB .
 
This is the change file for CWEB's COMMON under Borland-C++ on the PC.
 
created:
    10-DEC-1992 Timothy Murphy <tim@maths.tcd.ie>
 
modified:
    not yet!
 
@x l.5
% Version 2.9++ --- November 1992
@y
% Version 2.9++ --- November 1992
% With changes for Borland-C++ on the PC
% by Timothy Murphy <tim@@maths.tcd.ie> December 1992
@z
 
@x l.571
@d max_bytes 90000 /* the number of bytes in identifiers,
  index entries, and section names; must be less than $2^{24}$ */
@y
@d max_bytes 60000 /* the number of bytes in identifiers,
  index entries, and section names; must be less than $2^{24}$ */
@z
 
This is the change file for CWEB's CTANGLE under Borland-C++ on the PC.
 
created:
    10-DEC-1992 Timothy Murphy <tim@maths.tcd.ie>
 
modified:
    not yet!
 
@x l.5
% Version 2.9++ --- November 1992
@y
% Version 2.9++ --- November 1992
% With changes for Borland-C++ on the PC
% by Timothy Murphy <tim@@maths.tcd.ie> December 1992
@z
 
@x l.100
@d max_bytes 90000 /* the number of bytes in identifiers,
  index entries, and section names; used in |"common.w"| */
@d max_toks 270000 /* number of bytes in compressed \cee/ code */
@y
@d max_bytes 60000 /* the number of bytes in identifiers,
  index entries, and section names; used in |"common.w"| */
@d max_toks 60000 /* number of bytes in compressed \cee/ code */
@z
 
This is the change file for CWEB's CWEAVE under Borland-C++ on the PC.
 
created:
    10-DEC-1992 Timothy Murphy <tim@maths.tcd.ie>
 
modified:
    not yet!
 
@x l.5  (TGM)
% Version 2.9++ --- November 1992
@y
% Version 2.9++ --- November 1992
% With changes for THINK C on the Macintosh
% by Timothy Murphy <tim@@maths.tcd.ie> December 1992
@z
 
@x l.109
@d max_bytes 90000 /* the number of bytes in identifiers,
  index entries, and section names */
@y
@d max_bytes 60000 /* the number of bytes in identifiers,
  index entries, and section names */
@z
 
@x l.120
@d max_refs 20000 /* number of cross-references; must be less than 65536 */
@y
@d max_refs 10000 /* number of cross-references; must be less than 65536 */
@z
 
# This file is part of CWEB.
# It is distributed WITHOUT ANY WARRANTY, express or implied.
# Version 2.9++ -- November 1992
 
# Copyright (C) 1987,1990,1992 Silvio Levy and Donald E. Knuth
 
# Permission is granted to make and distribute verbatim copies of this
# document provided that the copyright notice and this permission notice
# are preserved on all copies.
 
# Permission is granted to copy and distribute modified versions of this
# document under the conditions for verbatim copying, provided that the
# entire resulting derived work is distributed under the terms of a
# permission notice identical to this one.
 
#
# Read the README file, then edit this file to reflect local conditions
#
 
# Makefile modified for Borland-C++ by Timothy Murphy <tim@maths.tcd.ie>
 
# directory for TeX inputs (cwebmac.tex goes here)
MACROSDIR= /tex/inputs
 
# directory for CWEB inputs in @i files
CWEBINPUTS= /cweb
 
# destination directory for executables; must end in /
DESTDIR= /bin/
 
# Set DESTPREF to null if you want to call the executables "tangle" and "weave"
# (probably NOT a good idea; we recommend leaving DESTPREF=c)
DESTPREF=c
 
# Set CCHANGES to common-foo.ch if you need changes to common.w
CCHANGES=common.pch
 
# Set TCHANGES to ctangle-foo.ch if you need changes to ctangle.w
TCHANGES=ctangle.pch
 
# Set WCHANGES to cweave-foo.ch if you need changes to cweave.w
WCHANGES=cweave.pch
 
# -ml = large model, -Ff = place large arrays in separate segments
CFLAGS = -O -ml -Ff=5000
LINKFLAGS = -ml
 
# What C compiler are you using?
CC = bcc
 
# RM and CP are used below in case rm and cp are aliased
RM= del
CP= copy
 
##########  You shouldn't have to change anything after this point #######
 
# Some changes required for Borland-C++, eg .obj for .o <tim@maths.tcd.ie>
 
CWEAVE = ./cweave
CTANGLE = ./ctangle
SOURCES = cweave.w common.w ctangle.w
ALMOSTALL =  common.w ctangle.w Makefile README common.c common.h ctangle.c \
	cwebman.tex cwebmac.tex examples common.pch ctangle.pch \
	cweave.pch common-man.ch ctangle-man.ch cweave-man.ch \
	prod.w
ALL =  $(ALMOSTALL) cweave.w
 
.w.tex:
	$(CWEAVE) $* $*.pch
 
.tex.dvi:
	tex $<
 
.w.c:
	$(CTANGLE) $* $*.pch
 
.c.obj:
	$(CC) -c $(CFLAGS) $<
 
all: ctangle cweave
 
cautiously: ctangle.exe
	$(CP) common.c SAVEcommon.c
	./ctangle common $(CCHANGES)
	diff common.c SAVEcommon.c
	$(RM) SAVEcommon.c
	$(CP) ctangle.c SAVEctangle.c
	./ctangle ctangle $(TCHANGES)
	diff ctangle.c SAVEctangle.c
	$(RM) SAVEctangle.c
 
SAVEctangle.c:
	$(CP) ctangle.c SAVEctangle.c
 
SAVEcommon.c:
	$(CP) common.c SAVEcommon.c
 
common.c: common.w $(CCHANGES)
	$(CTANGLE) common $(CCHANGES)
 
common.obj: common.c
	$(CC) $(CFLAGS) -DCWEBINPUTS="$(CWEBINPUTS)/" -c common.c
 
ctangle: ctangle.obj common.obj
	$(CC) $(LINKFLAGS) ctangle.obj common.obj
 
ctangle.c: ctangle.w $(TCHANGES)
	$(CTANGLE) ctangle $(TCHANGES)
 
cweave: cweave.obj common.obj
	$(CC) $(LINKFLAGS) cweave.obj common.obj
 
cweave.c: cweave.w $(WCHANGES)
	$(CTANGLE) cweave $(WCHANGES)
 
doc: $(SOURCES:.w=.dvi)
 
usermanual: cwebman.tex cwebmac.tex
	tex cwebman
 
fullmanual: cweave.exe usermanual $(SOURCES) common-man.ch ctangle-man.ch cweave-man.ch
	./cweave common.w common-man.ch
	tex common.tex
	./cweave ctangle.w ctangle-man.ch
	tex ctangle.tex
	./cweave cweave.w cweave-man.ch
	tex cweave.tex
 
# be sure to leave ctangle.c and common.c for bootstrapping
clean:
	$(RM) *.obj
	$(RM) *.bak
	$(RM) common.tex
	$(RM) ctangle.tex
	$(RM) cweave.tex
	$(RM) cweave.c
	$(RM) ctangle.exe
	$(RM) cweave.exe
 
install: all
	$(CP) cweave $(DESTDIR)$(DESTPREF)weave
	$(CP) ctangle $(DESTDIR)$(DESTPREF)tangle
	$(CP) cwebmac.tex $(MACROSDIR)
 
Timothy Murphy
 
e-mail: tim@maths.tcd.ie
tel: +353-1-2842366 (home/office)
     +353-1-7021507 (university)
fax: +353-1-2842295
s-mail: School of Mathematics, Trinity College, Dublin 2, Ireland
 
From Jeff Thu Dec 17 11:48 EST 1992
Date: Thu, 17 Dec 92 11:48 EST
From: Jeff Rummel <RUMMEL%DUKEFSB.BITNET@SHSU.edu>
Reply-To: LitProg@SHSU.edu
To: LITPROG@SHSU.edu
Subject: cnoweb modifications
 
Status: RO
 
I have been using c-no-web for a while with much success and am now trying
to make a modification to it which has led me to a tricky problem I am
not sure how to solve.  What I would like is to have modules be independent
so they can be compiled/texed individually.  So each starts with
   /* <pi>input cnoweb ...
and ends with
   ... /* <pi>endc */
 
The change would allow me to have a source file that collects all the separate
source files into one big listing (with one toc).  I imagined something like
 
/* <pi>input cnoweb
   <pi>printingmodulestrue   % new if to control how the <pi>endc in each file acts
   <pi>input{main.c}
   <pi>input{foo1.c}
   ... etc ...
   <pi>printingmodulesfalse
   <pi>endc */
 
I added an <pi>ifx so that cnoweb.tex is only read during the first <pi>input.
The changes required were not too bad -- I planned to use the <pi>if to cause
<pi>endc to either <pi>endinput or <pi>end (and to handle when to do the toc).  But
there is a slight hitch, since <pi>endinput is a flag that causes the file to
close at the end of the line, not when <pi>endinput is encountered.  So if the
main.c has
 
   /* <pi>endc */
 
the */ flips the code back into verbatim mode and foo1.c is not input because
'<pi>' has no special meaning.  If, however, main.c ends with
 
   /* <pi>endc
    */
 
then everything works perfectly (well almost).  Now I suppose I could live
with the convention of putting the closing */ on its own line, but I would
really prefer to have a scheme that is a little more robust.
 
In the verbatim mode, '/' is an active character that looks to see if the
next character is a '*' -- if it is, then the processing shifts to tex mode.
Clearly
 
   <pi>def<pi>module#1{<pi>input #1 /*}
 
will not work, because this is a plain '/' and not an active one.  This is
where my texpertise is not what it should be: I tried <pi>gdef<pi>module in a
group where '/' *is* active, but that didn't seem to work.
 
Anything else I should try?  What I have now is a 'print' in my makefile
that spins all the files through tex, but I really would like a single
document with page numbers and a toc.  If there is another more obvious
way to do this, I would appreciate suggestions.  TIA.
 
--jeff.
 
From Timothy Thu Dec 17 16:54:02 GMT 1992
Date: Thu, 17 Dec 92 16:54:02 GMT
From: Timothy Murphy <tim@maths.tcd.ie>
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Compiling Cweb 2.9++ with Borland-C++
 
Status: RO
 
If using the change files for CWEB 2.9++ which I just posted,
please make global substitution of .bcc for .pch in the Makefile.bcc .
(I changed by mind about an appropriate extension after the last minute!)
 
Timothy Murphy
 
e-mail: tim@maths.tcd.ie
tel: +353-1-2842366 (home/office)
     +353-1-7021507 (university)
fax: +353-1-2842295
s-mail: School of Mathematics, Trinity College, Dublin 2, Ireland
 
From Silvio Thu Dec 17 14:51:56 CST 1992
Date: Thu, 17 Dec 92 14:51:56 CST
From: Silvio Levy <levy@geom.umn.edu>
Reply-To: LitProg@SHSU.edu
To: tim@maths.tcd.ie
Subject: Re: Compiling Cweb 2.9++ with Borland-C++
 
Status: RO
 
The files for CWEB 2.9++ that I sent you were NOT for further
distribution.  Thank you for the changes to make it run under
Borland C++, but any further comments on 2.9++ should be sent
to me only.
 
Silvio
 
From Nelson Thu Dec 17 16:28:22 MST 1992
Date: Thu, 17 Dec 92 16:28:22 MST
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: Compiling Cweb 2.9++ with Borland-C++
 
Status: RO
 
I've not distributed the 2.9 code anywhere; the only comment I made
was on the problems I had on the IBM PC, which remain unresolved.
I've received some suggestions from 2 individuals which I plan to
investigate.
 
I have to leave town unexpectedly tonight because of a family emergency;
I'll work more on the CWEB 2.9 ports when I get back.
 
Nelson H. F. Beebe                      Tel: +1 801 581 5254
Center for Scientific Computing         FAX: +1 801 581 4148
Department of Mathematics, 105 JWB      Internet: beebe@math.utah.edu
University of Utah
Salt Lake City, UT 84112, USA
 
From Zdenek Fri Dec 18 09:58:55 MDT 1992
Date: Fri, 18 Dec 92 09:58:55 MDT
From: Zdenek Wagner <WAGNER%CSEARN.BITNET@SHSU.edu>
Reply-To: LitProg@SHSU.edu
To: Literate Progaramming list <LitProg@SHSU.edu>
Subject: Re: cnoweb modifications
 
Status: RO
 
Unfortunately I am not a TeXpert a dn I do not have my notebook here. However,
as I remember fro the tutorial by Phil Taylor at EuroTeX, I hope that
<pi>aftergroup should solve your problem.
 
                                                ,
,~~~/        /`               /     /|      /~~~
   /        /           |_/  /_/   ' |     /
  /     /~~/ /~~/ /~~/ /~~/ /\       | /| / /~~/ /~~/ /~~/ /~~/ /~~~
 /   , /  / /~~~ /  / /~~~ /  \      |/ |/ /  /_/  / /  / /~~~ /
 ~~~~  ~~~  ~~~ '  '  ~~~ '    `           ~~~  ~~/ '  '  ~~~
                              Zdenek Wagner______/
 
From thompson@qmsbs2.er.usgs.GOV Mon Dec 21 13:35:41 -0600 1992
Date: Mon, 21 Dec 1992 13:35:41 -0600
From: thompson@qmsbs2.er.usgs.GOV (David Thompson)
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: misc faq proposal
 
Status: RO
 
Many authors have discussed a general faq for the LitProg discussion list.
Much of recent discussion was focused on the format of the proposed faq.
Personally, I think this is putting the cart before the horse.  Of greater
import is the contents of the faq.
 
I have been waffling about whether I should volunteer to undertake
production and maintainance of the LitProg faq (general version).  I'm not
certain I have the time to put into creating and maintaining this document.
OTOH, I have already spent so much time thinking about what it should
contain and how it should be presented, that I might as well volunteer.
So, if you are willing to give me some time to put together the details,
I'm willing to put together a faq. I'm facing a career change and move in
about two weeks, so I'll be a little busy until 1Feb93 (or so). I'd like to
have to have that much time to put something together, although I may be
able to get a draft together before then.  (In other words, I'm not
promising anything until 1Feb93. :-)
 
What I propose in a litprog faq is to extract parts of Marcus Speh's FWEB
faq, and add sections that are more general in nature.  Specifically, I
suggest that the following be included (for starters):
 
* How to get the faq.
     * Anonymous ftp to niord.shsu.edu
* The LitProg mailing list.
     * Edited from Speh's FWEB FAQ
* What is literate programming?
     * Excerpts from LitProg archives
     * Pointers to specific articles
* What tools are available?
     * List of known tools
     * Pointer to other LitProg FAQ's (Speh's for now)
* Where are the tools?
     * niord.shsu.edu
     * List of developer's sites?
* How do I begin literate programming?
     * (WhooBoy!  Should I use "Just Do It!"?)
* What other resources are available?
* Code examples.
     * Cameron Smith's KR-CWEB
     * Bart Child's examples for FWEB
* List of developers.
* Brief bibliography and pointer to Nelson Beebe's exhaustive bibliography.
 
There are other important topics, but the above are a start.  I'll go
through (again) the LitProg archives for additional topics.
 
[Step 1] If the group is willing to allow me to babysit the LitProg FAQ for
a while, then I need to know.
 
[Step 2] If I'm going to be babysitter and any of you have further
suggestions, please send me email at my signature address below.  I'd like
to suggest that we preserve the mailing list for literate programming
details, and take discussions of the faq private, in general.  If this
isn't appropriate, I'm sure I'll hear about it. ;-)
 
[Step 3] If I'm going to create a general faq, then I'll need contributions
of material to fill in the outline above.  I'd like developers to contact
me (for the developer's list and for a paragraph or so describing your tool),
plus I'd like literate programmers to help me out.  Remember, I'm a civil
engineer and not a computer scientist!  (And no cracks about my civility,
ya hear!? :-)
 
David B. Thompson (thompson@qmsbs2.er.usgs.gov)
 
P.S.  As of 1Jan93, my email address will be:
wqdbt@ttacs1.ttu.edu
 
From Klaus Tue Dec 22 07:48:01 +0100 1992
Date: Tue, 22 Dec 1992 07:48:01 +0100 (MEZ)
From: Klaus Guntermann <gunterma@iti.informatik.th-darmstadt.de>
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: tie version 2.4 available
 
Status: RO
 
As Hans-Hermann Bode already mentioned on 10 Dec 92 in the litprog
list, a CWEB version of `tie' is now available. I append the README
file four your information (and I don't mind if someone puts the tar
archive on other servers for convenient retrieval).
 
Including seasonal greetings
 
	Klaus Guntermann <guntermann@iti.informatik.th-darmstadt.de>
 
For the history records: this version is a rewrite of the Pascal WEB
version of `tie', which had been announced in TUGboat Vol. 7, No. 3
(Oct. 1986).
----------------------TIE README--------------------------
This is the README file of the `tie' distribution.
 The current version is 2.4.
 This file was created on 18 Dec 92.
 
SUBJECT:
 
`Tie' is a program which was first developed to allow WEB programmers
(be it Pascal-, C- or any other WEB) to add more than one change file
to their programs.
 
 But it can be used to create new versions of the WEB file with
incorporated changes as well. This feature does not depend on any
special WEB dialect, nor on using WEB at all, as the only controls to
be interpreted are the change requests in the change files (delimited
by @x, @y and @z).
 This makes `tie' also usable for any other language, or even data
files. See the documentation tiedoc.tex and the example file tie.tie.
 
 Actually, this gives a second file update mechanism besides `patch'.
Whereas patch relies on line numbers and/or precise contexts produced
by diff, tie depends on the order of changes and on a an amount of
context lines determined manually.
 
REQUIREMENTS:
 
This version of `tie' is written in CWEB. To preprocess and compile
the source you will need a working `ctangle'.
 A pretangled tie.c is supplied which has been compiled successfully
on a variety of workstations using either the manufacturer supplied
C compiler in the K&R or ANSI version, or gcc (version 1.40).
 Please note, that the CWEB by Silvio Levy and Donald E. Knuth must
be at least at version 2.8, to process and compile `tie' without
problems.
 
DISTRIBUTION:
 
The reference version of tie may be retrieved by anonymous ftp from
 
	ftp.th-darmstadt.de [130.83.55.75]
	directory pub/tex/src/webware
	file tie-<version>.tar.Z
 
where <version> is the most current version number.
 See the source file tie.w for details of the distribution policy.
 
BUGS/ENHANCEMENTS:
 
If you detect bugs in the implementation of `tie' or have
suggestions to enhance functionality or improve portability,
please send a message to
 
	Klaus Guntermann <guntermann@iti.informatik.th-darmstadt.de>
 
From brad@sol.chinalake.navy.mil Tue Dec 22 08:58:47 PST 1992
Date: Tue, 22 Dec 92 08:58:47 PST
From: brad@sol.chinalake.navy.mil (Bradford Clark ( Brad ))
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Change files
 
Status: RO
 
I have seen the announcement of tie version 2.4 and I was wondering if
it would be possible to write a "change file" that would modify weave
to produce Marker Interchange Format for Framemaker or Rich Text
Format for Microsoft Word or even LaTeX. I have read in this newsgroup
about WEB systems for different programming languages. With the
possible exception of FunnelWeb, all of these systems produce only one
typesetting language (albeit a very good one).
 
Anyone else interested in this line of query?
 
-Brad Clark
 
From bart@cs.tamu.edu Tue Dec 22 13:23:31 -0600 1992
Date: Tue, 22 Dec 92 13:23:31 -0600
From: bart@cs.tamu.edu
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: Change Files
 
Status: RO
 
Brad Clark inquired about weave producing different formats.
Fweave already produces LaTeX if you desire.  The others have
a great problem and that is a lack of stability.
 
I have looked a number of times at RTF and TeX interchanges ...
All such efforts have problems because the real meaning of
RTF (and most other formatters) commands are subject to change
with each revision (and we have no real input) and they generally
are not easily available.
 
TeX has gone through a number of revisions, but since 1982 TeX
sources run without change (except for the addition of the
\language primitive ...)  That stability is powerful!
 
Bart Childs
 
From plyon@emx.cc.utexas.edu Tue Dec 22 14:56:45 -0600 1992
Date: Tue, 22 Dec 92 14:56:45 -0600
From: plyon@emx.cc.utexas.edu (Paul Lyon)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: OO Literate Programming?
 
Status: RO
 
On the face of it, it would seem that the concept of literate
programming is not easily adapted to the "Object Oriented" approach to
programming.  Let us recur to Knuth's original article on the subject
(I refer to the version reprinted in {\it Literate Programming}, CLSI,
Stanford, 1992, pages 99--136). There we find literate programming
characterized in a way that seems to fit best with the approach Knuth
took in writing TeX and Metafont. The woven web file, when printed, is
to read rather like a technical article (shorter programme) or a
technical book (for example, {\it Metafont: the Program}).
 
All of the source goes into one file, from which Weave will generate a
section headings, a table of contents, a proper index for identifiers
(and other things designated by the author using the Web control
code), and an alphabetized listing of the code section names. The
author is meant to follow a narrative order in presenting the parts of
the programme; as Knuth says ``but always it is an order that makes
sense on expository grounds'' (op cit, page 125). And further,
"...there's no need to be hung up on the question of top-down versus
bottom-up---since a programmer can now view a large program as a web,
to be explored in a psychologically correct order..." (op cit, page
126). [I expect that, in most cases, there will be a number of ways of
ordering that will work.]
 
Finally, besides the obvious benefits to the reader---either another
or oneself at some remove---of a more pleasing presentation of the
source and of greater clarity, another benefit claimed, one now to the
author, is a shorter time required to make the code work properly. The
reason for this, according to Knuth, is that in preparing a proper
account of the programme while writing it, one is led to clarify one's
thoughts about it; as he puts it, you go into "expository mode".  In
trying to write enough to explain it to someone else, you are forced
to explain it to yourself! [Aside: this last, in particular, is one of
the things that I most liked about Knuth's idea when I first
encountered it. The more carefully I write, the better I understand
what I am writing about.]
 
Now I have said this much about the original idea for two reasons: (1)
it is an attractive idea about how to write programmes, and (2), more
importantly, most of the existing Web systems are designed with this
idea in mind. In particular, those features of WEB itself, and its
progeny, Cweb, Fweb, Spiderweb, and so on, that go beyond the bare
bones required for tangling and weaving, are mostly about forming the
index, allowing the programmer to insert things besides identifiers in
the index, forming the section headings, and the like, whence my
remarks above about these matters.
 
On the other hand, for "Object Oriented" programming, one is meant to
split up a programme into a number of modules, most of which contain
the interface and implementation for a single data type, or group of
closely related data types, and only a few of which will contain the
code that ties all of these together. Furthermore, the modules that
contain the programme data types are meant to be relatively
independent of the particularities of the programme one is working on.
In pursuit of code reuse, one is meant to make something more akin to
library code out of these, free-standing and comprehensible by itself
rather than tightly integrated into one programme.
 
It is this last that prevents one from simply adapting Cweb or Fweb in
their current versions by using the file inclusion capability. This
might work for the traditional way of laying out the modules that is
used, for example, in C programming, but the approach taken in C++
programming is another matter. It is instructive, I think, to consider
the contrast as given by Bjarne Stroustrup in Chapter 4 ("Functions
and Files") of {\it The C++ Programming Language} (Second Edition, but
the same is to be found in the first edition). The example Stroustrup
gives is a simple calculator programme, rather like the one the
Cameron Smith dug out of Kernighan & Ritchie and used for his Cweb
example (described in previous postings to this group, and available
from niord.shsu.edu). Stroustrup considers how this example, might be
put in modular form in the traditional C style, and then goes to do
describe a different layout of the kind one would use in C++ or Ada
(and Modula 2, as well, I suspect). One gets five pieces: one contains
the main programme, and the other four, each with its own header file
and source file, contain (1) the error handler, (2) the symbol table
code, (3) the eval code for the calculator, and (4) the lexical
scanning code. All this, mind you, without yet introducing classes and
inheritance; it is, rather, the prelude to that. Still, the header
(interface) file contains the declarations of the data structure(s),
if any, together with the prototypes of the functions that provide the
services that are collected in this module, and the source file
contains the implementation of those functions. Add in the real
apparatus of C++ and one gets a header file with the class
declaration(s) and a source file with the implementation of the class
"methods". The syntax and accoutrement will be different for Eiffel,
or Clos, or Ada, but the style remains the same.
 
The obvious way to proceed is to construct a web source file from
which you will generate the header file and implementation source, one
that usually starts out with a description of the data type, with,
perhaps, a table or itemized list giving brief descriptions of the
methods (functions, procedures) for the data type, and perhaps, also
one describing the fields of the data structure, and then goes on to
string together the implementation of the functions, adding to each
some account of its implementation where that is pertinent.  In short,
something that looks rather less like an exercise in literate
programming as conceived by Knuth, and rather more like a UN*X man
page with added source code.
 
Now there may be no cure for this, or it may be that I am not
imaginative in the right sort of way :-) In any case there is little
in the way of support in the existing Web systems for this sort of
thing So far as Weave goes, I have nothing concrete to suggest at
this point, rather, I hope to stimulate discussion, assuming, as I do,
that the efforts to add C++ support to Cweb mean that there are others
out there with similar concerns. (I have the same thing, though, on my
"Web wish list" as I suspect others do as well, namely support for
user configurable pretty-printing styles; my tastes in these matters
being significantly different from those of the authors of Cweb).
 
Some things that come to mind for a C++ tangle, however, might include
the following. First of all, most of us still have to contend with
``dumb'' linkers that insist on linking in the whole of a object
module, even if one only uses a couple of things out of it. So it is
desirable that one have a separate output file for each function or
procedure defined in one of this library like modules, and further
desirable that on each run of tangle, in the development phase I mean,
one should generate only those output files that have changed since
the last time one ran tangle. Otherwise, assuming that you already
have a makefile for it least this much, you will end up recompiling
the lot instead of just the one or two bits that you changed.
[Funnelweb has a simple version of this; one of the reasons why I like
it.] Indeed, it would be nice if tangle could generate the appropriate
parts of the makefile for you (more to the point, the GNU makefile,
since this will be the more easily done, I think, using GNU make).
 
It would also be helpful if a C++ tangle would, given the definition
of a function, generate a function prototype for you if you have not
already provided one. This ``feature'' will not be simple one, since
tangle will have to know where to put the prototype, and that will
depend on whether the function is a class method, or a friend
function, or one that just happens to live in the source file in
question because it is more or less related to the class(es) being
defined. On the otherhand, it could be a useful one; both in saving
effort, and helping to cut down on programme errors.
 
There are other things for the wish list as well, but I have likely
said more than enough already :-)
 
Comments, please?
 
Ciao,
 
Paul Lyon
 
From George Tue Dec 22 15:10:19 CST 1992
Date: Tue, 22 Dec 1992 15:10:19 CST
From: "George D. Greenwade" <bed_gdg@SHSU.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Seeking listings of authoritative sites for tools
 
Status: RO
 
I have successfully completed two tasks I had imposed on myself as goals
before the end of 1992.  The first goal was getting a new wholly dedicated
drive for our Unix host -- this was completed about two weeks ago, so I now
have about 1.2 gig to play with for archival space.  This drive is not
(yet) available for anonymous ftp use, but it will be early next year (not
later than February 1).  The vast majority of that space is dedicated to
TeX and to a project I hesitate to formally announce at this time --
suffice it to say that I believe you will be pleased once everything is
finished at this end.  The second goal was getting a mirroring program
consistently running on the Unix host.  Now that I have the space to
experiment, I believe it is properly working.
 
Sooooo, here's what I am requesting from anyone with the proper knowledge. 
I am looking for a listing of sites which are *authoritative* of LP tools,
specifically:
 (1) the host name (and IP number; I can get that if you don't have it
     handy); and
 (2) the directory name or root name of the directory tree where the tools
     are available.
 
It is my intent to mirror these sites on a routine basis (at least once a
week) to fetch any files which have been added, updated, or changed, then
place them in an area on our Unix host which is NFS mounted to Niord.  In
other words, if you can get to either host at SHSU, you will essentially be
on the authoritative machine, give or take a brief time lag.  You will have
the option of coming in to a Unix machine or the VMS machine you presently
come in to.
 
We have also been working on getting a gopher server on both machines (it
is there now! -- so a third goal was accomplised!).  There will be an area
added on the menu for Literate Programming, which will include access to
the archives of the list, as well as to the FAQs which various people on
the list have generously agreed to develop.  I am working of a qi server to
add to the gopher server on the Unix host and hope to figure out how to do
string searches in the archives (in other words, find and extract all posts
with a given string in them, such as all posts ever made with the string
FWEB in it).  As soon as this functionality is added to the VMS side, I am
planning on getting it there so we have some redundancy in services in case
something happens to one of the machines.
 
Anyway, if you can provide me with the information identified above, I
would be quite grateful.  Also, I hope everyone has (or had, depending on
when you read this ;-)) a fantastic holiday season.
 
Regards,   George
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
George D. Greenwade, Ph.D.                            Bitnet:  BED_GDG@SHSU
Department of Economics and Business Analysis         THEnet: SHSU::BED_GDG
College of Business Administration                    Voice: (409) 294-1266
P. O. Box 2118                                        FAX:   (409) 294-3612
Sam Houston State University              Internet:        bed_gdg@SHSU.edu
Huntsville, TX 77341                      bed_gdg%SHSU.decnet@relay.the.net
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
From plyon@emx.cc.utexas.edu Tue Dec 22 15:19:28 -0600 1992
Date: Tue, 22 Dec 92 15:19:28 -0600
From: plyon@emx.cc.utexas.edu (Paul Lyon)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Change files
 
   I have seen the announcement of tie version 2.4 and I was wondering if
   it would be possible to write a "change file" that would modify weave
   to produce Marker Interchange Format for Framemaker or Rich Text
   Format for Microsoft Word or even LaTeX. I have read in this newsgroup
   about WEB systems for different programming languages. With the
   possible exception of FunnelWeb, all of these systems produce only one
   typesetting language (albeit a very good one).
 
   Anyone else interested in this line of query?
 
   -Brad Clark
 
Status: RO
 
Actually, FunnelWeb is not an exception nor is it likely to become one,
since it appears that Ross Williams has ceased development except for
bug fixes. There are hooks in the FunnelWeb source for support of
other formatters, but that is all there is, at present. As for the main
issue, it might be that others (me, for instance) would have an interest,
even though we are content with (well, more or less, anyway :-) plain
TeX. For it may be that in the redesign needed to support other formatters
one will also find the way to allowing the user of (C, F)weave to have
it format the source code to his/her own tastes.
 
Just a thought,
 
Paul Lyon
 
From m-lp9966@DOC.CS.NYU.EDU Tue Dec 22 21:31:43 -0500 1992
Date: Tue, 22 Dec 92 21:31:43 -0500
From: m-lp9966@DOC.CS.NYU.EDU (Lewis Perin)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: OO Literate Programming?
 
Status: RO
 
I think my experience bears on the issues raised in Paul Lyon's
thoughtful posting.  I've been writing C++ WEB code for several months
now in CWEB (mostly) and FWEB.  The rough conventions I've used seem
to avoid the woes of a `monolithic' approach to C++-WEB.
 
The basic idea is to keep separate source files for a class's outer
spec (meant to be included in any file that uses it directly) and for
the class's implementation (seen only in the listing for that
implementation.  Say the name of the class is X; then the spec file
would be xh.web, the implementation would be x.web.  If class Y is
derived from X, then yh.web will include xh.web.  If z.web is the overall
application source, it will include yh.web directly (and xh.web, of
course, indirectly.)
 
C++ adepts will by now have thought of plenty of corners of the
language this simple technique fails to touch, but it does get a lot
of work done while weaving output that's about as coherent as I ever
get.
 
Hope this helps, Lew
 
From Jeff Wed Dec 23 12:31 EST 1992
Date: Wed, 23 Dec 92 12:31 EST
From: Jeff Rummel <RUMMEL%DUKEFSB.BITNET@SHSU.edu>
Reply-To: LitProg@SHSU.edu
To: LITPROG@SHSU.edu
Subject: cnoweb problem
Status: RO
 
Thanks to Z.Wagner (I think, I lost the note I got, but remebered the
advice) for pointing me in the right direction.  I now have cnoweb.tex
able to print out individual foo.c files and also to print a file that
looks like
 
/* <pi>input cnoweb.tex
 
<pi>title{All source code for the project}
 
blah blah blah (introduction overview that starts the listings)
 
<pi>startmodules
<pi>printmodule{foo1.h}
<pi>printmodule{foo1.c}
... etc ...
<pi>endmodules
*/
 
Now I get all the separate source code files to print with one master
table of contents.  There are a few spurious /* here and there, but I
can live with those for now.  The key was the use of <pi>aftergroup in
defining <pi>printmodule:
 
<pi>def<pi>printmodule#1{<pi>aftergroup/<pi>aftergroup*<pi>begingroup<pi>input #1
    <pi>endgroup<pi>endgroup}
 
(I wasn't too sure why I needed two <pi>endgroup's, but it works and I have
other things to do...)
 
If anyone wants to see the modified file (and if you clean up some of
the loose ends, that would be great), drop me a note and I'll send it
to you.
 
--jeff.
 
ps. I'll be out of town for the next week or so -- don't expect to see
a response until 1993.
 
From Nelson Sun Dec 27 17:17:04 MST 1992
Date: Sun, 27 Dec 92 17:17:04 MST
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: Dijkstra quotation
 
Status: RO
 
I came across this in the signature line of a posting to another newsgroup;
since its author is well-known in discipline of programming, someone might
find it useful.  I regret that I do not have a specific reference to it:
 
//      "On the one hand I knew that programs could have a compelling
//       and deep logical beauty, on the other hand I was forced to
//       admit that most programs are presented in a way fit for
//       mechanical execution, but even if of any beauty at all,
//       totally unfit for human appreciation."
//                                              -- Edsger W. Dijkstra
 
Nelson H. F. Beebe                      Tel: +1 801 581 5254
Center for Scientific Computing         FAX: +1 801 581 4148
Department of Mathematics, 105 JWB      Internet: beebe@math.utah.edu
University of Utah
Salt Lake City, UT 84112, USA
 
From leew@cs.utexas.edu Mon Dec 28 14:47:59 -0600 1992
Date: Mon, 28 Dec 1992 14:47:59 -0600
From: leew@cs.utexas.edu (Lee Wittenberg)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: OO Literate Programming?
 
Status: RO
 
Paul Lyon made a number of interesting points points in his message (most
notably for me the one about "dumb" linkers that insist on linking in all
of an object module rather than just what is needed).  Since I've been
doing object-oriented literate programming for a bit, I figure I ought to
respond.  I'm not necessarily disagreeing with Paul -- this is just how
I've been doing it.
 
I prefer to put a single class in a source file (I believe this is what
Paul said he prefers, as well), although sometimes I put related classes in
a single web.  I use the @( feature (available in Spidery WEB and CWEB the
last time I checked) to create the header files (separate headers for each
class, regardless of whether they share a source file or not).  The
structure of a class "Object", for example, would look like this:
 
@c
	@<Header files needed for |Object|@>@;
	@(Object.h@>@;
	@<Methods needed for |Object|@>@;
 
Using @(Object.h@> in the code instead of a #include "Object.h" is a nice
little feature of file modules:  the code gets expanded both in the main
program _and_ in the Object.h file.  Spidery WEB complains about this (but
does it anyway), but CWEB works fine (at least it did the last time I
checked -- I've been using the Spidery version for Standard C and C++).
I can then describe and define the Object class as I see fit, knowing that
the interface will be generated automatically (and will agree with the
implementation).  The down side is that the header file gets updated
every time the web changes, so things get recompiled that needn't be.
However, there are ways around this in a makefile, and anyway, it wastes
computer time rather than my time, which is much more valuable.
 
I've been treating the dumb linker I have to use the same way I would treat
a dumb (i.e., non-optimizing) compiler.  I ignore it.  I figure the time I
save (overall) by using literate programming more than makes up for the
larger executables.  Most of my libraries tend to be small, (after the
third or fourth draft, anyway), so this really isn't a problem in practice.
Although I will admit that if I could find a reliable intelligent linker at
a reasonable price (ah, there's the rub!), I would buy it in a New York
minute.
 
Hope this adds some fuel to the fire.
 
		-- Lee
 
From tfj@apusapus.demon.co.uk Tue Dec 29 19:22:36 GMT 1992
Date: Tue, 29 Dec 92 19:22:36 GMT
From: tfj@apusapus.demon.co.uk (Trevor Jenkins)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: Dijkstra quotation
 
In message <CMM.0.90.2.725501822.beebe@plot79.math.utah.edu> you write:
> I regret that I do not have a specific reference to it:
 
Status: RO
 
In the style of the book from which it comes perhaps I ought NOT to reply
but I will anyway. :-)
 
> //      "On the one hand I knew that programs could have a compelling
> //       and deep logical beauty, on the other hand I was forced to
> //       admit that most programs are presented in a way fit for
> //       mechanical execution, but even if of any beauty at all,
> //       totally unfit for human appreciation."
> //                                              -- Edsger W. Dijkstra
 
These are the opening words of the Preface to "A Discipline of
Programming", page xiii. A book that warrant some study even if you
disagree with the argument (or its author).
 
Regards, Trevor.
 
---------------------------------------------------------------------------
Trevor Jenkins                                                Re: "deemed!"
134 Frankland Rd, Croxley Green, Rickmansworth, WD3 3AU, England
email: tfj@apusapus.demon.co.uk                               radio: G6AJG
phone: +44 (0)923 776436
 
From gilligan@central.bldrdoc.gov Tue Dec 29 16:40:21 MST 1992
Date: Tue, 29 Dec 92 16:40:21 MST
From: gilligan@central.bldrdoc.gov (Jonathan M. Gilligan)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Litprog without TeX
 
Status: RO
 
Since a few folks have recently posted about wanting to program
literately without using TeX as the typesetting language, let me
mention that Alan Holub writes in his compiler construction book
(Compiler Construction in C or something of that sort---I don't
actually have the book, but looked at it while browsing in a bookstore
last week) about an ``arachne'' system that he used to produce the
code for the book. Arachne functions similarly to web, but uses C for
the programming language and troff for the typesetting one.  I know
nothing beyond these vague descriptions. Perhaps someone knows more.
 
---Jon
 
From bart@cs.tamu.edu Tue Dec 29 18:46:40 CST 1992
Date: Tue, 29 Dec 92 18:46:40 CST
From: bart@cs.tamu.edu (Bart Childs)
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: Literate Programming without TeX
Status: RO
 
Thimbleby wrote a CWEB using C and troff.  I am sure it is available
on some archives somewhere.  A reference to a paper is:
 
  Harold~Thimbleby,  ``Experiences of `Literate Programming' using
  CWEB (a variant of Knuth's WEB),''
  The Computer Journal, vol.~29, no.~3, pp.~201--211, Jun.~1986.
 
I believe he was at York at that time and is now at Stirling.
 
I never looked at it in great detail because the information I heard
was that it proved that troff was extremely limiting.  I suppose that
the wide availability of TeX on unix boxes and the availability of
Levy's CWEB also made it not nearly as desirable.
 
Bart Childs
 
From Nelson Tue Dec 29 18:48:40 MST 1992
Date: Tue, 29 Dec 92 18:48:40 MST
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: Litprog without TeX
 
Status: RO
 
Jonathan M. Gilligan <gilligan@central.bldrdoc.gov> points out that
Allen Holub's book uses a kind of literate programming.  It has been
in ftp.math.utah.edu:pub/tex/bib/litprog.* for a couple of years now;
via e-mail, a message "send index from tex/bib" to
tuglib@math.utah.edu will get you started.
 
I pointed this book out to Don Knuth, and he agreed that it qualifies
as literate programming, and included it in the literature in his new
book on the subject (which I've not yet obtained).
 
BibTeX entries for these books are given below:
 
@String{pub-PH = "Pren{\-}tice-Hall"}
 
@Book{Holub:CDC90,
  author =       "Allen I. Holub",
  title =        "Compiler Design in {C}",
  publisher =    pub-PH,
  year =         "1990",
  note =         pub-PH # " Software Series, Editor: Brian W. Kernighan.",
  ISBN =         "0-13-155045-4",
}
 
@String{pub-SUCSLI      = "Stanford University Center for the Study of
                           Language and Information"}
@String{pub-SUCSLI:adr  = "Stanford, CA, USA"}
 
@Book{Knuth:LP92,
  author =       "Donald E. Knuth",
  title =        "Literate Programming",
  publisher =    pub-SUCSLI,
  address =      pub-SUCSLI:adr,
  series =       "CSLI Lecture Notes Number 27",
  year =         "1992",
  ISBN =         "0-937-07380-6 (paper), 0-937-07381-4 (cloth)",
  LCCN =         "QA76.6.K644",
  pages =        "368",
  acknowledgement = ack-nhfb,
}
 
Nelson H. F. Beebe                      Tel: +1 801 581 5254
Center for Scientific Computing         FAX: +1 801 581 4148
Department of Mathematics, 105 JWB      Internet: beebe@math.utah.edu
University of Utah
Salt Lake City, UT 84112, USA
 
From Dominique Wed Dec 30 14:51:32 +0100 1992
Date: Wed, 30 Dec 92 14:51:32 +0100
From: Dominique Dumont / GND <domi@desire.grenoble.hp.com>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: VHDL Literate harware modeling ?
 
Status: RO
 
Does anyone know if a web system exist for the VHDL language ?
 
VHDL stands for VHSIC Hardware description language. This language is used
to write models for hardware systems and integrated circuits. These models can
be gobbled by a synthesis tools and we get a brand new piece of hardware only
from (a lot of) lines of code.
 
This language features parallel instructions, that means that separates lines of
code will be executed together. This is why we need a good way of documenting
a design and a web system would be perfect.
 
Furthermore, the VHDL does not have a preprocessor like cpp, the web macro features
would be very handy for all repetitive parts of a chip.
 
If no web system already exist, what's the best way to make one ?
 
Thanks
 
-----------------------------------------------------------------------------
    ^^^^^^      Name:          Dominique Dumont
   / O  O \     Email:         Dominique_Dumont@hpgnd.grenoble.hp.com
  ( \____/ )    Address :      HEWLETT PACKARD, 38053 Grenoble Cedex 09
   \______/     Tel,Telnet:    (33) 76 62 57 24 - 7 779 5724
                Telex,Fax:     980 124 - (33) 76 62 53 20
-----------------------------------------------------------------------------
 
From dlb@hudson.wash.inmet.com Wed Dec 30 09:03:20 EST 1992
Date: Wed, 30 Dec 92 09:03:20 EST
From: dlb@hudson.wash.inmet.com (David Barton)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: VHDL Literate harware modeling ?
 
Dominique Dumont writes:
 
   Does anyone know if a web system exist for the VHDL language ?
 
   VHDL stands for VHSIC Hardware description language. This language
   is used to write models for hardware systems and integrated
   circuits. These models can be gobbled by a synthesis tools and we
   get a brand new piece of hardware only from (a lot of) lines of
   code.
 
   This language features parallel instructions, that means that
   separates lines of code will be executed together. This is why we
   need a good way of documenting a design and a web system would be
   perfect.
 
   Furthermore, the VHDL does not have a preprocessor like cpp, the
   web macro features would be very handy for all repetitive parts of
   a chip.
 
   If no web system already exist, what's the best way to make one ?
 
Status: RO
 
I know of no WEB system for VHDL.  This would actually be an
interesting exercise: the relationship between the weaved and tangled
form of an entity / architecture pair, where there are multiple
architectures for a single entity, interests me.  The relation
between a configuration and the design hierarchy it configures is also
not clear.  Some of these issues address, not WEB in particular, but
the best presentation of VHDL models; as far as I am concerned, the
present texts don't do a real good job on this.
 
(For most of you: the entity / architecture relationship in VHDL is
like the package interface / body relationship in Ada, except that
multiple "bodies" are allowed.  The configuration is unique, and
specifies how the entire hierarchy of entities and architecture is put
together into a simulation model).
 
My best bet would be SpiderWeb; I suspect that the simpler versions
might not do everything you want.  The macro capability is provided as
a basic function in Funnelweb, and if you are willing to give up the
typesetting of the VHDL text (a considerable feature in this case, as
the LRM and most texts use bolded keywords like Pascal and Ada, and
the typesetting really helps in those languages) then Funnelweb might
be the way to go.
 
					Dave Barton
					dlb@hudson.wash.inmet.com
 
From Dominique Wed Dec 30 16:55:08 +0100 1992
Date: Wed, 30 Dec 92 16:55:08 +0100
From: Dominique Dumont / GND <domi%desire.grenoble.hp.com@hplb.hpl.hp.com>
Reply-To: LitProg@SHSU.edu
To: LitProg%SHSU.edu@hplb.hpl.hp.com
Subject: VHDL Literate hardware modeling with Spiderweb ?
 
Status: RO
 
Spider seems interesting enough to build a web system for VHDL, but I don't know
if I'm authorized to use it to devellop chips. The copyright specifies that
Spiderweb is free for research purposes only and I work for a private company.
I don't do research as a university does.
 
However IF I create a Spiderweb template for VHDL I'm willing to give it
as a public domain software . (The IF means if my boss gives me enough time and
if I don't get hopelessly ensnared in the Spider's web :-)  )
 
Can anobody shed some light on this legal topic ?
 
-----------------------------------------------------------------------------
    ^^^^^^      Name:          Dominique Dumont
   / O  O \     Email:         Dominique_Dumont@hpgnd.grenoble.hp.com
  ( \____/ )    Address :      HEWLETT PACKARD, 38053 Grenoble Cedex 09
   \______/     Tel,Telnet:    (33) 76 62 57 24 - 7 779 5724
                Telex,Fax:     980 124 - (33) 76 62 53 20
-----------------------------------------------------------------------------
 
From norman@bellcore.com Wed Dec 30 12:45:03 -0500 1992
Date: Wed, 30 Dec 92 12:45:03 -0500
From: norman@bellcore.com (Norman Ramsey)
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re:  VHDL Literate hardware modeling with Spiderweb ?
 
Status: RO
 
I am the author of Spiderweb, and my former employer holds the
copyright.  What you are doing sounds like research to me.  Send me a
brief email message and I'll call the copyright holder and see if
they'll send you a letter authorizing you to do what you want.
 
Norman
 
From stevea@vast.unsw.edu.au Thu Dec 31 20:33:56 +1100 1992
Date: Thu, 31 Dec 92 20:33:56 +1100
From: stevea@vast.unsw.edu.au
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: VHDL Literate harware modeling ?
 
Status: RO
 
Hi all,
	I haven't seen a VHDL template for Spidery WEB, or a VHDL web
for that matter. However, seeing as it is so close to home, I thought I
might share what I intend to do with you in the next twelve months.
	The research I'm doing involves developing/modifying algorithms
so that I can then implement them using custom VLSI. The way I go about
doing this is to try out the algorithm using C, translate that to an
architecture, which I then describe with our in house hardware
description language "modal", and then of course comes the VLSI design.
	Fine and dandy, what does this have to do with literate
programming. Well, I use Spidery WEB for the C programming to do the
algorithms, and I intend to use Spidery WEB to do the literate
programming for the HDL. What I really want to be able to do is include
the woven output of the C code as Apendix 1 of my disertation, and then
include the woven HDL code, with the graphic layouts of the VLSI
imbedded in this code, as Apendix 2. This way, design decisions I have
made with the HDL can be seen immediately in the VLSI.
	Of course, there is a small problem that I have with this.
Normally I do my designs (VLSI that is), bottom up. A web, on the other
hand, usually appears as a top down design. This also makes most sense
with the HDL. I figure its a small price to pay though for a
document which describes the VLSI system as a whole.
	Just my 1.38 US cents worth. If, of course, someone comes up
with a VHDL template first, it would make my modal template much simpler :-)
 
	cheers (and happy new year)
	-steve
 
From Timothy Thu Dec 31 11:11:30 +0100 1992
Date: Thu, 31 Dec 92 11:11:30 +0100
From: "Timothy Larkin" <Timothy_Larkin@qmrelay.mail.cornell.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@SHSU.edu
Subject: Re: Dijkstra quotation
 
        Reply to:   RE>Dijkstra quotation
"Nelson H. F. Beebe" <beebe@math.utah.edu> supplies the following quote:
Status: RO
 
//      "On the one hand I knew that programs could have a compelling
//       and deep logical beauty, on the other hand I was forced to
//       admit that most programs are presented in a way fit for
//       mechanical execution, but even if of any beauty at all,
//       totally unfit for human appreciation."
//                                              -- Edsger W. Dijkstra
 
The quotation comes from the first sentence of the preface of Dijkstra's "A
discipline of programming", p. xiii, Prentice-Hall, Englewood Cliffs, NJ, 1976.
 
Tim Larkin
tsl1@cornell.edu
 
From Dominique Thu Dec 31 11:11:30 +0100 1992
Date: Thu, 31 Dec 92 11:11:30 +0100
From: Dominique Dumont / GND <domi%desire.grenoble.hp.com@hplb.hpl.hp.com>
Reply-To: LitProg@SHSU.edu
To: LitProg%SHSU.edu@hplb.hpl.hp.com
Subject: Re: VHDL Literate harware modeling ?
 
Status: RO
 
I will try to use Spiderweb, if I can't use it (either because of the copyright or
because of lack of time or experience to write the spider template for VHDL) then
I will try Funnelweb (at least as a macro preprocessor ...).
 
Thanks for your help.
 
Happy new year
 
-----------------------------------------------------------------------------
    ^^^^^^      Name:          Dominique Dumont
   / O  O \     Email:         Dominique_Dumont@hpgnd.grenoble.hp.com
  ( \____/ )    Address :      HEWLETT PACKARD, 38053 Grenoble Cedex 09
   \______/     Tel,Telnet:    (33) 76 62 57 24 - 7 779 5724
                Telex,Fax:     980 124 - (33) 76 62 53 20
-----------------------------------------------------------------------------
 
From fulling@sarastro.math.tamu.edu Thu Dec 31 12:08:13 CST 1992
Date: Thu, 31 Dec 92 12:08:13 CST
From: fulling@sarastro.math.tamu.edu (Stephen A. Fulling)
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: Formatting conundrum
 
Status: RO
 
I am using CWEB 2.7 to [re]write some programs, maintaining the
pre-ANSI style for functions.  I expect WEAVE output of the form
 
----------------------------------------------------------------
myfunc(myarray, myint)
   int *myarray;
   int myint;
 
{
   int j;
 
   for (j=0; etc.) {
      <do something>
   }
   return (0);
}
----------------------------------------------------------------
 
Sixty percent of the time, that is what I get.  The rest of the
time I get something like
 
----------------------------------------------------------------
myfunc(myarray, myint)
   int *myarray;
   int myint;  {int j;
 
   for (j=0; etc.) {
      <do something>
   }
   return (0); }
----------------------------------------------------------------
 
That is, CWEAVE parses the function body much as if the last
parameter declaration were a "for" or "if" statement.  Inserting
"@;" in various places does not solve the problem.
 
This seems to happen with equal probability regardless of whether
the function is "main" or a subprogram, whether the local variables
are declared on the spot or read in with "@<...", whether the last
line is an explicit "return", whether there is one parameter or
several.  It does depend on the structure of the function body, in
ways that I have not been able to classify empirically.
 
Am I overlooking something elementary?  Is this a known bug?  Is
Version 2.9++ available yet?
 
					Steve Fulling
 
Here is a file that exhibits the phenomena:
 
% TEST.W
\nocon
 
@* Testing for formatting bug.
 
@ A bad case.
 
@c grind(item, n, r)
   int item[];
   int n, r;
{  @< Declarations for |grind| @>@#
 
   if(n>1)
    else
   {
      item[0] = r;
      pitem = item - n1 + 1;
   }@;
   return(0);
}
 
@ @< Declarations for |grind| @> =
 
   extern int n1;
   int *pitem;
 
@ A good case
 
@c main(argc, argv)
   int argc;
   char *argv[];
{  @< Declarations for |main| @>@#
 
   c=0;  /* Initialize the count of terms. */
   if(label)
      printf("\norder %d:\n", k);
   for(n=1; n<=k/2; n++)
   {  printf("\norder %d:\n", k);
   }@;
   exit(0);
}
 
@ @< Declarations for |main| @> =
 
   int k, label;
 
From grodecki@quivira.informix.com Thu Dec 31 14:00:20 CST 1992
Date: Thu, 31 Dec 92 14:00:20 CST
From: grodecki@quivira.informix.com (Don Grodecki)
Reply-To: LitProg@SHSU.edu
To: litprog@shsu.edu
Subject: Interactive LitProg
 
Status: RO
 
What does the term "Interactive Literate Programming" mean?
Is there anything in this area that would help in my quest
for Literate Programming using WYSIWYG editors like Frame
instead of text formatters like TeX?
 
From leew@cs.utexas.edu Thu Dec 31 15:06:47 -0600 1992
Date: Thu, 31 Dec 1992 15:06:47 -0600
From: leew@cs.utexas.edu (Lee Wittenberg)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: Formatting conundrum
 
Status: RO
 
Stephen Fulling writes that CWEB 2.7 does not format the following code
correctly:
 
  > @ A bad case.
  >
  > @c grind(item, n, r)
  >    int item[];
  >    int n, r;
  > {  @< Declarations for |grind| @>@#
  >
  >    if(n>1)
  >     else
  >    {
  >       item[0] = r;
  >       pitem = item - n1 + 1;
  >    }@;
  >    return(0);
  > }
 
My best guess is that the if(n>1) followed directly by an else is what is
confusing the formatter (I think you need a semicolon between the right
paren and the else before a compiler will accept the tangled version anyway).
If a ; or an @; doesn't work there, you might try an @t@>@;  It's dumb, but
it often works.
 
You can also try running a DEBUG version of CWEAVE and putting an @2 code
right after the @c, so you can see what CWEAVE thinks it's doing.
 
		-- Lee
 
From Silvio Thu Dec 31 13:34:09 -0800 1992
Date: Thu, 31 Dec 92 13:34:09 -0800
From: Silvio Levy <levy@math.berkeley.edu>
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: Formatting conundrum
 
Status: RO
 
Regarding the poor job that cweave does on
 
@c grind(item, n, r)
   int item[];
   int n, r;
{  @< Declarations for |grind| @>@#
 
   if(n>1)
    else
   {
      item[0] = r;
      pitem = item - n1 + 1;
   }@;
   return(0);
}
 
The solution is to have @; rather than @# after @< Declarations for |grind| @>
 
Module names are treated like identifiers etc.  They don't make sense
right before an if.  The @; makes that line be a complete statement,
which is OK.
 
Silvio
 
From fulling@sarastro.math.tamu.edu Thu Dec 31 16:02:41 CST 1992
Date: Thu, 31 Dec 92 16:02:41 CST
From: fulling@sarastro.math.tamu.edu (Stephen A. Fulling)
Reply-To: LitProg@SHSU.edu
To: LitProg@shsu.edu
Subject: Re: Formatting conundrum
 
Status: RO
 
Thanks to Silvio and Lee for their replies.  "@;@#" after the module
name works, and includes the extra vertical space that is the purpose
of "@#" in the first place.
 
					 Steve
From hobby@research.att.com  Wed Apr  1 03:26:23 1992
From: hobby@research.att.com
Date: Tue, 31 Mar 92 12:25 EST
To: postmaster@latrobe.edu.au
Subject: Re: METAPOST
 
Status: RO

I am the author of MetaPost.   In response to your query, I am enclosing a
copy of an anouncement that should be coming out soon in the TeXhax mailing
list.  I will post a similar item to comp.text.tex.
Feel free to contact me if you would like more information.
 
----------------------Original Anouncement Begins Here----------------------
At the TeX User's Group Meeting in August 1989, I first announced my plans to
create a picture-drawing language based on METAFONT but with PostScript output
and features for dealing with text as well as graphics.  By the summer of 1990,
I had a preliminary version installed on a few machines here at Bell Labs, but
I was not able to make it available externally.  Since then, I have perfected
the language implementation and the support software and I have written a
User's Manual, but I had trouble getting permission to make the software
available outside of AT&T.
 
Now I can finally announce that the MetaPost language implementation is
available free to any academic institution.  It is still necessary to sign a
non-disclosure agreement.  Interested parties should contact me at the address
below and give an address where I can have the necessary paperwork sent.
 
Here are the main features of MetaPost:
1. The language is based on METAFONT and has almost the same syntax and
   semantics.  This includes data types for curves, pictures, and linear
   transformations, as well as powerful macros and the ability to solve linear
   equations.
2. Pictures can contain typeset text using any font for which you have a .tfm
   file.  MetaPost input can also contain text to be typeset with TeX (or
   troff).  There are predefined macros for things like positioning labels
   and finding bounding boxes.
3. There are primitives and predefined macros for accessing PostScript features
   such as colors and shades of gray, dashed lines, and clipping, and for
   controlling the appearance of corners and ends of lines.
 
While it is possible to use MetaPost to generate Type 3 PostScript fonts, the
intended application is generating figures for technical documents.  For this
reason, MetaPost output consists of PostScript files that can be merged with
TeX output using graphics inclusion features in dvi-to-PostScript translators.
 
Since many dvi-to-PostScript translators download TeX fonts by including only
those characters that are actually used by the .dvi file, extra provisions
are necessary to allow such fonts in PostScript files generated via MetaPost.
Version 5.47 of Tom Rokicki's dvips contains undocumented features for doing
this, but a few bug-fixes are necessary to make them work properly; versions
5.481 and higher should have the feature documented and working properly.
You can also use any dvi-to-PostScript program that understands encapsulated
PostScript with standard comments like "%%DocumentFonts: cmr10".
 
The actual MetaPost distribution contains web source for the translator
and auxiliary programs, change files for use with the standard UNIX (r)
TeX distribution (for use with web2c), auxiliary routines written in C,
and a shell script that controls the preprocessing of TeX commands found
in MetaPost input files.  I may also include the bug fixes for dvips 5.47.
 
John Hobby                       hobby@research.att.com
AT&T Bell Laboratories
600 Mountain Ave.
PO Box 636
Murray Hill, New Jersey 07974-0636
------------------------------------------------------------------------
 
-- 
Timothy Murphy  
e-mail: tim@maths.tcd.ie
tel: +353-1-2842366
s-mail: School of Mathematics, Trinity College, Dublin 2, Ireland
 

From hobby@research.att.com  Wed Apr  1 03:26:23 1992
From: hobby@research.att.com
Date: Tue, 31 Mar 92 12:25 EST
To: postmaster@latrobe.edu.au
Subject: Re: METAPOST
Status: RO

I am the author of MetaPost.   In response to your query, I am enclosing a
copy of an anouncement that should be coming out soon in the TeXhax mailing
list.  I will post a similar item to comp.text.tex.
Feel free to contact me if you would like more information.

----------------------Original Anouncement Begins Here----------------------
At the TeX User's Group Meeting in August 1989, I first announced my plans to
create a picture-drawing language based on METAFONT but with PostScript output
and features for dealing with text as well as graphics.  By the summer of 1990,
I had a preliminary version installed on a few machines here at Bell Labs, but
I was not able to make it available externally.  Since then, I have perfected
the language implementation and the support software and I have written a
User's Manual, but I had trouble getting permission to make the software
available outside of AT&T.

Now I can finally announce that the MetaPost language implementation is
available free to any academic institution.  It is still necessary to sign a
non-disclosure agreement.  Interested parties should contact me at the address
below and give an address where I can have the necessary paperwork sent.

Here are the main features of MetaPost:
1. The language is based on METAFONT and has almost the same syntax and
   semantics.  This includes data types for curves, pictures, and linear
   transformations, as well as powerful macros and the ability to solve linear
   equations.
2. Pictures can contain typeset text using any font for which you have a .tfm
   file.  MetaPost input can also contain text to be typeset with TeX (or
   troff).  There are predefined macros for things like positioning labels
   and finding bounding boxes.
3. There are primitives and predefined macros for accessing PostScript features
   such as colors and shades of gray, dashed lines, and clipping, and for
   controlling the appearance of corners and ends of lines.

While it is possible to use MetaPost to generate Type 3 PostScript fonts, the
intended application is generating figures for technical documents.  For this
reason, MetaPost output consists of PostScript files that can be merged with
TeX output using graphics inclusion features in dvi-to-PostScript translators.

Since many dvi-to-PostScript translators download TeX fonts by including only
those characters that are actually used by the .dvi file, extra provisions
are necessary to allow such fonts in PostScript files generated via MetaPost.
Version 5.47 of Tom Rokicki's dvips contains undocumented features for doing
this, but a few bug-fixes are necessary to make them work properly; versions
5.481 and higher should have the feature documented and working properly.
You can also use any dvi-to-PostScript program that understands encapsulated
PostScript with standard comments like "%%DocumentFonts: cmr10".

The actual MetaPost distribution contains web source for the translator
and auxiliary programs, change files for use with the standard UNIX (r)
TeX distribution (for use with web2c), auxiliary routines written in C,
and a shell script that controls the preprocessing of TeX commands found
in MetaPost input files.  I may also include the bug fixes for dvips 5.47.

John Hobby                       hobby@research.att.com
AT&T Bell Laboratories
600 Mountain Ave.
PO Box 636
Murray Hill, New Jersey 07974-0636
------------------------------------------------------------------------

-- 
Timothy Murphy  
e-mail: tim@maths.tcd.ie
tel: +353-1-2842366
s-mail: School of Mathematics, Trinity College, Dublin 2, Ireland

