Archive-Date: Thu, 18 Nov 1993 01:03:01 CST
Sender: LP-Mgr@SHSU.edu
From: preston@dawn.cs.rice.edu (Preston Briggs)
Reply-To: LitProg@SHSU.edu, preston@DAWN.CS.RICE.EDU
Subject: Re: installing nuweb on a pc
Message-ID: <CGnv63.4tD@rice.edu>
Date: Thu, 18 Nov 1993 00:10:51 GMT
To: LitProg@SHSU.EDU

>On Tue, 16 Nov 1993, Dave Thompson wrote:
>I want to program on my pc.

>Nuweb on my pc requires go32.exe, which won't run under winders.  I
>know I can close winders, but shouldn't be required to dump my
>principal operating evnironment

I agree that you ought not have to dump Windows or your PC to enjoy
literate programming.  I disagree that nuweb requires go32.exe
(whatever that is) to run on a PC.

The whole question comes up, I believe, because an early version was
compiled for the PC using gcc (which somehow made code relying on
go32.exe to work).  This version was put out somewhere for ftp and a
lot of people grabbed it and have been hacking happily away.

As an alternative, I recommend that new users (and old ones, too) get
the latest version and start fresh with your favorite C compiler.  The
latest version, along with several large examples, are always
available for anonymous ftp from cs.rice.edu, in the directory
public/preston.  Alternatively, you can send me a note and I'll e-mail
the latest version to you.

The lastest version is 0.87

I can't promise everyone it'll compile with their compiler since there
are so many compilers out there (especially on PCs).  However, it's
getting closer all the time, primarily due to the efforts of all the
users who beat on it 'til it works and then tell me what they did.

In the meantime, I'm working on a new version which will correct all
the known portability problems, along with a few other complaints at
the same time.  Known portability problems are:

	thinks / is used to separate directory names inside a path name

		Should make it an easily customized definition.

	thinks a tab should be 8 spaces

		A toughie, but I can expose it for easy customization.
		Fortunately, it's also relatively unimportant.

	uses long names that aren't unique in the first 6 characters

		Some linkers still rely on this.

	uses tempnam()

		The ANSI alternatives don't work so well on my
		systems (though they seem to on PCs).
		I need to write my own that'll work anywhere.

	assumes alignment to 8 bytes will be adequate when allocating
	memory

		Probably will be for years, but 4 was fine for years too!
		Need to throw out the special memory allocator.

	the conventions for command-line arguments and error reporting
	differ widely on different operating systems.

		No clue what to do about this.  Probably ignore.

If you've got more (that haven't already been fixed in 0.87), let me
know soon.

Preston Briggs
================================================================================
Archive-Date: Thu, 18 Nov 1993 03:38:47 CST
Sender: LP-Mgr@SHSU.edu
Date: Thu, 18 Nov 93 10:03:44 MET
From: Zdenek Wagner <WAGNER%CSEARN.BITNET@SHSU.edu>
Reply-To: LitProg@SHSU.edu, WAGNER%CSEARN.BITNET@SHSU.EDU
Subject: Re: WEB-Wars (Was: Which one [F|C|NO|NU|Funnel|Scheme]WEB? Flame war)
To: Literate Progaramming list <LitProg@SHSU.edu>, R.Kooijman@ET.TUDELFT.NL

On Tue, 16 Nov 1993 23:32:56 +0100 (MET) Richard Kooijman said:
>On Tue, 16 Nov 1993, Dave Thompson wrote:
>
>> I want to program on my pc.  [No guffaws out there!]  Therefore, the
>> tool of choice must run on my hardware platform.  If you tool writers
>> out there want me to program literately, then provide me with the tools.
>
>I didn't see offers in hard cash here.
>
>> Furthermore, it its too difficult to install, I won't do it.  I don't
>> have the time.
>
I work only on a PC. I took CWEB ported to MS-DOS by Hans Hermann Bode. I
just unzipped it, placed to directory which is scanned automatically and
everything worked. I downloaded the LaTeX support made by Joachim Schrod,
put the cweb.sty file into the directory where TeX wants the style files
and everything worked. I use TeX and LaTeX which I received from the
Czechoslovak TeX Users Group (it is good to ask your nearest TeX Users Group
fro help). I suppose that you managed to install e.g. Windows and some
compilers but according to my own experience installing MS Windows is much
more difficult than installing CWEB.

,~~~/        /`               /     /|      /~~~
   /        /           |_/  /__/  ' |     /
  /     /~~/ /~~/ /~~/ /~~/ /\       | /| / /~~/ /~~/ /~~/ /~~/ /~~~
 /   , /  / /~~~ /  / /~~~ /  \      |/ |/ /  /_/  / /  / /~~~ /
 ~~~~  ~~~  ~~~ '  '  ~~~ '    `     '  '  ~~~  ~~/ '  '  ~~~ '
                              Zdenek Wagner______/

Some gateway between me and you may garble backslash. It will appear
on your screen as ã due to problems with EBCDIC <--> ASCII conversion.
It has already been corrected on SOME gateways.

The address <wagner@earn.cvut.cs> is obsolete.
Valid addresses are:     <wagner@csearn.bitnet>
                         <wagner@earn.cvut.cz>
                                           ^^
================================================================================
Archive-Date: Thu, 18 Nov 1993 03:38:55 CST
Sender: LP-Mgr@SHSU.edu
Date: Thu, 18 Nov 93 10:25:27 MET
From: Zdenek Wagner <WAGNER%CSEARN.BITNET@SHSU.edu>
Reply-To: LitProg@SHSU.edu, WAGNER%CSEARN.BITNET@SHSU.EDU
Subject: Re: LP Failure Story (Scoping)
To: Literate Progaramming list <LitProg@SHSU.edu>, chris@KD3BJ.UUCP

On 17 Nov 93 02:57:42 GMT <chris@kd3bj.uucp> said:
>
>Thank you, everyone that pointed out that there were now SuperDuper
>versions of WEB that answered most of my criticisims. I am now attempting
>to collect and evaluate some of these. With luck I'll find ONE version
>that has most of my wish-list entries in the 3-4 hrs per month I have
>free to experiment with new tools---we don't get much play time
>where I work.
>
>The only unanswered criticism was the issue of scoping. Steve Avery
>made an attempt to answer it, which I find inadequate.
>
>stevea@vast.unsw.edu.au (Steve Avery) writes:
>
>>       I don't go along with your notion of having locality of
>>reference in a WEB. The sort of code you are proposing is working
>>against the grain of what literate programming is about - ie. lots of
>>words not few words :-). If you must have several "Initialize"
>>statements, then they should have different names. This then allows you
>>to easily distinguish between different sections in both the index, list
>>of sections, and code itself.
>
>Clearly Steve understands my complaint about the lack of scoping in
>web. I know this, because he tells me what I do now. Every time I try
>to merge a perfectly good piece of code with another---even if they
>are targeted for separate files---I have to worry about name collisions.
>The ability to abbreviate scrap names makes this worse.
>
>I like all my C files to have the same basic format. Why do I have
>to rename all the sections in the top-level template when I apply it to
>a new module. This is unneeded work and it's error prone.
>
>Although I'd like a flexible scoping system, basic file target scoping
>would help me a lot. Here's one way to do it:
>
>Make @i attach an invisible source filename code on the begining of every
>scrap name in the file that is included. The bulk of tangle and weave
>processing would treat these names as unique, but they'd look the same
>after they are TeX'ed. Next,  rewrite the index generation stuff in weave
>to make this source filename visible again. Lastly, provide an override
>mechanism on the @i and the @< to force global scoping, deleting the
>invisible filename reference.
>
>I think that should do the trick.
>
>--
>73 de KD3BJ (Chris Nadovich, chris@kd3bj.ampr.org)

I am afraid that generally files input @i are not easily includable into
any web. However, if they contain only functions and/or class implementations,
I fell better to build a private library. I do it with my functions and classes
and I am rewriting the old libraries into CWEB. Thus my programs are smaller
and compile faster. Just as you put

#include <stdio.h>

I use

#include <myclass.h>

or something similar. Then I specify the library in the project so that the
linker can find it. If I don't remember something, I know there is another
volume of a woven file and I have to look there for explanation.

Regards

,~~~/        /`               /     /|      /~~~
   /        /           |_/  /__/  ' |     /
  /     /~~/ /~~/ /~~/ /~~/ /\       | /| / /~~/ /~~/ /~~/ /~~/ /~~~
 /   , /  / /~~~ /  / /~~~ /  \      |/ |/ /  /_/  / /  / /~~~ /
 ~~~~  ~~~  ~~~ '  '  ~~~ '    `     '  '  ~~~  ~~/ '  '  ~~~ '
                              Zdenek Wagner______/

Some gateway between me and you may garble backslash. It will appear
on your screen as ã due to problems with EBCDIC <--> ASCII conversion.
It has already been corrected on SOME gateways.

The address <wagner@earn.cvut.cs> is obsolete.
Valid addresses are:     <wagner@csearn.bitnet>
                         <wagner@earn.cvut.cz>
                                           ^^
================================================================================
Archive-Date: Thu, 18 Nov 1993 03:44:23 CST
Sender: LP-Mgr@SHSU.edu
Date: Thu, 18 Nov 93 10:35:34 MET
From: Zdenek Wagner <WAGNER%CSEARN.BITNET@SHSU.edu>
Reply-To: LitProg@SHSU.edu, WAGNER%CSEARN.BITNET@SHSU.EDU
Subject: Re: Reuse of LP code
To: Literate Progaramming list <LitProg@SHSU.edu>, Mark.Probert@NMS.OTC.COM.AU

On Thu, 18 Nov 93 9:13:57 GMT <Mark.Probert@nms.otc.com.au> said:
>I got to thinking about using LP tools with the more modern
>languages, such as C++ and Modula-2, and wondered, "Does anyone
>have any experience with reuse of LP code?"
>
>--
>mark.    (probertm@nms.otc.com.au) ph: (02) 339 3953  fax: (02) 339 3688

As I wrote as a response to another's posting, if I want to have some
code reusable, I design my private library (functions, class implementation).
Then I need the .h files and .lib file. Somewhere I have the printed vowen
file so that I can refer to it.

Regards

,~~~/        /`               /     /|      /~~~
   /        /           |_/  /__/  ' |     /
  /     /~~/ /~~/ /~~/ /~~/ /\       | /| / /~~/ /~~/ /~~/ /~~/ /~~~
 /   , /  / /~~~ /  / /~~~ /  \      |/ |/ /  /_/  / /  / /~~~ /
 ~~~~  ~~~  ~~~ '  '  ~~~ '    `     '  '  ~~~  ~~/ '  '  ~~~ '
                              Zdenek Wagner______/

Some gateway between me and you may garble backslash. It will appear
on your screen as ã due to problems with EBCDIC <--> ASCII conversion.
It has already been corrected on SOME gateways.

The address <wagner@earn.cvut.cs> is obsolete.
Valid addresses are:     <wagner@csearn.bitnet>
                         <wagner@earn.cvut.cz>
                                           ^^

,~~~/        /`               /     /|      /~~~
   /        /           |_/  /__/  ' |     /
  /     /~~/ /~~/ /~~/ /~~/ /\       | /| / /~~/ /~~/ /~~/ /~~/ /~~~
 /   , /  / /~~~ /  / /~~~ /  \      |/ |/ /  /_/  / /  / /~~~ /
 ~~~~  ~~~  ~~~ '  '  ~~~ '    `     '  '  ~~~  ~~/ '  '  ~~~ '
                              Zdenek Wagner______/

Some gateway between me and you may garble backslash. It will appear
on your screen as ã due to problems with EBCDIC <--> ASCII conversion.
It has already been corrected on SOME gateways.

The address <wagner@earn.cvut.cs> is obsolete.
Valid addresses are:     <wagner@csearn.bitnet>
                         <wagner@earn.cvut.cz>
                                           ^^
================================================================================
Archive-Date: Thu, 18 Nov 1993 06:05:26 CST
Sender: LP-Mgr@SHSU.edu
From: marcus@x4u2.desy.de (Marcus Speh)
Reply-To: LitProg@SHSU.edu, marcus@X4U2.DESY.DE
Subject: Re: WEB-Wars (Was: Which one [F|C|NO|NU|Funnel|Scheme]WEB? Flame war)
Message-ID: <MARCUS.93Nov18122735@x4u2.desy.de>
Date: Thu, 18 Nov 1993 11:27:35 GMT
To: LitProg@SHSU.EDU

>>>>> "Richard" == Richard Kooijman <R.Kooijman@et.tudelft.nl> writes:
>> That's enough of this tirade.  I'll conclude with an apology in
>> advance and a wish that readers of this post will ignore the
>> emotionalism/passion of my statements and consider what little
>> logic appears herein.  I've got to go teach class -- pity my
>> students.

Richard> First tirading and then apologizing? Why didn't you think
Richard> before that and use the delete-line feature of your editor?
Richard> If you did have so many problems compiling nuweb and noweb,
Richard> why didn't you simply ask someone to help you instead of
Richard> demanding and tirading afterwards?

I value Thompson's posting and the questions contained in it as
valuable contribution to the problems more than 1/2 of the readers of
this list have --
installation (to mention only one of the points Dave Thompson touched upon)
can pose a serious problem - I am doing all the installations for
the fweb, cweb, nuweb and noweb tools on 3 clusters of our lab and I
often felt that if I would be leaving most probably 'mere users' of 
LitProg tools may not want to carry on with that (it takes too much of
my time anyway).

  Moreover, I don't like the style of Kooijman's answer - it lacks the
humbleness which I appreciate from many knowledgeable people on c.p.l.

  The posting by Eitan Gurari on 'minimal configurations' to get
started with literate programming is one of the best I have seen. It
hadnt been posted I assume hadnt Dave formulated his problems.
I think we need more of this approach if we want LitProg to become a 
widely used paradigm and not just an academic exercise. 

Respectfully,
Marcus Speh
--
-----------------------------------------------------------------------------
Marcus Speh, II.Inst.Theor.Physik,Luruper Chaussee 149, 22761 Hamburg,Germany
Phone: +49-40 8998 2178, Fax: +49-40 8998 2267, Private: +49-40 801392
Internet: <marcus@x4u.desy.de>, <na.speh@na-net.ornl.gov>



================================================================================
Archive-Date: Thu, 18 Nov 1993 08:33:30 CST
Sender: LP-Mgr@SHSU.edu
From: marcus@x4u2.desy.de (Marcus Speh)
Reply-To: LitProg@SHSU.edu, marcus@X4U2.DESY.DE
Subject: Re: CLiP for Unix available
Message-ID: <MARCUS.93Nov18141519@x4u2.desy.de>
Date: Thu, 18 Nov 1993 13:15:19 GMT
To: LitProg@SHSU.EDU

I have updated all the links to the CLiP ftp directory on the
World Wide Web pages on Literate Programming. Please report
difficulties if there are any.

--
-----------------------------------------------------------------------------
Marcus Speh, II.Inst.Theor.Physik,Luruper Chaussee 149, 22761 Hamburg,Germany
Phone: +49-40 8998 2178, Fax: +49-40 8998 2267, Private: +49-40 801392
Internet: <marcus@x4u.desy.de>, <na.speh@na-net.ornl.gov>



================================================================================
Archive-Date: Thu, 18 Nov 1993 08:53:54 CST
Sender: LP-Mgr@SHSU.edu
Message-ID: <199311181452.AA01511@pearl.vast.unsw.edu.au>
To: LitProg@SHSU.edu
CC: stevea@vast.unsw.edu.au
Subject: Re: LP Failure Story (Scoping)
Date: Fri, 19 Nov 1993 01:52:41 +1100
From: Steve Avery <stevea@vast.unsw.edu.au>
Reply-To: LitProg@SHSU.edu, stevea@VAST.UNSW.EDU.AU

Chris <chris@kd3bj.uucp> talks about scoping and include files. To be
quite honest, my original idea with the arbitrarily deep sectioning was
to have included files be included at the current level or next level
down (never did work out which was better) in the hierarchy. In this
way, the top level of the hierarchy could simply be a place where the
files were explained and included - supposedly making it possible to
have a whole suite of files easily made into one document. (It would be
possible to denote where a section is from by having the filename in the
margin for each section, and possibly in the list of sections as well.)

I talked (or rather emailed back and forward) with Lee Wittenberg about
this, and he pointed out a few flaws, the least of which was the hassle
with what to do with the TeX waffle (sorry, forgot the terminology) at
the front of each web file. There are other hassles too, but I'm sure
there is a way around them given enough thought and coding (it might
mean that some new requirements, like the waffle go in a separate file,
need be imposed on webs).

Anyways, if this idea were to be implemented, it might make scoping
easier (okay, it probably would). I still don't like the idea, but that
doesn't mean it shouldn't be implemented for those that do.

Oh, for those that haven't guessed, the web I'm talking about is CWEB.

	cheers
	-steve

p.s. Chris - if you want it so bad, consider putting it in yourself, and
then giving Silvio a copy for a look-see. It may well get into the next
release.

p.p.s. I'd be interested in knowing what people think about the idea of
including files at a certain level in the hierarchy. It may also be able
to be over-ridden with a switch on @i (like @i0).
================================================================================
Archive-Date: Thu, 18 Nov 1993 09:15:36 CST
Sender: LP-Mgr@SHSU.edu
Date: Thu, 18 Nov 93 10:14:15 EST
From: Lee Wittenberg <leew@pilot.njin.net>
Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET
To: LitProg@shsu.edu, Mark.Probert@nms.otc.com.au
Subject: Re: Reuse of LP code
Message-ID: <CMM-RU.1.3.753635655.leew@pilot.njin.net>

Mark Probert writes:

> I got to thinking about using LP tools with the more modern
> languages, such as C++ and Modula-2, and wondered, "Does anyone 
> have any experience with reuse of LP code?" 
>  
> When I code in "straight" C++, for instance, the class definition 
> is in the header and the implementation is in .cc file. But when I
> use an LP tool, both of these are in the same file, as I believe it
> should be. Now, at reuse time, I have either to use the generated
> header, which may be "unreadable" (CWEB), or look at the web, which
> has implementation details that I shouldn't see. 
>   
> The problem appears to be a contradiction between information hiding 
> and correctly documenting code.
>    
> Can anyone shed any light, or have any opinions :-), on this issue?

What I do (when I'm diligent) is to generate manual pages for the
class within the web (usually in ``limbo,'' before the first
section).  That way I can maintain the manpages along with the code,
but still xerox them separately for users.  In noweb, I usually have a
\part{Interface}, which contains the manual pages, followed by a
\part{Implementation}, which contains the web proper.  I haven't yet
done any C++ programming in noweb, so I'm not sure where I would put
the class declaration, but I suspect I would keep it in the
Implementation part, saving Interface for purely human issues.

Yet another technique stolen from Steve Avery.

		-- Lee
		   leew@pilot.njin.net
================================================================================
Archive-Date: Thu, 18 Nov 1993 09:17:14 CST
Sender: LP-Mgr@SHSU.edu
Date: Thu, 18 Nov 1993 15:47:27 +0100 (MET)
From: Richard Kooijman <R.Kooijman@et.tudelft.nl>
Reply-To: LitProg@SHSU.edu, R.Kooijman@ET.TUDELFT.NL
Subject: Re: WEB-Wars (Was: Which one [F|C|NO|NU|Funnel|Scheme]WEB? Flame war)
To: LitProg@SHSU.edu, marcus@X4U2.DESY.DE
Message-ID: <Pine.3.07.9311181527.A27114-c100000@dutepp6.et.tudelft.nl>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII

On Thu, 18 Nov 1993, Marcus Speh wrote:

> I value Thompson's posting and the questions contained in it as
> valuable contribution to the problems more than 1/2 of the readers of
> this list have --
> installation (to mention only one of the points Dave Thompson touched upon)
> can pose a serious problem - I am doing all the installations for
> the fweb, cweb, nuweb and noweb tools on 3 clusters of our lab and I
> often felt that if I would be leaving most probably 'mere users' of 
> LitProg tools may not want to carry on with that (it takes too much of
> my time anyway).

What a lot of people forget is that the tools you can get here are to be
installed by configuring, compiling and copying to binary directories.
If you buy a commercial product, you buy binaries. Binaries for a
certain architecture run out of the box most of the time. Sources need to
be compiled first and this adds up to the complexity/difficulties
during installation. Not only your run-time environment becomes
important, but also your compile-time environment.

If you buy a product you may expect support. If your run-time
environment isn't configured right you can ask them for help. 
Binaries make you configure your run-time environment, sources lets
you configure the tools themselves.

Thompson had problems installing both sources and binaries of 
LP tools. In the instances he metioned, there were clear prerequisites
or solutions in the accompanying docs. Not very uncommon.

There are PD tools who have a sort of auto-configure which determines
your compile time environment. Very nice, but also a lot of work
to make your sources suitable for this.
Products are for free here, please remember that. The designers are
solving problems for others voluntary and in their own time. No
need to tirade, simply ask, they might help and they might not, but don't
start demanding things, now that's lacking humbleness.

>   Moreover, I don't like the style of Kooijman's answer - it lacks the
> humbleness which I appreciate from many knowledgeable people on c.p.l.

Thompson himself said he was tirading. I have never seen questions here
from him asking for some installation help.
Seeing the other responses, a lot of people have installed several 
products without trouble. Maybe Thompson isn't experienced enough.
Should he be? It can come in handy, compiling and installing software
might require some work sometimes. You simply can't expect
everything to be free.

IMHO Thompson was to quick with his tirade and could have asked questions
first. There seem to be a lot of people who succeeded where he failed and
they were not all Gods.

A lot of products both PD (copylefted etc.) and commercial will install
without problems on standard computer machines. If you have an extraordinary
machine, or compiler in case of sources, you may be out of luck and
you'll have to work to get it right.

For example, Thompson had difficulties with nuweb. This tool compiles
and runs on a lot of UNIX machines/types without hassles. Thompson
has a PC and had a problem with a binary version of nuweb. 
Apparently that version needed the go32 DOS extender.
He could have downloaded the sources which would have compiled fresh
without problems if he had taken a at the README where the solution was.



Richard.


================================================================================
Archive-Date: Thu, 18 Nov 1993 11:28:54 CST
Sender: LP-Mgr@SHSU.edu
Date: Thu, 18 Nov 93 11:29:46 CST
From: thompson@sun1.coe.ttu.edu (Dave Thompson (3/1/93))
Reply-To: LitProg@SHSU.edu, thompson@SUN1.COE.TTU.EDU
Message-ID: <9311181729.AA28592@sun1.coe.ttu.edu>
To: LitProg@SHSU.edu, preston@DAWN.CS.RICE.EDU
Subject: Re: installing nuweb on a pc
CC: dthompson@coe2.coe.ttu.edu

 
> >Nuweb on my pc requires go32.exe, which won't run under winders.  I
> >know I can close winders, but shouldn't be required to dump my
> >principal operating evnironment
 
> I agree that you ought not have to dump Windows or your PC to enjoy
> literate programming.  I disagree that nuweb requires go32.exe
> (whatever that is) to run on a PC.
 
You're right and again I say mea culpa.  (I've got a pig-latin hangup
these days ;-)  The version I picked up at CTAN was 0.6pc and requires
use of the go32.exe.  That was the first problem.  A more recent version
will probably clean up the host of problems I encountered when trying
to compile nuweb with msc.  You've had a rundown on the other difficulties
I encountered while trying to port that version to msc, so I won't repeat
them here.  I certainly appreciate your willingness to help, as well as
your willingness to spend time (a valuable commodity) on a freely 
available program.

> The lastest version is 0.87
 
Can we ensure that the current version is on CTAN?  The msdos version on
ftp.shsu.edu seems to be version 0.6pc, which is the one I picked up.  How
about we trash that one and put the current version up for ftp?

Thanks and I'll be in touch.

-=d

=======================================================================
David B. Thompson               internet: thompson@sun1.coe.ttu.edu 
Civil Engineering Dept.         internet: dthompson@coe2.coe.ttu.edu
Texas Tech University           internet: wqdbt@ttacs1.ttu.edu 
P.O. Box 41023
Lubbock, Texas 79409-1023       "Get a haircut and get a *real* job."
=======================================================================
================================================================================
Archive-Date: Thu, 18 Nov 1993 11:51:49 CST
Sender: LP-Mgr@SHSU.edu
From: dmason@uwaterloo.ca (Dave Mason)
Subject: Re: Literate ML Code
Message-ID: <CGp3p3.Ayw.3@cs.cmu.edu>
Reply-To: LitProg@SHSU.edu, dmason@uwaterloo.ca (Dave Mason)
Date: Thu, 18 Nov 1993 16:12:39 GMT
To: LitProg@SHSU.EDU

Hi Chet,

I have a Spiderweb for SML that I think exploits ML's differences
well.  I also have a literate program that I wrote, although it
doesn't have a lot of (enough) prose.  I'm going to clean it up and
send it off to SIGPLAN Notices, but in the meantime I have put the .dvi
file in an anonymous ftp place, where you could pick it up.  ftp to
plg.uwaterloo.ca in pub/smlweb.  I put the .web file and the .sml
files there too so you can see what they look like.

../Dave

================================================================================
Archive-Date: Thu, 18 Nov 1993 13:04:56 CST
Sender: LP-Mgr@SHSU.edu
Date: Thu, 18 Nov 93 14:03:39 EST
From: Lee Wittenberg <leew@pilot.njin.net>
Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET
To: LitProg@shsu.edu, dmason@uwaterloo.ca (Dave Mason)
Subject: Re: Literate ML Code
Message-ID: <CMM-RU.1.3.753649419.leew@pilot.njin.net>

> Hi Chet,
> 
> I have a Spiderweb for SML that I think exploits ML's differences
> well.  I also have a literate program that I wrote, although it
> doesn't have a lot of (enough) prose.  I'm going to clean it up and
> send it off to SIGPLAN Notices, but in the meantime I have put the .dvi
> file in an anonymous ftp place, where you could pick it up.  ftp to
> plg.uwaterloo.ca in pub/smlweb.  I put the .web file and the .sml
> files there too so you can see what they look like.
> 
> ../Dave
> 
> 

I'm not sure you meant to post this to the net in general, but I, for
one, am interested (I've already downloaded the .dvi file).  You might
also want to post the .spider file, as the .web is kind of useless
without it.  There are also some of us (like me) who are really
interested in the various Spidery grammars.

		-- Lee
================================================================================
Archive-Date: Thu, 18 Nov 1993 14:15:34 CST
Sender: LP-Mgr@SHSU.edu
Date: Thu, 18 Nov 93 19:17:24 GMT
Message-ID: <9311181917.AA26683@dcs.shef.ac.uk>
To: LitProg@SHSU.edu, preston@DAWN.CS.RICE.EDU, thompson@SUN1.COE.TTU.EDU
Subject: Re: installing nuweb on a pc
CC: dthompson@coe2.coe.ttu.edu
From: Manuel Carriba <M.A.Carriba@sheffield.ac.uk>
Reply-To: LitProg@SHSU.edu, M.Carriba@dcs.sheffield.ac.uk


> > The lastest version is 0.87
>  
> Can we ensure that the current version is on CTAN?  The msdos version on
> ftp.shsu.edu seems to be version 0.6pc, which is the one I picked up.  How
> about we trash that one and put the current version up for ftp?
> 

Maybe Preston's nuweb should output a small message like 'This is nuweb,
version 0.85' whenever you run the program ;-)

Manuel.
================================================================================
Archive-Date: Thu, 18 Nov 1993 16:23:18 CST
Sender: LP-Mgr@SHSU.edu
From: mcguire@cs.utexas.edu (Tommy Marcus McGuire)
Reply-To: LitProg@SHSU.edu, mcguire@CS.UTEXAS.EDU
Subject: Re: featurism, complexity, portability, and extensibility (Was: Which
Date: 18 Nov 1993 14:25:26 -0600
Message-ID: <2cglnm$i16@needmore.cs.utexas.edu>
To: LitProg@SHSU.EDU

In article <shfCGJwMB.Ez0@netcom.com>, Stuart Ferguson <shf@netcom.com> wrote:
>+-- norman@bellcore.com writes:
>| I happen to disagree with Stuart here, but this is a perfect example
>| of how to take advantage of an extensible tool.  noweb's default
>| behavior is to make whitespace significant, but that behavior can be
>| changed by a one-line noweb filter:
>|    sed -e '/^@use /s/[ \t][ \t]*/ /g' -e '/^@defn /s/[ \t][ \t]*/ /g'

I actually understood this, and I have not done more than glance at
noweb.  Does this make me a bad person?

>
>This isn't quite what I was talking about.  For example, I also
>mentioned wanting case insensitivity, but using the appropriate line
>of sed gibberish to perform case folding on identifiers will not do
>the right thing.  The formatted document should respect the case and
>spacing I specified, but identifiers should be matched independent
>of case and spacing.
>-- 
>	Stuart Ferguson		(shf@netcom.com)
>			"Just Once or Twice .. is Good for your Soul"
>		Ten weeks to Midnight.


Are you sure you really want case insensitivity?  I know I'd wind up with
<Do some work>, <Do Some Work>, <do some Work>, etc., running all through
the program.  That would tend to make regular expression searches while
editing the thing useless, not to mention confusing the heck out of 
anyone reading the final document and wondering why these case distinctions
keep showing up.

Personally, I am pretty ambivalent about using the ``...'' completion for
[chunk|fragment|scrap] names.  I can see where someone else might like 
it, but I don't use it.



-----
Tommy McGuire
mcguire@cs.utexas.edu
mcguire@austin.ibm.com

"...I will append an appropriate disclaimer to outgoing public information,
identifying it as personal and as independent of IBM...."

================================================================================
Archive-Date: Thu, 18 Nov 1993 16:26:24 CST
Sender: LP-Mgr@SHSU.edu
From: mcguire@cs.utexas.edu (Tommy Marcus McGuire)
Reply-To: LitProg@SHSU.edu, mcguire@CS.UTEXAS.EDU
Subject: Re: Ordering Dependencies and Scoping
Date: 18 Nov 1993 14:58:02 -0600
Message-ID: <2cgnkq$ich@needmore.cs.utexas.edu>
To: LitProg@SHSU.EDU

In article <17628520@mvb.saic.com>,
Michael G. Koopman <koopman@sgi84.ctc.com> wrote:
>
>Two recent posts related to name spaces, one on scope and one on
>dependencies, reek of creeping featurism which I desire as a creepy
>feature user.  Norman Ramsey boasts of file scoping capability in
>noweb (which can be managed with make utilities?).  Stuart Ferguson
>has trouble collecting up C typedefs from "top-down" chunks.
>
[...]
>
>Stuart Ferguson wrote [Ordering Dependencies]:
>
>>One problem that I am noticing is that of final ordering of elements
>>in the output program text.  Like most one pass compilers, C requires
>>that objects be declared before they are used.  This lends a decidedly
>>"bottom-up" quality to raw C code.  I am finding that my literate
>>programs tend to be more "top-down," with declarations of higher level
>>objects before the lower level components which they require.  The
>>problem is that if I use some generic refinement like << Public Data
>>Types >> to collect up my typedef's, for example, then the objects
>>are declared in the wrong order for the compiler.
>...
>>
>>As usual, I have a suggestion about how to do this.  Normally a single
[...]
>
>The concepts described are not exactly clear to me.  I would not want
>chunks to "float" about anywhere.  Rather than levitating chunks I
>would like to chain them down.  I believe the ancillary information
>should be dependency information.  An index tag could allow dependency
[...]
>Michael Koopman (mike)                e-mail:  koopman@ctc.com
[...]

Pardon me for being terribly dense today, but is this a non-problem?
If type Foo depends on the definition of type Bar, shouldn't there
be a scrap

<<Public Data Types>>=
  <Define Type Bar>
  <Define Type Foo>

just to make the dependency explicit?

Far be it from me to resist the addition of features of extreme complexity
and beauty, of course.



-----
Tommy McGuire
mcguire@cs.utexas.edu
mcguire@austin.ibm.com

"...I will append an appropriate disclaimer to outgoing public information,
identifying it as personal and as independent of IBM...."

================================================================================
Archive-Date: Thu, 18 Nov 1993 17:39:52 CST
Sender: LP-Mgr@SHSU.edu
From: gurari@cis.ohio-state.edu (Eitan Gurari)
Reply-To: LitProg@SHSU.edu, gurari@CIS.OHIO-STATE.EDU
Subject: Re: LP Failure Story (Scoping)
Date: 18 Nov 1993 17:23:58 -0500
Message-ID: <2cgsluINNicp@rhinoceros.cis.ohio-state.edu>
To: LitProg@SHSU.EDU

<> From: Steve Avery <stevea@vast.unsw.edu.au>

<> Chris <chris@kd3bj.uucp> talks about scoping and include files. To be
<> quite honest, my original idea with the arbitrarily deep sectioning was
<> to have included files be included at the current level or next level
<> down (never did work out which was better) in the hierarchy. In this
<> way, the top level of the hierarchy could simply be a place where the
<> files were explained and included - supposedly making it possible to
<> have a whole suite of files easily made into one document... 

Hierarchical scoping of code fragments seems to me to be the way to
follow in two-dimensional (e.g., hypertext-oriented) environments that
exhibit these relationships in a natural manner. In linear environments,
hierarchical scoping might require extra discipline from users (like
me) that appreciate the cut-and-paste mode of operation.

Personally I like the idea of linear scoping for code files. In
(Al)ProTex I addressed this concept with two features: a feature to
clear all the existing definitions of code (option `ClearCode'), and a
feature for decomposing indexes. Normally I tie the above features with
top-level sectioning commands, like \Part or \Chapter, of prose.
(Note: indexes that are produced within ProTeX have poor outcome
and are big time consumers.)

-eitan
================================================================================
Archive-Date: Thu, 18 Nov 1993 18:06:53 CST
Sender: LP-Mgr@SHSU.edu
Message-ID: <9311190005.AA20456@netmail.microsoft.com>
From: Eric Landes <ericla@microsoft.com>
Reply-To: LitProg@SHSU.edu, ericla@MICROSOFT.COM
To: litprog@shsu.edu
Date: Thu, 18 Nov 93 12:29:27 PST
Subject: Microsoft Windows version of FWEB 1.30a.

This has now been made available for anonymous FTP at the following site:

 ftp.shsu.edu:/tex-archive/web/fweb/v1_30/mswin/fweb130w.zip

This is exactly like the command line version, it's just a Windows app 
now.  Handy
for avoiding DOS memory crunch, or for tangling and weaving from the Visual C++
Tools menu.

If you have problems with this port, please don't hesitate to ask.

Thanks!

Eric Landes
ericla@microsoft.com
================================================================================
Archive-Date: Thu, 18 Nov 1993 18:33:37 CST
Sender: LP-Mgr@SHSU.edu
From: plessel@oz.rtpnc.epa.gov (Todd Plessel)
Reply-To: LitProg@SHSU.edu, plessel@OZ.RTPNC.EPA.GOV
Subject: A naive question: Is LP interactive and WYSIWYG?
Message-ID: <1993Nov18.230218.6662@trixie.rtpnc.epa.gov>
Keywords: interactive, literate, programming, wysiwyg
Date: Thu, 18 Nov 1993 23:02:18 GMT
To: LitProg@SHSU.EDU

I'm new to this newsgroup and not really familiar with literate
programming. But if the idea is to support writing software that
maximizes understandability, then I'd certainly like to learn more.

Following the book paradigm (that's the basic idea, right?), it seems
to me that one would certainly want automatic support for such things
as code formatting with, for example, reserved words in boldface and
comments and free-text in itallics, a table of contents, a bibliography,
an index, embeded graphics (a picture is worth ...) and so forth. However,
extending the book paradigm, I'd like the ability to navigate by zoomming
in and out to reveal different views of a software system. For example,
support for displaying design structures such as block diagrams, class
clusters (if OO) and other high-level system architechture components.
And zooming in to reveal the low-level code within a routine and zooming
to various levels in between such as class interfaces, cluster interfaces,
subsystem interfaces and other imaginable constructs. (Granted this implies,
in some manner, paradigm and language sensitive support.)

The point is, these features call for an interactive, WYSIWYG capability
rather than a programmed (batch-mode) model. By interactive, I'm referring
to a WIMP operational model as opposed to a batch-mode embedded-command
(e.g., TeX) model (which is the impression I'm getting about LP).
(Kind of like the difference in operational style between, say, WordPerfect
on an IBM PC vs Microsoft Word on a Macintosh - am I right about this or
have I completely (hopefully) misunderstood this crucial aspect (the
operational model) of LP?)

My question is this: Are there literate programming environments that
support such interactive WYSIWYG features as described or are they all
geared at producing a paper document? If there are, I'd _really_ like
to get my hands on one! If the answer is no then it seems to me that the
value of LP is significantly diminished.

After all, today's high-resolution monitors can display text and graphics as
well as the laser printers (or at least well enough). I haven't printed code
on paper in many years despite the presence of (crude, but helpful)
pretty-printers. The printed copy is usually outdated very quickly. (And
forget about recycling the paper - save trees by not printing in the first
place.)

But my real point is this: all of the benifits of LP (and I'm convinced of
its basic premise) should be obtainable interactively and in a WYSIWYG mode.
If this is not the case and LP simply requires me to do even _more
programming_ (e.g., in a TeX-like language) to yield a very nicely formatted
paper document, then I'd deem the benefits (increased understandability) as
not worth the cost (substantial additional programming effort).

Someone please tell me if I've misunderstood LP. (Or have LPers simply reached
a different conclusion: that it is worth the extra effort and that interactive
WYSIWYG is not really as important as I've claimed?)

Todd
plessel@vislab.rtpnc.epa.gov







 
================================================================================
Archive-Date: Thu, 18 Nov 1993 18:39:46 CST
Sender: LP-Mgr@SHSU.edu
Date: Thu, 18 Nov 93 19:38:38 -0500
From: koopman@sgi84.ctc.com (Michael G. Koopman)
Message-ID: <9311190038.AA17223@sgi84.ctc.com>
To: LitProg@SHSU.edu, gurari@CIS.OHIO-STATE.EDU
CC: LitProg@SHSU.EDU
Subject: LP Failure Story (Scoping)
Reply-To: LitProg@SHSU.edu, koopman@ctc.com

Eitan Gurari wrote:

>Hierarchical scoping of code fragments seems to me to be the way to
>follow in two-dimensional (e.g., hypertext-oriented) environments that
>exhibit these relationships in a natural manner. In linear environments,
>hierarchical scoping might require extra discipline from users (like
>me) that appreciate the cut-and-paste mode of operation.

Is the underlying issue reuse of literate code (here, within the same
web)?  Does it seem likely that collections of chunks of a web that
describe and implement a reuse object could be written such that the
natural language descriptions, method names, attributes, etc., could
be defined to allow reuse/renaming?  That is, does it seem reasonable
to pursue reuse of literate code above the source code cut and paste
level; i.e., classes of fully literate code?  How close can ADA be
considered to approach such capacity without literate support tool?

Has anyone written a literate code segment such that the description
and code fragments incorporate named macros that can be renamed to
implement an equivalent class in a different domain without needing to
overhaul the code or descriptive text?  Seems like a library of these
things could be powerful medicine.  A web tool that supports
``common'' weave structures could be used to place the various chunks
into the desired locations in the web for which they have been
decomposed.  Has anyone achieved enough familiarity and experience
with literate techniques to support or deny the potential for such
speculative methods?  At a more practical level, inclusion of macro
text in the chunk name may avoid some name collisions.

Michael Koopman (mike)    Associate Computer Systems Specialist
Concurrent Technologies Corporation     e-mail: koopman@ctc.com
1450 Scalp Avenue                        phone: +1-814-269-2637
Johnstown, PA  15904-3321  USA         telefax: +1-814-269-2666

================================================================================
Archive-Date: Thu, 18 Nov 1993 18:52:41 CST
Sender: LP-Mgr@SHSU.edu
From: shf@netcom.com (Stuart Ferguson)
Reply-To: LitProg@SHSU.edu, shf@NETCOM.COM
Subject: Re: LP Failure Story (Scoping)
Message-ID: <shfCGpJ8I.n8@netcom.com>
Date: Thu, 18 Nov 1993 21:48:17 GMT
To: LitProg@SHSU.EDU

+-- chris@kd3bj.uucp (C. T. Nadovich) writes:
| The only unanswered criticism was the issue of scoping.
	[...]
| Every time I try
| to merge a perfectly good piece of code with another---even if they
| are targeted for separate files---I have to worry about name collisions. 
| The ability to abbreviate scrap names makes this worse. 

I tend to agree.  One of my first thoughts when finally understanding
the design of WEB was, "My God, everything's globally scoped!"  How
1970's-ish.

That said, and my language design bias out in the open, the real issue
for literate programming is making the scoping decisions understandable
to the reader.  Where the programmer is comfortable with micro scoping,
I think any normal reader will be find a more large scale scoping 
easier to cope with.  I would suggest scoping by section or chapter
only, for example, and not in smaller units.  I might also insist that
the introduction to any scoped section list the public tags and
certainly highlight them in a more bold font in the text.  Limiting
scoping blocks to sections seems like a reasonable compromise between
providing the programmer with a powerful tool and keeping the document
readable.

There are plenty of ways to lay out the index and cross reference to
make clear the locality of reference.

| I like all my C files to have the same basic format. Why do I have
| to rename all the sections in the top-level template when I apply it to 
| a new module. This is unneeded work and it's error prone.

This ties into one of the ideas I've had which I posted here recently,
about boilerplate and literate macros.  If your web tool had text
substitution macros which could be instantiated forward and backwards,
you would only need to define your template once and could envoke it
with a different module name for each instance.  This would obviate 
the need for scoping in this case.
-- 
	Stuart Ferguson		(shf@netcom.com)
			"Just Once or Twice .. is Good for your Soul"
		Ten weeks to Midnight.
================================================================================
Archive-Date: Thu, 18 Nov 1993 19:11:17 CST
Sender: LP-Mgr@SHSU.edu
Date: Thu, 18 Nov 93 20:09:47 -0500
From: koopman@sgi84.ctc.com (Michael G. Koopman)
Message-ID: <9311190109.AA17278@sgi84.ctc.com>
To: LitProg@SHSU.edu, plessel@OZ.RTPNC.EPA.GOV
CC: LitProg@SHSU.EDU
Subject: A naive question: Is LP interactive and WYSIWYG?
Reply-To: LitProg@SHSU.edu, koopman@ctc.com

Todd Plessel wrote:
>I'm new to this newsgroup and not really familiar with literate
>programming. But if the idea is to support writing software that
>maximizes understandability, then I'd certainly like to learn more.
>
>Following the book paradigm (that's the basic idea, right?),

I think he is playing coy with the newsgroup.  This sounds an awful
lot like ``hitting the nail on the head'' to me.  Beginner's Luck?

> it seems
>to me that one would certainly want automatic support for such things
>as code formatting with, for example, reserved words in boldface and
>comments and free-text in itallics, a table of contents, a bibliography,
>an index, embeded graphics (a picture is worth ...) and so forth. However,
>extending the book paradigm, I'd like the ability to navigate by zoomming
>in and out to reveal different views of a software system. For example,
>support for displaying design structures such as block diagrams, class
>clusters (if OO) and other high-level system architechture components.
>And zooming in to reveal the low-level code within a routine and zooming
>to various levels in between such as class interfaces, cluster interfaces,
>subsystem interfaces and other imaginable constructs. (Granted this implies,
>in some manner, paradigm and language sensitive support.)

Fanning the language sensitive flame wars - and introducing paradigm
and paradigm presentation method wars!  E-R-D, SA, Rumbaugh, Coad and
Yourdon, ADM4 ....?  Which is the true faith?

>The point is, these features call for an interactive, WYSIWYG capability
>rather than a programmed (batch-mode) model. By interactive, I'm referring
>to a WIMP operational model as opposed to a batch-mode embedded-command
>(e.g., TeX) model (which is the impression I'm getting about LP).
>(Kind of like the difference in operational style between, say, WordPerfect
>on an IBM PC vs Microsoft Word on a Macintosh - am I right about this or
>have I completely (hopefully) misunderstood this crucial aspect (the
>operational model) of LP?)

Reflaming the WYSIWYG wars; and ``interactive'' implying multiple
and/or dynamic expositions.  Anyone have dynamic exposition support?
That is, do any of the HTML tools allow presentation creation,
interactively?

>My question is this: Are there literate programming environments that
>support such interactive WYSIWYG features as described or are they all
>geared at producing a paper document? If there are, I'd _really_ like
>to get my hands on one! If the answer is no then it seems to me that the
>value of LP is significantly diminished.
...
>Someone please tell me if I've misunderstood LP. (Or have LPers simply reached
>a different conclusion: that it is worth the extra effort and that interactive
>WYSIWYG is not really as important as I've claimed?)

Sounds like you just cut out a nice big chunk of work that perhaps you
might like to implement.  I volunteer as a ``Beta'' version user. ;-)

Michael Koopman (mike)                e-mail:  koopman@ctc.com
Concurrent Technologies Corporation    phone: +1-814-269-2637
1450 Scalp Avenue                    telefax: +1-814-269-2666
Johnstown, PA  15904-3321  USA          ICBM:  40-15'N-78-50'W
-------------------------------------------------------------
Geo. Carlin - "We're gonna learn ya', we're gonna learn ya' good"


================================================================================
Archive-Date: Thu, 18 Nov 1993 19:34:56 CST
Sender: LP-Mgr@SHSU.edu
Date: Thu, 18 Nov 93 20:32:46 -0500
From: koopman@sgi84.ctc.com (Michael G. Koopman)
Message-ID: <9311190132.AA17328@sgi84.ctc.com>
To: LitProg@SHSU.edu, shf@NETCOM.COM
CC: LitProg@SHSU.EDU
Subject: LP Failure Story (Scoping)
Reply-To: LitProg@SHSU.edu, koopman@ctc.com

Stuart Ferguson wrote:

>Limiting scoping blocks to sections seems like a reasonable compromise
>between providing the programmer with a powerful tool and keeping the
>document readable.

This gets my vote, although, especially when maintaining older
(``golden'') code - global scoping might be helpful?

>There are plenty of ways to lay out the index and cross reference to
>make clear the locality of reference.

Adding a chapter mark and id seems a straightforward approach.

>| I like all my C files to have the same basic format. Why do I have
>| to rename all the sections in the top-level template when I apply it to 
>| a new module. This is unneeded work and it's error prone.
>
>This ties into one of the ideas I've had which I posted here recently,
>about boilerplate and literate macros.  If your web tool had text
>substitution macros which could be instantiated forward and backwards,
>you would only need to define your template once and could envoke it
>with a different module name for each instance.  This would obviate 
>the need for scoping in this case.

I would add support for module name tagging of macros and other web
variable entries to (fully?) obviate scoping.

Michael Koopman (mike)    Associate Computer Systems Specialist
Concurrent Technologies Corporation     e-mail: koopman@ctc.com
1450 Scalp Avenue                        phone: +1-814-269-2637
Johnstown, PA  15904-3321  USA         telefax: +1-814-269-2666

================================================================================
Archive-Date: Thu, 18 Nov 1993 19:52:52 CST
Sender: LP-Mgr@SHSU.edu
Date: Thu, 18 Nov 93 20:42:52 -0500
From: koopman@sgi84.ctc.com (Michael G. Koopman)
Message-ID: <9311190142.AA17337@sgi84.ctc.com>
To: LitProg@SHSU.edu, mcguire@CS.UTEXAS.EDU
CC: LitProg@SHSU.EDU
Subject: Ordering Dependencies and Scoping
Reply-To: LitProg@SHSU.edu, koopman@ctc.com

Yes, it is a non-problem.


================================================================================
Archive-Date: Fri, 19 Nov 1993 04:23:06 CST
Sender: LP-Mgr@SHSU.edu
From: lynbech@daimi.aau.dk (Christian Lynbech)
Reply-To: LitProg@SHSU.edu, lynbech@DAIMI.AAU.DK
Subject: Re: Ordering Dependencies and Scoping
Date: 19 Nov 1993 09:29:16 GMT
Message-ID: <2ci3lc$t31@belfort.daimi.aau.dk>
To: LitProg@SHSU.EDU

On the issue on mixed file/global scoping.

I believe that noweb does a good enough job here. 

As I see it, you cannot mix the two types of scope, without having
some (textual) way to mark something as local and something as
global. And having to do this anyway, why not either prefix all local
scrap names with the file name, thus making them unique to that file,
or if that is too much typing (for instance you need to decide on the
file name, rather than having a fixed and short marker), pipe it
through a small sed/perl/awk script that takes all
this-is-a-local-scrap-marker and substitute the file name.

The above scheme can be varied endlessly, but it could be easily
implemented in a makefile.


------------------------------------------------------------------------------
Christian Lynbech               | Hit the philistines three times over the 
				| head with the Elisp reference manual.
email: lynbech@daimi.aau.dk	|        - petonic@hal.com (Michael A. Petonic)
------------------------------------------------------------------------------


================================================================================
Archive-Date: Fri, 19 Nov 1993 09:20:35 CST
Sender: LP-Mgr@SHSU.edu
Subject: Anybody using PowerBuilder from PowerSoft? Yes? Questions...
Message-ID: <smclewin.753717920@ultrix.ramapo.edu>
From: smclewin@ultrix.ramapo.edu (Scott M McLewin)
Reply-To: LitProg@SHSU.edu, smclewin@ULTRIX.RAMAPO.EDU
Date: 19 Nov 93 14:05:20 GMT
Keywords: PowerBuilder PowerSoft Database
To: LitProg@SHSU.EDU

My company is looking to re-write a vertical market application using
PowerBuilder.  We presently use C and the Raima Data Manager (RDM) from
Raima Corp for the product.  I know PowerBuilder can sit on the
RDM engine through ODBC, but would like to know what database you would
reccomend to attach to PowerBuilder via ODBC.
 
Our constraints are as follows:                                        
 * We need our application to work both on single user systems and networks.
 * We would preferr a database engine with royalty free distribution
 
Some other questions I would love to have answered:
  * Is PowerBuilder a good development tool?
     - what are its strengths?
     - what are its weaknesses?
  * How is the PowerBuilder documentation?  Have you had questions you
    simply could not answer via the manuals?
  * Is PowerSoft a "good" company?  (I know, a rather vague question...)
     - How is their technical support?
        + responsive/"we'll call you back next month"?
        + well informed?
     - How frequently, if ever, do they make software patchs available?
     - Are they willing to share their known bugs with developers so we
       can avoid getting snagged by them?
  * Would you consider the SQL/database query tool included in the
    database you use to be good?  For exaple, any Raima user who has
    attempted to use db_Query knows it is full of "features" its
    creators never intended.
 
 
I am truly sorry if this message does not belong in this group.  I
was unable to find a group dedicated to PowerSoft products, so I tried
to place this message in a wide variety of programming groups.  Please
don't waste further bandwidth by flaming me or those silly folks who may 
have already flamed me.  Thanks.
 
In addition to posting your reply, please email me a carbon
copy as I may not have a chance to catch all replies in all groups.
 
Thanks,
 
Scott M McLewin
smclewin@ultrix.ramapo.edu
 

--


Scott M McLewin                                 smclewin@ultrix.ramapo.edu

================================================================================
Archive-Date: Fri, 19 Nov 1993 09:20:42 CST
Sender: LP-Mgr@SHSU.edu
Subject: Anybody using PowerBuilder from PowerSoft? Yes? Questions...
Message-ID: <smclewin.753718113@ultrix.ramapo.edu>
From: smclewin@ultrix.ramapo.edu (Scott M McLewin)
Reply-To: LitProg@SHSU.edu, smclewin@ULTRIX.RAMAPO.EDU
Date: 19 Nov 93 14:08:33 GMT
Keywords: PowerBuilder PowerSoft Database
To: LitProg@SHSU.EDU

My company is looking to re-write a vertical market application using
PowerBuilder.  We presently use C and the Raima Data Manager (RDM) from
Raima Corp for the product.  I know PowerBuilder can sit on the
RDM engine through ODBC, but would like to know what database you would
reccomend to attach to PowerBuilder via ODBC.
 
Our constraints are as follows:                                        
 * We need our application to work both on single user systems and networks.
 * We would preferr a database engine with royalty free distribution
 
Some other questions I would love to have answered:
  * Is PowerBuilder a good development tool?
     - what are its strengths?
     - what are its weaknesses?
  * How is the PowerBuilder documentation?  Have you had questions you
    simply could not answer via the manuals?
  * Is PowerSoft a "good" company?  (I know, a rather vague question...)
     - How is their technical support?
        + responsive/"we'll call you back next month"?
        + well informed?
     - How frequently, if ever, do they make software patchs available?
     - Are they willing to share their known bugs with developers so we
       can avoid getting snagged by them?
  * Would you consider the SQL/database query tool included in the
    database you use to be good?  For exaple, any Raima user who has
    attempted to use db_Query knows it is full of "features" its
    creators never intended.
 
 
I am truly sorry if this message does not belong in this group.  I
was unable to find a group dedicated to PowerSoft products, so I tried
to place this message in a wide variety of programming groups.  Please
don't waste further bandwidth by flaming me or those silly folks who may 
have already flamed me.  Thanks.
 
In addition to posting your reply, please email me a carbon
copy as I may not have a chance to catch all replies in all groups.
 
Thanks,
 
Scott M McLewin
smclewin@ultrix.ramapo.edu
 

--


Scott M McLewin                                 smclewin@ultrix.ramapo.edu

================================================================================
Archive-Date: Fri, 19 Nov 1993 10:18:39 CST
Sender: LP-Mgr@SHSU.edu
From: huff@schenectady.ecn.purdue.edu (John E Huff)
Reply-To: LitProg@SHSU.edu, huff@SCHENECTADY.ECN.PURDUE.EDU
Subject: nuweb for macintosh
Message-ID: <huff.753721975@schenectady.ecn.purdue.edu>
Date: Fri, 19 Nov 1993 15:12:55 GMT
To: LitProg@SHSU.EDU

I have tried to compile nuweb with Think C 5.0 on the macintosh and have
not been able to get it to run.  The program compiles completely but
crashes when it runs.

I would appreciate any help or versions ready to go.

One caveat, I am just learning to program in C.

Thanks,

John Huff
huff@ecn.purdue.edu
================================================================================
Archive-Date: Fri, 19 Nov 1993 10:20:50 CST
Sender: LP-Mgr@SHSU.edu
Date: 19 Nov 93 11:16:11 EST
From: <PJENSEN@CSI.compuserve.com>
Reply-To: LitProg@SHSU.edu, PJENSEN@CSI.COMPUSERVE.COM
To: <LitProg@shsu.edu>
Subject: Re: A naive question: Is LP interactive and WYSIWIG?
Message-ID: <CSI_5981-10595@CompuServe.COM>

Todd Plessel (plessel@vislab.rtpnc.epa.gov) writes:

>  ... all of the benefits of LP (and I'm convinced of its basic premise)
> should be obtainable interactively and in a WYSIWIG mode.  If this is not
> the case and LP simply requires me to do even _more programming_ (e.g.,
> in a TeX-like language) to yield a very nicely formatted paper document,
> then I'd deem the benefits (increased understandability) as not worth the
> cost (substantial additional programming effort).

First, I will admit that I'm a rabid hater of graphic interfaces.  My blood
pressure rises when I'm forced to move five of my ten fingers over to a mouse
to do something that should be one keystroke (like PageUp/PageDown).  Also,
as a typographic purist, I admire TeX for enabling high quality work under
precisely-defined rules.  What you see is all you got.

But leaving this aside, many of us are used to developing programs in
character-cell mode, with emacs or whatever.  We know what to type to get
the keywords and special symbols of whatever language it is (and with smart
editors, we have the option of binding single keys to set up control structure
templates and so forth).  The fact that with (prettyprinting flavors of) LP
tools we can get listings with boldface, arrows, inequality symbols, angle
brackets, and so on is "gravy".

Also, very many of us find great benefit in the chunking of LP, quite apart
from how many times we actually weave and TeX it; some posters have stated
that they almost never make listings.

One sees from recent postings that we don't agree entirely on what LP tools
should do; but in batch mode the effort to develop a new tool or modify an
existing one is "finite":  a WYSIWIG tool would be an order of magnitude more
complicated.

A nice bonus is that the tools we use are free, and portable (and fast).

- Phil
pjensen@csi.compuserve.com

================================================================================
Archive-Date: Fri, 19 Nov 1993 11:45:19 CST
Sender: LP-Mgr@SHSU.edu
Date: Fri, 19 Nov 93 11:47:08 CST
From: fulling@sarastro.math.tamu.edu (Stephen A. Fulling)
Reply-To: LitProg@SHSU.edu, fulling@SARASTRO.MATH.TAMU.EDU
Message-ID: <9311191747.AA00962@sarastro.math.tamu.edu>
To: LitProg@shsu.edu
Subject: Re: A naive question: Is LP interactive and WYSIWIG?
CC: fulling@sarastro.math.tamu.edu

Phil (pjensen@csi.compuserve.com) writes:

>First, I will admit that I'm a rabid hater of graphic interfaces.
>My blood pressure rises when I'm forced to move five of my ten
>fingers over to a mouse to do something that should be one
>keystroke (like PageUp/PageDown).

HEAR!  HEAR!

>Also, as a typographic purist, I admire TeX for enabling high
>quality work under precisely-defined rules.  What you see is all
>you got.  [...]   A nice bonus is that the tools we use are free,
>and portable (and fast).

Again hear!  I cringe whenever a term like "hypertext" comes up
that threatens to cut back the number of systems on which a tool
could operate.  TeX and *WEB are valuable largely because of their
universality and low cost.  It would be nice to have a more-nearly-
WYSIWYG TeX (and LP) system that maintained source-code
compatibility with more primitive systems; but I think this requires
a new generation of higher-resolution monitors, so that the source
and the TeX output can be displayed side-by-side without loss of
legibility of the latter.

				  Steve Fulling
================================================================================
Archive-Date: Fri, 19 Nov 1993 12:47:08 CST
Sender: LP-Mgr@SHSU.edu
From: dak@messua.informatik.rwth-aachen.de (David Kastrup)
Reply-To: LitProg@SHSU.edu, dak@MESSUA.INFORMATIK.RWTH-AACHEN.DE
Subject: A task nobody thought of, but all will embrace if done...
Date: 19 Nov 1993 17:52:12 GMT
Message-ID: <2cj14c$fr9@urmel.informatik.rwth-aachen.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
To: LitProg@SHSU.EDU

Here comes what we all want:

All Weave writers using TeX, allow an option to generate
\special{weblines: file.web 1512}
Into the weave output. For every line.

Xdvi patchers, allow xdvi, when encountering such a line, to listen
to a tcp Port (this may be difficult...), and mapping requests
for files and lines by finding and displaying the appropriate
special location.

Finally, gdb fans, make it possible to open such a TCP Port
(if present) and send those commands through.

It might even be an idea from xdvi to manage several dvi files at
once, but I do not think I insist...

What do we get?

A debugger stepping through the *document* in the previewer, not through
the ugly WEB source.
-- 
 David Kastrup        dak@pool.informatik.rwth-aachen.de          
 Tel: +49-241-72419 Fax: +49-241-79502
 Goethestr. 20, D-52064 Aachen
================================================================================
Archive-Date: Fri, 19 Nov 1993 14:10:57 CST
Sender: LP-Mgr@SHSU.edu
Date: Fri, 19 Nov 93 15:03:32 EST
From: Lee Wittenberg <leew@pilot.njin.net>
Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET
To: LitProg@shsu.edu, plessel@oz.rtpnc.epa.gov
Subject: Re: A naive question: Is LP interactive and WYSIWYG?
Message-ID: <CMM-RU.1.3.753739412.leew@pilot.njin.net>

Todd Plessel writes:

> I'm new to this newsgroup and not really familiar with literate
> programming. But if the idea is to support writing software that
> maximizes understandability, then I'd certainly like to learn more.


> 	[text omitted]
> 
> The point is, these features call for an interactive, WYSIWYG capability
> rather than a programmed (batch-mode) model. By interactive, I'm referring
> to a WIMP operational model as opposed to a batch-mode embedded-command
> (e.g., TeX) model (which is the impression I'm getting about LP).
> (Kind of like the difference in operational style between, say, WordPerfect
> on an IBM PC vs Microsoft Word on a Macintosh - am I right about this or
> have I completely (hopefully) misunderstood this crucial aspect (the
> operational model) of LP?)

Whether LP features ``call for an interactive, WYSIWYG capability'' or
not seems to be a major religous issue around here.  To avoid
avoidable friction, I will refrain from commenting on the issue of whether
WYSIWYG is best or not.  It's best to leave it as ``Different strokes
for different folks.''
 
> My question is this: Are there literate programming environments that
> support such interactive WYSIWYG features as described or are they all
> geared at producing a paper document? If there are, I'd _really_ like
> to get my hands on one! If the answer is no then it seems to me that the
> value of LP is significantly diminished.

There are 2 WYSIWYG LP environments that I know of.  WinWordWEB is a
collection of Word for Windows macros that support literate
programming in that <<appropriate adjective>> word processor.  A
a FrameMaker-based system was recently announced as well.
 
Happy hunting.

		-- Lee
		   leew@pilot.njin.net
================================================================================
Archive-Date: Fri, 19 Nov 1993 15:32:09 CST
Sender: LP-Mgr@SHSU.edu
From: shf@netcom.com (Stuart Ferguson)
Reply-To: LitProg@SHSU.edu, shf@NETCOM.COM
Subject: Re: Reuse of LP code
Message-ID: <shfCGr23z.J01@netcom.com>
Date: Fri, 19 Nov 1993 17:33:28 GMT
To: LitProg@SHSU.EDU

+-- Mark.Probert@nms.otc.com.au (Mark Probert) writes:
| When I code in "straight" C++, for instance, the class definition 
| is in the header and the implementation is in .cc file. But when I
| use an LP tool, both of these are in the same file, as I believe it
| should be. Now, at reuse time, I have either to use the generated
| header, which may be "unreadable" (CWEB), or look at the web, which
| has implementation details that I shouldn't see. 

I've been dealing with this two different ways.  The simplest is
just to organize the document for reuse with a chapter on the public
interfaces and how to use them and other chapters on the
implementation.  The idea is to make the document readable by a
client of the package without letting the details get in the way.
In many OO systems it is considered normal for clients to look at
the implementation too, so having it there may be good.

Another approach would be to generate two different forms of your
web -- one for the client and one for the maintainer.  You might
use "\if" or some other mechanism to generate a version of the
document with only the public interfaces and no implementation.
This is like the Eiffel short form, and has the advantage that the
long form may contain public interfaces anywhere in the document
which will be collected together for the client to see.
-- 
	Stuart Ferguson		(shf@netcom.com)
			"Just Once or Twice .. is Good for your Soul"
		Ten weeks to Midnight.
================================================================================
Archive-Date: Fri, 19 Nov 1993 16:01:57 CST
Sender: LP-Mgr@SHSU.edu
From: preston@dawn.cs.rice.edu (Preston Briggs)
Reply-To: LitProg@SHSU.edu, preston@DAWN.CS.RICE.EDU
Subject: Re: A naive question: Is LP interactive and WYSIWYG?
Message-ID: <CGqzMC.5xF@rice.edu>
Keywords: interactive, literate, programming, wysiwyg
Date: Fri, 19 Nov 1993 16:39:47 GMT
To: LitProg@SHSU.EDU

plessel@oz.rtpnc.epa.gov (Todd Plessel) writes:
>Someone please tell me if I've misunderstood LP. (Or have LPers simply reached
>a different conclusion: that it is worth the extra effort and that interactive
>WYSIWYG is not really as important as I've claimed?)

I need to tone down some of the bitterness that some might have leaked
into my previous post.

I don't think you've misunderstood LP; however, I don't think anyone's
reached a conclusion either.  Hmmm... I take it back, many of us have
concluded many things, but we haven't reached a consensus as to
exactly what's important, trivial, nice to have, too expensive, etc.
Mostly, we're all still exploring the possibilities.  Simpler systems
are currently fairly popular because we can build them.

Preston Briggs
================================================================================
Archive-Date: Fri, 19 Nov 1993 16:33:00 CST
Sender: LP-Mgr@SHSU.edu
From: norman@bellcore.com
Reply-To: LitProg@SHSU.edu, norman@BELLCORE.COM
Message-ID: <199311192228.RAA10957@mailee.bellcore.com>
To: LitProg@SHSU.edu, preston@dawn.cs.rice.edu
Subject: simple systems are popular because...
Date: Fri, 19 Nov 93 17:28:51 -0500

> Simpler systems are currently fairly popular because we can build them.

Not, I submit, because we can build them, but because we can
understand them.  Lots of people build complex tools before we got
some of the simpler ones we have now.

Norman Ramsey
================================================================================
Archive-Date: Fri, 19 Nov 1993 16:45:14 CST
Sender: LP-Mgr@SHSU.edu
From: norman@bellcore.com
Reply-To: LitProg@SHSU.edu, norman@BELLCORE.COM
Message-ID: <199311192240.RAA11080@mailee.bellcore.com>
To: LitProg@SHSU.edu, dak@messua.informatik.rwth-aachen.de
Subject: Re: A task nobody thought of, but all will embrace if done...
Date: Fri, 19 Nov 93 17:40:08 -0500


> A debugger stepping through the *document* in the previewer, not through
> the ugly WEB source.

Actually this has been thought of a number of times.  I'd consider a
slightly different structure, though.:

> \special{weblines: file.web 1512}

Remember that source locations aren't just line numbers; they are line
and column, so it might simply be better to have the \special mark a
particular point of known interest (e.g. lcc `defpoints'), give xdvi
the ability to highlight a point, then have something else do the
mapping from source location (or object location) to defpoint.


> Xdvi patchers, allow xdvi, when encountering such a line, to listen
> to a tcp Port (this may be difficult...), and mapping requests
> for files and lines by finding and displaying the appropriate
> special location.

I'd suggest rather than a tcp port you use the `send' facility of
ousterhout's tk toolkit.  tcl/tk was designed precisely with this sort
of application in mind, and it should be fairly easy to include into
gdb.  adding it to xdvi might be more problematic, but tcl/tk dvi
previewer would be a fine thing.

You also might consider separating mappings

  object location -> defpoint -> display location

having gdb perform the first mapping, some other tool (perhaps some
simple tcl code) perform the 2nd mapping, and just send the display
location to xdvi (e.g. in terms of dvi file, page, and xy coordinate).
(N.B. source locations are essentially uninteresting until you want to
edit, but there is also a defpoint -> source location mapping).


Norman

================================================================================
Archive-Date: Fri, 19 Nov 1993 18:26:39 CST
Sender: LP-Mgr@SHSU.edu
From: norman@bellcore.com
Reply-To: LitProg@SHSU.edu, norman@BELLCORE.COM
Message-ID: <199311200019.TAA11782@mailee.bellcore.com>
To: LitProg@SHSU.edu, kwerling@ISOIT034.BBN.HP.COM
Subject: Re: NOWEB to nroff
Date: Fri, 19 Nov 93 19:19:52 -0500

> I wonder if somebody of you tried to convert the output of the
> markup program, coming with the noweb package, to nroff.

I'm not a troff user, but if you send me a sample file giving me some
idea what the troff ought to look like, I'll try.

Norman
================================================================================
Archive-Date: Fri, 19 Nov 1993 19:49:38 CST
Sender: LP-Mgr@SHSU.edu
From: mcguire@cs.utexas.edu (Tommy Marcus McGuire)
Reply-To: LitProg@SHSU.edu, mcguire@CS.UTEXAS.EDU
Subject: Re: Reuse of LP code
Date: 19 Nov 1993 19:02:40 -0600
Message-ID: <2cjqbh$48e@needmore.cs.utexas.edu>
To: LitProg@SHSU.EDU

In article <17625278@mvb.saic.com>,
Mark Probert <Mark.Probert@nms.otc.com.au> wrote:
[...]
>Now, at reuse time, I have either to use the generated
>header, which may be "unreadable" (CWEB), or look at the web, which
>has implementation details that I shouldn't see. 
[...]
>mark.    (probertm@nms.otc.com.au) ph: (02) 339 3953  fax: (02) 339 3688


Do you by any chance read the last page of a mystery novel first?  :-)



-----
Tommy McGuire
mcguire@cs.utexas.edu
mcguire@austin.ibm.com

"...I will append an appropriate disclaimer to outgoing public information,
identifying it as personal and as independent of IBM...."

================================================================================
Archive-Date: Sat, 20 Nov 1993 03:28:52 CST
Sender: LP-Mgr@SHSU.edu
Date: Sat, 20 Nov 93 10:17:39 +0100
From: dak@POOL.Informatik.RWTH-Aachen.DE
Reply-To: LitProg@SHSU.edu, dak@POOL.INFORMATIK.RWTH-AACHEN.DE
Message-ID: <9311200917.AA05677@messua>
To: norman@bellcore.com
CC: LitProg@SHSU.edu
Subject: Re: A task nobody thought of, but all will embrace if done...

The Tcl/Tk interface sounds like a reasonable idea for passing line
numbers from a debugger to some other program, but is it not very
X-specific? I mean, fine for xdvi, but probably for other potential
application a more generally usable source location indicating
interface might be desirable, and the more an extension might be
of use, probably the more it will get used.

Another possibility is filtering gdb's output for line number information.
I believe this is the way gdb under emacs works, and is of course
a pretty easy way.

All the best,

 David Kastrup        dak@pool.informatik.rwth-aachen.de          
 Tel: +49-241-72419 Fax: +49-241-79502
 Goethestr. 20, D-52064 Aachen

 David Kastrup        dak@pool.informatik.rwth-aachen.de          
 Tel: +49-241-72419 Fax: +49-241-79502
 Goethestr. 20, D-52064 Aachen
================================================================================
Archive-Date: Sat, 20 Nov 1993 16:42:09 CST
Sender: LP-Mgr@SHSU.edu
From: shf@netcom.com (Stuart Ferguson)
Reply-To: LitProg@SHSU.edu, shf@NETCOM.COM
Subject: Re: featurism, complexity, portability, and extensibility (Was: Which
Message-ID: <shfCGt8I9.6yu@netcom.com>
Date: Sat, 20 Nov 1993 21:46:57 GMT
To: LitProg@SHSU.EDU

mcguire@cs.utexas.edu (Tommy Marcus McGuire) writes:
| Are you sure you really want case insensitivity?  I know I'd wind up with
| <Do some work>, <Do Some Work>, <do some Work>, etc., running all through
| the program.

I guess I wasn't clear.  The weaver would pick a single string to
represent the code tag and use that consistently throughout the final
document.  It could pick the first complete reference to a tag as the
canonical form, or the one with the most uppercase characters, or
whatever.

The tangler would treat all the above identifiers as the same and
generate code (or errors) appropriately.

|  That would tend to make regular expression searches while
| editing the thing useless, not to mention confusing the heck out of 
| anyone reading the final document and wondering why these case distinctions
| keep showing up.

The readable document would only contain one form for any identifier.  I
don't know about all editors, but emacs certainly has a switch for case-
folding while searching.

My desire to ignore case comes from reading too much of other peoples
code with different variables all in the same routine called `doall,'
`doAll,' `doALL,' etc.  (I'm not making this up.)  If case is
significant, some literate but noncreative programmer will use it.

| Personally, I am pretty ambivalent about using the ``...'' completion for
| [chunk|fragment|scrap] names.  I can see where someone else might like 
| it, but I don't use it.

These seemed like a can of worms when I first saw them too, but with
sufficiently good error messages I have never found them to be a 
problem.  Completion may even be a good thing since it encourages long
refinement names, and it also encourages puting the most salient info
toward the front of the name.
-- 
	Stuart Ferguson		(shf@netcom.com)
			"Just Once or Twice .. is Good for your Soul"
		Ten weeks to Midnight.
================================================================================
Archive-Date: Sat, 20 Nov 1993 17:25:09 CST
Sender: LP-Mgr@SHSU.edu
From: shf@netcom.com (Stuart Ferguson)
Reply-To: LitProg@SHSU.edu, shf@NETCOM.COM
Subject: Re: Ordering Dependencies and Scoping
Message-ID: <shfCGtBA8.B8r@netcom.com>
Date: Sat, 20 Nov 1993 22:46:55 GMT
To: LitProg@SHSU.EDU

mcguire@cs.utexas.edu (Tommy Marcus McGuire) writes:
| >Stuart Ferguson wrote [Ordering Dependencies]:
| >>One problem that I am noticing is that of final ordering of elements
| >>in the output program text.  Like most one pass compilers, C requires
| >>that objects be declared before they are used.  This lends a decidedly
| >>"bottom-up" quality to raw C code.  I am finding that my literate
| >>programs tend to be more "top-down," with declarations of higher level
| >>objects before the lower level components which they require.  The
| >>problem is that if I use some generic refinement like << Public Data
| >>Types >> to collect up my typedef's, for example, then the objects
| >>are declared in the wrong order for the compiler.

| Pardon me for being terribly dense today, but is this a non-problem?
| If type Foo depends on the definition of type Bar, shouldn't there
| be a scrap
|
| <<Public Data Types>>=
|   <Define Type Bar>
|   <Define Type Foo>

There seems to be a lot of confusion about what I was trying to say, so
I suppose I should clarify.  Yes, of course you can explicitly put the
declarations in the right order and it will work.  So there is no
"problem" in the sense that work has stopped because something is not
possible.  However, when I do this I get a twinge from my finely tuned
sense of "rightness."  It seems wrong that I have to encode the 
dependency order in this way.

Of course, I get this same feeling every time I program in C.  Any good
language would allow use before definition, but since C does not, I 
always have to jump through hoops getting valid concepts to run through
the compiler.  I've long since learned to ignore the mental warnings I
get when programming in C, and it may be that I'm just seeing them anew
when attempting literate C programming.  But I think I can make a case
for the problem being in the literate programming domain and not just
the target language.

Most webs allow code chunks with the same identifier, and the code from
all the chunks is collected together to form a single refinement of the
same name.  The code is ordered in the refinement in the same order that
it occurs in the document.  It seems to me that sometimes the order is
conceptually important and sometimes it is not.

If the refinement represents some linear process, like a series of steps,
then the order is important.  In this case I would argue that the chunks
with the same name will for very natural reasons be together in the prose
and will be in the right order.

	"First we do step 1."
	<<Some process>>=
		Step #1

	"Now we do the next step, which is 2."
	<<Some process>>=
		Step #2

	"Finally we do the third step."
	<<Some process>>=
		Step #3

It would never make sense to cut out step two and paste it into another
section since that would take it out of context.  So we don't generally
have to worry about the steps getting out of order as result of editing
the prose.

On the other hand, some refinements which have the same name are just
used to collect things of similar type and are conceptually order
independent.  Code chunks for <<Public Functions>>, <<Local Typedefs>>
and <<Private Include Files>> will be strewn throughout the web source
willy nilly, used whenever a new thing of that type is to be inserted
into the output code.  When the reader encounters a chunk like

	<<Include Files>>=
		#include <ectrl.h>

he is not concerned with what comes before or after this chunk in the
refinement.  The chunk is stand-alone in that it declares only what type
of code the chunk represents, not its order in any sequence.  If the web
is complex, there may be many sections each with many such chunks, and
each section is semi-independent in that it could very easily be moved
to make the prose read better.

The problem is that even though this type of chunk is conceptually order
independent, it is actually order dependent, since the code will be
generated in the order it's found in the web.  So, if A depends on B,
and B comes first in the document, the generated code will compile.  If,
due to a conceptual restructuring of the web, A is moved to before B,
then the generated code will not compile.  Now the person who was just
making the web read better has to write "glue" code to skick B back in
front of A in the code sequence.  And where does this tacky glue stuff
go anyway?  Is it part of the section on A, or the section on B?  What
if a third thing depends on A or B -- now where does the glue belong?

I would find it conceptually cleaner to allow code chunks to declare
their dependencies and be truely independent of the order they occur
in the web.  We could have:

	<<Typedefs>>=
		typedef {... B C } A;
		<: defines A and depends on B and C :>

	<<Typedefs>>=
		typedef {... C } B;
		<: defines B and depends on C :>

	<<Typedefs>>=
		typedef {...} C;
		<: defines C :>

These three chunks could be anywhere in the document in any order and
if the <<Typedefs>> refinement had the right behavior associated with
it, then the chunks which define it would be shuffled into C B A order,
which will compile.  Even better, if a new type was added it would be
shuffled into the sequence correctly and none of the other parts of the
web would be affected.

I hope this is more clear now.  I think this is really a literate 
programming problem since it is about making the description of the code
clear and elegant and not just about hacking something together that
works.
-- 
	Stuart Ferguson		(shf@netcom.com)
			"Just Once or Twice .. is Good for your Soul"
		Ten weeks to Midnight.
================================================================================
Archive-Date: Sun, 21 Nov 1993 03:34:58 CST
Sender: LP-Mgr@SHSU.edu
Date: Sun, 21 Nov 1993 02:25:13 -0500 (EST)
From: j_mcarthur@BIX.com
Reply-To: LitProg@SHSU.edu, j_mcarthur@BIX.COM
Subject: Ordering Dependencies and Scoping
To: litprog@shsu.edu
Message-ID: <9311210225.memo.46670@BIX.com>
Content-Transfer-Encoding: 7BIT

Stuart Ferguson writes:

>I would find it conceptually cleaner to allow code chunks to declare
>their dependencies and be truely independent of the order they occur
>in the web.  We could have:
>
> <<Typedefs>>=
>  typedef {... B C } A;
>  <: defines A and depends on B and C :>


The original Pascal WEB has this feature.  It understands Pascal
and orders the declarations in such a way that simple dependancies
are resolved by tangle.  If the dependancy is circular, it needs
help.

All in all, the original Pascal WEB is not that bad of a language
to use.  Far from perfect.  Many of its flaws are do to the nature
of Pascal.

----
    Jeffrey M\kern-.05em\raise.5ex\hbox{\b c}\kern-.05emArthur
    a.k.a. Jeffrey McArthur          ATLIS Publishing
    phone: (301) 210-6655            12001 Indian Creek Court
    fax:   (301) 210-4999            Beltsville, MD  20705
    email: j_mcarthur@bix.com
================================================================================
Archive-Date: Sun, 21 Nov 1993 15:41:52 CST
Sender: LP-Mgr@SHSU.edu
From: Mark.Probert@nms.otc.com.au (Mark Probert)
Reply-To: LitProg@SHSU.edu, Mark.Probert@NMS.OTC.COM.AU
Message-ID: <9311212142.AA17033@ra.pad.otc.com.au>
Subject: Re: Reuse of LP code
To: LitProg@SHSU.edu, mcguire@cs.utexas.edu
Date: Mon, 22 Nov 93 8:42:29 GMT

Tommy Marcus McGuire...
> 
> Do you by any chance read the last page of a mystery novel first?  :-)
> 
I'm one of those sick individuals that reads from front to back,
with no peeking. Sad, isn't it? :-)

-- 
mark.    (probertm@nms.otc.com.au) ph: (02) 339 3953  fax: (02) 339 3688
================================================================================
Archive-Date: Sun, 21 Nov 1993 16:04:03 CST
Sender: LP-Mgr@SHSU.edu
Date: Sun, 21 Nov 1993 23:02 +0000 (GMT)
From: "Eric W. van Ammers, LUW, tel: (+31)8370-83356" <AMMERS@RCL.WAU.NL>
Reply-To: LitProg@SHSU.edu, AMMERS@RCL.WAU.NL
Subject: Re: A naive question: Is LP interactive and WYSIWYG?
To: LitProg@SHSU.edu
Message-ID: <01H5LEQ7S5U8AEL5U0@RCL.WAU.NL>
Content-Transfer-Encoding: 7BIT

Lee Wittenberg writes in reply to "plessel@oz.rtpnc.epa.gov"

	[text omitted]

=There are 2 WYSIWYG LP environments that I know of.  WinWordWEB is a
=collection of Word for Windows macros that support literate
=programming in that <<appropriate adjective>> word processor.  A
=a FrameMaker-based system was recently announced as well.

I would like to add CLiP to this list. It works with any word-processor
(WYSIWYG of conventional). It is designed to work in a hypertext environment
also (but we have no experience here yet).

Eric
============================================================================
Eric W. van Ammers
Department of Computer Science
Wageningen Agricultural University
Dreijenplein 2				E-mail:	ammers@rcl.wau.nl
6703 HB  Wageningen			voice:	+31 (0)8370 83356/84154
The Netherlands				fax:	+31 (0)8370 84731
============================================================================
================================================================================
Archive-Date: Sun, 21 Nov 1993 22:17:12 CST
Sender: LP-Mgr@SHSU.edu
Date: Sun, 21 Nov 93 23:15:53 EST
From: Lee Wittenberg <leew@pilot.njin.net>
Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET
To: LitProg@shsu.edu, AMMERS@rcl.wau.nl
Subject: Re: A naive question: Is LP interactive and WYSIWYG?
Message-ID: <CMM-RU.1.3.753941753.leew@pilot.njin.net>

Eric W. van Ammers writes:

> Lee Wittenberg writes in reply to "plessel@oz.rtpnc.epa.gov"
> 
> 	[text omitted]
> 
> =There are 2 WYSIWYG LP environments that I know of.  WinWordWEB is a
> =collection of Word for Windows macros that support literate
> =programming in that <<appropriate adjective>> word processor.  A
> =a FrameMaker-based system was recently announced as well.
> 
> I would like to add CLiP to this list. It works with any word-processor
> (WYSIWYG of conventional). It is designed to work in a hypertext environment
> also (but we have no experience here yet).

Mea culpa.  I apologize to Eric.  I do know about CLiP, and while I
don't use it myself, I did know that it is word-processor independent
and should, therefore, belong in the WYSIWYG list.  I just forgot.

I guess my only excuse is that I don't tend to think highly of WYSIWYG
web systems (no flames, please:  as the author of WinWordWEB, I'm
allowed to disparage my own product), but I do think rather highly of
CLiP :-).

		-- Lee
		   leew@pilot.njin.net

================================================================================
Archive-Date: Mon, 22 Nov 1993 00:40:54 CST
Sender: LP-Mgr@SHSU.edu
From: system@galcon.ersys.edmonton.ab.ca (The Doctor)
Reply-To: LitProg@SHSU.edu, system@GALCON.ERSYS.EDMONTON.AB.CA
Subject: Re: Anybody using PowerBuilder from PowerSoft? Yes? Questions...
Message-ID: <931120.090645.1K3.rusnews.w165w@galcon.ersys.edmonton.ab.ca>
Date: Sat, 20 Nov 1993 09:06:45 MST
To: LitProg@SHSU.EDU

smclewin@ultrix.ramapo.edu (Scott M McLewin) writes:

> My company is looking to re-write a vertical market application using
> PowerBuilder.  We presently use C and the Raima Data Manager (RDM) from
> Raima Corp for the product.  I know PowerBuilder can sit on the
> RDM engine through ODBC, but would like to know what database you would
> reccomend to attach to PowerBuilder via ODBC.
>  
> Our constraints are as follows:                                        
>  * We need our application to work both on single user systems and networks.
>  * We would preferr a database engine with royalty free distribution
>  
> Some other questions I would love to have answered:
>   * Is PowerBuilder a good development tool?
>      - what are its strengths?
>      - what are its weaknesses?
>   * How is the PowerBuilder documentation?  Have you had questions you
>     simply could not answer via the manuals?
>   * Is PowerSoft a "good" company?  (I know, a rather vague question...)
>      - How is their technical support?
>         + responsive/"we'll call you back next month"?
>         + well informed?
>      - How frequently, if ever, do they make software patchs available?
>      - Are they willing to share their known bugs with developers so we
>        can avoid getting snagged by them?
>   * Would you consider the SQL/database query tool included in the
>     database you use to be good?  For exaple, any Raima user who has
>     attempted to use db_Query knows it is full of "features" its
>     creators never intended.

Powerbuilder needs an SQL Server to work with, Gupta SQLBase, Oracle,
XDB, Sybase, HP, otherwise you are OOL.

>  
>  
> I am truly sorry if this message does not belong in this group.  I
> was unable to find a group dedicated to PowerSoft products, so I tried
> to place this message in a wide variety of programming groups.  Please
> don't waste further bandwidth by flaming me or those silly folks who may 
> have already flamed me.  Thanks.
>  
> In addition to posting your reply, please email me a carbon
> copy as I may not have a chance to catch all replies in all groups.
>  
> Thanks,
>  
> Scott M McLewin
> smclewin@ultrix.ramapo.edu
>  
> 
> --
> 
> 
> Scott M McLewin                                 smclewin@ultrix.ramapo.edu
> 
-- 
God save the Queen! God bless and save us all!!
Remeber, Jesus saves all souls from eternal damnation!
Save the world! Purge Republicanism and Dictatorship!
A British citizen I was born, A British citizen I will most honourably die!
================================================================================
Archive-Date: Mon, 22 Nov 1993 04:11:00 CST
Sender: LP-Mgr@SHSU.edu
From: rryan@panix.com (Rob Ryan)
Reply-To: LitProg@SHSU.edu, rryan@PANIX.COM
Subject: Re: Anybody using PowerBuilder from PowerSoft? Yes? Questions...
Date: 22 Nov 1993 04:39:31 -0500
Message-ID: <2cq1cj$cjn@panix.com>
To: LitProg@SHSU.EDU

In <931120.090645.1K3.rusnews.w165w@galcon.ersys.edmonton.ab.ca> system@galcon.ersys.edmonton.ab.ca (The Doctor) writes:

>Powerbuilder needs an SQL Server to work with, Gupta SQLBase, Oracle,
>XDB, Sybase, HP, otherwise you are OOL.

PowerBuilder v3.0 comes with its own DBMS, Watcom SQL, doesn't it?
Incidentally, "SQL Server" is a particular DBMS from Microsoft (I
believe that it runs under OS/2 and, more recently, NT), not
necessarily a generic term.
================================================================================
Archive-Date: Mon, 22 Nov 1993 10:25:25 CST
Sender: LP-Mgr@SHSU.edu
Date: 22 Nov 93 11:21:05 EST
From: <PJENSEN@CSI.compuserve.com>
Reply-To: LitProg@SHSU.edu, PJENSEN@CSI.COMPUSERVE.COM
To: <LitProg@shsu.edu>
Subject: Re: Ordering Dependencies and Scoping
Message-ID: <CSI_5981-28946@CompuServe.COM>

Stuart Ferguson (shf@netcom.com) writes:

> Any good language would allow use before definition, but since C does not,
> I always have to jump through hoops getting valid concepts to run through
> the compiler.

Hear, hear!  This comment was apropos of the need to order type definitions
properly, but another instance is that of prototypes.  I am currently using
CWEB, and am sorely tempted to hack on it so that ctangle notices function
definitions and constructs matching prototypes, which would then get emitted
at a designated point in the output.

I see this enhancement as analogous to the ways in which Knuth's original
made up for certain deficiencies of standard Pascal.

================================================================================
Archive-Date: Mon, 22 Nov 1993 10:26:54 CST
Sender: LP-Mgr@SHSU.edu
From: jacojn@inet.uni-c.dk (Jacob Nielsen)
Reply-To: LitProg@SHSU.edu, jacojn@INET.UNI-C.DK
Subject: Literate programming on WWW, where ?
Date: Mon, 22 Nov 1993 17:48:40 GMT
Message-ID: <Pine.3.05.9311221640.A24984-9100000@inet.uni-c.dk>
To: LitProg@SHSU.EDU

Hi,

does anyone have the 'URL' of the literate programming page 
at CERN (info.cern.ch). It's not that easy to find :-(

Thanx,

Jacob
--
Jacob Nielsen
Email:   jacojn@inet.uni-c.dk (my private account)
   or    bc898574@bbar.dth.dk (my account at the university)




================================================================================
Archive-Date: Mon, 22 Nov 1993 11:01:01 CST
Sender: LP-Mgr@SHSU.edu
From: rkeel@fnugget.intel.com (William R Keel)
Reply-To: LitProg@SHSU.edu, rkeel@FNUGGET.INTEL.COM
Subject: Re: Anybody using PowerBuilder from PowerSoft? Yes? Questions...
Date: 22 Nov 93 16:13:05 GMT
Message-ID: <rkeel.753984785@fnugget>
To: LitProg@SHSU.EDU

rryan@panix.com (Rob Ryan) writes:

>In <931120.090645.1K3.rusnews.w165w@galcon.ersys.edmonton.ab.ca> system@galcon.ersys.edmonton.ab.ca (The Doctor) writes:

>>Powerbuilder needs an SQL Server to work with, Gupta SQLBase, Oracle,
>>XDB, Sybase, HP, otherwise you are OOL.

>PowerBuilder v3.0 comes with its own DBMS, Watcom SQL, doesn't it?
yes.  It's a SQL type DBMS that runs locally on your machine (is it
only in Windows?)

>Incidentally, "SQL Server" is a particular DBMS from Microsoft (I
>believe that it runs under OS/2 and, more recently, NT), not
>necessarily a generic term.
SQL Server is one of those combination efforts.  Both Sybase and
Microsoft have put their name to basically the same product.  I don't
know if MS did any work on it or if they just licensed the product
from Sybase.
But true...it's not a generic term (like Kleenex).

Reed
+----------------------------+-[mail]-------------------------------------+
| "I didn't do it...nobody   |  unix: rkeel@fnugget.intel.com             |
|  saw me do it...you can't  |    pc: william_r_keel@ccm.hf.intel.com     |
|  prove anything!" - Bart   | Intel Corp. Memory Components - Folsom, CA |
+-[disclaimer]---------------+--------------------------------------------+
|  Intel had absolutely nothing to do with the content of this message.   |
+-------------------------------------------------------------------------+
================================================================================
Archive-Date: Mon, 22 Nov 1993 12:16:10 CST
Sender: LP-Mgr@SHSU.edu
From: mauer@mcs.anl.gov (Andrew Mauer)
Reply-To: LitProg@SHSU.edu, mauer@MCS.ANL.GOV
Subject: Literate Scoping of Scrap Names
Message-ID: <MAUER.93Nov22104222@goofy.mcs.anl.gov>
Date: Mon, 22 Nov 1993 16:42:20 GMT
To: LitProg@SHSU.EDU


>>>>> On Thu, 18 Nov 93 20:32:46 -0500, koopman@sgi84.ctc.com (Michael G. Koopman) said:


>| I like all my C files to have the same basic format. Why do I have
>| to rename all the sections in the top-level template when I apply it to 
>| a new module. This is unneeded work and it's error prone.
>
>This ties into one of the ideas I've had which I posted here recently,
>about boilerplate and literate macros.  If your web tool had text
>substitution macros which could be instantiated forward and backwards,
>you would only need to define your template once and could envoke it
>with a different module name for each instance.  This would obviate 
>the need for scoping in this case.

Michael> I would add support for module name tagging of macros and other web
Michael> variable entries to (fully?) obviate scoping.

IMHO, this is an excellent idea. I'm interested in hearing the
advantages/disadvantages of allowing a user to specify a the module by
doing:
	@module << C++Class >>
or maybe
	@scope << C++Class >>	

It seems to me that in the spirit of WEB delimiting of text and
program scraps, one would not need to support more than one level of
scoping, and a scope should just go on until the next scope is
encountered. 

What is the real-life situation here? Does anybody have a code that
they think needs nested scoping? I agree that it would be more
elegant, but for c/c++ (my area), the program structure does not nest
enough for that to be likely. I gather that in scheme or other
languages which support prodecures-within-procedures this could be
important, but is that good style?!?

/Andrew/
--
/Andrew Mauer/
mauer@mcs.anl.gov
================================================================================
Archive-Date: Mon, 22 Nov 1993 14:21:34 CST
Sender: LP-Mgr@SHSU.edu
Date: Mon, 22 Nov 1993 14:18:45 CST
From: "George D. Greenwade" <bed_gdg@SHSU.edu>
Reply-To: LitProg@SHSU.edu, bed_gdg@SHSU.EDU
To: tomas@cae.wisc.edu
CC: ctan@SHSU.edu, litprog@SHSU.edu
Message-ID: <00975ECA.F42CF1E0.15852@SHSU.edu>
Subject: CWEB (3.1) for Amiga on the CTAN

On Sun, 21 Nov 93 17:55:14 CST, Tomas Willis <tomas@cae.wisc.edu> posted:
> I have uploaded CWEB 3.1 for Amiga to the incoming area
> in a subdir named AmigaCWEB.
> The files are AmigaCWEB_31.readme, an explanatory text file in Aminet format
> and AmigaCWEB_31.lha, a LHA-compressed archive file, the standard Amiga
> archiver.

Thank you for the submission.  I have moved the files into the directory
 /tex-archive/web/c_cpp/AmigaCWEB_31/
on the CTAN hosts at ftp.SHSU.edu and ftp.Uni-Stuttgart.de (I was unable to
get connections to deposit it at ftp.TeX.ac.uk, but feel sure it will be
mirrored there sometime soon).

Three comments on this (and, please, if you're going to flame on any of
this, please do so directly to me and not the list/newsgroup).  First, the
web/c_cpp directory is where the C and C++ web-type files are placed; since
"+" can be a tricky file/directory name on more than a few platforms, the
CTAN uses this convention for portability reasons.  Second, I placed this
file outside of web/c_cpp/cweb intentionally as that hierarchy is a mirror
of the authoritative CWEB files at labrea.  Third, and finally (and no
flame at Tomas nor anyone else -- I've yet to mention this publicly),
please consider using lowercase alphanumeric names for files and
(especially!) directories whenever possible (a tertiary-level reason why
this isn't directly in the web/c_cpp/cweb/ directory).  Lowercase
alphanumerics (plus "_" and "-" which seem to be acceptable on every OS for
filename purposes -- at least no one's told me differently so far) are an
awful lot more portable in design (ideally 8+3 filenames, but I won't get
into that as it's secondary or lower in importance to character selection).

Regards to all and again my thanks to Tomas,   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
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
================================================================================
Archive-Date: Mon, 22 Nov 1993 16:23:17 CST
Sender: LP-Mgr@SHSU.edu
From: marcus@x4u2.desy.de (Marcus Speh)
Reply-To: LitProg@SHSU.edu, marcus@X4U2.DESY.DE
Subject: Re: Literate programming on WWW, where ?
Message-ID: <MARCUS.93Nov22215915@x4u2.desy.de>
Date: Mon, 22 Nov 1993 20:59:15 GMT
To: LitProg@SHSU.EDU

>>>>> "Jacob" == Jacob Nielsen <jacojn@inet.uni-c.dk> writes:

Jacob> Hi, does anyone have the 'URL' of the literate programming page
Jacob> at CERN (info.cern.ch). It's not that easy to find :-(

"The literate programming page at CERN" is in fact from DESY :-)
URL is  
	http://info.desy.de/user/projects/LitProg.html

Due to a server change at DESY, the link from CERN is disabled until
CERN fixes the URL. It is hidden in "Subjects"->"Computing"->"Languages".


--
-----------------------------------------------------------------------------
Marcus Speh, II.Inst.Theor.Physik,Luruper Chaussee 149, 22761 Hamburg,Germany
Phone: +49-40 8998 2178, Fax: +49-40 8998 2267, Private: +49-40 801392
Email: <marcus@x4u.desy.de> <na.speh@na-net.ornl.gov> <marcus1@uu-gna.mit.edu>



================================================================================
Archive-Date: Mon, 22 Nov 1993 16:52:48 CST
Sender: LP-Mgr@SHSU.edu
From: erawlins@sybase.com (Eric Rawlins)
Reply-To: LitProg@SHSU.edu, erawlins@SYBASE.COM
Subject: Re: Anybody using PowerBuilder from PowerSoft? Yes? Questions...
Message-ID: <CGwGz3.5qq@sybase.com>
Date: Mon, 22 Nov 1993 15:42:38 GMT
To: LitProg@SHSU.EDU

In article <2cq1cj$cjn@panix.com> rryan@panix.com (Rob Ryan) writes:
>In <931120.090645.1K3.rusnews.w165w@galcon.ersys.edmonton.ab.ca> system@galcon.ersys.edmonton.ab.ca (The Doctor) writes:
>
>>Powerbuilder needs an SQL Server to work with, Gupta SQLBase, Oracle,
>>XDB, Sybase, HP, otherwise you are OOL.
>
>PowerBuilder v3.0 comes with its own DBMS, Watcom SQL, doesn't it?
>Incidentally, "SQL Server" is a particular DBMS from Microsoft (I
>believe that it runs under OS/2 and, more recently, NT), not
>necessarily a generic term.

"SQL Server" is the name of Sybase's RDBMS, which is licensed to Microsoft
for the OS/2 and Windows environments.
-- 
-------------------------------------------------------------------
   Eric Rawlins                          erawlins@sybase.com
   Sybase, Inc.                          510-596-4657
--------------------------------------------------------------------
================================================================================
Archive-Date: Tue, 23 Nov 1993 05:43:57 CST
Sender: LP-Mgr@SHSU.edu
From: c21vc@kocrsv01.delcoelect.com (Venkataraman Chandrasekhar)
Reply-To: LitProg@SHSU.edu, c21vc@KOCRSV01.DELCOELECT.COM
Subject: WYSIWYG LP environments
Message-ID: <1993Nov22.165700.27010@kocrsv01.delcoelect.com>
Date: Mon, 22 Nov 1993 16:57:00 GMT
To: LitProg@SHSU.EDU


At this time we (Ron Peithman and I) here at Delco Electronics have (at 
least the beginnings) two LP environments, for devloping Perl literate programs:

1. The first uses the '-x' feature of Perl. Very detailed annotations may be
provided at the start of each Perl file without marking these as comments (using
the '#' character). At run time, the '-x' option performs the simple tangle of
processing only the lines following the perl invocation line. Please contact me
if you need more details. (Larry Wall the author of Perl pointed this to me.)
This alone will go a long way (for us) in writing understandable programs.
However, very little 'weave' features will be available.

2. The second uses Interleaf to create Perl source programs. Jonathan Starr who
   performs independent consulting in Interleaf provided some code which
   makes tangle possible. There may be other less elegant ways too. Weave is done
   using the effectivity option or the select and copy features.

Of the two, clearly the Interleaf method is superior since good formatting of
text can be achieved; table of contents, index etc. can be achieved without
writing a post processor. What I have heard of Interleaf (regarding ease of
learning and ease of use) makes me want to try the Perl way first. It is time to
try writing some understandable programs now. 

This in passing: sometimes people ask those who spend time worrying about the
'great unwashed', 'what have the great unwashed done for you lately ?' I cannot
help thinking of this. Recently, I was talking to one of my users (who might be
modifying some of my programs) and saying that the programs he will be getting
will be more understandable. Not really being used to this luxury, he didn't seem
to be expecting much. Also, it is possible that he would almost be disappointed
if his work was made very easy. (I remember reading that some food product did
not sell well because it was ready to eat; there was no place for the housewife
to perform say 5% of the work and claim credit for the whole thing; they had to
make it only 95% readymade). As Cox points out in his book Object Oriented
Programming, unless the extra work done in software towards whatever purposes
(make it more maintainable, etc.) is appreciated, there is little incentive to
do these. None of these take away from my interest and determination to write
understandabel programs employing the book paradigm; but it will be nice to be
appreciated. You may run into the great unwashed taking your work for garnted.

Shaker
================================================================================
Archive-Date: Wed, 24 Nov 1993 03:36:18 CST
Sender: LP-Mgr@SHSU.edu
From: epasos@sfsuvax1.sfsu.edu (Enrique Pasos)
Reply-To: LitProg@SHSU.edu, epasos@SFSUVAX1.SFSU.EDU
Subject: Enfin..
Message-ID: <1993Nov24.083902.1182@csus.edu>
Date: Wed, 24 Nov 1993 08:39:02 GMT
To: LitProg@SHSU.EDU


I am curious if anyone is using Easel's Enfin product.  I use it at work
but haven't run into anyone else who uses it.
I'm just curious to know what others are doing with it.
---
Henry Pasos 
(epasos@sfsuvax1.sfsu.edu)
================================================================================
Archive-Date: Wed, 24 Nov 1993 03:58:57 CST
Sender: LP-Mgr@SHSU.edu
From: Walter Ravenek <ravenek@chem.vu.nl>
Reply-To: LitProg@SHSU.edu, ravenek@CHEM.VU.NL
Subject: Re: nuweb for macintosh
Message-ID: <1993Nov24.091104.26071@cca.vu.nl>
Date: Wed, 24 Nov 1993 09:11:04 GMT
To: LitProg@SHSU.EDU

John, and anyone wanting to install nuweb on the Macintosh.

Get the latest version of nuweb, currently 0.87.
Then make the following changes:

- file main.c
- add after line 1:
#include <console.h>

- file main.c
- replace line 6:
  int arg = 1;
- by
  int arg;
  argc = ccommand(&argv);
  arg = 1;

- file output.c
- replace lien 10:
      char *temp_name = tempnam(".", 0);
- by
      char *temp_name = tmpnam(NULL);


Hope this helps,
================================================================================
Archive-Date: Wed, 24 Nov 1993 11:36:36 CST
Sender: LP-Mgr@SHSU.edu
Date: Wed, 24 Nov 93 12:35:40 EST
From: Lee Wittenberg <leew@pilot.njin.net>
Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET
To: LitProg@shsu.edu
Subject: [Paul Ceruzzi <NASEM001@sivm.bitnet>: Software Archives Report]
Message-ID: <CMM-RU.1.3.754162540.leew@pilot.njin.net>

The following came in on a ``History of Computing'' discussion group
that I subscribe to.  I think the idea of software archives is
particularly interesting w/r/t literate programs, and all you LP'ers
out there might be interested.

		-- Lee
		   leew@pilot.njin.net

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

Received: from vtbit.cc.vt.edu by pilot.njin.net (5.59/SMI4.0/RU1.5/3.08) 
	id AA04606; Wed, 24 Nov 93 10:44:15 EST
Message-Id: <9311241544.AA04606@pilot.njin.net>
Received: from UMDD.UMD.EDU by VTBIT.CC.VT.EDU (IBM VM SMTP V2R2)
   with BSMTP id 8306; Wed, 24 Nov 93 10:39:22 EST
Received: from UMDD.UMD.EDU by UMDD.UMD.EDU (Mailer R2.10 ptf000) with BSMTP id
 9382; Wed, 24 Nov 93 10:39:21 EST
Date:         Wed, 24 Nov 1993 09:11:08 -0500
Reply-To: History of Computing Issues <SHOTHC-L@sivm.bitnet>
Sender: History of Computing Issues <SHOTHC-L@sivm.bitnet>
From: Paul Ceruzzi <NASEM001@sivm.bitnet>
Subject:      Software Archives Report
To: Multiple recipients of list SHOTHC-L <SHOTHC-L@sivm.bitnet>

This came from David Allison.  He welcomes comments privately, or you may post
your comments on this list.
*** Forwarding note from .       --.        11/23/93 18:42 ***
Return-Path: <@SIVM.SI.EDU:dkallison@AOL.COM>
Received: from SIVM (NJE origin SMTP@SIVM) by SIVM.SI.EDU (LMail V1.1d/1.7f)
          with BSMTP id 9792; Tue, 23 Nov 1993 18:42:26 -0500
Received: from mailgate.prod.aol.net by SIVM.SI.EDU (IBM VM SMTP V2R2) with
TCP;
   Tue, 23 Nov 93 18:42:25 EST
Received: by mailgate.prod.aol.net
        (1.37.109.4/16.2) id AA18334; Tue, 23 Nov 93 18:23:16 -0500
From: dkallison@aol.com
X-Mailer: America Online Mailer
Sender: "dkallison" <dkallison@aol.com>
Errors-To: <dkallison@aol.com>
Reply-To: <dkallison@aol.com>
Message-Id: <9311231823.tn238487@aol.com>
To: nasem001@sivm.si.edu
Date: Tue, 23 Nov 93 18:23:10 EST
Subject: Software Archives Report

Following is the report for the meeting of the software archives planning
group.  I'd like to get any comments those of you who participated might
have.

Paul Ceruzzi:  I'd also like to get the comments of the people in your
list-serve.  I don't know exactly how to get the report on the system, so I'd
appreciate it if you would put it out for comment.  Thanks for the help.  You
can reach me at this America on-line address or also at mahcis01@sivm.si.edu
_____

National Software Archives:  Exploring the Concept

Early in 1993, several representatives of major historical and cultural
organizations met with American software companies to discuss the need for a
"National Software Archives."  The discussion began with a simple reflection:
 Software is unquestionably among the most important contributions of recent
generations to the history of mankind.  Yet little thought or effort has been
devoted to how it should be preserved for both short and long-term purposes.
Resolving this issue is important to corporations that create software.
America is the premier producer of software for the global market, and these
corporations need to know how to fulfill their responsibilities to maintain
appropriate records.
Before a nation-wide a
rchives is established, there are many questions to answer.  Among them:
- What fraction o
f software and supporting records should be saved?
- What preservation standards should be adopted?

- Should manuals and marketing materials be preserved ?  What about
videotapes or other media?
- Where would the archives reside?
- How will the archives be catalogued?
- How would the archives be used?
On October 15-16, 1993, a second meeting of representatives of major
organizations was held in Seattle to discuss the formal establishment of a
National Software Archives.  Institutions participating included:  The
Smithsonian Institution, the Library of Congress, The Annals of the History
of Computing, Stanford University, Microsoft, Apple Computer, Hewlett
Packard, and Word Perfect.  Other institutions and corporations had
previously expressed strong interest in the project, but were unable to
attend this initial meeting.
Those attending the meeting agreed on  a number of significant points.  Th
ey are: conclusions.  Among them
- A "National Software Archives" should be established.
-
 The Archives should not reside in a single institution, but have elements
housed in many different organizations, including software producing
companies, universities, libraries, cultural organizatio
ns, and museums.
- A National reviewing body would be formed that included representatives of
cultural and historical organizations, universities,  industry associations,
information technology companies, and appropriate small firms or individuals.
 This group would establish standards for the collection, review and select
potential submissions, and review management of existing items in the
collection.  The
 body would meet at least once a year.
- One institution should serve as the coordinating institution for the
project, and at least one full-time staff person should be hired to work on
the project.  This person should be involved in both educating participants
and potential participants on the project and the procedures and standards
necessary for participation.  The person should also be in charge of
cataloging official entries into the collection.  Funding for the position
might come from contributio
ns of participants in the project or from grant funding.
- The first area of focus would b
e microcomputer software from US based corporations.
- The National Software Collection would include only those software
materials deemed to have very long-term or permanent significance to Software
 companies, the Information Technology Industry, or the History of the United
States
- An appealing marking system would be developed for identifying items that
had been accessioned in the national software archive.  This marking, and the
associated product names, would be made suitable for display in corporations
who participated in the project and whose products had been selected for
inclusion in the collection.  The marking would also be put on storage boxes
or other media holding the materials included in the
 collection to distinguish the items from general corporate record materials.

- The Collection would begin with core software materials, such as source
code, compilers, make files, and actual products.  However it would also
include supporting materials.  These include (where possible) hardware on
which the software could be run (recognizing that the active life of hardware
will probably be much shorter than that of the software);  contextual
materials, such as rights and contracts, development files and electronic
mail documents, management and administrative information, and  business
plans;  and  collateral materials, such as manuals, support records,
packaging, promotional materials, and oral and vide
o histories with principal participants.
- Setting standards and procedures for catalogi
ng and managing the collection should be a collaborative endeavor.
- The collection should be cataloged in an existing national bibliographic
database, such as RLIN or OCLC, that is readily accessible to both
participants and researchers.  Cataloging conventions should follow current
professional standards where possible (i.e. MARC standards), and new
standards should be developed where required in conjuncti
ons with current national efforts.
- Cataloging in the collection would be on different levels:  collection,
sub-collection, and item levels.  Most entries would be only bibliographic in
nature, but some would include full text of items.  Examples are general
descriptions of the software or major fe
atures, as might appear in press releases or general reports.
- Access to some portions of the archives should be restricted for
proprietary reasons.
Obviously many questions remain to be answered.  The group realized that
resolving even the major issues will take several years.  However all agreed
that a start on the project should be made, and development of procedures and
standards evolved incrementally.  At the conclusion of the Seattle meeting,
the participants agreed on a series of subsequent acti
ons.  They were:
- To open the idea of a National Software Archives for discussion over th
e Internet
- To gather additional comments on the ideas above through circulation of
this report to
 many individuals  and soliciting comment
- To explore details related to staffing the project a
nd cataloging the entries with the appropriate parties
- To ask respected experts to begin compilin
g lists of potential software materials that should be included in the
National Collection
- To plan a Spring Meeting at the Smithsonian Institution in Spring 1994 to
develop the idea further, and to broaden attendance at this meeting to a
larger spectrum of interested parties
- To use the Spring meeting and the period following to develop specific
plans for funding implementing the  National Software Archives, with a
planned start-up date of early 1995

================================================================================
Archive-Date: Wed, 24 Nov 1993 11:39:05 CST
Sender: LP-Mgr@SHSU.edu
Date: Wed, 24 Nov 93 12:38:12 EST
From: Lee Wittenberg <leew@pilot.njin.net>
Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET
To: LitProg@shsu.edu, epasos@sfsuvax1.sfsu.edu
Subject: Re: Enfin..
Message-ID: <CMM-RU.1.3.754162692.leew@pilot.njin.net>

Henry Pasos writes:

> I am curious if anyone is using Easel's Enfin product.  I use it at work
> but haven't run into anyone else who uses it.
> I'm just curious to know what others are doing with it.

Forgive my ignorance, but what is ``Easel's Enfin product?''  Was I
napping when its description came over the net?

		-- Lee
		   leew@pilot.njin.net
================================================================================
Archive-Date: Wed, 24 Nov 1993 11:44:23 CST
Sender: LP-Mgr@SHSU.edu
From: c21vc@kocrsv01.delcoelect.com (Venkataraman Chandrasekhar)
Reply-To: LitProg@SHSU.edu, c21vc@KOCRSV01.DELCOELECT.COM
Subject: Perl programs - how to put free form annotations at the top
Message-ID: <1993Nov23.150822.657@kocrsv01.delcoelect.com>
Keywords: perl free from annotations -x option
Date: Tue, 23 Nov 1993 15:08:22 GMT
To: LitProg@SHSU.EDU


> Hello Shaker,
> 
> Are you making your Perl literate programming environment work
> available to "the great unwashed" out here?
> 
> Thanks,
> 
> Mike

Actually, there is not a lot of 'work' really. However, I will document 
the procedure right here.

As for "the great unwashed out there (in the usenet land)" (I know you
are introducing a light touch here; however, I do not want the netters to
misunderstand me), I was referring only to maintenance programmers who
use literate programs without acknowledging (for political or
whatever reasons) that these are better than the average programs they
normally get; I was not referring to the people in the newsgroup, who only
contribute positively to my motivation (to write understandable programs).

Here is a preview of what I plan to do for Perl programs:

 1. Normally Perl annotations have to start with a '#' in column 1.
    It is annoying to have to 'box' comments; usually, the comments
    (number and quality) are restricted because of this. What I plan to 
    do is have a lot of free form text providing a lot of details; this could 
    be several pages; arranged nicely with sections headings etc. .

 2. Follow this with the call to the Perl interpreter. So, the whole
    thing will look like:


    Detailed annotations
    #!/usr/local/bin/perl -P
    perl code

    The restriction is that the annotations cannot contain '#!' (perhaps
    in the whole line or possibly only in column 1). The restriction is 
    probably specified more precisely in the perl book (under the '-x' 
    option). I plan to put only descriptive narrative (book chapter
    like) in the annotations.

    Assuming that the above file is called test1, from the command
    line I type:

     /usr/local/bin/perl -x test1

    The '-x' option causes, Perl to ignore everything above the '#!'
    line. Larry Wall says that the code ('chunk' ?), can be followed
    by an end specification enabling one to put another annotation and so 
    on. ''test1' then should weed out the next annotation, etc,; I don't plan
    to do this (since it will complicate - i.e., make 
    it harder to understand - my application code). In other words, 
    the following is possible, if one is willing to put this kind of 
    tangle_like processing in his application code:

    Detailed annotations
    #!/usr/local/bin/perl -P
    perl code
    _END_ (or something like this)
    more annotations
    more perl code
    _END_ (or something like this)
     more annotations
     more perl code
     etc.

    If you have any questions, please feel free to contact me.
    Thanks for your question.

     Shaker


================================================================================
Archive-Date: Wed, 24 Nov 1993 12:42:50 CST
Sender: LP-Mgr@SHSU.edu
Date: Wed, 24 Nov 1993 18:40:06 +0000
From: D.C.Ince@open.ac.uk (Darrel Ince)
Reply-To: LitProg@SHSU.edu, D.C.Ince@OPEN.AC.UK
To: LitProg@SHSU.edu
Subject: Re: Enfin..

I have spent the last six months experimenting with literate programming
as a prepreation to writing a book on programming and data types in 
a literate programming style. Could anyone help me with two questions.

First, is there an implementation of web and weave for the Macintosh
and where can I find it?

Second, does anyone know of any books written or in progress that deal with
programming, algorithms and data types that use the literate programming
idea?

Darrel Ince
================================================================================
Archive-Date: Wed, 24 Nov 1993 12:43:53 CST
Sender: LP-Mgr@SHSU.edu
From: pgl@imada.ou.dk (Peter Gorm Larsen)
Reply-To: LitProg@SHSU.edu, pgl@IMADA.OU.DK
Subject: Context sensitive font-lock in emacs ?
Message-ID: <1993Nov24.122225.14543@imada.ou.dk>
Keywords: leterate specification, font-lock, emacs, context sensitive
Date: Wed, 24 Nov 1993 12:22:25 GMT
To: LitProg@SHSU.EDU

We have produced a tool supporting the specification language called
VDM-SL. The tool is called "The IFAD VDM-SL Toolbox" and it has an
interface which is built on top of GNU emacs. this tool uses literate
programming (or specification in this case) because we are considering
VDM-SL specifications as part of LaTeX documents. Thus, we have an
environment (\begin{vdm_al} ... \end{vdm_al}) inside which ASCII VDM-SL
specifications are written, whereas the rest of the document are purely
a LaTeX document. The tools we have produce are then able to perform a
number of different kinds of analysis of the VDM specifications (such
as type-checking and execution). However, we have looked at the
font-lock.el macros for emacs which are used to change fonts for certain
reserved words. We would like to be able to use something like this in a
context sensitive way (such that it would only change font of keyword if
it is inside the VDM environment). A similar kind of desire is connected
to spell-checkking of such documents where one would like to be able to
simply spell-check the text and not the formulae. I wonder whether
anyone else in the literate programming community have solved these
context sensitiveity problems already. If so, please let me know about
it.

Thanks in advance
Peter
-------------------------------------------------------------
Peter Gorm Larsen
The Institute of Applied Computer Science (IFAD)
Forskerparken 10, DK-5230 Odense M, Denmark
Phone: +45-65932300, Fax: +45-65-932999, Email: peter@ifad.dk
-------------------------------------------------------------
================================================================================
Archive-Date: Wed, 24 Nov 1993 12:55:57 CST
Sender: LP-Mgr@SHSU.edu
From: UPP201@ibm.rhrz.uni-bonn.de (Michael Burschik)
Reply-To: LitProg@SHSU.edu, UPP201@IBM.RHRZ.UNI-BONN.DE
Subject: Re: Embedded documentation
Date: Wed, 24 Nov 93 16:29:22 MEZ
Message-ID: <16C90E7EAS85.UPP201@ibm.rhrz.uni-bonn.de>
To: LitProg@SHSU.EDU

In article <17383187@MVB.SAIC.COM>
Christian Lynbech <lynbech@daimi.aau.dk> writes:
 
>Thanks for the info.
>
>> The biggest drawback of LaTeXinfo is that you partly need Emacs. The LaTeX
>> style is their, so printed output is not a problem but generating an
>> info file is: the program was written as an Emacs macro. And no
>> way I am going to use that 'editor'. No wars, please, just MHO.
>
>To me, this is a feature, as you might have guessed from my .sig :-)
>I'll choose tools after how well the work with emacs, not the other
>way around. No way I'm goeing to use any other editor, but I know that
>everybody doesn't subscribe to that view. IMVHO.
>
>
>------------------------------------------------------------------------------
>Christian Lynbech               | Hit the philistines three times over the
>                                | head with the Elisp reference manual.
>email: lynbech@daimi.aau.dk     |        - petonic@hal.com (Michael A. Petonic)
>------------------------------------------------------------------------------
 
If this is the same as TeXinfo, then you can use the standalone info
browser, which is small and neat and does not require emacs.
 
Cheers,
        Mike.
 
 
 
 
 
 
================================================================================
Archive-Date: Thu, 25 Nov 1993 08:33:46 CST
Sender: LP-Mgr@SHSU.edu
From: julian@bjalon.demon.co.uk (julian templeman)
Subject: Re: A naive question: Is LP interactive and WYSIWIG?
Reply-To: LitProg@SHSU.edu, julian@bjalon.demon.co.uk
Date: Tue, 23 Nov 1993 14:21:53 +0000
Message-ID: <754064513snz@bjalon.demon.co.uk>
To: LitProg@SHSU.EDU

In article <17693446@MVB.SAIC.COM> Phil Jensen writes:

> First, I will admit that I'm a rabid hater of graphic interfaces.  My blood
> pressure rises when I'm forced to move five of my ten fingers over to a mouse
> to do something that should be one keystroke (like PageUp/PageDown).

Aha! Invitation to a flame war, it sounds like....

Interestingly, I also find that I'm occasionally prone to fits of high blood-
pressure, but for the opposite reason. Misfit though I am, I hate TeX... 
that great sprawl of programs and data files, taking up megabytes of my 
precious disk space. All those arcane commands and incomprehensible error 
messages. Ugh. :-)

> Also, as a typographic purist, I admire TeX for enabling high quality work 
> under precisely-defined rules.  What you see is all you got.

Not too sure what you mean by the last sentence, but... I also admire TeX for 
its typographical ability, but I can't say that I *like* its output very much. 

Although I'm an 'informed layman' when it comes to typography, I do know that 
one aspect of good typography is suiting the layout and appearance of the 
text to the material, so that the interest of the reader is maintained, and 
their 'navigation' of the document is facilitated. Most of the examples of 
LP produced by TeX-based systems I find about as easy to digest as the phone 
book.

Well, that's responded to the provocation, now for a couple of thoughts :-)

As I see it, what you (or I, for that matter) like or dislike doesn't matter
very much. I happen to dislike TeX, but I have to admit that a lot of LP tools
use it, and a lot of people hereabouts like it. I happen to like GUIs, and
programming the things pays my wages, so what I want are tools to enable me
to program that are integrated with the environment in which I usually
work - programming IDEs, WYSIWYG word processors and other visual tools.
TeX, for all its strengths, is alien to my environment.

I'm happy to accept the less-than-perfect typography that comes from using
Word for Windows or whatever - heck, what I'm actually doing is finding a
better way of editing my code, not producing something I can frame and hang
on the wall. (But others' mileage may vary on that point). Using WfW with
WordWeb, incomplete though it is, neatly starts to integrate LP into my
company's environment.

> One sees from recent postings that we don't agree entirely on what LP tools
> should do; but in batch mode the effort to develop a new tool or modify an
> existing one is "finite":  a WYSIWIG tool would be an order of magnitude more
> complicated.

Well, I'll find out when I'm finished....

-- 
Julian Templeman                           Baker Jardine & Associates,
julian@bjalon.demon.co.uk                  London, England
bja@compulink.co.uk

"Some people don't see the advantages of combining Microsoft applications.
 But then some people didn't see what would come of mixing nitro and
 glycerin" --- Microsoft ad
================================================================================
Archive-Date: Fri, 26 Nov 1993 00:23:18 CST
Sender: LP-Mgr@SHSU.edu
From: thompson@sun1.coe.ttu.edu
Subject: comp.programming.literate FAQ
Date: 26 Nov 1993 00:00:32 -0500
Message-ID: <literate-programming-faq_754290012@GZA.COM>
Reply-To: LitProg@SHSU.edu, thompson@sun1.coe.ttu.edu
To: LitProg@SHSU.EDU

Archive-name: literate-programming-faq
Last-modified: 1993/11/11
Version: 1.0.4


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

This version was created Thursday - November 11, 1993 and should
considered stale after 90 days.  Information contained in this document
is the best available at preparation.

Disclaimer: "This FAQ is presented with no warranties or guarantees of
ANY KIND including correctness or fitness for any particular purpose.
The author of this document has attempted to verify correctness of the
data contained herein; however, slip-ups can and do happen.  If you use
this data, you do so at your own risk."

Copyright 1993 David B. Thompson.  All rights reserved worldwide.
Permission is granted to copy this document for free distribution so
long as it remains intact and unmodified.


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

* Introduction:
---------------

This document is for new and experienced users of literate programming
tools.  The purpose is to explain the concept of literate programming and
to provide a resource for locating files of interest to literate
programmers and those interested in literate programming.

The Literate Programming (LitProg) Frequently Asked Questions (FAQ) list
is maintained by Dave Thompson, who can be reached at:

    thompson@sun1.coe.ttu.edu     * Preferred mailing address for FAQ
                                    related comments/questions.
    wqdbt@ttacs1.ttu.edu          * Forwarded to my pc.

Comment and constructive criticism is welcome.  Direct flames to
/dev/null (or > nul if you're a msdos user! ;-)  If you find an error,
please report it.  I'm particularly interested in establishing the
locations of generally available literate programming tools.  If you are
the author of such a tool and wish to have it included in this list,
please send email.

Please note this is a work-in-progress.  It is *not* complete, and
probably will not be complete for some months.  Nevertheless, the
information contained herein may be useful to some.  Use it as it is
intended.

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

- Typography:
-------------

Major sections of the FAQ are divided by double lines (====).  Minor
sections and other divisions are separated by single lines (----).
Major topics use a "* " as a leader.  Minor topics use a "- " as a
leader.  This should simplify searching for topics.


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

Table of Contents:
------------------

* Introduction
    - Typography.
* How to get the FAQ.
    - Literate Programming FAQ.
    - FWEB FAQ.
* The LitProg newsgroup.
* Internet nodes of interest to literate programmers.
* What is literate programming?
* How do I begin literate programming?
* What tools are available and where are they?
    - c2latex
    - CLip
    - CWEB
    - FunnelWeb
    - FWEB
    - noweb
    - NUWEB
    - SchemeWEB
    - Spidery WEB
    - WinWordWEB
* What other resources are available?
    - Virtual Coursework
* Code examples.
    - Examples included with developer's tools
    - Cameron Smith's KR-CWEB
    - Bart Child's examples for FWEB
* Bibliographies.
* How to anonymously ftp.
* Acknowledgements.
* End notes.


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

* How to get the FAQ:
---------------------

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

You have many ways to get a current copy of this FAQ.  One is to use
anonymous ftp (if you don't know how, see a later section in this FAQ)
to connect to one of the Comprehensive TeX Arvchive Network (CTAN) sites
or the Literate Programming Archive and retrieve a copy of the file.
(For more information on CTAN and the literate programming archive, see
the section below entitled "Internet Nodes of Interest to Literate
Programmers.")

An alternative is to use the fileserver at SHSU.  Send a message to
FILESERV@SHSU.EDU (FILESERV@SHSU.BITNET) and include in your message

    SENDME FAQ.LITPROG

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


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

- FWEB FAQ:
-----------

Marcus Speh <marcus@x4u.desy.de> maintains the FWEB FAQ.  The current
version number is 1.29.  It can be retrieved in the same way as this
FAQ; either by anonymous ftp or through the SHSU file server.  On the
SHSU server, the file name is FAQ.FWEB.  Invoke your ftp software, open
a connection to NIORD.SHSU.EDU [192.92.115.8], attach to the directory
FAQ, and transfer the file FAQ.FWEB.

Alternatively, send a message to the file server, FILESERV@SHSU.EDU
(FILESERV@SHSU.BITNET), and include the following text in a one line
message:

    SENDME FAQ.FWEB

The file server will send the current version of the file via email.

The FWEB FAQ exists in various formats, including HyperText (see other
resources below). In Europe, the complete distribution can also be
obtained from ftp.desy.de [131.169.10.115] in directory
/pub/faq/web/fweb/.  It is also available from the literate programming
archive (LPA) in the directory LPA/documentation/faq/fweb (see the
references to LPA below for more information).

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

* The LitProg Newsgroup:
------------------------

One of the most important resources is the literate programming
newsgroup, comp.programming.literate.  You can read this newsgroup using
your standard reader.  Altenatively, the newsgroup is gated to a mailing
list hosted by George Greenwade and Sam Houston State University.  You
can subscribe by sending mail to the list-server, LISTSERV@SHSU.EDU (or
LISTSERV@SHSU.BITNET), and include in the message one line of text:

    SUBSCRIBE LITPROG  "your name in quotes"

The list is unmoderated; messages sent to litprog@shsu.edu are
automatically distributed to all subscribers and cross-posted to
comp.programming.literate.

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


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

* Internet Nodes of Interest to Literate Programmers:
-----------------------------------------------------

The principal nodes of interest to literate programmers are the Literate
Programming Archive (LPA hereafter) and the CTAN (Comprehensive TeX
Archive Network).

The Literate Programming Archive (LPA) is:

  Node:       ftp.th-darmstadt.de [130.83.55.75]
  Directory:  pub/programming/literate-programming
  Notes:      Fastest response during off-U.S. [yep] business hours.

The CTAN sites are:

ftp host             IP            CTAN root    Institution and Sponsor
-------------------------------------------------------------------------
ftp.TeX.ac.UK        134.151.79.32 pub/archive  Aston Univ./UK TeX U.G.
ftp.Uni-Stuttgart.DE 129.69.8.13   soft/tex     Univ. Stuttgart/DANTE e.V
ftp.SHSU.edu         192.92.115.10 tex-archive  Sam Houston State Univ.

Other nodes and directories of interest include:

  Node:       niord.shsu.edu [192.92.115.8]
  Directory:  various (do some snooping!)
  Notes:      Has a gopher server.

  Node:       ftp.desy.de [131.169.10.115]
  Directory:  pub/web. Various documents, samples, and the FWEB FAQ.
  Notes:      Has a www server, http://info.desy.de:80/


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

* What is Literate Programming?
-------------------------------

Literate programming is the combination of documentation and source
together in a fashion suited for reading by human beings.  In fact,
literate programs should be enjoyable reading, even inviting!  (Sorry
Bob, I couldn't resist!)  In general, literate programs combine source
and documentation in a single file.  Literate programming tools then
parse the file to produce either readable documentation or compilable
source.  The WEB style of literate programming was created by D.E. Knuth
during the development of his TeX typsetting software.

All the original work revolves around a particular literate programming
tool called WEB.  Knuth says:

     The philosophy behind WEB is that an experienced system
     programmer, who wants to provide the best possible
     documentation of his or her software products, needs two
     things simultaneously: a language like TeX for formatting,
     and a language like C for programming.  Neither type of
     language can provide the best documentation by itself; but
     when both are appropriately combined, we obtain a system
     that is much more useful than either language separately.

     The structure of a software program may be thought of as a
     web that is made up of many interconnected pieces.  To
     document such a program we want to explain each individual
     part of the web and how it relates to its neighbours. The
     typographic tools provided by TeX give us an opportunity to
     explain the local structure of each part by making that
     structure visible, and the programming tools provided by
     languages such as C or Fortran make it possible for us to
     specify the algorithms formally and unambigously. By
     combining the two, we can develop a style of programming
     that maximizes our ability to perceive the structure of a
     complex piece of software, and at the same time the
     documented programs can be mechanically translated into a
     working software system that matches the documentation.


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

* How to begin literate programming:
------------------------------------

A recommended book is D.E. Knuth's collection of articles (1992)
"Literate Programming," Center for the Study of Language and
Information, Stanford University, ISBN 0-937073-80-6 (pbk).  This book
gives insight into Knuth's thoughts as he developed the web system of
literate programming (and TeX for typesetting).  It does not document
methods for literate programming.

A recommended book is Wayne Sewell's (1989) "Weaving a Program: Literate
Programming in WEB," Van Nostrand Reinhold, ISBN 0-442-31946-0 (pbk).
This book focuses on using Knuth's web system.

Some talk exists in the newsgroup/mailing list for a Usenet University
course in literate programming.  I'm sure discussion of this topic will
be welcomed.  If you are interested, please participate.


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

* What Tools are Available:
---------------------------

A significant number of tools for literate programming are available.
Most have been ported from their original systems, so support multiple
computer platforms.  If you are the developer of such a tool, and would
like to make the software freely available, please send me email and
I'll reply with a form (like those below) for you to fill in.  (Or
short-circuit the process and kludge a form from below. :-)


- C2LaTeX:
----------

Developer:
            John D. Ramsdell

System(s) supported:
            Unix

Software supported:
            Programming language: C.
            Text formatter: LaTeX but it's easy to change the formatter.

Availability:
            Anonymous ftp from
                omnigate.clarkson.edu:/pub/tex/tex-programs/c2latex.

Readme:
            Absent.  Documentation is in the C source for c2latex.

Brief description:
            C2latex provides simple support for literate programming
            in C.  Given a C source file in which the comments have
            been written in LaTeX, c2latex converts the C source file
            into a LaTeX source file.  It can be used to produce
            typeset listings of C programs and/or documentation
            associated with the program.

            C2latex produces LaTeX source by implementing a small
            number of rules.  A C comment that starts at the beginning
            of a line is copied unmodified into the LaTeX source
            file.  Otherwise, non-blank lines are surrounded by a pair
            of formatting commands (\begin{flushleft} and
            \end{flushleft}), and the lines are separated by \\*.
            Each non-blank line is formatted using LaTeX's \verb
            command, except comments within the line are formatted in
            an \mbox.

Support:
            Send bug reports to ramsdell@mitre.org.

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

- CLip:
-------

Developer:
            E.W. van Ammers and M.R. Kramer

Systems supported:
            Vax/VMS and MS-DOS.

Software supported:
            An programming language.  Plain TeX and LaTeX text
            formatters.

Availability:
            Anonymous ftp from:
              CTAN/web/clip
              LPA/machines/ms-dos
              LPA/machines/vax
              sun01.info.wau.nl/CLIP


Readme:
            In distribution.

Brief description:

Support:
            Unknown.


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

- CWEB:
-------

Developer:
            Silvio Levy and D.E. Knuth

System(s) supported:
            Unix systems (dos and amiga ports available)

Software supported:
            Languages supported are C and C++.  Text formatters are
            plain TeX and LaTeX.

Availability:
            anonymous ftp from:
              labrea.stanford.edu/pub/cweb
              LPA/c.c++
              CTAN/web/c_cpp/cweb
              DOS version in CTAN/web/c_cpp/cwb30p8c
              DOS version in LPA/machines/ms-dos
              Amiga version to be posted soon (look at CTAN).
              Mac port of CTANGLE in LPA/machines/mac
              LaTeX support in LPA/c.c++

Readme:
            bundled with above

Brief description:

Support:
            bugs to levy@math.berkeley.edu


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

- FunnelWeb:
------------

Developer:
            Ross N. Williams: ross@guest.adelaide.edu.au

Systems supported:
            MSDOS, Mac, VMS, Sun.  Other ports reported.

Software supported:
            For printing, TeX.  Otherwise no restrictions.

Availability:
            anonymous ftp from:
              CTAN/web/funnelweb
              LPA/independent
              ftp.adelaide.edu.au/pub/funnelweb

Readme:
            With bundle above.

Brief description:
            FunnelWeb is a production-quality literate-programming tool
            that emphasises simplicity and reliability. Everything about
            FunnelWeb, from the simplicity of its language to the
            comprehensive tutorial in the user's manual, has been
            designed to make this as simple, as practical, and as usable
            a tool as possible.

            Features:
               + Provides a simple macro preprocessor facility.
               + Can produce typeset documentation.
               + Runs on Sun, VMS VAX, Macintosh, PC, and others.
               + Portable C source code distributed under GNU licence.
               + Comprehensive user's manual including tutorial.
               + Programming-language independent.
               + Can generate multiple output files.
               + Allows complete control over the output text.
               + Regression test suite with over 200 tests.
               + Fully worked example (in /pub/funnelweb/examples).
               - Requires TeX to produce typeset documentation.
               - Typesets program code using TT font only.

Support:
            No formal support available.  Mailing list maintained with
            about 50 subscribers.  Informal assistance available from
            mailing list.

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

- FWEB:
-------

Developer:
            John A. Krommes

System(s) supported:
            Unix and DOS platforms

Software supported:
            C, C++, Fortran-77, Fortran-90, Ratfor, TeX, and LaTeX.
            Text formatters are plain TeX and LaTeX.

Availability:
            anonymous ftp from:
              lyman.pppl.gov/pub/fweb
              CTAN/web/fweb
              LPA/fweb
              DOS version in LPA/machines/ms-dos

Readme:
            In bundle with above.

Brief description:
            It also has a well-developed user's manual and its own FAQ
            (see above). It runs on most platforms: VMS, PC, UNIX, and
            pretty much anything that the GNU C compiler (GCC) is
            supported for.

Support:
            bug reports to krommes@princeton.edu

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

- noweb:
--------

Developer:
            Norman Ramsey <norman@bellcore.com>

System(s) supported:
            Unix and DOS platforms

Software supported:
            All programming languages, plain TeX and LaTeX formatters.

Availability:
            anonymous ftp from:
              csservices.princeton.edu/pub/noweb.shar.Z
              bellcore.com/pub/norman/noweb.shar.Z
              CTAN/web/independent/noweb
              LPA/independent

Readme:
            with bundle above

Brief description:

            noweb is designed to meet the needs of literate programmers
            while remaining as simple as possible.  Its primary
            advantages are simplicity, extensibility, and
            language-independence.  noweb uses 5 control sequences to
            WEB's 27.  noweb now supports indexing and identifier
            cross-reference.  The simple noweb manual is only 2 pages;
            documenting the full power of noweave and notangle requires
            another 3 pages.  noweb works ``out of the box'' with any
            programming language, and its formatter-dependent part is a
            60-line nawk program. The primary sacrifice relative to WEB
            is the loss of prettyprinting.

Support:
            by email to the author


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

- NUWEB:
--------

Developer:
            Preston Briggs: preston@cs.rice.edu

Systems supported:
            Unix systems; Sparcs, RS/6000s, HPs, and (!) MSDOS.

Software supported:
            It's written in C.  It works with any programming language
            (or combination of programming languages) and uses Latex as
            its text formatter.

Availability:
            anonymous ftp from:
              Unix: CTAN/web/nuweb
              DOS:  CTAN/web/nuweb-pc
              LPA/independent

Readme:
            Send mail to preston@cs.rice.edu

Brief description:

            A single program that takes a web file written in a
            combination of latex and any programming language(s) and
            produces a latex file that can be pretty printed and a set
            of files containing code for compilation/interpretation by
            the appropriate language processors.

            Strengths include speed, simplicity, multiple languages,
            nice indices and cross-references, latex.  Doesn't require
            any special macros or macro files.

            Drawbacks: latex-dependent, no code pretty printing, harder
            to make indices than cweb.

            More good stuff: nice support for make, doesn't reformat
            source files, so they're easy to debug.  Lots of control
            without too much effort.  That is, it doesn't do too much!

            Future directions... Very little change planned, except
            perhaps refinements in the indexing software.

Support:
            Hack it yourself or send e-mail to preston@cs.rice.edu


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

- SchemeWEB:
------------

Developer:
            John D. Ramsdell

System(s) supported:
            Unix and DOS platforms

Software supported:
            Programming language: Any dialect of Lisp.
            Text formatter: LaTeX.

Availability:
            The Unix version is in the Scheme Repository and it is
            available via anonymous ftp from:
              nexus.yorku.ca/pub/scheme/utl
              LPA/lisp

            The DOS version is part of the PCS/Geneva Scheme system
            which is available via anonymous ftp from:
              cui.unige.ch/pub/pcs.
              LPA/machines/ms-dos

Readme:
            In bundle with above.

Brief description:
            SchemeWEB is a Unix or DOS filter that translates
            SchemeWEB source into LaTeX source or Lisp source.
            Lisp code is formatted in typewriter type font and
            the comments are passed to LaTeX unchanged.

Support:
            Send bug reports to ramsdell@mitre.org.

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

- Spidery WEB:
-------------

Developer:
            Norman Ramsey <norman@bellcore.com>

System(s) supported:
            Unix and DOS platforms

Software supported:
            Most Algol-like languages, including C, Ada, Pascal, Awk,
            and many others.  Plain TeX and latex for text formatters.

Availability:
            Anonymous ftp from:
                CTAN

Readme:
            In distribution.

Brief description:
            A system for building language-dependent WEBs. Spider is
            frozen; no further development is planned.

Support:
            Bug reports to author.


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

- WinWordWEB:
-------------

Developer:
            Lee Wittenberg <leew@pilot.njin.net>

Systems supported:
            Needs Microsoft Word for Windows, v.2.x, and, of course,
            MS-Windows 3.x.

Software supported:
            Any programming language.  Word for Windows 2.x for text
            formatting and file maintenance.

Availability:
            anonymous ftp from:
              bart.kean.edu:pub/leew
            World-Wide Web (WWW)

Readme:
            WORDWEB.DOC in the downloadable package describes the
            system.

Brief description:
            WinWordWEB is a set of a Word for Windows macros (plus a
            paragraph style) that provide a crude literate programming
            environment.  The ``look and feel'' of the system is based
            on Norman Ramsey's noweb, but can easily be modified to suit
            individual tastes.

Support:
            None.  WinWordWEB was written as a prototype to see if a
            WYSIWYG literate programming system was possible.  It is
            intended as a jumping off point for future work by others.
            However, the system is surprisingly usable as it stands, and
            the author is interested in hearing from users (satisfied
            and unsatisfied).

            Anyone interested in actively supporting (and improving) the
            product should contact the author via email.


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

* Other resources:
------------------

An untapped resource (by me anyway ;-) is the World Wide Web.  Marcus
Speh has expended considerable effort in this regard.  If you're
connected to WWW, then access:

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

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

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

Help for people who have only Email and neither WWW nor telnet, can be
obtained by Email from LISTSERV@INFO.CERN.CH by sending a message
containing the command HELP.  Instructions will be returned by email.
For literate programming documents, you can try anonymous ftp to
ftp.desy.de [131.169.10.115] and attach to directory:

  /pub/userWWW/projects/Announce

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

    SUBSCRIBE INFO-TEX "your name in quotes"

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

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


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

- Virtual Coursework:
---------------------

Marcus Speh plans an introductory course on Literate Programming on the
Internet, part of the first semester of "Global Network Academy" [GNA],
a non-profit corporation incorporated in the state of Texas, affilated
with the Usenet University project. The texts/sample programs for this
class will be made available via anonymous FTP. A special room on GNA
Virtual Campus will be staffed by a consultant in one to two hour
shifts.  Students with questions can telnet to the virtual campus and
ask questions of the staff there. Tuition: Students should agree to work
for Global Network Academy in some capacity. This may include agreeing
to serve as a consultant next term, donating computing resources which
belong to them, helping with programming, etc. If you are interested in
registering for the course either as a student or as a consultant,
please contact marcus@x4u.desy.de. You will receive a standard reply
message; no further action will be taken until January 94.

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


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

* Code Examples:
----------------

Examples of web programs are included with the FWEB, CWEB, and noweb
distributions.

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

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


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

* Bibliographies:
-----------------

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


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

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

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

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

> ftp rtfm.mit.edu              /* connect to the site; message follows */
> anonymous                     /* type this when it asks for your name */
> <your email address>          /* type your address as the password    */
> cd /pub/usenet                /* go to the directory you want to be   */
> cd comp.programming.literate  /* one level down (no slash).           */
> dir                           /* look at what's there                 */
> get literate-progamming-faq   /* get the file; case-sensitive         */
> quit                          /* stop this mysterious thing           */

If your FTP program complains that it doesn't know where the site you
want to use is, type the numerical address instead of the sitename:

> ftp 18.70.0.209               /* connect with numerical address */

If you don't have ftp access, send e-mail to mail-server@rtfm.mit.edu
with the single word "help" in the body of the message.

Getting binary files (executables, or any compressed files) is only
slightly more difficult.   You need to set binary mode inside FTP before
you transfer the file.

> binary            /* set binary transfer mode  */
> ascii             /* set back to text transfer mode */

FAQs and spoiler lists are generally ascii files; everything else is
generally binary files.

Some common extensions on binary files in archive sites are:

  .Z           Compressed; extract with uncompress
  .tar.Z       Compressed 'tape archive'; uncompress then untar or tar -xvf
  .gz or .z    Gnu gzip; use gunzip (available from prep.gnu.ai.mit.edu)
  .sit         (Mac) StufIt archive
  .zip         Extract with Zip or Unzip
  .zoo         Yet another archive/compress program
  .lhe         (Amiga) ?
  .lzh         Lha archive program.
  .arj         (PC) Arj archive program.
  .exe         (PC) Sometimes self-extracting archives-just execute them.
  .uue or .UUE Transfer as text file; use uudecode to convert to binary
  .hqx         (Mac) BinHex format; transfer in text mode

Generic help can be found in the FAQs of comp.binaries.<your_system_type>
for how to transfer, extract, and virus-check binary files.  (At
rtfm.mit.edu)

If you can't FTP from your site, use one of the following ftp-by-mail
servers:

  ftpmail@decwrl.dec.com
  ftpmail@src.doc.ic.ac.uk
  ftpmail@cs.uow.edu.au
  ftpmail@grasp.insa-lyon.fr

For complete instructions, send a message reading "help" to the server.

If you don't know exactly what you're looking for, or exactly where it
is, there are programs and servers that can help you.  For more info,
send e-mail to mail-server@rtfm.mit.with with the body of the
message reading send usenet/news.answers/finding-sources


Thanks to Aliza R. Panitz (the "buglady") for this text.  I copied it
verbatim from her post on faq-maintainers with only minor modifications.


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

* Acknowledgements:
-------------------

This document would not have happened without the help of many people.
Among them are Marcus Speh, George Greenwade, Rob Beezer, Joachim
Schrod, Piet van Oostrum, and Ross N. Williams.  A special thanks to
Aliza R. Panitz for the text describing how to execute an anonymous ftp
for files of interest.

Any omissions from these acknowledgements should be considered an act of
stupidity on my part.  Of course, the authors of literate programming
tools mentioned above all play a vital role in the vitality of literate
programming. Furthermore, participants in the comp.programming.literate
newsgroup (and associated mailing list) all contributed in various
fashions. Thank all of you.


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

* End notes:
------------

This document will be evolving over the next few months.  I'm planning
on adding entries for additional literate programming tools and will
expand the sections on examples as more examples become available. Tools
I will include are web (the original pascal version), funnelweb,
spiderweb, and cnoweb for starters. Others will be added as I find and
document them.  Omission of a particular tool should not be considered a
snub in any sense--simply an error or oversight on my part.

History:

  First release: Fri 10/15/1993 -- Yep, I finally did it!
  Thu 10/21/93 -- Minor change to ftp instructions.
  Fri 10/22/93 -- Minor change to stuttgart ip and fweb.faq version.
                  Made reader-recommended changes, lots of re-
                  organization, and added a few tools.
  Mon 11/01/93 -- Corrected typo in address.
  Thu 11/11/93 -- Minor change to www.

= End of File ==========================================================
================================================================================
Archive-Date: Mon, 29 Nov 1993 03:45:13 CST
Sender: LP-Mgr@SHSU.edu
Date: Mon, 29 Nov 1993 00:57:32 -0500 (EST)
From: j_mcarthur@BIX.com
Reply-To: LitProg@SHSU.edu, j_mcarthur@BIX.COM
Subject: Simple Lex Literate ProgramKKK
To: LitProg@SHSU.edu
Message-ID: <9311290057.memo.62107@BIX.com>
Content-Transfer-Encoding: 7BIT

I have just completed a simple little literate program.  The
program takes an quote delimited file, like one exported
from dBase or Paradox, and replaces the quotes with tags
so that it can be processed via TeX.

This program is written in the original Pascal Web.  The
output of Tangle is then processed by Albert Graef's
TP Lex program to create a pascal program.

Weave generates a reasonable output file.  Since this is
a fairly small program, I am including it in the message.

First the WEB file.
-------------------------------- cut here --------------------------------
\let\]=\empty

\def\BS{{\tt\char"5C}}

\def\Lex{{\bf Lex}}
\def\Yacc{{\bf Yacc}}

\def\verb{\futurelet\next\TestVerb}

\chardef\other = 12

\def\uncatcodespecials{%
   \def\do##1{\catcode`##1 = \other}%
   \dospecials
}%


\def\TestVerb{%
    \ifx\next"\let\next=\DoubleQuoteVerb\else%
        \let\next=\SingleQuoteVerb\fi%
    \begingroup\uncatcodespecials\next}

\def\DoubleQuoteVerb"#1"{{\tt#1}\endgroup}
\def\SingleQuoteVerb'#1'{{\tt#1}\endgroup}

\font\sc=cmcsc10



@* Introduction.
This program converts a quote delimited file into a \TeX\ tag delimited
file.  This is done using TP \Lex\ written by Albert Graef.

@ The first thing that needs to be defined are the different parts of
a \Lex\ program.  A \Lex\ program has three main parts:  definition,
rules, and supplemental routines.

Each section of a \Lex\ is identified by a sequence of characters
at the start of a line.  The character sequences are defined as macros
to make them easier to see and to understand.

@d START_DEFINITION==@=%{@>@\
@d END_DEFINITION==@=%}@>@\
@#
@d START_RULES==@=%%@>@\
@d END_RULES==@=%%@>@\

@ In addition to defining the macros we need to specify how to
format them.  They are formatted the same as the program statement.

@f START_DEFINITION==program
@f END_DEFINITION==program
@#
@f START_RULES==program
@f END_RULES==program

@ The definition section of a \Lex\ program contains the program header
and such.  Actually since it contains Pascal code we can code it
up easily.

@ Since this is compiled using Borland Pascal one final formatting
command needs to be added.  
@f uses==const

@ A \Lex\ program is not that complex.  It is actually very similar
to a conventional Pascal program.  Here is the layout of our \Lex\ program:

@p START_DEFINITION@t\2@>
program TagMl;
uses @<Units that are used by the program@>@/
const @<Constants in the outer block@>@/
type @<Types in the outer block@>@/
const @<Typed Constants in the outer block@>@/
var @<Globals in the outer block@>@t\2@>@\@/
END_DEFINITION@t\2@>@/
START_RULES@t\2@>@/
@<Lex production rules go here@>@\@/
END_RULES@t\2@>@/
@<Main body of the program@>@/


@ The program uses the LexLib unit.  This provides the utility
functions need by a \Lex\ program.  If any other
units were needed they could be included here.

@<Units that are used by the program@>=
LexLib;

@ There are eleven fields in the database.  This number
is important.  Each fields is processed in turn.  A
constant is needed so a type can be created to store
the strings.

@<Constants in the outer block@>=
    NumberOfFields = 11;

@ TagStrArray is the name of the type created to store
the strings used in tagging the data.

@<Types in the outer block@>=
    TagStrArray = array [1..NumberOfFields] of string;

@ Borland Pascal provides the feature of structured constants.
We take advantage of this feature and define the string arrays.

@<Typed Constants in the outer block@>=
    TagStr: TagStrArray = ( 'Salutation',@/
                            'FirstName',@/
                            'MiddleName',@/
                            'LastName',@/
                            'Honorific',@/
                            'AddressA',@/
                            'AddressB',@/
                            'AddressC',@/
                            'City',@/
                            'State',@/
                            'Zip');@/

@ As the data is processed, each field must be accessed in turn.
To keep track of the field we need a simple variable.  Here is
the declaration of the field tracking variable.

@<Globals in the outer block@>=
    field: integer;

@ There are six parts to line from a quote delimited file:  starting quote,
quote-comma-quote, ending quote, the data, and the end of line.
Each section needs to be processed
separately.  Each section will have its own \Lex\ rule.

@<Lex production rules go here@>=
@<Match Starting Quote@>@/
@<Match Quote-Comma-Quote@>@/
@<Match Ending Quote@>@/
@<Match Strings@>@/
@<Match End-Of-Line@>


@ \Lex\ uses regular expressions to specify the patterns to match.  Below 
is a table showing all the possible expressions.  Tagging an quote delimited
file will only use a few of these.
$$\vbox{\offinterlineskip%
\halign{%
\quad\hfil#\hfil\quad\vrule&
\quad\hfil#\hfil\quad\vrule&
\quad\hfil#\hfil\quad\strut\cr
%\begin{table*}\centering
%   \begin{tabular}{c|c|c}
\noalign{\hrule}
\noalign{\vskip2pt}
\noalign{\hrule}
{\sc Expression}& {\sc Matches}& {\sc Example}\cr
\noalign{\hrule}
$c$& any non-operator character $c$& \verb"a"\cr
\verb"\"$c$& character $c$ literally& \verb"\*"\cr
\verb'"'$s$\verb'"'& string $s$ literally& \verb'"**"'\cr
\verb"."& any character but newline& \verb"a.*b"\cr
\verb"^"& beginning of line& \verb"^abc"\cr
\verb"$"& end of line& \verb"abc$"\cr
\verb"["$s$\verb"]"& any character in $s$& \verb"[abc]"\cr
\verb"[^"$s$\verb"]"& any character not in $s$& \verb"[^abc]"\cr
$r$\verb"*"& zero or more $r$'s& \verb"a*"\cr
$r$\verb"+"& one or more $r$'s& \verb"a+"\cr
$r$\verb"?"& zero or one $r$& \verb"a?"\cr
$r$\verb"{"$m$\verb","$n$\verb"}"& $m$ to $n$ occurrences of $r$
& \verb"a{1,5}"\cr
$r$\verb"{"$m$\verb"}"& $m$ occurrences of $r$& \verb"a{5}"\cr
$r_1r_2$& $r_1$ then $r_2$& \verb"ab"\cr
$r_1$\verb"\char"7C"$r_2$& $r_1$ or $r_2$& \verb"a\char"7Cb"\cr
\verb"("$r$\verb")"& $r$& \verb"(a\char"7Cb)"\cr
$r_1$\verb"/"$r_2$& $r_1$ when followed by $r_2$& \verb"a/b"\cr
\verb"<"$x$\verb">"$r$& $r$ when in start condition $x$& \verb"<x>abc"\cr
\noalign{\hrule}
}}$$


@ First we want to process the quote at the start of the line.
The up arrow specifies the start of line.  Quotes are used to
delimit special characters, so a backslash is used to delimit
the quote.  Finally a space or tab follows the regular expression.
This is required for \Lex\ to determine the end of the regular
expression and the start of the Pascal code.  The Pascal code
does two things.  It resets |field| to one, and
outputs the \BS StartRec tag.  One comment about |yyoutput|.
The unit |LexLib| opens two files:  |yyinput| for input
and |yyoutput| for output.  By default both of these files
are the same as |input| and |output|.  \Lex\ programs
are set up to run as filters.  They take the input one line
at a time from the standard input, process it, and write the
output to the standard output.

@<Match Starting Quote@>=
@=^\"   @>@t\quad@>begin
                field := 1;
                writeln(yyoutput, '\StartRec');
            end;@/@\

@ Between each field is a quote-comma-quote.  This pattern
is used to increments |field.|  The pattern is quote-comma-quote.
However quotes need to be preceded by a backslash and the pattern
must be followed by a tab or space.

@<Match Quote-Comma-Quote@>=
@=\",\" @>@t\quad@> inc(field);@/@\

@ The dollar sign, \$, is used to specify the end of line in
a regular expression.  The Pascal code outputs the \BS EndRec
tag.

@<Match Ending Quote@>=
@=\"$   @>@t\quad@>         write(yyoutput, '\EndRec');@/@\

@ Finding the data string is quite easy.  Anything that is not
a quote or an end of line will match.  The Pascal code looks
up the tag and delimites the data.  This does not properly
handle embedded quotes {\tt "} or embedded curly braces
{\tt\char"7B} and {\tt\char"7D}.  This could be done by using
a start state.  But for most data this is process should
work.

@<Match Strings@>=
@=[^\"\n]*  @>@t\quad@> writeln(yyoutput, '\', TagStr[field],
 '{', yytext, '}');@/@\


@ The end of line is just echoed.  No special processing is
required.  This section could be omitted since the default
action of a \Lex\ program is to echo the output.  |echo|
is a procedure defined in |LexLib|.  It writes the
input string to |yyoutput|.

@<Match End-Of-Line@>=
@=\n    @>@t\quad@>         echo;


@ Now for the end of the \Lex\ program.  \Lex\ creates
a function |yylex|.  This function can return a wide
variety of values.  The return value of |yylex| is used
by \Yacc.  This program does not require \Yacc\ and so
|yylex| only returns at the end of the file.  One difference
between the Pascal and C version of Lex is the need for
the main body of the program.  In C |LexLib| would include
a function |main| that would call |yylex|.

@<Main body of the program@>=
begin
    if yylex = 0 then ;
end.

@* Index.
Here is the index of the program.

-------------------------------- cut here --------------------------------

Now for the TeX file generate by WEAVE (for those who don't have
WEAVE).

-------------------------------- cut here --------------------------------
\input webmac
\let\]=\empty

\def\BS{{\tt\char"5C}}

\def\Lex{{\bf Lex}}
\def\Yacc{{\bf Yacc}}

\def\verb{\futurelet\next\TestVerb}

\chardef\other = 12

\def\uncatcodespecials{%
   \def\do##1{\catcode`##1 = \other}%
   \dospecials
}%


\def\TestVerb{\ifx\next"\let\next=\DoubleQuoteVerb\else\let\next=%
\SingleQuoteVerb\fi%
 \begingroup\uncatcodespecials\next}

\def\DoubleQuoteVerb"#1"{{\tt#1}\endgroup}
\def\SingleQuoteVerb'#1'{{\tt#1}\endgroup}

\font\sc=cmcsc10




\N1.  Introduction.
This program converts a quote delimited file into a \TeX\ tag delimited
file.  This is done using TP \Lex\ written by Albert Graef.

\fi

\M2. The first thing that needs to be defined are the different parts of
a \Lex\ program.  A \Lex\ program has three main parts:  definition,
rules, and supplemental routines.

Each section of a \Lex\ is identified by a sequence of characters
at the start of a line.  The character sequences are defined as macros
to make them easier to see and to understand.

\Y\P\D \37$\\{START\_DEFINITION}\S\={\%\{}\]$\par
\P\D \37$\\{END\_DEFINITION}\S\={\%\}}\]$\Y\par
\P\D \37$\\{START\_RULES}\S\={\%\%}\]$\par
\P\D \37$\\{END\_RULES}\S\={\%\%}\]$\par
\fi

\M3. In addition to defining the macros we need to specify how to
format them.  They are formatted the same as the program statement.

\Y\P\F \37$\\{START\_DEFINITION}\S\\{program}$\par
\P\F \37$\\{END\_DEFINITION}\S\\{program}$\Y\par
\P\F \37$\\{START\_RULES}\S\\{program}$\par
\P\F \37$\\{END\_RULES}\S\\{program}$\par
\fi

\M4. The definition section of a \Lex\ program contains the program header
and such.  Actually since it contains Pascal code we can code it
up easily.

\fi

\M5. Since this is compiled using Borland Pascal one final formatting
command needs to be added.
\Y\P\F \37$\\{uses}\S\\{const}$\par
\fi

\M6. A \Lex\ program is not that complex.  It is actually very similar
to a conventional Pascal program.  Here is the layout of our \Lex\ program:

\Y\P\4\&{START\_DEFINITION} \1\  \hbox{\2} \6
\4\&{program}\1\  \37\\{TagMl};\6
\4\&{uses} \37\X7:Units that are used by the program\X\6
\4\&{const} \37\X8:Constants in the outer block\X\6
\4\&{type} \37\X9:Types in the outer block\X\6
\4\&{const} \37\X10:Typed Constants in the outer block\X\6
\4\&{var} \37\X11:Globals in the outer block\X\hbox{\2}\]\6
\4\&{END\_DEFINITION}\1\  \37\hbox{\2}\6
\4\&{START\_RULES}\1\  \37\hbox{\2}\6
\X12:Lex production rules go here\X\]\6
\4\&{END\_RULES}\1\  \37\hbox{\2}\6
\X19:Main body of the program\X\par
\fi

\M7. The program uses the LexLib unit.  This provides the utility
functions need by a \Lex\ program.  If any other
units were needed they could be included here.

\Y\P$\4\X7:Units that are used by the program\X\S$\6
\\{LexLib};\par
\U6.\fi

\M8. There are eleven fields in the database.  This number
is important.  Each fields is processed in turn.  A
constant is needed so a type can be created to store
the strings.

\Y\P$\4\X8:Constants in the outer block\X\S$\6
$\\{NumberOfFields}=11$;\par
\U6.\fi

\M9. TagStrArray is the name of the type created to store
the strings used in tagging the data.

\Y\P$\4\X9:Types in the outer block\X\S$\6
$\\{TagStrArray}=$\1\5
\&{array} $[1\to\\{NumberOfFields}]$ \1\&{of}\5
\\{string};\2\2\par
\U6.\fi

\M10. Borland Pascal provides the feature of structured constants.
We take advantage of this feature and define the string arrays.

\Y\P$\4\X10:Typed Constants in the outer block\X\S$\6
\4\\{TagStr}: \37$\\{TagStrArray}=($$\.{\'Salutation\'},\39$\6
$\.{\'FirstName\'},\39$\6
$\.{\'MiddleName\'},\39$\6
$\.{\'LastName\'},\39$\6
$\.{\'Honorific\'},\39$\6
$\.{\'AddressA\'},\39$\6
$\.{\'AddressB\'},\39$\6
$\.{\'AddressC\'},\39$\6
$\.{\'City\'},\39$\6
$\.{\'State\'},\39$\6
\.{\'Zip\'}$)$;\par
\U6.\fi

\M11. As the data is processed, each field must be accessed in turn.
To keep track of the field we need a simple variable.  Here is
the declaration of the field tracking variable.

\Y\P$\4\X11:Globals in the outer block\X\S$\6
\4\\{field}: \37\\{integer};\par
\U6.\fi

\M12. There are six parts to line from a quote delimited file:  starting quote,
quote-comma-quote, ending quote, the data, and the end of line.
Each section needs to be processed
separately.  Each section will have its own \Lex\ rule.

\Y\P$\4\X12:Lex production rules go here\X\S$\6
\X14:Match Starting Quote\X\6
\X15:Match Quote-Comma-Quote\X\6
\X16:Match Ending Quote\X\6
\X17:Match Strings\X\6
\X18:Match End-Of-Line\X\par
\U6.\fi

\M13. \Lex\ uses regular expressions to specify the patterns to match.  Below
is a table
showing all the possible expressions.  Tagging an quote delimited file will
only
use a few of these.
$$\vbox{\offinterlineskip%
\halign{\quad\hfil#\hfil\quad\vrule&\quad\hfil#\hfil\quad\vrule&\quad\hfil#%
\hfil\quad\strut\cr
%\begin{table*}\centering
%   \begin{tabular}{c\|cc}
\noalign{\hrule}
\noalign{\vskip2pt}
\noalign{\hrule}
{\sc Expression}& {\sc Matches}& {\sc Example}\cr
\noalign{\hrule}
$c$& any non-operator character $c$& \verb"a"\cr
\verb"\"$c$& character $c$ literally& \verb"\*"\cr
\verb'"'$s$\verb'"'& string $s$ literally& \verb'"**"'\cr
\verb"."& any character but newline& \verb"a.*b"\cr
\verb"^"& beginning of line& \verb"^abc"\cr
\verb"$"& end of line& \verb"abc$"\cr
\verb"["$s$\verb"]"& any character in $s$& \verb"[abc]"\cr
\verb"[^"$s$\verb"]"& any character not in $s$& \verb"[^abc]"\cr
$r$\verb"*"& zero or more $r$'s& \verb"a*"\cr
$r$\verb"+"& one or more $r$'s& \verb"a+"\cr
$r$\verb"?"& zero or one $r$& \verb"a?"\cr
$r$\verb"{"$m$\verb","$n$\verb"}"& $m$ to $n$ occurrences of $r$& \verb"a{1,5}"%
\cr
$r$\verb"{"$m$\verb"}"& $m$ occurrences of $r$& \verb"a{5}"\cr
$r_1r_2$& $r_1$ then $r_2$& \verb"ab"\cr
$r_1$\verb"\char"7C"$r_2$& $r_1$ or $r_2$& \verb"a\char"7Cb"\cr
\verb"("$r$\verb")"& $r$& \verb"(a\char"7Cb)"\cr
$r_1$\verb"/"$r_2$& $r_1$ when followed by $r_2$& \verb"a/b"\cr
\verb"<"$x$\verb">"$r$& $r$ when in start condition $x$& \verb"<x>abc"\cr
\noalign{\hrule}
}}$$


\fi

\M14. First we want to process the quote at the start of the line.
The up arrow specifies the start of line.  Quotes are used to
delimit special characters, so a backslash is used to delimit
the quote.  Finally a space or tab follows the regular expression.
This is required for \Lex\ to determine the end of the regular
expression and the start of the Pascal code.  The Pascal code
does two things.  It resets \\{field} to one, and
outputs the \BS StartRec tag.  One comment about \\{yyoutput}.
The unit \\{LexLib} opens two files:  \\{yyinput} for input
and \\{yyoutput} for output.  By default both of these files
are the same as \\{input} and \\{output}.  \Lex\ programs
are set up to run as filters.  They take the input one line
at a time from the standard input, process it, and write the
output to the standard output.

\Y\P$\4\X14:Match Starting Quote\X\S$\6
\={\^\\"\ }\hbox{\quad} \6
\&{begin} \37$\\{field}\K1$;\5
$\\{writeln}(\\{yyoutput},\39\.{\'\\StartRec\'})$;\6
\&{end};\6
\]\par
\U12.\fi

\M15. Between each field is a quote-comma-quote.  This pattern
is used to increments \\{field}.  The pattern is quote-comma-quote.
However quotes need to be preceded by a backslash and the pattern
must be followed by a tab or space.

\Y\P$\4\X15:Match Quote-Comma-Quote\X\S$\6
$\={\\",\\"\ }\hbox{\quad}\\{inc}(\\{field})$;\6
\]\par
\U12.\fi

\M16. The dollar sign, \$, is used to specify the end of line in
a regular expression.  The Pascal code outputs the \BS EndRec
tag.

\Y\P$\4\X16:Match Ending Quote\X\S$\6
$\={\\"\$\ }\hbox{\quad}\\{write}(\\{yyoutput},\39\.{\'\\EndRec\'})$;\6
\]\par
\U12.\fi

\M17. Finding the data string is quite easy.  Anything that is not
a quote or an end of line will match.  The Pascal code looks
up the tag and delimites the data.  This does not properly
handle embedded quotes {\tt "} or embedded curly braces
{\tt\char"7B} and {\tt\char"7D}.  This could be done by using
a start state.  But for most data this is process should
work.

\Y\P$\4\X17:Match Strings\X\S$\6
$\={[\^\\"\\n]*\ }\hbox{\quad}\\{writeln}(\\{yyoutput},\39\.{\'\\\'},\39%
\\{TagStr}[\\{field}],\39\.{\'\{\'},\39\\{yytext},\39\.{\'\}\'})$;\6
\]\par
\U12.\fi

\M18. The end of line is just echoed.  No special processing is
required.  This section could be omitted since the default
action of a \Lex\ program is to echo the output.  \\{echo}
is a procedure defined in \\{LexLib}.  It writes the
input string to \\{yyoutput}.

\Y\P$\4\X18:Match End-Of-Line\X\S$\6
\={\\n\ }\hbox{\quad}\\{echo};\par
\U12.\fi

\M19. Now for the end of the \Lex\ program.  \Lex\ creates
a function \\{yylex}.  This function can return a wide
variety of values.  The return value of \\{yylex} is used
by \Yacc.  This program does not require \Yacc\ and so
\\{yylex} only returns at the end of the file.  One difference
between the Pascal and C version of Lex is the need for
the main body of the program.  In C \\{LexLib} would include
a function \\{main} that would call \\{yylex}.

\Y\P$\4\X19:Main body of the program\X\S$\6
\&{begin} \37\&{if} $\\{yylex}=0$ \1\&{then}\5
;\2\6
\&{end}.\par
\U6.\fi

\N20.  Index.
Here is the index of the program.
\fi


\inx
\:\&{const}, 5.
\:\\{echo}, 18.
\:\&{END\_DEFINITION}, \[2], \[3].
\:\&{END\_RULES}, \[2], \[3].
\:\\{field}, 11, 14, 15, 17.
\:\\{inc}, 15.
\:\\{input}, 14.
\:\\{integer}, 11.
\:\\{LexLib}, 7, 14, 18, 19.
\:\\{main}, 19.
\:\\{NumberOfFields}, 8, 9.
\:\\{output}, 14.
\:\&{program}, 3, \[6].
\:\&{START\_DEFINITION}, \[2], \[3].
\:\&{START\_RULES}, \[2], \[3], \[6].
\:\\{string}, 9.
\:\\{TagMl}, \[6].
\:\\{TagStr}, 10, 17.
\:\\{TagStrArray}, 9, 10.
\:\&{uses}, \[5].
\:\\{write}, 16.
\:\\{writeln}, 14, 17.
\:\\{yyinput}, 14.
\:\\{yylex}, 19.
\:\\{yyoutput}, 14, 16, 17, 18.
\:\\{yytext}, 17.
\fin
\:\X8:Constants in the outer block\X
\U6.
\:\X11:Globals in the outer block\X
\U6.
\:\X12:Lex production rules go here\X
\U6.
\:\X19:Main body of the program\X
\U6.
\:\X18:Match End-Of-Line\X
\U12.
\:\X16:Match Ending Quote\X
\U12.
\:\X15:Match Quote-Comma-Quote\X
\U12.
\:\X14:Match Starting Quote\X
\U12.
\:\X17:Match Strings\X
\U12.
\:\X10:Typed Constants in the outer block\X
\U6.
\:\X9:Types in the outer block\X
\U6.
\:\X7:Units that are used by the program\X
\U6.
\con
-------------------------------- cut here --------------------------------

It would be interresting to see what a convensional Lex program looked
like if it where processed via CWeb, FWeb, etc.

----
    Jeffrey M\kern-.05em\raise.5ex\hbox{\b c}\kern-.05emArthur
    a.k.a. Jeffrey McArthur          ATLIS Publishing
    phone: (301) 210-6655            12001 Indian Creek Court
    fax:   (301) 210-4999            Beltsville, MD  20705
    email: j_mcarthur@bix.com
================================================================================
Archive-Date: Mon, 29 Nov 1993 08:25:46 CST
Sender: LP-Mgr@SHSU.edu
From: Nico MACK <nico.mack@crpht.lu>
Reply-To: LitProg@SHSU.edu, nico.mack@CRPHT.LU
Subject: 6303 Cross Assembler for MPW
Date: 29 Nov 1993 13:48:25 GMT
Message-ID: <2dcuj9$bsb@caladan.restena.lu>
To: LitProg@SHSU.EDU

Hello world...

I'm looking for a cross-assembler running under MPW for the 6303,
respectively the 6801 micro-controller. Who knows where I may find 
this tool ?
																																	Many thanks
																																												Nico
================================================================================
Archive-Date: Mon, 29 Nov 1993 09:17:01 CST
Sender: LP-Mgr@SHSU.edu
From: lynbech@daimi.aau.dk (Christian Lynbech)
Reply-To: LitProg@SHSU.edu, lynbech@DAIMI.AAU.DK
Subject: Re: Embedded documentation
Date: 29 Nov 1993 14:40:15 GMT
Message-ID: <2dd1kf$21g@belfort.daimi.aau.dk>
To: LitProg@SHSU.EDU

Thus spake UPP201@ibm.rhrz.uni-bonn.de (Michael Burschik):


>If this is the same as TeXinfo, then you can use the standalone info
>browser, which is small and neat and does not require emacs.
> 

The LaTeXinfo package generates ordinary info files. The info format
is an ascii format that can be browsed by a number of tools, including
emacs and the above mentioned standalone reader (part of the GNU
TeXinfo distribution).

In fact (La)TeXinfo is not necessary as source. Any program could
generate information in the info format and have the tools work on it.
But one would of course loose the hardcopy option.


------------------------------------------------------------------------------
Christian Lynbech               | Hit the philistines three times over the 
				| head with the Elisp reference manual.
email: lynbech@daimi.aau.dk	|        - petonic@hal.com (Michael A. Petonic)
------------------------------------------------------------------------------
================================================================================
Archive-Date: Mon, 29 Nov 1993 18:43:07 CST
Sender: LP-Mgr@SHSU.edu
From: crabb@tucson.Princeton.EDU (David W Crabb)
Reply-To: LitProg@SHSU.edu, crabb@TUCSON.PRINCETON.EDU
Subject: Re: Perl programs - CORRECTION
Message-ID: <1993Nov29.155731.1800@Princeton.EDU>
Keywords: perl
Date: Mon, 29 Nov 1993 15:57:31 GMT
To: LitProg@SHSU.EDU

In the message I just posted, the syntax for the "here document" should be << .


#!perl

<<PROLOGUE;

	Free-form discussion.

   etc.



-- 
David Crabb
crabb@phoenix.princeton.edu
================================================================================
Archive-Date: Mon, 29 Nov 1993 18:43:21 CST
Sender: LP-Mgr@SHSU.edu
From: crabb@tucson.Princeton.EDU (David W Crabb)
Reply-To: LitProg@SHSU.edu, crabb@TUCSON.PRINCETON.EDU
Subject: Re: Perl programs - how to put free form annotations at the top
Message-ID: <1993Nov29.155724.1728@Princeton.EDU>
Keywords: perl
Date: Mon, 29 Nov 1993 15:57:24 GMT
To: LitProg@SHSU.EDU

#!perl

>>PROLOGUE;

	Free-form discussion comes here.
        ...

PROLOGUE


# Code follows:     
    


__END__


   Regards, 
       
        David






-- 
David Crabb
crabb@phoenix.princeton.edu
