" pragma.
\def\fwfontnormal#1{{\fwfontnorm {#1}}}
\def\fwfonttitle#1{{\fwfontboldd {#1}}}
\def\fwfontsmalltitle#1{{\fwfontboldb {#1}}}
\def\fwleftline#1{\leftline{#1}}
\def\fwcenterline#1{\centerline{#1}}
\def\fwrightline#1{\rightline{#1}}
% Support for Old FunnelWeb
% -------------------------
% The following macros were used extensively in the first version of
% FunnelWeb and are retained so that these older input files will still
% typeset cleanly.
\def\p#1{{\tt #1}} % P for Program text.
\def\flagpage#1#2{
\null
\vfill
\centerline{\fwfontboldd #1}
\vskip 1cm
\centerline{\fwfontboldd #2}
\vfill
\null
\vfill
}
%====================== End of FunnelWeb TeX Definitions =======================
\fwcenterline{\fwfonttitle{Test File \#1}}
\fwtocstart{}
\fwtoca{1}{First section}
\fwtocb{1.1}{macro fn}
\fwtocb{1.2}{dummy.txt definition}
\fwtocb{1.3}{dummy.txt definition 2}
\fwtocb{1.4}{dummy.txt}
\fwtoca{2}{closing}
\fwtocfinish{}
\fwseca{1}{First section}
Here is some text beforehand.
Here is a second paragraph, which hopefully includes enough text to
cause a line wrap. It also contains some text typeset as
\fwlit{code would be typeset} and some other text that is
\fwemp{emphasised}.
\fwsecb{1.1}{macro fn}
\fwbeginmacro
\fwmacroname{macro fn}{1}\fwparams{1}\fwmany{}\fwequals \fwodef \fwbtx[<<]fwetx=%
\fwparam{1}\fwbtx[>>]fwetx=%
\fwcdef
\fwbeginmacronotes
\fwusedin{This macro is invoked in definitions 2, 3, and 4.}
\fwendmacronotes
\fwendmacro
\fwsecb{1.2}{dummy.txt definition}
\fwbeginmacro
\fwmacroname{dummy.txt definition}{2}\fwplusequals \fwodef \fwbtx[dummy test #1 for ]fwetx=%
\fwmacroname{macro fn}{1}\fwoparen \fwoquote\fwbtx[test file #1]fwetx=%
\fwcquote\fwcparen \fwbtx[
]fwetx=%
\fwcdef
\fwbeginmacronotes
\fwseealso{This macro is defined in definitions 2 and 3.}
\fwusedin{This macro is invoked in definition 5.}
\fwendmacronotes
\fwendmacro
\fwbeginmacro
\fwmacroname{dummy.txt definition}{3}\fwplusequals \fwodef \fwbtx[dummy test #2 for ]fwetx=%
\fwmacroname{macro fn}{1}\fwoparen \fwoquote\fwbtx[test file #1]fwetx=%
\fwcquote\fwcparen \fwbtx[
]fwetx=%
\fwcdef
\fwbeginmacronotes
\fwseealso{This macro is defined in definitions 2 and 3.}
\fwusedin{This macro is invoked in definition 5.}
\fwendmacronotes
\fwendmacro
\fwsecb{1.3}{dummy.txt definition 2}
\fwbeginmacro
\fwmacroname{dummy.txt definition 2}{4}\fwequals \fwodef \fwbtx[dummy test #3 for ]fwetx=%
\fwmacroname{macro fn}{1}\fwoparen \fwoquote\fwbtx[test file #1]fwetx=%
\fwcquote\fwcparen \fwbtx[
]fwetx=%
\fwcdef
\fwbeginmacronotes
\fwusedin{This macro is invoked in definition 5.}
\fwendmacronotes
\fwendmacro
\fwsecb{1.4}{dummy.txt}
\fwbeginmacro
\fwfilename{dummy.txt}{5}\fwequals \fwodef \fwmacroname{dummy.txt definition}{2}\fwbtx[
]fwetx=%
\fwmacroname{dummy.txt definition 2}{4}\fwcdef
\fwbeginmacronotes
\fwisafile{This macro is attached to an output file.}
\fwendmacronotes
\fwendmacro
\fwseca{2}{closing}
Here is some text afterwards, $<$$<$voila$>$$>$.
\bye
%*******************************************************************************
%* END OF AUTOMATICALLY GENERATED TEX FILE *
%*******************************************************************************
--------------------------- cut here: httest2.fw ----------------------
@p typesetter = hypertext
@i httest1.fw
--------------------------- cut here: httest2.html --------------------
Test File #1
Table of Contents
Here is some text beforehand.
Here is a second paragraph, which hopefully includes enough text to
cause a line wrap. It also contains some text typeset as
code would be typeset
and some other text that is
emphasised.
macro fn[1](#1)M=
{<<
#1>>
}
This macro is invoked in definitions 2, 3, and 4.
dummy.txt definition[2]+=
{dummy test #1 for
macro fn[1](`test file #1
')
}
This macro is defined in definitions 2 and 3.
This macro is invoked in definition 5.
dummy.txt definition[3]+=
{dummy test #2 for
macro fn[1](`test file #1
')
}
This macro is defined in definitions 2 and 3.
This macro is invoked in definition 5.
dummy.txt definition 2[4]=
{dummy test #3 for
macro fn[1](`test file #1
')
}
This macro is invoked in definition 5.
dummy.txt[5]=
{dummy.txt definition[2]
dummy.txt definition 2[4]}
This macro is attached to an output file.
Here is some text afterwards, <<voila>>.
--------------------- end of included files ----------------
--
_____________________________________________________________________________
A.B.Coates, Dept. of Physics,
The University of Queensland QLD 4072 Australia.
Email: coates@physics.uq.oz.au
Phone: (07/+617) 365-3424 Fax: (07/+617) 365-1242
Disclaimer: The University is ignorant of my
opinions, let alone guilty ...
_____________________________________________________________________________
================================================================================
Archive-Date: Mon, 02 May 1994 04:32:08 CST
Sender: owner-litprog@SHSU.edu
From: Thorbjoern Ravn Andersen
Reply-To: LitProg@SHSU.edu, ravn@IMADA.OU.DK
Message-ID: <199405020932.AA19424@imada.ou.dk>
Subject: Re: noweb and HTML: your chance to comment
To: leew@pilot.njin.net (Lee Wittenberg)
Date: Mon, 2 May 1994 11:32:21 +0200 (MET DST)
CC: litprog@shsu.edu
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Lee Wittenberg
|
| Thorbjorn Andersen writes (wrt browsing noweb's html output):
|
| > Apparently I get a lot of teletype text as well. My guess is that the
| > lists generated like this
| >
| > There are five possible command-line arguments:
| > - -t
| >
- Suppresses generation of the .tex file.
| >
- -o
| >
- Suppresses generation of the output files.
| >
- -c
|
| I had a similar problem, but it wasn't due to the html file, it was
| due to the way I had set my Mosaic options. I can't remember what
| settings I used, but if you fiddle with the font settings (under, I
| think, the Options menu), you can get output displayed in something
| close to what printed noweb output looks like.
True. It was actually due to this that I found the above (which I
consider a slight oversight) because teletype looks pretty much
different than Times Roman, so I maintain that the HTML output should
have the in the lists.
Do you run version 2.4 as well?
Regards,
--
Thorbjo/rn Andersen
ravn@imada.ou.dk
================================================================================
Archive-Date: Mon, 02 May 1994 05:45:23 CST
Sender: owner-litprog@SHSU.edu
From: jscholes@kalva.demon.co.uk (John Scholes)
Subject: Re: Symantic C++ compiler
Reply-To: LitProg@SHSU.edu, jscholes@kalva.demon.co.uk
Date: Mon, 2 May 1994 08:27:49 +0000
Message-ID: <767867269snz@kalva.demon.co.uk>
To: LitProg@SHSU.EDU
In article <2q18g7$hsj@falcon.ccs.uwo.ca>
wkwong@mccarthy.uwo.ca "William King Wong" writes:
> I hope this is the right newsgroup, if not please point me to
> the right place.
>
> Has anyone used Symantic C++ version 1.5 (Developer's version) ?
> If so, How does it compare to the Borland C++ 4.0 compiler
> (Developer's version) ?
You might do better to ask in one of the C groups [comp.lang.c &
comp.lang.c++]. You might also check their faq. I don't have it,
but I assume it is available by ftp at rtfm.mit.edu (in pub/usenet) with
all the others.
--
John Scholes
================================================================================
Archive-Date: Mon, 02 May 1994 10:45:37 CST
Sender: owner-litprog@SHSU.edu
From: lpp0858@zeus.tamu.edu (LYNN PYE)
Reply-To: LitProg@SHSU.edu, lpp0858@ZEUS.TAMU.EDU
Subject: Re: * Hello.cpp proggie in BC 4 !! *
Date: 2 May 1994 10:18 CDT
Message-ID: <2MAY199410184900@zeus.tamu.edu>
To: LitProg@SHSU.EDU
In article <2prfh0$gkk@usenet.INS.CWRU.Edu>, efg2@po.cwru.edu (Icon I. Ikenschlitzer) writes...
..lots and lots of stuff deleted...
> My understanding is that 4.o can only make win-exe's
> Although, I hope I am wrong, because, as they say, that would
> be stupid!
You can make DOS .exe's with 4.0...even in the Windows IDE...they werent
THAT stupid... :)
_lpp
================================================================================
Archive-Date: Mon, 02 May 1994 10:45:40 CST
Sender: owner-litprog@SHSU.edu
From: lpp0858@zeus.tamu.edu (LYNN PYE)
Reply-To: LitProg@SHSU.edu, lpp0858@ZEUS.TAMU.EDU
Subject: Re: * Hello.cpp proggie in BC 4 !! *
Date: 2 May 1994 10:15 CDT
Message-ID: <2MAY199410154690@zeus.tamu.edu>
Keywords: borland c ++ 4.0
To: LitProg@SHSU.EDU
In article , gabe@netcom.com (Gabriel Grigorescu) writes...
>After trying to compile the most basic program in C/C++, I got the following
>error:
>
>Linker Warning: No module definition file specified: using defaults
>Linker Error: Undefined symbol OwlMain(int, char far*far*) in library file
> e:\bc4\lib\owlwi.lib in module WinMain.
..stuff deleted...
>---- hello.cpp -------
>#include
>void main() {
> cout << "Hello, world. Why doesn't this work? << endl;
>}
>----hello.cpp -----
if you have the ide up, and do not have a project open, then right click
inside the editor window...this should bring up a speed menu...choose
Target Expert from the menu...this brings up a dialog box...you then pick
the pull down list from the target platform choice and select
DOS Standard...then click OK and compile...
but...
if you HAVE a project open, and it is designed for this file, then right
click on the .exe node...then follow the instructions above...
_lpp
================================================================================
Archive-Date: Mon, 02 May 1994 22:25:17 CST
Sender: owner-litprog@SHSU.edu
From: farrell@mundil.cs.mu.OZ.AU (Nicholas FARRELL)
Reply-To: LitProg@SHSU.edu, farrell@MUNDIL.CS.MU.OZ.AU
Subject: Re: * Hello.cpp proggie in BC 4 !! *
Message-ID: <9412313.10512@mulga.cs.mu.OZ.AU>
Keywords: borland c ++ 4.0
Date: Tue, 3 May 1994 03:00:16 GMT
To: LitProg@SHSU.EDU
lpp0858@zeus.tamu.edu (LYNN PYE) writes:
>..stuff deleted...
>>---- hello.cpp -------
>>#include
>>void main() {
>> cout << "Hello, world. Why doesn't this work? << endl;
>>}
>>----hello.cpp -----
correct me if i'm wrong, but isn't there a " missing? .....
nick.
farrell@mundil.cs.mu.oz.au
================================================================================
Archive-Date: Tue, 03 May 1994 17:57:28 CST
Sender: owner-litprog@SHSU.edu
From: ZJRODMAN@UNCA.EDU (Zachary Rodman)
Reply-To: LitProg@SHSU.edu, ZJRODMAN@UNCA.EDU
Subject: QUESTION ABOUT INTERNET
Date: 3 May 1994 22:37:40 GMT
Message-ID: <2q6jnk$2gr@balsam.unca.edu>
To: LitProg@SHSU.EDU
Can anyone tell me if there is a PASCAL newsgroup? Where is it? Thanks.
]
================================================================================
Archive-Date: Tue, 03 May 1994 19:28:15 CST
Sender: owner-litprog@SHSU.edu
Message-ID: <9405040028.AA10392@MATH.ORST.EDU>
To: LitProg@SHSU.edu, ZJRODMAN@UNCA.EDU
From: Paul Palmer
Reply-To: LitProg@SHSU.edu, palmerp@MATH.ORST.EDU
Subject: Re: QUESTION ABOUT INTERNET
Date: Tue, 03 May 1994 17:28:29 PDT
>> Can anyone tell me if there is a PASCAL newsgroup? Where is it? Thanks.
comp.lang.pascal
================================================================================
Archive-Date: Wed, 04 May 1994 19:51:33 CST
Sender: owner-litprog@SHSU.edu
Date: Thu, 05 May 1994 01:41:00 -0800 (PST)
From: "Stephen Boyan (510) 926-3291/fax 926-3604"
Reply-To: LitProg@SHSU.edu, BOYANST@NCAL.KAIPERM.ORG
Subject: Is there a C-Web for IBM BookManager?
To: LITPROG@SHSU.EDU
Message-ID: <01HBY7N7O82S939A0P@mr.kaiperm.org>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-Transfer-Encoding: 7BIT
IBM has a product - Bookmanager - which offers both serial and
hypertext, and uses Document Composition Facility (DCF) to
typeset output for IBM 3800 laser printers.
Is there a straightforward, or already existing, way to
substitute DCF for Tex in C-Web? This would be usable across
multiple IBM platforms, not just the mainframes.
Thanks for any help.
================================================================================
Archive-Date: Thu, 05 May 1994 06:34:07 CST
Sender: owner-litprog@SHSU.edu
From: Manuel Carriba
Reply-To: LitProg@SHSU.edu, carriba@LUSTY.INFORMATIK.UNI-DORTMUND.DE
Date: Thu, 5 May 94 13:34:27 +0200
Message-ID: <9405051134.AA11654@lusty.informatik.uni-dortmund.de>
To: litprog@shsu.edu
Subject: WEB (Pascal) to WEB (C) ?
Dear all,
is there a way to convert a WEB file (that let's tangle to Pascal code)
to a CWEB file in order to tangle to C source?
Thanks in advance for any pointers or suggestions!
Manuel Carriba (carriba@lusty.informatik.uni-dortmund.de)
================================================================================
Archive-Date: Thu, 05 May 1994 11:07:13 CST
Sender: owner-litprog@SHSU.edu
Date: Thu, 5 May 94 12:06:14 EDT
From: Lee Wittenberg
Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET
To: LitProg@shsu.edu, BOYANST@ncal.kaiperm.org
Subject: Re: Is there a C-Web for IBM BookManager?
Message-ID:
Stephen Boyan writes:
> IBM has a product - Bookmanager - which offers both serial and
> hypertext, and uses Document Composition Facility (DCF) to
> typeset output for IBM 3800 laser printers.
>
> Is there a straightforward, or already existing, way to
> substitute DCF for Tex in C-Web? This would be usable across
> multiple IBM platforms, not just the mainframes.
I don't know of any such thing already available, but it should be
relatively straightforward to modify CWEAVE (there are a lot of places
you'll need to make changes, but they should all be simple string
substitution). You'll probably have to ``bell the cat'' yourself.
You might also want to look into noweb, as well. It's fairly easy to
write a new back end for any document processor you like.
-- Lee
------------------------------------------------------------------------
Lee Wittenberg | When a country is in trouble,
Computer Science Department | choices are few,
Kean College of New Jersey | And, apart from charging double,
Union, NJ 07083 | what can you do?
USA |
| -- Stephen Sondheim
leew@pilot.njin.net | Pacific Overtures (1976)
------------------------------------------------------------------------
================================================================================
Archive-Date: Fri, 06 May 1994 03:22:01 CST
Sender: owner-litprog@SHSU.edu
From: mpharr@netcom.com (Matt Pharr)
Reply-To: LitProg@SHSU.edu, mpharr@NETCOM.COM
Subject: Printing CWEB Title to Odd-numbered page?
Message-ID:
Date: Fri, 6 May 1994 08:08:01 GMT
To: LitProg@SHSU.EDU
I'll soon be printing a WEB to a schnazzy printer which prints on both
sides of the paper. Since CWEB puts the title page last, though, I'd
like to be sure that the title prints on an odd-numbered page, so that
I can still put it in front of everything else and have things look
good. Any suggestions for how to do this?
All that I need to do, I think, is have some TeX like
'\ifodd\pageno\vfill\eject\fi' spit out after the index but before the
title, but I can't figure out how to do this--the CWEB syntax doesn't
seem to offer any options, and a quick scan through the cweave web
didn't bring out any simple ways to do this...
-matt
================================================================================
Archive-Date: Fri, 06 May 1994 04:11:42 CST
Sender: owner-litprog@SHSU.edu
Date: Fri, 6 May 1994 11:05:00 +0200
From: Thomas Herter
Reply-To: LitProg@SHSU.edu, Thomas.Herter@MCH.SNI.DE
Message-ID: <199405060905.AA06914@d255s228.mch.sni.de>
To: LitProg@SHSU.edu
Subject: Re: Printing CWEB Title to Odd-numbered page?
Content-Type: text
>> From: mpharr@netcom.com (Matt Pharr)
>> I'll soon be printing a WEB to a schnazzy printer which prints on both
>> sides of the paper. Since CWEB puts the title page last, though, I'd
>> like to be sure that the title prints on an odd-numbered page, so that
>> I can still put it in front of everything else and have things look
>> good. Any suggestions for how to do this?
>> All that I need to do, I think, is have some TeX like
>> '\ifodd\pageno\vfill\eject\fi' spit out after the index but before the
>> title, but I can't figure out how to do this--the CWEB syntax doesn't
>> seem to offer any options, and a quick scan through the cweave web
>> didn't bring out any simple ways to do this...
Hallo Matt,
I am doing such thing in following way:
Generate some \TeX-output and find out the web-macros in it
you wish to do something ``special inidividual'' for you, e.g. new page.
Take webmac.tex resp. cwebmac.tex (dependent on the WEB you use)
and find these macros in this webmac file.
Do not modify the original files. Create your own e.g. ``mattweb.tex'',
redefine the web macros in this file and simply include it in the
preamble of your web-source.
I am doing quite often such things e.g. to remove the mathematical
sign for `mod' `and' `or' (I prefer bolded keywords) or to change the fonts
or to create my own indenting convention.
It works great and can be prepared with only a little effort.
Enjoy
Thomas.
------------------------------------
Thomas Herter, SNI Muenchen (thomas.herter@mch.sni.de) tel +89 636 49973
================================================================================
Archive-Date: Fri, 06 May 1994 04:14:21 CST
Sender: owner-litprog@SHSU.edu
From: aptuovin@cc.Helsinki.FI (Antti-Pekka Tuovinen)
Reply-To: LitProg@SHSU.edu, aptuovin@CC.HELSINKI.FI
Subject: CWEB and Sun CC's templates
Date: 6 May 1994 08:45:54 GMT
Message-ID: <2qd042$k42@kantti.Helsinki.FI>
To: LitProg@SHSU.EDU
We have a problem with template instantiation in Sun's CC compiler
(the following details are specific to the CC compiler):
CTANGLE inserts #line -directives with the source CWEB filename
into the target files, so that compilation messages will
refer to the CWEB source file. But the #line -directives mess up
template instantiation! For some reason, the instantion file
produced by the instantiation system (ptcomp,ptlink) included
the original CWEB document. The defmap file in /ptrepository
contained referencies to the CWEB files.
We didn't want to remove the #line directives from the CTANGLEd files,
because we want the compilation messages to refer to the CWEB document.
We fixed the problem by writing in /ptrepository our own mapfile, in
which the template definition and declaration files are set correctly
to the .H and .C files produced by CTANGLE.
The question is: Does anyone know any other way to deal with
this problem? Our current solution is still a bit awkward.
Which one is to be blamed, the CC template processing or CWEB?
(this question was first posted to comp.lang.c++ and I was told to
try here, too)
-- Antti-Pekka Tuovinen Computer Sci., Helsinki Univ., Finland
- e-mail: aptuovin@cs.helsinki.fi phone: +358-0-7084191 (office)
================================================================================
Archive-Date: Fri, 06 May 1994 14:29:45 CST
Sender: owner-litprog@SHSU.edu
Date: Fri, 6 May 94 15:29:52 EDT
From: Lee Wittenberg
Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET
To: LitProg@shsu.edu, mpharr@netcom.com
Subject: Re: Printing CWEB Title to Odd-numbered page?
Message-ID:
mpharr@netcon.com asks:
> I'll soon be printing a WEB to a schnazzy printer which prints on both
> sides of the paper. Since CWEB puts the title page last, though, I'd
> like to be sure that the title prints on an odd-numbered page, so that
> I can still put it in front of everything else and have things look
> good. Any suggestions for how to do this?
If you're using CWEB 3.0 or 3.1, there is a commented-out macro that
does just that. All you have to do is remove the `%' from the start
of the line. If you're using an older version, why the heck havent
you upgraded? ;-)
-- Lee
------------------------------------------------------------------------
Lee Wittenberg | When a country is in trouble,
Computer Science Department | choices are few,
Kean College of New Jersey | And, apart from charging double,
Union, NJ 07083 | what can you do?
USA |
| -- Stephen Sondheim
leew@pilot.njin.net | Pacific Overtures (1976)
------------------------------------------------------------------------
================================================================================
Archive-Date: Fri, 06 May 1994 14:45:44 CST
Sender: owner-litprog@SHSU.edu
Date: Fri, 6 May 94 15:45:54 EDT
From: Lee Wittenberg
Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET
To: LitProg@shsu.edu, aptuovin@cc.helsinki.fi
Subject: Re: CWEB and Sun CC's templates
Message-ID:
Antti-Pekka Tuovinen writes:
> We have a problem with template instantiation in Sun's CC compiler
> (the following details are specific to the CC compiler):
>
> [details omitted]
>
> Which one is to be blamed, the CC template processing or CWEB?
The CC template processor is to blame. It wrongly assumes that only
the preprocessor will put #line directives in programs, and it makes
invalid assumptions about where those directives will be in programs.
The C Standard specifically allows users to put #line directives
anywhere they like (although indiscriminate use of them would be a
very strange programmming practice).
One possible solution is to use your own #line directives to ``fake
out'' the template processor. It appears that the TP is using the
#line directives to determine which file it should look in to find the
template defintion (a rather clever technique, but a shade too clever
in this case). If your template def'n is to be tangled to a file
called ``xxx.cc,'' you can stry something like the following:
@=
// ...
#line 1 "xxx.cc"
template <...> whatever
// ...
The #line should cause the TP to look in the tangled file rather thatn
the web. The only possible problem is if the TP remembers the line
number as well, but let's hope the programmers weren't *that* clever.
-- Lee
------------------------------------------------------------------------
Lee Wittenberg | When a country is in trouble,
Computer Science Department | choices are few,
Kean College of New Jersey | And, apart from charging double,
Union, NJ 07083 | what can you do?
USA |
| -- Stephen Sondheim
leew@pilot.njin.net | Pacific Overtures (1976)
------------------------------------------------------------------------
================================================================================
Archive-Date: Sat, 07 May 1994 15:49:23 CST
Sender: owner-litprog@SHSU.edu
From: jjand@news.delphi.com (JJAND@DELPHI.COM)
Reply-To: LitProg@SHSU.edu, jjand@NEWS.DELPHI.COM
Subject: Programmers source for free stock quotes
Date: 7 May 1994 20:41:11 -0000
Message-ID: <2qgud7$9f2@news.delphi.com>
Keywords: stock quotes cable tv
To: LitProg@SHSU.EDU
"Quote-Card" by Tellist of Orlando Florida is a new product that receives
and downloads over 8,500 free stock market quotes via cable TV!
"When I looked to online services to supply stock quotes at a reasonable
cost, I was disappointed. There were few places that could provide
unlimited quotes with little or no per quote fees. The problem was
further compounded when I decided that I wanted to watch (or program my
computer to screen) any or ALL of these stocks during trading hours. The
business rate to go online during trading hours for large numbers of
quotes was too high. I finally hit upon the best solution when I learned
of a product that installs in a PC and gets quotes not online, but from
cable TV available all across America. Once this card is installed, I
have unlimited 20 minute delayed quotes (even during trading hours)
absolutely F R E E !"
You can start one of the ready-to-run programs included with Quote-Card
to see the "live" quotes on your screen, or simply use the small no-frills
program to dump all the quotes to disk in a file called dump.dat. You can
then write your own programs that read this simple ASCII file on a regular
basis to monitor or set buy/sell limits or even to screen all the 8,500+
stocks with your personal money-maker formulas. Imagine having your own
program that would use these quotes to quickly alert you after any stock
has made a "hit" with your own formula. It doesn't require an advanced
programmer to write simple custom stock watcher programs.
For more information please send email to jjand@delphi.com
================================================================================
Archive-Date: Sat, 07 May 1994 16:22:35 CST
Sender: owner-litprog@SHSU.edu
From: shri@jove.acs.unt.edu (Shrinand "shri" Desai)
Reply-To: LitProg@SHSU.edu, shri@JOVE.ACS.UNT.EDU
Subject: Info: Auto. Code Generation
Date: 7 May 94 21:12:22 GMT
Message-ID:
To: LitProg@SHSU.EDU
Hi,
Does anyone know any good book/papers/info. on learning
automatic code generation technique (pref. c code or c++)
thanks.
--shri
--
---
When you have eliminated the impossible, whatever remains,
however improbable, is the Truth..
Mr. Holmes in _Sign _of_ _four_
--
---
When you have eliminated the impossible, whatever remains,
however improbable, is the Truth..
Mr. Holmes in _Sign _of_ _four_
================================================================================
Archive-Date: Sun, 08 May 1994 13:32:45 CST
Sender: owner-litprog@SHSU.edu
From: thompson@sun1.coe.ttu.edu
Subject: comp.programming.literate FAQ
Date: 8 May 1994 18:25:08 GMT
Message-ID:
Reply-To: LitProg@SHSU.edu, thompson@sun1.coe.ttu.edu
To: LitProg@SHSU.EDU
Archive-name: literate-programming-faq
Last-modified: 1994/04/25
Version: 1.1.6
Welcome to the Literate Programming Frequently Asked Questions List
-------------------------------------------------------------------
This version was created Monday - April 25, 1994 and should considered
stale after 90 days. Information contained in this document is the best
available at preparation. The original file was dated October 15, 1993
(just for historical purposes).
Disclaimer: "This FAQ is presented with no warranties or guarantees of
ANY KIND including correctness or fitness for any particular purpose.
The author of this document has attempted to verify correctness of the
data contained herein; however, slip-ups can and do happen. If you use
this data, you do so at your own risk."
Copyright 1993, 1994 David B. Thompson. All rights reserved worldwide.
Permission is granted to copy this document for free distribution so
long as it remains intact and unmodified. For other arrangements,
contact the author/maintainer via email: thompson@sun1.coe.ttu.edu.
What's New?
-----------
+ Updated noweb entry. (Did I get it right this time? ;-)
+ Updated WWW entry.
= ======================================================================
* Introduction or "What's this all about?"
------------------------------------------
This document is for new and experienced users of literate programming
tools. The purpose is to explain the concept of literate programming and
to provide a resource for locating files of interest to literate
programmers and those interested in literate programming.
The Literate Programming (LitProg) Frequently Asked Questions (FAQ) list
is maintained by Dave Thompson, who can be reached at:
thompson@sun1.coe.ttu.edu * Preferred mailing address for FAQ
related comments/questions.
wqdbt@ttacs1.ttu.edu * Forwarded to my pc.
Comment and constructive criticism is welcome. Direct flames to
/dev/null (or > nul if you're a msdos user! ;-) If you find an error,
please report it. I'm particularly interested in establishing the
locations of generally available literate programming tools. If you are
the author of such a tool and wish to have it included in this list,
please send email.
Please note this is a work-in-progress. It is *not* complete, and
probably will not be complete for some months. Nevertheless, the
information contained herein may be useful to some. Use it as it is
intended.
- ----------------------------------------------------------------------
- Typography
------------
Major sections of the FAQ are divided by double lines (====). Minor
sections and other divisions are separated by single lines (----).
Major topics use a "* " as a leader. Minor topics use a "- " as a
leader. This should simplify searching for topics.
= ======================================================================
Table of Contents:
------------------
* Introduction, or "What's this all about?"
- Typography
* How do I get the FAQ?
- Literate Programming FAQ
- FWEB FAQ
* Is there a newsgroup? (The comp.programming.literate newsgroup)
* What internet nodes are of interest to literate programmers?
* What is literate programming?
* How do I begin literate programming?
* What literate programming tools are available and where are they?
- APLWEB
- AWEB
- CLiP
- CWEB
- FunnelWeb
- FWEB
- IMPACT
- lit2x
- Literate Programmer's Workshop (LPW)
- MapleWEB
- MWEB (Schrod/Detig)
- MWEB (Sewell)
- noweb
- nuweb
- ProTeX
- RWEB
- SchemeWEB
- Spidery WEB
- WEB
- WinWordWEB
* Are there other tools I should know about?
- C2LaTeX
- c2cweb
- c2man
- cnoweb
- FunnelWeb mode
- noweb.el
- nuweb.el
- TIE
- Web mode
* What other resources are available?
- World Wide Web
- TeX Resources
- Virtual Coursework
* Are there any code examples?
- Examples included with developer's tools
- Cameron Smith's KR-CWEB
- Stanford GraphBase
* Bibliographies.
* How to anonymously ftp.
* Acknowledgements.
* End notes.
= ======================================================================
* How do I get the FAQ?
-----------------------
- Literate Programming FAQ
--------------------------
You have many ways to get a current copy of this FAQ. One is to use
anonymous ftp (if you don't know how, see a later section in this FAQ)
to connect to one of the Comprehensive TeX Arvchive Network (CTAN) sites
or the Literate Programming Archive and retrieve a copy of the file.
(For more information on CTAN and the literate programming archive, see
the section below entitled "Internet Nodes of Interest to Literate
Programmers.")
An alternative is to use the fileserver at Sam Houston State University
(SHSU). Send a message to FILESERV@SHSU.EDU (FILESERV@SHSU.BITNET) and
include in your message
SENDME LITPROG.FAQ
The file server will forward a copy of the file to you via email.
- ----------------------------------------------------------------------
- FWEB FAQ
----------
Marcus Speh maintains the FWEB FAQ. The current
version number is 1.29. It can be retrieved in the same way as this
FAQ; either by anonymous ftp or through the SHSU file server. On the
SHSU server, the file name is FAQ.FWEB. Invoke your ftp software, open
a connection to NIORD.SHSU.EDU [192.92.115.8], attach to the directory
FAQ, and transfer the file FAQ.FWEB.
Alternatively, send a message to the file server, FILESERV@SHSU.EDU
(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).
Also, Marcus Speh is looking for someone willing to take over the FWEB
FAQ. The text of his email message follows...
"Please add to the FWEB FAQ the note that I am looking for someone
to take the maintenance of the FAQ over - I am ready to assist in
any way whatsoever, including tons of mail, notes for
v1.29->v1.30, Texinfo sources, a WWW server and Hypertextification
etc."
If you're interested, send mail to marcus@x4u2.desy.de and express your
willingness to serve.
= ======================================================================
* Is there a newsgroup?
-----------------------
One of the most important resources is the literate programming
newsgroup, comp.programming.literate. You can read this newsgroup using
your standard reader. Altenatively, the newsgroup is gated to a mailing
list hosted by George Greenwade and Sam Houston State University. You
can subscribe by sending mail to the list-server, LISTSERV@SHSU.EDU (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.
= ======================================================================
* What internet nodes are of interest to literate programmers?
--------------------------------------------------------------
The principal nodes of interest to literate programmers are the Literate
Programming Archive (LPA hereafter) and the CTAN (Comprehensive TeX
Archive Network).
The Literate Programming Archive (LPA) is:
Node: ftp.th-darmstadt.de [130.83.55.75]
Directory: programming/literate-programming
Notes: Fastest response during off-U.S. [yep] business hours.
The CTAN sites are:
ftp host IP CTAN root Institution and Sponsor
-------------------------------------------------------------------------
ftp.tex.ac.uk 134.151.79.32 pub/archive Aston Univ./UK TeX U.G.
ftp.dante.de 129.206.100.192 soft/tex DANTE e.V.
ftp.shsu.edu 192.92.115.10 tex-archive Sam Houston State Univ.
Other nodes and directories of interest include:
Node: niord.shsu.edu [192.92.115.8]
Directory: various (do some snooping!)
Notes: Has a gopher server.
Node: ftp.desy.de [131.169.10.115]
Directory: pub/web. Various documents, samples, and the FWEB FAQ.
Notes: Has a www server, http://info.desy.de:80/
= ======================================================================
* What is Literate Programming?
-------------------------------
Literate programming is the combination of documentation and source
together in a fashion suited for reading by human beings. In fact,
literate programs should be enjoyable reading, even inviting! (Sorry
Bob, I couldn't resist!) In general, literate programs combine source
and documentation in a single file. Literate programming tools then
parse the file to produce either readable documentation or compilable
source. The WEB style of literate programming was created by D.E. Knuth
during the development of his TeX typsetting software.
All the original work revolves around a particular literate programming
tool called WEB. Knuth says:
The philosophy behind WEB is that an experienced system
programmer, who wants to provide the best possible
documentation of his or her software products, needs two
things simultaneously: a language like TeX for formatting,
and a language like C for programming. Neither type of
language can provide the best documentation by itself; but
when both are appropriately combined, we obtain a system
that is much more useful than either language separately.
The structure of a software program may be thought of as a
web that is made up of many interconnected pieces. To
document such a program we want to explain each individual
part of the web and how it relates to its neighbours. The
typographic tools provided by TeX give us an opportunity to
explain the local structure of each part by making that
structure visible, and the programming tools provided by
languages such as C or Fortran make it possible for us to
specify the algorithms formally and unambigously. By
combining the two, we can develop a style of programming
that maximizes our ability to perceive the structure of a
complex piece of software, and at the same time the
documented programs can be mechanically translated into a
working software system that matches the documentation.
Another author (Eric W. van Ammers) wrote me a short article treating
his opinions on literate programming. The text follows:
First observation on LP
About 90% of the disussion on this list is about problems with
applying some WEB-family member to a particular programming language or
a special documentation situation. This is ridiculous, I think. Let me
explain shortly why...
Lemma 1:
I have proposed for many years that programming has nothing to do
with programming langauges, i.e. a good programmer makes good programs
in any language (given some time to learn the syntax) and a bad
programmer will never make a good program, no matter the language he
uses (today many people share this view, fortunately).
Lemma 2:
Literate Programming has (in a certain way not yet completely understood)
to do with essential aspects of programming.
Conclusion 1:
A LP-tool should be independent of programming language.
Lemma 3:
It seems likely that the so called BOOK FORMAT PARADIGM [ref. 1] plays an
important role in making literate programs work.
Lemma 4:
There are very many documentation systems currently being used to produce
documents in the BOOK FORMAT.
Conclusion 2:
A LP-tool should be independent of the documentation system that the
program author whishes to use.
My remark some time ago that we should discuss the generic properties of
an LP-tool was based on the above observation.
References:
[1] Paul W. Oman and Curtus Cook. Typographical style is more than cosmetic.
CACM 33, 5, 506-520 (May 1990)
Second observation on LP
The idea of a literate program as a text book should be extendend
even further. I would like to see a literate program as an (in)formal
argument of the correctness of the program.
Thus a literate program should be like a textbook on mathematicics.
A mathematical textbook explains a theory in terms of lemma and
theorems. But the proofs are never formal in the sense that they are
obtaind by symbol manipulation of a proof checker. Rather the proofs are
by so called "informal rigour", i.e. by very precise and unambiguous
sentences in a natural language.
Eric W. van Ammers
Department of Computer Science
Wageningen Agricultural University
Dreijenplein 2 E-mail: ammers@rcl.wau.nl
6703 HB Wageningen voice: +31 (0)8370 83356/84154
The Netherlands fax: +31 (0)8370 84731
= ======================================================================
* How do I begin literate programming?
--------------------------------------
A recommended book is D.E. Knuth's collection of articles (1992)
"Literate Programming," Center for the Study of Language and
Information, Stanford University, ISBN 0-937073-80-6 (pbk). This book
gives insight into Knuth's thoughts as he developed the web system of
literate programming (and TeX for typesetting). It does not document
methods for literate programming.
A recommended book is Wayne Sewell's (1989) "Weaving a Program: Literate
Programming in WEB," Van Nostrand Reinhold, ISBN 0-442-31946-0 (pbk).
This book focuses on using Knuth's web system.
Some talk exists in the newsgroup/mailing list for a Usenet University
course in literate programming. I'm sure discussion of this topic will
be welcomed. If you are interested, please participate.
= ======================================================================
* What literate programming tools are available and where are they?
-------------------------------------------------------------------
A significant number of tools for literate programming are available.
Most have been ported from their original systems, so support multiple
computer platforms. If you are the developer of such a tool, and would
like to make the software freely available, please send me email and
I'll reply with a form (like those below) for you to fill in. (Or
short-circuit the process and kludge a form from below. :-)
- ----------------------------------------------------------------------
- APLWEB
--------
Developer: Christoph von Basum
Version: Unknown
Hardware: MSDOS
Languages: IBM APL2 and STSC APL
Formatter: Plain TeX
Availability: Anonymous ftp from:
LPA:/apl
watserv1.uwaterloo.ca:/languages/apl/aplweb
Readme: Unknown
Description: None available.
Support: Unknown
Note: The status of this particular package is unknown.
- ----------------------------------------------------------------------
- AWEB
------
Developer: Unknown
Version: Unknown
Hardware: Unknown
Languages: Ada
Formatter: Unknown
Availability: Anonymous ftp from:
LPA:/ada/web
Readme: Unknown
Description: None available
Support: Not supported.
- ----------------------------------------------------------------------
- CLiP
------
Developer: E.W. van Ammers and M.R. Kramer
Version: Unknown
Hardware: Vax/VMS, Unix, and MS-DOS
Languages: Any programming language.
Formatter: Any formatter (TeX, LaTeX, Troff, Runoff, etc) or any
wordprocessor including WYSIWYG systems (Word Perfect,
Win Word, Ami Pro, Word, etc.)
Availability: Anonymous ftp from:
sun01.info.wau.nl:/CLIP/ms_dos MS-DOS version
sun01.info.wau.nl:/CLIP/vax_vms VAX/VMS version
CTAN:/web/clip
LPA:/machines/ms-dos
LPA:/machines/vax
Readme: With bundle above
Description:
CLiP does not use explicite commands to perform the extraction
process. Rather it recognizes pseudostatemens written as comments in
the programming language in question. CLiP distinguishes
pseudostatments from ordinary comments because the former comply with
a a particular style. This style can be adjusted to suit virtually any
programming language. The CLiP approach to LP makes the system
extremely versatile. It is independent of programming language and
text processing environment. We designed CLiP to be compatible with
hypertext systems as well but we have not yet experimented with this
form of documentation.
Features:
+ CLiP imposes virtually no limitations on the text-processing system
used to produce the documentation. If the text-processor supports
these items you can
+ structure the documentation according to your own taste.
+ include drawings, pictures, tables etc.
+ disclose your documentatio my means of X-ref tables, Indexes,
Table of contents, Table of tables, Table of figures, etc.
+ typeset the documented code.
+ Extracts any number of modules from a maximum of 64 source files.
+ No pretty-printing. Code from the source files is copied "as is" to
the module.
+ Appearance of code segments in the documentation matches those of
the modules to ease the identification of code segements.
+ Supports partially specified data types.
+ Comprehensive user manual (preliminary version) and technical
description.
- No automatic generation of a X-ref table for program identifiers.
Support: Bugs, problems and assistance by e-mail:
ammers@rcl.wau.nl
- ----------------------------------------------------------------------
- CWEB
------
Developer: Silvio Levy and D.E. Knuth
Version: 3.0
Hardware: Unix systems (dos and amiga ports available)
Languages: C and C++
Formatter: Plain TeX and LaTeX.
Availability: Anonymous ftp from:
labrea.stanford.edu:/pub/cweb
LPA:/c.c++
CTAN:/web/c_cpp/cweb
DOS version in CTAN:/web/c_cpp/cwb30p8c
DOS version in LPA:/machines/ms-dos
Amiga version CTAN:/web/c_cpp/AmigaCWEB
Mac port of CTANGLE in LPA:/machines/mac
LaTeX support in LPA:/c.c++
Readme: Bundled with above
Description: No description provided.
Support: Bugs to levy@math.berkeley.edu
Note: A fork of CWEB 3.x was developed by Marc van Leeuwen
which implements several changes to CWEB. It is
available for anonymous ftp from ftp.cwi.nl:pub/cweb. The principle
changes are:
- Scans include files for typedef definitions
- Grammar and formatting rules are well separated, allowing for
run-time selection of a rule set (via command line option)
- New manual.
- ----------------------------------------------------------------------
- FunnelWeb
-----------
Developer: Ross N. Williams: ross@guest.adelaide.edu.au
Version: Unknown
Hardware: MSDOS, Mac, VMS, Sun. Other ports reported.
Languages: No restrictions.
Formatter: Plain TeX for printing. Otherwise, no restrictions.
Availability: Anonymous ftp from:
CTAN:/web/funnelweb
LPA:/independent
ftp.adelaide.edu.au:/pub/funnelweb
Readme: With bundle above.
Description:
FunnelWeb is a production-quality literate-programming tool that
emphasises simplicity and reliability. Everything about FunnelWeb,
from the simplicity of its language to the comprehensive tutorial in
the user's manual, has been designed to make this as simple, as
practical, and as usable a tool as possible.
Features:
+ Provides a simple macro preprocessor facility.
+ Can produce typeset documentation.
+ Runs on Sun, VMS VAX, Macintosh, PC, and others.
+ Portable C source code distributed under GNU licence.
+ Comprehensive user's manual including tutorial.
+ Programming-language independent.
+ Can generate multiple output files.
+ Allows complete control over the output text.
+ Regression test suite with over 200 tests.
+ Fully worked example (in /pub/funnelweb/examples).
- Requires TeX to produce typeset documentation.
- Typesets program code using TT font only.
Support: No formal support available. Mailing list maintained with
about 50 subscribers. Informal assistance available from
mailing list.
- ----------------------------------------------------------------------
- FWEB
------
Developer: John A. Krommes
Version: 1.30a (1.40 for the experienced, patient, and brave)
Hardware: Unix, VMS, and DOS platforms (anything with ANSI C)
Languages: C, C++, Fortran-77, Fortran-90, Ratfor, TeX; also, a
language-independent mode.
Formatter: Plain TeX and LaTeX.
Availability: Anonymous ftp from:
ftp.pppl.gov:/pub/fweb
CTAN:/web/fweb
LPA:/fweb
DOS version in LPA:/machines/ms-dos
Readme: In bundle with above.
Description:
It also has a well-developed user's manual and its own FAQ (see
above). Beginning with 1.40, documentation is maintained in gnu
texinfo format. It runs on most platforms: VMS, PC, UNIX, and pretty
much anything that the GNU C compiler (GCC) is supported for.
Features:
+ Processes multiple languages during a single run (so one can mix C
and Fortran, for example).
+ Language-independent mode (v1.40).
+ Ability to turn off pretty-printing (v1.40).
+ Built-in Ratfor translator.
+ Built-in macro preprocessor (closely follows ANSI C, with
extensions).
+ A style file that allows the user to adjust many parameters and
behavior patterns of FWEB.
+ Various operator-overloading features that provide additional
pretty-printing capabilities to languages such as C++ and
Fortran-90.
+ Numerous miscellaneous features and command-line options.
Support: Bug reports and suggestions to krommes@princeton.edu
- ----------------------------------------------------------------------
- IMPACT
--------
Developer: Timothy Larkin, from Levy/Knuth CWEB 3.1
Version: 1.0
Hardware: Macintosh; requires AppleEvents.
Languages: C, C++
Formatter: TeX
Availability: CTAN archives
Readme: A short readme file is included in the SEA archive.
Description:
IMPACT implements CTangle from the Levy/Knuth CWEB 3.1. It operates as
a foreground program, tangling files selected from the Mac File
Picker. Or it can operate in the background, tangling files in
response to odoc events sent by other applications, such as editors.
Support:
I welcome any reports of bugs. The product will be updated as new
versions of the CWEB appear. Other features may be added as users
suggest them.
- ----------------------------------------------------------------------
- lit2x
-------
Developer: Unknown
Version: Unknown
Hardware: Unknown
Languages: Unknown
Formatter: Unknown
Availability: Anonymous ftp from:
LPA:/independent
Readme: Unknown
Description: None available
Support: Unknown
- ----------------------------------------------------------------------
- Literate Programmer's Workshop (LPW)
--------------------------------------
Developer: Norbert Lindenberg
Version: 1.1
Hardware: Apple Macintosh
Languages: C++, Object Pascal & others
Formatter: self-contained WYSIWYG system
Availability: Anonymous ftp from:
LPA:/machines/mac
CTAN:/web/lpw
ftp.apple.com:/pub/literate.prog
Readme: With bundle above. Also comes with 38-page manual.
Description:
The Literate Programming Workshop is an environment for the integrated
development of program source text and documentation in combined
documents. It consists of a WYSIWYG word processor based on a style
sheet approach, a mechanism to extract parts of the text in a
document, and a project management system that handles multi-document
projects. The system is designed to be used in conjunction with the
Macintosh Programmer's Workshop: it prepares raw source text for the
MPW compilers, accepts MPW error messages, and shows them in the
context of the original documents. Automatic indexing and hypertext
features allow for easy access to both source text and documentation.
LPW is shareware.
Support: Bugs, problems, and questions to lpw@aol.com.
- ----------------------------------------------------------------------
- MapleWEB
----------
Developer: Unknown
Version: Unknown
Hardware: Unknown
Languages: Maple
Formatter: Unknown
Availability: Anonymous ftp from:
LPA:/maple
Readme: Unknown
Description: None
Support: Unknown
- ----------------------------------------------------------------------
- MWEB (Schrod/Detig)
---------------------
Developer: Joachim Schrod
Version: Unknown
Hardware: Unknown
Languages: Modula-2
Formatter: Unknown
Availability: Anonymous ftp from:
LPA:/modula-2
Readme: Unknown
Description: None
Support: Not supported.
- ----------------------------------------------------------------------
- MWEB (Sewell)
---------------
Developer: Sewell
Version: Unknown
Hardware: Unknown
Languages: Modula-2
Formatter: Unknown
Availability: Anonymous ftp from:
LPA:/modula-2
Readme: Unknown
Description: None
Support: Not supported.
- ----------------------------------------------------------------------
- noweb
-------
Developer: Norman Ramsey
Version: 2.5a
Hardware: Unix and DOS platforms.
Languages: All programming languages.
Formatter: Plain TeX and LaTeX formatters.
Availability: Anonymous ftp from:
CTAN:/web/noweb
LPA:/independent
DOS version also in LPA:/machines/ms-dos
also bart.kean.edu:/pub/leew
Last recourse, use bellcore.com:/pub/norman
Readme: With bundle above.
Description:
noweb is designed to meet the needs of literate programmers while
remaining as simple as possible. Its primary advantages are
simplicity, extensibility, and language-independence. noweb uses 5
control sequences to WEB's 27. noweb now supports indexing and
identifier cross-reference. The simple noweb manual is only 2 pages;
documenting the full power of noweave and notangle requires another 3
pages. noweb works ``out of the box'' with any programming language,
and its formatter-dependent part is a 60-line nawk program. The
primary sacrifice relative to WEB is the loss of prettyprinting.
Support: email to the author
- ----------------------------------------------------------------------
- nuweb
-------
Developer: Preston Briggs: preston@cs.rice.edu
Version: 0.87
Hardware: Unix systems: Sparcs, RS/6000s, HPs; (!) MSDOS and Amiga.
Languages: Any programming language or combination of programming
languages.
Formatter: Latex
Availability: Anonymous ftp from:
Unix: CTAN:/web/nuweb
DOS: CTAN:/web/nuweb-pc
LPA:/independent
Amiga: CTAN:/web/nuweb/nuweb_ami
Amiga: wuarchive.wustl.edu/pub/aminet
Readme: Send mail to preston@cs.rice.edu
Description:
A single program that takes a web file written in a combination of
latex and any programming language(s) and produces a latex file that
can be pretty printed and a set of files containing code for
compilation/interpretation by the appropriate language processors.
Strengths include speed, simplicity, multiple languages, nice indices
and cross-references, latex. Doesn't require any special macros or
macro files.
Drawbacks: latex-dependent, no code pretty printing, harder to make
indices than cweb.
More good stuff: nice support for make, doesn't reformat source files,
so they're easy to debug. Lots of control without too much effort.
That is, it doesn't do too much!
Future directions... Very little change planned, except perhaps
refinements in the indexing software.
Support: Hack it yourself or send e-mail to preston@cs.rice.edu
- ----------------------------------------------------------------------
- ProTeX
--------
Developer: Eitan Gurari
Version: Unknown
Hardware: Unknown
Languages: Unknown
Formatter: TeX
Availability: Anonymous ftp from:
LPA:/independent
Readme: Unknown
Description: There is a book published on using ProTeX,
@Book{Gurari:TLD94,
author = "Eitan M. Gurari",
title = "{\TeX} and {\LaTeX}: Drawing and
Literate Programming",
publisher = pub-MH,
year = "1994",
address = pub-MH:adr,
bibdate = "Wed Sep 29 17:55:14 1993",
acknowledgement = ack-nhfb,
}
Support: Unknown
- ----------------------------------------------------------------------
- RWEB
------
Developer: Unknown
Version: Unknown
Hardware: Unknown
Languages: Unknown
Formatter: Unknown
Availability: Anonymous ftp from:
LPA:/reduce
Readme: Unknown
Description: Web generator in AWK.
Support: Unknown
- ----------------------------------------------------------------------
- SchemeWEB
-----------
Developer: John D. Ramsdell
Version: 2.0
Hardware: Unix and DOS platforms
Languages: Any dialect of Lisp.
Formatter: LaTeX.
Availability: The Unix version is in the Scheme Repository and it is
available via anonymous ftp from:
cs.indiana.edu:pub/scheme-repository/new/schemeweb.sh
LPA:/lisp
CTAN:web/schemeweb
The DOS version is part of the PCS/Geneva Scheme system
which is available via anonymous ftp from:
cui.unige.ch:/pub/pcs
LPA:/machines/ms-dos
Readme: In bundle with above.
Description:
SchemeWEB is a Unix filter that allows you to generate both Lisp and
LaTeX code from one source file. The generated LaTeX code formats
Lisp programs in typewriter font obeying the spacing in the source
file. Comments can include arbitrary LaTeX commands. SchemeWEB was
originally developed for the Scheme dialect of Lisp, but it can easily
be used with most other dialects.
Support: Bug reports to ramsdell@triad.mitre.org.
- ----------------------------------------------------------------------
- SpideryWEB
------------
Developer: Norman Ramsey
Version: Unknown
Hardware: Unix and DOS platforms
Languages: Most Algol-like languages, including C, Ada, Pascal,
Awk, and many others.
Formatter: Plain TeX and latex for text formatters.
Availability: Anonymous ftp from:
CTAN
LPA:/spiderweb
Readme: In distribution.
Description:
A system for building language-dependent WEBs. Spider is frozen; no
further development is planned.
Support: Bug reports to spider-bugs@oracorp.com.
- ----------------------------------------------------------------------
- WEB
-----
Developer: Donald Knuth
Version: Unknown
Hardware: Unknown
Languages: Pascal
Formatter: TeX (of course! ;-)
Availability: Anonymous ftp from:
LPA:/pascal
Readme: Unknown
Description:
This is the original software that started it all. The original TeX
processor was written in WEB.
Support: None known.
- ----------------------------------------------------------------------
- WinWordWEB
------------
Developer: Lee Wittenberg
Version: Unknown
Hardware: Needs Microsoft Word for Windows, v.2.x, and, of course,
MS-Windows 3.x.
Languages: Any programming language.
Formatter: Word for Windows 2.x for text formatting and file
maintenance.
Availability: Anonymous ftp from:
bart.kean.edu:pub/leew
LPA:/machines/ms-dos
World-Wide Web (WWW)
Readme: WORDWEB.DOC in the downloadable package describes the
system.
Description:
WinWordWEB is a set of a Word for Windows macros (plus a paragraph
style) that provide a crude literate programming environment. The
``look and feel'' of the system is based on Norman Ramsey's noweb, but
can easily be modified to suit individual tastes.
Support:
None. WinWordWEB was written as a prototype to see if a WYSIWYG
literate programming system was possible. It is intended as a jumping
off point for future work by others. However, the system is
surprisingly usable as it stands, and the author is interested in
hearing from users (satisfied and dissatisfied).
Anyone interested in actively supporting (and improving) the product
should contact the author via email.
= ======================================================================
* Are there other tools I should know about?
--------------------------------------------
First of all, I'll list some not-quite-literate-programming tools.
Some may consider these to be pretty-printers. Others may call them
literate programming tools. In any event, they don't seem to be quite
in the same category as the tools listed above, so I'll include them
here.
- C2LaTeX
---------
Developer: John D. Ramsdell
Version: Unknown
Hardware: Unix
Languages: C
Formatter: LaTeX but it's easy to change the formatter.
Availability: Anonymous ftp from
omnigate.clarkson.edu:/pub/tex/tex-programs/c2latex.
Readme: Absent. Documentation is in the C source for c2latex.
Description:
C2latex provides simple support for literate programming in C. Given
a C source file in which the comments have been written in LaTeX,
c2latex converts the C source file into a LaTeX source file. It can
be used to produce typeset listings of C programs and/or documentation
associated with the program.
C2latex produces LaTeX source by implementing a small number of rules.
A C comment that starts at the beginning of a line is copied
unmodified into the LaTeX source file. Otherwise, non-blank lines are
surrounded by a pair of formatting commands (\begin{flushleft} and
\end{flushleft}), and the lines are separated by \\*. Each non-blank
line is formatted using LaTeX's \verb command, except comments within
the line are formatted in an \mbox.
Support: Send bug reports to ramsdell@mitre.org.
- ----------------------------------------------------------------------
- c2cweb
--------
Developer: Werner Lemberg
Version: 1.1
Hardware: DOS, OS/2, Unix (presumed) -- source included
Languages: C, C++
Formatter: TeX
Availability: Anonymous ftp from
CTAN:/web/c_cpp
Readme: In distribution.
Description:
c2cweb will transform plain C or C++ code into a CWEB file to get a
pretty formatted output. A modified CWEAVE (which transforms the CWEB
file into a TeX file, see below) is included also.
Support: Werner Lemberg
- ----------------------------------------------------------------------
- c2man
-------
Developer: Graham Stoney
Version: Unknown
Hardware: Presumably anything with a C compiler.
Languages: C
Formatter: nroff -man, texinfo
Availability: Anonymous ftp from
ftp.wustl.edu:
/usenet/comp.sources.reviewed/volume03/c2man*
ftp.informatik.uni-stuttgart.de:
/pub/archive/comp.sources/reviewed/c2man*
Readme: Unknown
Description:
The primary philosophy here is to use the programming language as far
as possible to express the programmer's intentions, and to use
comments only when the programming language is not sufficiently
expressive. A comment can then become part of the language grammar
which is recognised by a "documentation compiler". This tool parses a
superset of the programming language and can automatically generate
documentation in human-readable form by associating the programmer's
comments with the objects in the code by their context.
Support: Unknown.
- ----------------------------------------------------------------------
- cnoweb
--------
Developer: Jim Fox
Version: 1.4 (January 4, 1991)
Hardware: Anything with C and TeX.
Languages: C
Formatter: Plain TeX.
Availability: Anonymous ftp from:
CTAN
LPA:/c.c++
Readme: Unknown, cnoweb.tex contains documentation.
Description:
cnoweb is as it's name describes: write C, not web. No tangling or
weaving is implemented. Documentation (between standard /* */
delimiteres) is written in TeX. cnoweb provides typesetting of
documentation, an table of contents of routines, and pretty-printing
of C source.
Support: None known.
- ----------------------------------------------------------------------
- Funnelweb Mode
----------------
Developer: Daniel Simmons
Version: Unknown
Availability: Litprog archives (was in email)
Anonymous ftp from:
ftp.imada.ou.dk
Description:
The other day I did a quick hack to nuweb.el as included with the nuweb
distribution so as to make a funnelweb-mode.el. I've only used it
briefly, and I'm sure that it can be improved quite a bit. I've been
thinking about adding support for folding on sections, a pull-down menu
to select macro definitions (like the recent functions posted to
gnu.emacs.sources for a C function definition pull-down menu) and some
kind of tags support for funnelweb.
Support: Unknown
- ----------------------------------------------------------------------
- noweb.el
----------
Developer: Bruce Stephens
Version: Unknown.
Availability: LitProg archives (in an email message).
Description:
This is a very simple mode I just hacked up. There's a lot wrong with
it, but I thought others may be interested, even as it stands. It
*requires* text properties, and assumes those used in GNU Emacs 19.22;
it'll quite likely work with Lucid Emacs, but I haven't tried it.
I use it with auctex8.1 and cc-mode 3.229, both of which are loaded
separately (I think my emacs is dumped with them, in fact).
The idea is to have one mode (which calls itself c-mode, but actually
has LaTeX-mode keybindings) generally (this means that the code is
hilighted nicely), and have the code chunks use a different keymap.
Support: Email to ddw@sunbim.be
- ----------------------------------------------------------------------
- nuweb.el
----------
Developer: Dominique de Waleffe
Version: 1.15 (2.0 RSN)
Availability: Anonymous ftp from:
LPA
CTAN
Description:
Provides a major mode extending Auctex for editing nuweb files. Main
features (in 2.0):
- Edit scrap bodies in a separate buffer in a different mode
(selected using emacs defaults for files, specific indication
-*-mode-*-, or a buffer-local variable)
- Extends Auctex commands so that nuweb is called before LaTeX,
- Easy navigation on scrap definition and use points.
Support: Email to ddw@sunbim.be
- ----------------------------------------------------------------------
- TIE
-----
Developer: Unknown
Version: Unknown
Hardware: Unknown
Availability: Anonymous ftp from:
LPA:/Tools
Readme: Unknown
Description:
This software merges change files.
Support: Unknown
- ----------------------------------------------------------------------
- Web mode
----------
Developer: Bart Childs
Version: Unknown
Tools supported: web, fweb, cweb, funnelweb
Availability: Anonymous ftp from
ftp.cs.tamu.edu:pub/tex-web/web/EMACS.web-mode
thrain.anu.edu.au:pub/web/EMACS.web-mode
Description:
This version works with versions 18 and 19 of Emacs to be best of my
knowledge. I have cleaned up a number of documentation items ...
In the same directory is wm_refcard.tex which is an edited version of
the famous one to include some web-mode commands.
The files limbo* are related to its use and notice that half them
have an uppercase L in them for LaTeX. The setup is based upon the
fact that we (I am not alone here) primarily use FWEB for C and Fortran
programming.
We are using version 1.40 of FWEB although John Krommes warns that it
is not mature and the manual is not yet updated. The info files are!
We are using LaTeX almost exclusively. That will likely change and we
will revert to version 1.30 if the final form of 1.40 cannot return
to the simple section numbers and avoid the HORRIBLE LATEX 0.1.7.2.4.6
type section numbers.
Support: Unknown
= ======================================================================
* What other resources are available?
-------------------------------------
- World Wide Web
----------------
An untapped resource (by me anyway ;-) is the World Wide Web. Marcus
Speh has expended considerable effort in this regard. If you're
connected to WWW, then access:
http://info.desy.de/user/projects/LitProg.html
If you aren't connected to WWW, telnet to info.cern.ch and explore.
You can reach Marcus' literate programming pages by typing:
go http://info.desy.de/user/projects/LitProg.html
Help for people who have only Email and neither WWW nor telnet, can be
obtained by Email from TEST-LIST@INFO.CERN.CH by sending a message,
SEND ,
for example,
SEND http://info.desy.de/user/projects/LitProg.html
to retrieve the LitProg library page. A help file can be retrieved by
sending a message to the list server above with the text
HELP
in the body of the message. Instructions will be returned by email. For
literate programming documents, you can try anonymous ftp to ftp.desy.de
[131.169.10.115] and get the file:
/pub/userWWW/projects/Announce/LitProg.txt
- ----------------------------------------------------------------------
- TeX Resources
---------------
Another resource of interest to literate programmers is the info-tex
mailing list. If you're using (La)TeX as your typsetting system and
have access to internet, then you should investigate this mailing list.
Mail list service is available through the SHSU list-server. To
subscribe, send a message to LISTSERV@SHSU.EDU (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.
Another reason the TeX resources should be important is that so many of
the literate programming tools rely on either plain TeX or LaTeX as
their text formatter. (La)TeX software systems exist for most computing
platforms. These systems can be found on CTAN and other major archive
sites. Use archie to find them or simply ftp to one of the CTAN
sites and browse.
- ----------------------------------------------------------------------
- Virtual Coursework
--------------------
Marcus Speh plans an introductory course on Literate Programming on the
Internet, part of the first semester of "Global Network Academy" [GNA],
a non-profit corporation incorporated in the state of Texas, affilated
with the Usenet University project. The texts/sample programs for this
class will be made available via the World-Wide Web. A special room on GNA
Virtual Campus will be staffed by a consultant in one to two hour
shifts. Students with questions can telnet to the virtual campus and
ask questions of the staff there. If you are interested in
registering for the course either as a student or as a consultant,
please contact marcus@x4u.desy.de. You will receive a standard reply
message; no further action will be taken until June 94. Interested
parties can check teh hypertext notes for the ongoing C++ Course done in
a similar fashion, at URL http://info.desy.de/pub/uu-gna/html/cc/index.html
[Editor's note: Because of workload, Marcus requests that email
inquiries be limited to a statement of interest for either a student or
consultant position until June 1994.]
= ======================================================================
* Are there any code examples?
------------------------------
Examples of web programs are included with the FWEB, CWEB, and noweb
distributions. nuweb is written in itself.
Cameron Smith converted the K&R calculator program into a literate
program. It can be retrieved by anonymous ftp from:
niord.shsu.edu [192.92.115.8] directory kr-cweb-sample as
krcwsamp.zip
or from
LPA/Documentation
Ross Williams has released a funnelweb example. You can retrieve this
file from node ftp.adelaide.edu.au [129.127.40.3] as
/pub/funnelweb/examples/except.*
This file should be on CTAN as well.
Lee Wittenberg has posted a few litprog examples. They are available
via anonymous ftp from:
bart.kean.edu:/pub/leew/samples.LP
The Stanford GraphBase is a large collection of programs by Don Knuth for
doing all kinds of computations and games with graphs; it is written in
(Levy/Knuth) CWEB. More details in the distribution. It is available
via anonymous ftp from:
labrea.stanford.edu:/pub/sgb
= ======================================================================
* Bibliographies
----------------
Nelson Beebe has collected an extensive bibliography treating literate
programming. His work is available for anonymous ftp from
ftp.math.utah.edu [128.110.198.2] in directory /pub/tex/bib as files:
litprog.bib
litprog.ltx
litprog.twx.
Although I have not verified this, LPA is an alternate source for these
files. Note that they are updated frequently (Nelson says several times
each week), so be sure to get a fresh copy before extensive use.
Joachim Schrod indicates that these files may be updated daily and can
be retrieved via anonymous ftp at LPA/documentation.
= ======================================================================
* How to anonymously ftp
------------------------
Pretty much everything mentioned here is available by anonymous FTP.
FAQ lists cross-posted to news.answers and rec.answers can be gotten
from rtfm.mit.edu [18.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 */
> /* 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.
for how to transfer, extract, and virus-check binary files. (At
rtfm.mit.edu)
If you can't FTP from your site, use one of the following ftp-by-mail
servers:
ftpmail@decwrl.dec.com
ftpmail@src.doc.ic.ac.uk
ftpmail@cs.uow.edu.au
ftpmail@grasp.insa-lyon.fr
For complete instructions, send a message reading "help" to the server.
If you don't know exactly what you're looking for, or exactly where it
is, there are programs and servers that can help you. For more info,
send e-mail to mail-server@rtfm.mit.with with the body of the
message reading send usenet/news.answers/finding-sources
Thanks to Aliza R. Panitz (the "buglady") for this text. I copied it
verbatim from her post on faq-maintainers with only minor modifications.
= ======================================================================
* Acknowledgements
------------------
This document would not have happened without the help of many people.
Among them are Marcus Speh, George Greenwade, Rob Beezer, Joachim
Schrod, Piet van Oostrum, and Ross N. Williams. A special thanks to
Aliza R. Panitz for the text describing how to execute an anonymous ftp
for files of interest.
Any omissions from these acknowledgements should be considered an act of
stupidity on my part. Of course, the authors of literate programming
tools mentioned above all play a vital role in the vitality of literate
programming. Furthermore, participants in the comp.programming.literate
newsgroup (and associated mailing list) all contributed in various
fashions. Thank all of you.
= ======================================================================
* End notes
-----------
This document will continue to evolve. I'm planning on adding entries
for additional literate programming tools and will expand the sections
on examples as more examples become available. Tools I will include are
WEB (the original pascal version) for starters. Others will be added as
I find and document them. Omission of a particular tool should not be
considered a snub in any sense--simply an error or oversight on my part.
= End of File ==========================================================
================================================================================
Archive-Date: Sun, 08 May 1994 15:16:39 CST
Sender: owner-litprog@SHSU.edu
From: elemings@utm.edu (Eric Lemings)
Reply-To: LitProg@SHSU.edu, elemings@UTM.EDU
Subject: COMPLETE cweb distribution?
Message-ID: <1994May8.200015.2609@martha.utcc.utk.edu>
Date: Sun, 8 May 1994 20:00:15 GMT
To: LitProg@SHSU.EDU
Is there a CWEB distribution available for DOS that has EVERYTHING
neccessary to use CWEB? The CWEB package that I have does not have
the required TeX tools. The less I have to deal with TeX and the more
I'm able to concentrate on LP the better. I'm sure many other programmers
who wish to use LP share the same view. Any help would be appreciated.
Eric Lemings
================================================================================
Archive-Date: Sun, 08 May 1994 22:26:20 CST
Sender: owner-litprog@SHSU.edu
Date: Sun, 08 May 1994 23:21:43 -0400 (EDT)
From: j_mcarthur@BIX.com
Reply-To: LitProg@SHSU.edu, j_mcarthur@BIX.COM
Subject: Observations on Literate Programming
To: LitProg@SHSU.edu
CC: thompson@sun1.coe.ttu.edu
Message-ID: <9405082321.memo.5043@BIX.com>
Content-Transfer-Encoding: 7BIT
I strongly disagree with many of the arguments made by
Eric W. van Ammers statements in the FAQ.
The argument is made that LP tools should be language
independant. That is fine, but show me any tools that
deal with TeX itself, SGML, PAL, xBase, Lex, or Yacc?
Knuth's original article says:
... 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.
TeX is uncompromising in its quality. One of the ideas behind
TeX was to create a program that could typeset as well as some
of the classic examples of typesetting. That is why ligatures,
kerns, and the elaborate paragraph formatting were put into TeX.
It is easy to compromise on that (look at any of the DTP systems
and see the compromises).
I have tried noweb, fweb, funnelweb, and many of the other so-called
literate programming tools. I have found them very lacking in the
quality of the output. I want pretty printed output. I want the
pretty printer built into the tools I use. I don't find that
with those programs.
Consider the case of SGML. A Document Tag Definition is not
just a peice of text to include verbatim. There should be
cross references. The index of a DTD is probably more important
than the DTD itself. Show me any of the language independant
literate programming tools that will deal with a DTD properly.
I created a quick little program to format TeX. It allows mixing
of documentation and macros into a single file. I called this
LitTeX. Although a few people beta tested it, I received almost
no feedback (only one message even acknowledge they received
the files).
The formatting, indexing, and cross-referencing needs of things
as dissimilar as SGML and xBase make it very difficult to fit into
a single program. Lex and Yacc are not supported at all. Let
alone more obscure tools like CoCo.
If you are programming is a language where a Lex/Yacc grammer are
available. It is about a day's work to generate a pretty printer.
Mixing that in with scrap management is a bit more work.
----
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
home: (410) 290-6935 email: j_mcarthur@bix.com
The opinions express are mine and mine alone. They do not reflect
the opinions of ATLIS Publishing or any part of ATLIS Systems.
ATLIS does NOT pay for my access to the Internet.
================================================================================
Archive-Date: Mon, 09 May 1994 03:16:48 CST
Sender: owner-litprog@SHSU.edu
Date: Mon, 9 May 1994 10:09:57 +0200
From: Thomas Herter
Reply-To: LitProg@SHSU.edu, Thomas.Herter@MCH.SNI.DE
Message-ID: <199405090809.AA03752@d255s228.mch.sni.de>
To: LitProg@SHSU.edu
Subject: Re: COMPLETE cweb distribution?
Content-Type: text
Hallo Eric,
I am using the version distibuted at labrea-host in stanford.
My c-web works with emTeX with no problems. I have translated
it with both emx 0.8h and djgpp 1.11m4.
Enjoy.
Thomas.
================================================================================
Archive-Date: Mon, 09 May 1994 11:12:57 CST
Sender: owner-litprog@SHSU.edu
From: speh@surya1.cern.ch (Marcus Speh)
Subject: Literate Programming on the World Wide Web [Revised 2 May 1994]
Message-ID:
Reply-To: LitProg@SHSU.edu, marcus@x4u.desy.de
Date: Mon, 9 May 1994 17:09:18 GMT
To: LitProg@SHSU.EDU
Archive-name: www/resources/literate-programming
Last-modified: 2 May 1994
Posting-Frequency: monthly
-----------------------------------------------------------------------------
* Recent Changes [-> from the home page]
-----------------------------------------------------------------------------
o NOWEB Goes WWW! [-> HyperLitProg page]
-----------------------------------------------------------------------------
* Literate Programming on the World Wide Web
-----------------------------------------------------------------------------
FYI, there is a wealth of information on Literate Programming,
the art of structured programming and documentation [like WEB-like systems
with (La)TeX formatting] available on the World Wide Web [WWW], a
distributed HyperText system, a network of documents connected by links
which can be activated electronically.
Examples for LitProg environments are WEB for Pascal (DEK), CWEB for C/C++
(Levy/Knuth), FWEB for C/C++/Fortran/ratfor/TeX (Krommes), various
language independent tools...and many more.
-----------------------------------------------------------------------------
* How to get to the Web
-----------------------------------------------------------------------------
If you have a WWW browser up and running, try going to
http://info.desy.de/general/users.html
and look for "Literate Programming" in the panel which appears.
The precise URL is
http://info.desy.de/user/projects/LitProg.html
If you have no clue what WWW is, you can go over the Internet with
telnet info.cern.ch
which brings you to the WWW Home Page at CERN. You are now using the
simple line mode browser. To move around the Web, enter the numbers
given after an item. To go to the Literate Programming documents, enter
go http://info.desy.de/user/projects/LitProg.html
This is what you should see now:
-----------------------------------------------------------------------------
* What you will see here
-----------------------------------------------------------------------------
Getting Start(l)ed[2] A first look into Literate Programming with WEB
Course[3] Planned GNA[4] Internet course on Literate
Programming
Editing[5] GNU Emacs mode for WEB programming
Tools[6] Common, freely available Literate Programming
environments
Examples[7] Literate Programming archives and selected
examples
Discussion[8] Discussion on LitProg takes place on a mailing
list and a newsgroup
Program Library[9] George D. Greenwade's Literate Programming
Library at Niord.shsu.edu. Experimental
service: Archive Search[10]
FAQs[11] Lists of Frequently Asked Questions: General
and FWEB
Further Reading Nelson Beebe's Literate Programming
bibliography at ftp.math.utah.edu in directory
/pub/tex/bib[12](files litprog.*)
HyperLitProg[13] Literate Programming using HyperText[14]
Techniques
OO-LitProg[15] Opinions and examples on Object-Oriented[16]
Literate Programming
[[Now you can continue climbing down the documentation tree by
entering numbers 1-16 and follow your own interests]]
-----------------------------------------------------------------------------
* More on Browsing the Web
-----------------------------------------------------------------------------
A very nice way of "browsing" through WWW uses X-based tools like "tkWWW"
or "NCSA Mosaic". For the latter, binaries for many platforms (ready for
use) and sources are available via anonymous FTP from ftp.ncsa.uiuc.edu in
directory Web/Mosaic-binaries. For vt100 terminals there is a much-used
browser called "Lynx" which can be obtained by FTP from ftp2.cc.ukans.edu
in the pub/lynx directory. Emacs users will like the "W3" browser, FTP to
cs.indiana.edu:/pub/elisp/w3.
There is a FTP repository for browser software at info.cern.ch
(including a hypertext browser/editor for NeXTStep 3.0 and tkWWW).
If you cannot go through TELNET, you can still retrieve WWW
documents by e-mail: send Email to test-list@info.cern.ch with one or
more lines of the form
send [http-address]
e.g.
send http://info.desy.de/user/projects/LitProg.html
at the bottom of the page you'll find all links of that document listed.
Your mail system must have a mail gateway to internet mail.
-----------------------------------------------------------------------------
* Contact for Further Information
-----------------------------------------------------------------------------
Please feel free to contact me for questions, suggestions and further
contributions, or just to tell me whether you found this information
useful in any way.
For questions related to WWW, consult the WWW-FAQ: available via
anonymous FTP from rtfm.mit.edu in directory
pub/usenet/news.answers/www/faq, or on WWW at URL
http://www.vuw.ac.nz:80/who/Nathan.Torkington/ideas/www-faq.html
Enjoy! Marcus Speh for GNA.
*****************************************************************************
Copyright 1993-94 Globewide Network Academy, Inc. Distributed under the
terms of the GNU Public License. Permission is granted to copy this
document for free distribution so long as it remains intact and unmodified.
See more on WWW at http://uu-gna.mit.edu:8001/uu-gna/index.html or get
the GNA FAQ via anonymous FTP to ftp.desy.de [131.169.10.115] as file
pub/uu-gna/faq.txt
------------------------------------------------------------------------- END
--
-----------------------------------------------------------------------------
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: DECnet: 13313::SPEH
================================================================================
Archive-Date: Mon, 09 May 1994 18:11:56 CST
Sender: owner-litprog@SHSU.edu
From: speh@surya1.cern.ch (Marcus Speh)
Reply-To: LitProg@SHSU.edu, speh@SURYA1.CERN.CH
Subject: NOWEB/HTML experiment in virtual course
Message-ID:
Date: Mon, 9 May 1994 18:04:09 GMT
To: LitProg@SHSU.EDU
Noweb-2.6b's HTML front end was used to prepare a dissection of a
program currently used in a virtual c++ course sponsored by GNA.
On the WWW, check
http://info.desy.de/gna/html/cc/work/noweb/concom.cc.html
the complete courseware is available at
http://info.desy.de/gna/html/cc/index.html
the reponse from the students and instructors was very positive.
Discard the contents of the file - it was written very quickly and
carelessly, more as an experiment to test the 80 students who are
currently struggling with c++.
For the planned GNA LitProg course, a similar concept will be used
as in this ongoing course.
--
-----------------------------------------------------------------------------
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: DECnet: 13313::SPEH
================================================================================
Archive-Date: Tue, 10 May 1994 20:01:21 CST
Sender: owner-litprog@SHSU.edu
From: elliottm@csulb.edu (Mike Elliott)
Reply-To: LitProg@SHSU.edu, elliottm@CSULB.EDU
Subject: Using TeX macros in FunnelWeb
Date: 11 May 1994 01:01:08 GMT
Message-ID:
To: LitProg@SHSU.EDU
I've (just this week) been experimenting with FunnelWeb on a program which
involves a lot of mathematics -- so I'd like to suppress the typesetter
independent features of FunnelWeb and stick with the ability to write TeX,
or preferably, LaTeX.
The documentation suggests that the use of the pragma
@p typesetter = tex
will suppress the translation by FunnelWeb of TeX stuff like dollar signs
and backslashes into their escaped forms, which, by and large, it does.
Unfortunately, it apparently still performs the
translations in macro names.
I would like to have a macro (properly expressed in TeX) which is something
along the lines of
@
where \tDt is a macro expanding to
(t, t + \Delta t)
Now, this is easily accomplished in nuweb, but even with the aforementioned
pragma, I still end up with escaped backslashes and such in the macro name.
Is there an options I'm missing?
--
======================================================================
Mike Elliott elliottm@csulb.edu
======================================================================
================================================================================
Archive-Date: Thu, 12 May 1994 04:48:00 CST
Sender: owner-litprog@SHSU.edu
From: pensa@c700-1.sm.dsi.unimi.it (Giovanni MenoZero Pensa)
Reply-To: LitProg@SHSU.edu, pensa@C700-1.SM.DSI.UNIMI.IT
Subject: [Q] cWeb for DOS...
Date: 12 May 1994 11:41:29 +0200
Message-ID: <2qstk9$643@c700-1.sm.dsi.unimi.it>
To: LitProg@SHSU.EDU
I've tried to compile cWeb on my PC, but there are arrays too big...
So, I'm looking for a compiled cWEB... Both tangle and weave...
Thanx
-0
--
Giovanni MenoZero Pensa (pensa@ghost.sm.dsi.unimi.it)
"You who build this altar now
to sacrifice your children
you must not do it anymore." [Leonard Cohen]
================================================================================
Archive-Date: Thu, 12 May 1994 23:57:25 CST
Sender: owner-litprog@SHSU.edu
Date: Fri, 13 May 1994 10:31:13 +0500 (GMT+0500)
From:
Reply-To: LitProg@SHSU.edu, reddy@ITCSERV.ITC.SOFT.NET
Subject:
To: litprog@shsu.edu
Message-ID:
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
UNSUBSCRIBE litprog
================================================================================
Archive-Date: Fri, 13 May 1994 00:03:30 CST
Sender: owner-litprog@SHSU.edu
Date: Fri, 13 May 1994 10:37:11 +0500 (GMT+0500)
From:
Reply-To: LitProg@SHSU.edu, reddy@ITCSERV.ITC.SOFT.NET
Subject: Remove from Mailing list
To: LitProg@SHSU.edu
Message-ID:
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
UNSUBSCRIBE reddy@itcserv.itc.soft.net
================================================================================
Archive-Date: Fri, 13 May 1994 04:52:03 CST
Sender: owner-litprog@SHSU.edu
From: ss10@irz.inf.tu-dresden.de (Sebastian Schoenberg)
Reply-To: LitProg@SHSU.edu, ss10@IRZ.INF.TU-DRESDEN.DE
Subject: Re: * Hello.cpp proggie in BC 4 !! *
Date: 13 May 1994 11:41:50 +0200
Message-ID: <2qvi0u$q9i@irz211.inf.tu-dresden.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
To: LitProg@SHSU.EDU
Don't link the OWL library. This lib requires an entry-point called OWLMain.
Sebastian
================================================================================
Archive-Date: Fri, 13 May 1994 06:13:19 CST
Sender: owner-litprog@SHSU.edu
From: schrod@iti.informatik.th-darmstadt.de (Joachim Schrod)
Reply-To: LitProg@SHSU.edu, schrod@ITI.INFORMATIK.TH-DARMSTADT.DE
Subject: Re: [Q] cWeb for DOS...
Date: 13 May 1994 11:02:03 GMT
Message-ID: <2qvmnb$ok5@rs18.hrz.th-darmstadt.de>
To: LitProg@SHSU.EDU
In article <2qstk9$643@c700-1.sm.dsi.unimi.it>, pensa@c700-1.sm.dsi.unimi.it (Giovanni MenoZero Pensa) writes:
> I've tried to compile cWeb on my PC, but there are arrays too big...
> So, I'm looking for a compiled cWEB... Both tangle and weave...
ftp.th-darmstadt.de [130.83.55.75]
/pub/programming/literate-programming/machines/ms-dos/
cwb30p8c.zip
Enjoy.
--
Joachim
[THD Literate Programming Archive, maintainer]
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Joachim Schrod Email: schrod@iti.informatik.th-darmstadt.de
Computer Science Department
Technical University of Darmstadt, Germany
================================================================================
Archive-Date: Fri, 13 May 1994 07:38:45 CST
Sender: owner-litprog@SHSU.edu
From: sven@robots.ox.ac.uk (Sven Utcke)
Reply-To: LitProg@SHSU.edu, sven@ROBOTS.OX.AC.UK
Subject: FWEB and language independent mode
Message-ID: <1994May13.114512.5663@hotspur.robots.ox.ac.uk>
Date: Fri, 13 May 1994 11:45:12 GMT
To: LitProg@SHSU.EDU
Hi,
I remember reading a few month ago that a language independent mode
will soon be available for FWEB. Since then I've never heard of it
again (granted, I wasn't able to read my news for about 2 month
earlier this year). So, what became of this? Is there a new Version of
FWEB featuring this mode? Where can I get it?
Or is it the version 1.4 mentioned in the FAQ, still something only to
be tried by the brave?
Thanks for any help
Sven
--
utcke@tu-harburg.d400.de
sven@robots.oxford.ac.uk
================================================================================
Archive-Date: Fri, 13 May 1994 09:33:45 CST
Sender: owner-litprog@SHSU.edu
From: coates@kelvin.physics.uq.oz.au (Tony Coates)
Subject: Re: Using TeX macros in FunnelWeb
Date: 12 May 94 14:51:25
Message-ID:
Reply-To: LitProg@SHSU.edu, coates@physics.uq.oz.au
To: LitProg@SHSU.EDU
In article elliottm@csulb.edu (Mike Elliott) writes:
I've (just this week) been experimenting with FunnelWeb on a program which
involves a lot of mathematics -- so I'd like to suppress the typesetter
independent features of FunnelWeb and stick with the ability to write TeX,
or preferably, LaTeX.
The documentation suggests that the use of the pragma
@p typesetter = tex
will suppress the translation by FunnelWeb of TeX stuff like dollar signs
and backslashes into their escaped forms, which, by and large, it does.
Unfortunately, it apparently still performs the
translations in macro names.
I would like to have a macro (properly expressed in TeX) which is something
along the lines of
@
where \tDt is a macro expanding to
(t, t + \Delta t)
Now, this is easily accomplished in nuweb, but even with the aforementioned
pragma, I still end up with escaped backslashes and such in the macro name.
Is there an options I'm missing?
You aren't missing anything. FunnelWeb escapes all characters inside
macro names so that TeX can't be imbedded in macro names. I haven't
considered this a problem myself to date, and clearly neither did Ross
Williams, but if you feel that it is important for you to have this feature,
let me know and I will create for you a special (not-to-be-distributed)
versions of the sources that implements it.
Cheers,
Tony.
--
_____________________________________________________________________________
A.B.Coates, Dept. of Physics,
The University of Queensland QLD 4072 Australia.
Email: coates@physics.uq.oz.au
Phone: (07/+617) 365-3424 Fax: (07/+617) 365-1242
Disclaimer: The University is ignorant of my
opinions, let alone guilty ...
_____________________________________________________________________________
================================================================================
Archive-Date: Fri, 13 May 1994 10:17:02 CST
Sender: owner-litprog@SHSU.edu
From: marcus@x4u2.desy.de (Marcus Speh)
Reply-To: LitProg@SHSU.edu, marcus@X4U2.DESY.DE
Subject: Emacs-Highlighting mode with [no]WEB??
Date: 13 May 1994 14:46:50 GMT
Message-ID:
To: LitProg@SHSU.EDU
Has anybody made an attempt to enlarge hilit19.el [Emacs highlighting
mode] for (any, or rather NO-) WEB??
thanks,
marcus
--
-----------------------------------------------------------------------------
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: DECnet: 13313::SPEH
================================================================================
Archive-Date: Fri, 13 May 1994 14:27:51 CST
Sender: owner-litprog@SHSU.edu
From: fgartner@vax1.tcd.ie (Felix Gartner)
Reply-To: LitProg@SHSU.edu, fgartner@VAX1.TCD.IE
Subject: Writing portable code - any suggestions?
Message-ID: <1994May13.175120.1@vax1.tcd.ie>
Date: Fri, 13 May 1994 17:51:20 GMT
To: LitProg@SHSU.EDU
Hi,
I'm currently writing a program in C that should run on a variety of UNIX
machines. Can anybody point me to a book or document that is especially
concerned with writing _portable_ code. (I'm using CWEB, but that doesn't
remove the more `technical' problems of porting programs, I believe 8-)
Any help would be much appreciated,
Felix
================================================================================
Archive-Date: Sat, 14 May 1994 07:07:05 CDT
Sender: owner-litprog@SHSU.edu
From: AStirnem@maths.exeter.ac.uk
Reply-To: LitProg@SHSU.edu, AStirnem@MATHS.EXETER.AC.UK
Date: Sat, 14 May 94 10:13:54 +0100
Message-ID: <16844.9405140913@noether.maths.exeter.ac.uk>
To: LitProg@SHSU.edu, fgartner@VAX1.TCD.IE
Subject: Writing portable code - any suggestions?
> Can anybody point me to a book or document that is especially
> concerned with writing _portable_ code.
I find "Advanced UNIX programming" by Marc Rochkind excellent in this
respect.
Cheers,
Andreas
================================================================================
Archive-Date: Sat, 14 May 1994 07:10:56 CDT
Sender: owner-litprog@SHSU.edu
From: edge@unislc.slc.unisys.com (Brian Edginton)
Reply-To: LitProg@SHSU.edu, edge@UNISLC.SLC.UNISYS.COM
Subject: DVI Spec and description
Message-ID: <1994May13.125243.28586@unislc.slc.unisys.com>
Date: Fri, 13 May 1994 12:52:43 GMT
To: LitProg@SHSU.EDU
Can anyone point me to a spec and description of DVI? I
have tried archie, but all I seem to be able to get is *.dvi.
A second question would be, is DVI the best device independent
format currently available?
Thanks,
Brian Edginton
--
Brian Edginton | edge@unislc.slc.unisys.com
Unisys - Performance Engineering | unislc!edge@cs.utah.edu
320 North 2200 West D1V01 | {hpda, sun}!unislc!edge
Salt Lake City, Utah 84116 | (801) 594-6009 Human (usually)
================================================================================
Archive-Date: Sat, 14 May 1994 07:14:20 CDT
Sender: owner-litprog@SHSU.edu
From: Multimedia@cce.ubc.ca (Charles Tremewen)
Reply-To: LitProg@SHSU.edu, Multimedia@CCE.UBC.CA
Subject: Cinema of the Mind: The design of interactive software with Ted Nelson
Date: Fri, 13 May 1994 17:57:05 -0800
Message-ID:
To: LitProg@SHSU.EDU
*********************************************
PLEASE ASSIST US IN DISTRIBUTING THIS
INFORMATION TO YOUR COLLEAGUES...
*********************************************
___________________________________________
| |
| CINEMA OF THE MIND |
| |
| The Design of Interactive Software |
| with |
| Theodor (Ted) Holm Nelson |
| |
| Three Day Intensive Seminar |
| June 20-22, 1994 |
| |
| Vancouver, British Columbia, Canada |
|___________________________________________|
WORKSHOP ORGANIZER
The University of British Columbia Continuing Studies
WORKSHOP LOCATION
Emily Carr College of Art & Design
Granville Island
Vancouver, B.C. CANADA
Monday, Tuesday, Wednesday, June 20 - 22, 1994
8:30 AM till 4:30 PM
WHO SHOULD ATTEND?
- Interface designers
- Multimedia professionals
- Information designers
- Writers
- Software designers
- Programmers
- Product managers
- Project leaders
- Computer support professionals
- Software executives and entreprenuers
- Human-factors researchers and engineers
OVERVIEW
Ted offers a unique perspective based upon his experience in
writing, design, theatre and film. He believes that writing
and software are the most basic forms of design and have
limitless options. At the heart of the design process is
General Thematics, which is Nelson's new system of tools for
building and reworking ideas and constructs. Over the course
of the three days you will look at examples of new
constructs built with this model. Come and experience this
totally different and refreshing perspective on all
software.
The workshop consists of a mixture of seminar material,
breakout sessions and exercises covering the following
topics:
- Why software is about how the user thinks and feels of the
interactive world.
- Why software is not about "functionality" and
"interfaces".
- How designing "virtualities" is what software is really
about.
- Explore the relationships between software design and the
techniques of film.
- Why "conceptual structure" is at the centre of virtuality.
- Why do we go on imitating paper?
- Introduction to "General Thematics" a system of tools for
building and reworking ideas and constructs.
- Explore examples of new constructs and build with them.
AGENDA
Day 1
Introductions: Instructor and Students
Software Design
Access Structure
EXERCISES: Access Structure
LUNCH
Virtuality
Virtuality and Movies
Discussion
Day 2
Virtuality, Movies and Software
Thematics
LUNCH
Thematics continued
EXERCISES: Thematics
Day 3
Virtuality and Thematic Unification: Movies
LUNCH
EXERCISES: Main Team 1
Virtuality and Thematic Unification: Software Design
EXERCISES: Main Team 2
Final Discussion
Wrap-up
ABOUT THEODOR (TED) HOLM NELSON
Want to know the hype in hypermedia? Ask the legend who
coined the term. Ted Nelson is the founder of interactive
interfaces coining the words hypertext and hypermedia back
in the 60's. In 1960 he had a vision of a world of
interactive computer screens, interactive media, and open
electronic publishing where all could quote and link freely.
Ted has been working to fulfil that dream through Project
Xanadu, a universal software package intended to replace
paper publishing in the 21st Century. Author, philosopher,
film-maker, academic, software entrepreneur, computer
consultant, and "madman extraordinaire and one of the most
brilliant minds of our time," according to the New York
Times, Ted delights audiences with his insight,
intelligence, and wit about the computer industry. Find out
why Paul Saffo of the Institute of the Future exclaimed "I
get my best ideas from misunderstanding Ted!"
COMMENTS FROM PAST ATTENDEES OF "CINEMA OF THE MIND"
"Fun and a valuable introduction"
Stan Friedman
"Intellectually intoxicating"
Marek Buckiewicz
"Provides unique and mind-opening perspectives"
Daniel Chang
"Way Cool! Very informative - ought to be required course"
Greta C. Bickford, Berkeley Systems, Inc.
REGISTRATION INFORMATION
Fee:
Regular Enrolment $495 Canadian ($375 US)
Student Enrolment $225 Canadian ($170 US)
Includes lunches, refreshment breaks
and seminar materials
Call, fax, or e-mail to register or obtain further
information.
Tel: (604) 222-5251
Fax: (604) 222-5249
E-Mail: tremewen@cce.ubc.ca
REGISTRATION FORM (complete and mail, e-mail, or fax)
Name:__________________________________________________
Title & Company:_______________________________________
Address:_______________________________________________
City:_____________________Province/State:______________
Postal/Zip Code:_______________________________________
Phone: Day___________________Night____________________
Fax:___________________________________________________
E-mail:________________________________________________
FEES:
REGULAR REGISTRATION - $495 Canadian ($375 US)
STUDENT REGISTRATION - $225 Canadian ($170 US)
____ I am a FULL-TIME registered student at an
accredited educational institution eligible for
the student rate of $225 Canadian ($170 US)
Institution:_____________________________________
Department/Degree Program:_______________________
METHOD OF PAYMENT
____ Cheque/Money Order (payable to the University of
British Columbia)
____ Cash (for pre-registration in person)
____ Visa ____ MasterCard
Card Number:_____________________________________
Valid Date:______________Expiry Date:____________
Signature:_______________________________________
CANCELLATION POLICY: Notice of cancellation must be in
writing and must be received by UBC Continuing Studies
before June 1, 1994 to qualify for a full refund less
$50 Canadian ($37.50 US). Refunds will not be issued
after that time. Registrations are transferable. We
reserve the right to cancel or reschedule events,
refuse admission, and change speakers, locations, or
content.
*******************************************************
ALSO IN JUNE IN VANCOUVER
*******************************************************
W.R.I.T.E. '94 conference for writers and authors
(Writers' Retreat on Interactive Technology
and Equipment), Granville Island, Vancouver,
British Columbia, Canada, June 16, 17, 18.
W.R.I.T.E is an annual three-day conference and
workshop on interactive technology and communication
designed specifically for writers. W.R.I.T.E focuses
on the content of multimedia programs, CD-ROM titles,
interactive TV, and the information highway. W.R.I.T.E
addresses the special needs of all writers, authors,
and others who are, and will be, the creators of
content for interactive digital products and services.
THIS YEAR'S W.R.I.T.E THEMES
"Writing Interactive Books for CD-ROM: Exploring the
new literary frontier"
"The Information Highway: What content will it
transport and how will it affect writers?"
NEED MORE W.R.I.T.E. INFO?
E-mail: write@cce.ubc.ca
Tel: (604) 222-5254
Fax: (604) 222-5249
*************************************************
DUAL REGISTRATION OFFER
FOR W.R.I.T.E. '94 AND "CINEMA OF THE MIND"
We have had numerous people expressing interest in
attend both the W.R.I.T.E.'94 AND "CINEMA OF THE MIND"
events. As a result, we have established a special price
for these registrants of $700 Canadian ($525 US).
To qualify for this special offer, registrants must register
for both events at the same time. Cancellation on either
one of these two events will result in a full payment price
of the remaining event ($495 Can.).
Cancellation for both events will result in adherance to the
cancellation policy found on the brochures of these two
events.
*************************
Dear Colleague,
I would like to bring to your attention and ask for your
assistance in distributing information about the following
International events happening this Summer and Fall, right
here in British Columbia. These events are hosted by
UBC Continuing Studies and include:
W.R.I.T.E. '94 -Writers' Retreat on Interactive Technology
and Equipment - Keynote: Howard Rheingold, June 16-18, 1994,
Granville Island, Vancouver, B.C.
"Cinema of the Mind: The Design of Interactive Software"
with Theodor (Ted) Holm Nelson, a three Day Intensive
Seminar, June 20-22, 1994, Granville Island, Vancouver, B.C.
MultiComm '94 - Annual Conference and Vendor Expo
on Multimedia Solutions in Business and Education,
MultiComm '94 Theme is:
"Advancing the Art of Communications Through the New Media".
November 2 & 3, 1994, Westin Bayshore, Vancouver, B.C..
Details of the above events are posted below. I appologize
for the length of this document but feel the information is
significantly important to warrant forwarding to you.
Should you have any inquiries on these and other
Multitimedia activities at UBC Continuing Studies please
feel free to contact us. We thank you in advance for
spreading this information about these exciting high
technology events happening this year.
Sincerely,
Charles Tremewen
Coordinator, Computer Science Programs,
Career and Corporate Division
UBC Continuing Studies - "Committed to Life Long Learning"
Voice - (604) 222-5256
e-mail - multimedia@cce.ubc.ca
================================================================================
Archive-Date: Sat, 14 May 1994 12:04:51 CDT
Sender: owner-litprog@SHSU.edu
Date: 14 May 1994 13:04:27 -0400 (EDT)
From: bbeeton
Reply-To: LitProg@SHSU.edu, BNB@MATH.AMS.ORG
Subject: Re: DVI Spec and description
To: LitProg@SHSU.edu, edge@UNISLC.SLC.UNISYS.COM
Message-ID: <768935067.278720.BNB@MATH.AMS.ORG>
Content-Transfer-Encoding: 7BIT
Can anyone point me to a spec and description of DVI? I
have tried archie, but all I seem to be able to get is *.dvi.
the description of .dvi can be found in the web source code to
either tex (tex.web -- published in knuth's "tex: the program")
or dvitype (dvitype.web). these files can be found on one of
the ctan nodes (ctan = the comprehensive tex archive network).
in the u.s., that's ftp.shsu.edu .
to find the file you want, after you've logged in as anonymous,
ask for
quote cite index name
where "name" can be any file name or name fragment.
-- bb
================================================================================
Archive-Date: Sun, 15 May 1994 02:26:01 CDT
Sender: owner-litprog@SHSU.edu
From: elliottm@csulb.edu (Mike Elliott)
Reply-To: LitProg@SHSU.edu, elliottm@CSULB.EDU
Subject: Re: DVI Spec and description
Date: 15 May 1994 07:15:55 GMT
Message-ID:
To: LitProg@SHSU.EDU
In article <1994May13.125243.28586@unislc.slc.unisys.com> edge@unislc.slc.unisys.com (Brian Edginton) writes:
A second question would be, is DVI the best device independent
format currently available?
Probably not. The format of a .dvi file was developed for TeX, and by and
large was successful -- but a number of TeX weenies with whom I have
corresponded, including some who were around during the early days, have
said that if PostScript had been widely available at the time they were
coming up with a device independent format they would have simply adopted
that and not bothered to come up with their own.
Anything you can do in a .dvi file you can do in PostScript, but the
reverse is not even remotely true.
================================================================================
Archive-Date: Sun, 15 May 1994 15:10:42 CDT
Sender: owner-litprog@SHSU.edu
Date: Sun, 15 May 1994 15:13:48 -0500
From: "Stephen A. Fulling"
Reply-To: LitProg@SHSU.edu, fulling@SARASTRO.MATH.TAMU.EDU
Message-ID: <199405152013.PAA06339@sarastro.math.tamu.edu>
To: LitProg@SHSU.edu, fgartner@vax1.tcd.ie
Subject: Re: Writing portable code - any suggestions?
CC: fulling@sarastro.math.tamu.edu
>Can anybody point me to a book or document that is especially
>concerned with writing _portable_ code....
>
>Felix
Portability and the C Language, by Rex Jaeschke,
Hayden Books, 1989, ISBN 0-672-48428-5.
S.A.Fulling
================================================================================
Archive-Date: Mon, 16 May 1994 02:05:47 CDT
Sender: owner-litprog@SHSU.edu
Date: Mon, 16 May 1994 08:58:38 +0200
From: Thomas Herter
Reply-To: LitProg@SHSU.edu, Thomas.Herter@MCH.SNI.DE
Message-ID: <199405160658.AA02458@d255s228.mch.sni.de>
To: LitProg@SHSU.edu, edge@UNISLC.SLC.UNISYS.COM
Subject: Re: DVI Spec and description
Content-Type: text
Hallo Brian,
the definition of the dvi-format can be found in dvitype.web
Weave this file and you will obtain the specification. The second question,
if dvi is the best format for binary information exchange, can probably
not be answered definitely without a carefull comparision with other
formats. The dvi format is intersting at least for following reasons
(listed in random order):
a) it allows to pass integer numbers across different CPU architectures
(low- high or med-endian).
b) it converts characters through a own conversion table, so that you can
use dvi file generated on a ASCII computer on (say) EBCDIC computer
with no change.
c) a checksum is delivered for consistency check.
d) a postamble contains pointers to pages, so that dvi-readers can
quickly find out a subrange of pages.
Since dvi format was defined in the 80ties, there is probably _a lot
of_ better formats nowaday. Especially, some modern binary file formats
for text of image storing support efficiently data compression while
dvi file tend to be large.
I fear, you must judge about the best format by yourself.
Enjoy,
Thomas.
------------------------------------
Thomas Herter, SNI Muenchen (thomas.herter@mch.sni.de) tel +89 636 49973
================================================================================
Archive-Date: Mon, 16 May 1994 09:01:10 CDT
Sender: owner-litprog@SHSU.edu
Date: Mon, 16 May 94 10:01:15 EDT
From: Lee Wittenberg
Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET
To: LitProg@shsu.edu, pensa@c700-1.sm.dsi.unimi.it
Subject: Re: [Q] cWeb for DOS...
Message-ID:
Giovanni MenoZero Pensa writes:
> I've tried to compile cWeb on my PC, but there are arrays too big...
> So, I'm looking for a compiled cWEB... Both tangle and weave...
You might want to try the PC change files in the Labrea distribution.
They are set up to reduce the array sizes so CTANGLE and CWEAVE can be
compiled with Borland C/C++. I think you need to use the -mc and -Ff
(or something like that) compiler options, but that info is in a
comment in the change files (at least it used to be).
I also think there is a compiled DOS version of CWEB somewhere in
CTAN (check the FAQ).
-- Lee
------------------------------------------------------------------------
Lee Wittenberg | When a country is in trouble,
Computer Science Department | choices are few,
Kean College of New Jersey | And, apart from charging double,
Union, NJ 07083 | what can you do?
USA |
| -- Stephen Sondheim
leew@pilot.njin.net | Pacific Overtures (1976)
------------------------------------------------------------------------
================================================================================
Archive-Date: Mon, 16 May 1994 09:35:50 CDT
Sender: owner-litprog@SHSU.edu
Date: Mon, 16 May 94 10:35:50 EDT
From: Lee Wittenberg
Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET
To: LitProg@shsu.edu, fgartner@vax1.tcd.ie
Subject: Re: Writing portable code - any suggestions?
Message-ID:
Felix Gartner writes:
> I'm currently writing a program in C that should run on a variety of UNIX
> machines. Can anybody point me to a book or document that is especially
> concerned with writing _portable_ code. (I'm using CWEB, but that doesn't
> remove the more `technical' problems of porting programs, I believe 8-)
Unfortunately I'm away from my personal library at present, so I can't
give you an in-depth answer (although I'm sure others will), but
Kernighan & Plauger's "Elements of Programming Style" has some
worthwhile stuff to say about portability, and "Guide to Good
Programming Practice", edited by Brian Meek (I forget the publisher)
also has some good guidelines, as I recall.
I would also like to mention a CWEB technique that I've had a great
deal of success with wrt writing programs intended for more than one
target. I use LP sectioning in connection with C #ifdef's to
separate the non-portable parts from the portable stuff.
For example, assume that I want to write a program that has to run on
both Unix and MS-DOS. I'd structure it something like this:
%---- start of example
@*1The Important Stuff.
This is where the portable code goes. Somewhere in here I'll use a
system-dependent chunk.
...
@
...
@*1System-Dependent Code.
The system-dependent stuff goes here.
@*2Unix-dependent code.
This is where we put the Unix-dependent stuff (obviously). In this
simplified example, we only have one system dependent chunk, but in a
more ambitious program there would be many such chunks. Each chunk
in this ``chapter'' must be wrapped in a #if or #ifdef, like so:
@=
#ifdef UNIX
/* Unix code goes here. */
#endif
@*2DOS-dependent code.
We do the same thing with the DOS code (explained separately,
naturally).
@=
#ifdef MSDOS
/* DOS code goes here */
#endif
@ Often, one version needs variables, functions, etc. that the others
needs a global variable, |xxx|:
@=
#ifdef MSDOS
int xxx;
#endif
%---- end of example
That's the general idea. You can port to other systems simply by
adding more subsections with apporpriate code. Actually, you can get
a lot more sophisticated with this techinique, but these ``bare bones'' are
enoughh to get you started. I've got a (half-finished) sample program
that uses these techniques to the fullest. I'm going to try to get it
in shape and make it available over the net some time this summer.
-- Lee
------------------------------------------------------------------------
Lee Wittenberg | When a country is in trouble,
Computer Science Department | choices are few,
Kean College of New Jersey | And, apart from charging double,
Union, NJ 07083 | what can you do?
USA |
| -- Stephen Sondheim
leew@pilot.njin.net | Pacific Overtures (1976)
------------------------------------------------------------------------
================================================================================
Archive-Date: Mon, 16 May 1994 09:43:14 CDT
Sender: owner-litprog@SHSU.edu
Date: Mon, 16 May 94 10:40:07 EDT
From: Lee Wittenberg
Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET
To: LitProg@shsu.edu, edge@unislc.slc.unisys.com
Subject: Re: DVI Spec and description
Message-ID:
Brian Edginton asks:
> Can anyone point me to a spec and description of DVI? I
> have tried archie, but all I seem to be able to get is *.dvi.
"TeX: The Program" has a good description of DVI specs.
> A second question would be, is DVI the best device independent
> format currently available?
``Best'' is an adjective that starts religious wars. Best according
to what criteria?
-- Lee
------------------------------------------------------------------------
Lee Wittenberg | When a country is in trouble,
Computer Science Department | choices are few,
Kean College of New Jersey | And, apart from charging double,
Union, NJ 07083 | what can you do?
USA |
| -- Stephen Sondheim
leew@pilot.njin.net | Pacific Overtures (1976)
------------------------------------------------------------------------
================================================================================
Archive-Date: Mon, 16 May 1994 12:38:17 CDT
Sender: owner-litprog@SHSU.edu
From: simmdan@kenya.isu.edu (Daniel Simmons)
Reply-To: LitProg@SHSU.edu, simmdan@KENYA.ISU.EDU
Subject: Re: Writing portable code - any suggestions?
Date: 16 May 1994 11:20:12 -0600
Message-ID: <2r8a0c$fk6@kenya.isu.edu>
To: LitProg@SHSU.EDU
In article <1994May13.175120.1@vax1.tcd.ie>,
Felix Gartner wrote:
>I'm currently writing a program in C that should run on a variety of UNIX
>machines. Can anybody point me to a book or document that is especially
>concerned with writing _portable_ code. (I'm using CWEB, but that doesn't
>remove the more `technical' problems of porting programs, I believe 8-)
I'm by no means an expert, but lately I have been looking into a few
packages which help in this area. Two of the most popular ones are
dist-3.0 and GNU's autoconf.
I've been moving toward dist since it gives more control to the programmer
in setting up his distribution. What I mean is that both scripts have the
user run a configure script to localize the package to their site, but with
dist you can better control that configure script and even have it ask the
user specific questions, etc. while with autoconf it is pretty much an
automated process that checks for the same set of systme features
regardless of how you set it up.
I would be interested in any other info you find on this topic. We might
want to take this discussion to email or another group, though, since it
doesn't directly deal with literate programming. (Shoot, some of these
people even use--horror of horrors--DOS. :-)
Danny
--
Daniel Simmons electronic mail : simmdan@isu.edu
Idaho State University voice mail : (208) 236-3199
Computer Center snail mail : Box 8037, Pocatello
================================================================================
Archive-Date: Mon, 16 May 1994 15:55:47 CDT
Sender: owner-litprog@SHSU.edu
From: shf@netcom.com (Stuart Ferguson)
Reply-To: LitProg@SHSU.edu, shf@NETCOM.COM
Subject: Re: Writing portable code - any suggestions?
Message-ID:
Date: Mon, 16 May 1994 20:03:23 GMT
To: LitProg@SHSU.EDU
+-- fgartner@vax1.tcd.ie (Felix Gartner) writes:
| I'm currently writing a program in C that should run on a variety of UNIX
| machines. Can anybody point me to a book or document that is especially
| concerned with writing _portable_ code. (I'm using CWEB, but that doesn't
| remove the more `technical' problems of porting programs, I believe 8-)
While this doesn't answer your question, I wanted to mention that
using literate programming does remove some of the problems with
writing portable code. I'm currently writing some libraries which
must function on widely different systems. In normal C the code
would be filled with "#ifdef ... #endif" blocks to
implement the system-specific parts of the code. These normally
clutter up the flow of the code making it hard to separate out the
different paths that the code might take in different environments.
Using a web I have been able to conceptually isolate these parts of
the code. The first part of the document consists of system-generic
code -- the stuff that is the same on all systems. This code is
sprinkled with references to things like:
< System-specific code to do something >
I then have later chapters which implement the different systems.
In the chapter on system-X, I would have:
<< System-specific code to do something >> =
#ifdef SYSTEM_X
... code with system-x calls ...
#endif
@
There would also be chapters on any other system that the code has
been ported to. This organization has several advantages. It shows me
the base functionality and structure without the complexities of
different system calls. I can see a single system implementation in
context, without any other systems cluttering things up. It also shows
at a glance how complex the system-specific part of the code is
compared to the system-generic part. The more that I can move to the
system-generic part, the easier the code is to port. Finally, when I'm
porting to a new system, I have a template immediately ready to show
the parts I need to fill in for the new system.
Just one of the latest niceties of web-structure that I've discovered,
so I wanted to share it.
--
Stuart Ferguson (shf@netcom.com)
"How do you compute that? Where on the
graph do `must' and `cannot' meet?"
================================================================================
Archive-Date: Tue, 17 May 1994 04:52:53 CDT
Sender: owner-litprog@SHSU.edu
Date: Tue, 17 May 1994 11:48:11 +0200 (MET DST)
From: Lode Leroy
Reply-To: LitProg@SHSU.edu, Lode Leroy
Subject: Who's using what?
To: LitProg
Message-ID:
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
I wonder if there is any information on how many people are
into literate programming, and using what tools.
If it doen't exists, maybe someone could look into it.
The people on linux-activists have made some kind of counter:
every one sends his info to a special account, and
some program calculates the statistics.
Has anyone done this yet? If so, how can I get the information.
Lode Leroy
================================================================================
Archive-Date: Tue, 17 May 1994 12:57:12 CDT
Sender: owner-litprog@SHSU.edu
Date: Tue, 17 May 1994 10:56:30 +0800
From: evansjr@ivory.nosc.mil (John R. Evans)
Reply-To: LitProg@SHSU.edu, evansjr@IVORY.NOSC.MIL
Message-ID: <9405171756.AA01577@ivory.nosc.mil>
To: LitProg@SHSU.edu, simmdan@KENYA.ISU.EDU
Subject: Re: Writing portable code - any suggestions?
In article <1994May13.175120.1@vax1.tcd.ie>,
Felix Gartner wrote:
>I'm currently writing a program in C that should run on a variety of UNIX
>machines. Can anybody point me to a book or document that is especially
>concerned with writing _portable_ code. (I'm using CWEB, but that doesn't
>remove the more `technical' problems of porting programs, I believe 8-)
Another extremely useful tool is "imake". It has been used with such
large projects as X, Khoros, and Kerboros. I use it for my somewhat
smaller tasks. But I wouldn't advise tackling it without the eminently
readable "Software Portability With Imake," by Paul Dubois and
available from O'Reilly and Associates. I use it with fweb 1.30 and
C.
------------------------------------------------------------------------------
John Evans (evansjr@nosc.mil)| multimedia definition: dogs watching television
Code 761-T, NCCOSC/NRaD |
San Diego, CA 92152-5144 | Phrase that describes how some Hollywood people
Pnone: (619) 553-5479 | look when they hear multimedia pitches from
Fax: (619) 553-2537 | technology executives. When dogs watch tele-
| vision, they bark or cock their heads, but you
| never know whether they have many idea what's
| going on; tech types say that the same thing
| goes for movie brass and the press.
------------------------------------------------------------------------------
================================================================================
Archive-Date: Wed, 18 May 1994 02:06:23 CDT
Sender: owner-litprog@SHSU.edu
From: coates@kelvin.physics.uq.oz.au (Tony Coates)
Subject: Correction: TeX in FunnelWeb macro names
Date: 18 May 94 17:00:49
Message-ID:
Reply-To: LitProg@SHSU.edu, coates@physics.uq.oz.au
To: LitProg@SHSU.EDU
I wrote earlier, in reply to a question, that FunnelWeb escaped TeX
expressions in macro names, even when the `typesetter = tex' pragma
was used. This is *WRONG*. So, let me explain properly what happens
if you want to have TeX expressions appear in macro names.
(i) without `@p typesetter = tex' at the top of your FunnelWeb file,
all TeX expressions will be escaped; i.e. a '\' in the FunnelWeb
file will become '\backslash' in the TeX documentation file.
Thus there is no way of having TeX expressions processed when
in macro names. Of course, with FunnelWeb in
typesetter-independent mode, no TeX expressions anywhere are
respected. They are all escaped thusly. This is what has allowed
me to create an HTML output mode, the fact that there is no
reliance on TeX.
(ii) with `@p typesetter = tex' at the top of your FunnelWeb file,
all TeX expressions which are *not in code fragments* are passed
directly to TeX, including those which appear in macro names.
However, in this typesetter-dependent mode, FunnelWeb typesetting
commands do not work, and will result in errors if they appear in
the file. In fact, this is the mode that I use all the time,
writing my FunnelWeb text in the form of LaTeX, and using LaTeX
sectioning instead of FunnelWeb sectioning. This works perfectly
well, but if you already have a typesetter-independent FunnelWeb
file, you will have to modify it.
An extra proviso is that if you write your FunnelWeb file in
this mode with the source in TeX form, rather than LaTeX form, it
is up to you to include `\bye' at the end. If writing with
LaTeX, the `\end{document}' will automatically do that for you.
OK, so this is the way it works, and I have it right this time I
believe. As such, I see no need to make modifications to FunnelWeb,
in spite of what I wrote earlier. However, if anyone has any
questions or comments about the above behaviour, I would be glad to
respond, either via this group, or via email to me at
coates@physics.uq.oz.au
Sorry about my earlier mistakes.
Cheers,
Tony.
--
_____________________________________________________________________________
A.B.Coates, Dept. of Physics,
The University of Queensland QLD 4072 Australia.
Email: coates@physics.uq.oz.au
Phone: (07/+617) 365-3424 Fax: (07/+617) 365-1242
Disclaimer: The University is ignorant of my
opinions, let alone guilty ...
_____________________________________________________________________________
================================================================================
Archive-Date: Wed, 18 May 1994 04:56:41 CDT
Sender: owner-litprog@SHSU.edu
From: jacojn@inet.uni-c.dk (Jacob Nielsen)
Reply-To: LitProg@SHSU.edu, jacojn@INET.UNI-C.DK
Subject: Need for new crossref. scheme in literate prog?
Date: Wed, 18 May 1994 9:46:54 GMT
Message-ID: <76925441415547@inet.uni-c.dk>
To: LitProg@SHSU.EDU
Sometimes I need an extra level of navigation in my
literate programs like the ones 'bibtex' produces,
only not to pages but to the code scraps.
I need to produce a crossreference like:
Porting to systems with
tempnam 3 and 11
tmpnam 4, 6 and 10
As I see it, this feature could also be very usefull
while working on the web. It would be possible to
produce references like:
Made by
me 1-20 and 30
another 21-29 and 31
Needs more work 30
I admit that much can be done with carefully chosen
names, good use of chapters, sections, subsections and
crossreferences to identifiers/names but I still miss
the ability to produce crossreferences like 'bibtex'.
Before I plunge in and implement this kind of
crossreference, I'd like to ask what you think about it.
(please do tell me if it is possible to trick 'bibtex'
into producing reference lists like this)
Jacob
--
Jacob Nielsen
Email: jacojn@inet.uni-c.dk (my private account)
or bc898574@bbar.dtu.dk (my account at the university)
================================================================================
Archive-Date: Wed, 18 May 1994 13:17:26 CDT
Sender: owner-litprog@SHSU.edu
From: pha57@cc.keele.ac.uk (R.J. Rankin)
Reply-To: LitProg@SHSU.edu, pha57@CC.KEELE.AC.UK
Subject: Looking for Dragon Systems Inc
Date: 18 May 1994 14:59:09 GMT
Message-ID: <2rdaft$q6l@gabriel.keele.ac.uk>
To: LitProg@SHSU.EDU
I'm looking for Dragon Systems Inc located in Massachusetts can anyone help?
Robert Rankin
##############################################################################
Robert Rankin e-mail:rrankin@elec.keele.ac.uk
Manager telephone:+44 (0)782 58 4109
AIM UK Training Support Laboratory fax: +44 (0)782 711093
Automatic Identification Group
Keele University
Keele
Staffordshire ST5 5BG
ENGLAND "Bar Code Bobbie Captures it all!!!"
##############################################################################
================================================================================
Archive-Date: Thu, 19 May 1994 06:48:40 CDT
Sender: owner-litprog@SHSU.edu
From: bale1%tcvr60@cett.alcatel-alsthom.fr (Ian Bale)
Reply-To: LitProg@SHSU.edu, bale1%tcvr60@CETT.ALCATEL-ALSTHOM.FR
Subject: Dijkstra algorithm ???? Shorest route needed
Date: 19 May 1994 11:26:01 GMT
Message-ID: <2rfic9$e3q@tardis-gw.alcatel-alsthom.fr>
To: LitProg@SHSU.EDU
I'm updating some code, which is commented:
"uses Dijkstra algorithm to find the shortest route in a directed graph network"
Has anyone heard of the Dijkstra algorithm ??
can anyone send me an outline of how the algorithm is supposed to work ??
HAs anyone got any other algorithms to find the shorted route through a
network ?
I have a number of nods with either 2 or three connections. I need to find the
shortest route accross the network between any two points. I then need a second route which does not pass through any of the same nodes as the first route.
Quite simple really. But obviously it'll save me time if anyone can provide
an already proven algorithm.
Thanks to anyone who can help,
Elfy.
e-mail: bale1%tcvr60@cett.alcatel-alsthom.fr
================================================================================
Archive-Date: Thu, 19 May 1994 08:35:11 CDT
Sender: owner-litprog@SHSU.edu
Date: Thu, 19 May 94 07:35:20 MDT
From: "Nelson H. F. Beebe"
Reply-To: LitProg@SHSU.edu, beebe@MATH.UTAH.EDU
To: LitProg@SHSU.edu, bale1%tcvr60@CETT.ALCATEL-ALSTHOM.FR
CC: beebe@math.utah.edu, LitProg@SHSU.EDU
Subject: Re: Dijkstra algorithm ???? Shorest route needed
Message-ID:
The shortest path algorithm for directed graphs can be found at p. 457 of
@String{pub-AW = "Ad{\-d}i{\-s}on-Wes{\-l}ey"}
@String{pub-AW:adr = "Reading, MA, USA"}
@Book{Sedgewick:AC90,
author = "Robert Sedgewick",
title = "Algorithms in {C}",
publisher = pub-AW,
address = pub-AW:adr,
year = "1990",
ISBN = "0-201-51425-7",
LCCN = "QA76.73.C15 S43 1990",
pages = "xii + 657",
bibdate = "Wed Dec 15 10:41:38 1993",
}
and probably in Sedgewick's other books (in Pascal, C++, and Modula-3).
========================================================================
Nelson H. F. Beebe Tel: +1 801 581 5254
Center for Scientific Computing FAX: +1 801 581 4148
Department of Mathematics, 105 JWB Internet: beebe@math.utah.edu
University of Utah
Salt Lake City, UT 84112, USA
========================================================================
================================================================================
Archive-Date: Thu, 19 May 1994 08:35:14 CDT
Sender: owner-litprog@SHSU.edu
Date: Thu, 19 May 94 07:35:20 MDT
From: "Nelson H. F. Beebe"
Reply-To: LitProg@SHSU.edu, beebe@MATH.UTAH.EDU
To: LitProg@SHSU.edu, bale1%tcvr60@CETT.ALCATEL-ALSTHOM.FR
CC: beebe@math.utah.edu, LitProg@SHSU.EDU
Subject: Re: Dijkstra algorithm ???? Shorest route needed
Message-ID:
The shortest path algorithm for directed graphs can be found at p. 457 of
@String{pub-AW = "Ad{\-d}i{\-s}on-Wes{\-l}ey"}
@String{pub-AW:adr = "Reading, MA, USA"}
@Book{Sedgewick:AC90,
author = "Robert Sedgewick",
title = "Algorithms in {C}",
publisher = pub-AW,
address = pub-AW:adr,
year = "1990",
ISBN = "0-201-51425-7",
LCCN = "QA76.73.C15 S43 1990",
pages = "xii + 657",
bibdate = "Wed Dec 15 10:41:38 1993",
}
and probably in Sedgewick's other books (in Pascal, C++, and Modula-3).
========================================================================
Nelson H. F. Beebe Tel: +1 801 581 5254
Center for Scientific Computing FAX: +1 801 581 4148
Department of Mathematics, 105 JWB Internet: beebe@math.utah.edu
University of Utah
Salt Lake City, UT 84112, USA
========================================================================
================================================================================
Archive-Date: Thu, 19 May 1994 09:56:20 CDT
Sender: owner-litprog@SHSU.edu
From: lubell@nist.gov (Josh Lubell - msd)
Reply-To: LitProg@SHSU.edu, lubell@NIST.GOV
Subject: C++ with cweb
Message-ID:
Date: Thu, 19 May 1994 14:05:58 GMT
To: LitProg@SHSU.EDU
I would like to use cweb to produce documentation for a C++ class
library. I wish to document each class's public interface and to
supress any display of private data members or member functions.
Is there a way I can do this with cweave, or is there a TeX macro I
can use? Also, do I have to do anything special in order to use C++
style comments (double slash) in my cweb files.
Thanks for your help.
--
____________________________________________________________________
Josh Lubell | lubell@cme.nist.gov
National Institute of Standards and Technology |
A127 Metrology Building | Voice:(301)975-3563
Gaithersburg, MD 20899 | Fax: (301)869-0917
================================================================================
Archive-Date: Thu, 19 May 1994 11:08:14 CDT
Sender: owner-litprog@SHSU.edu
From: simmdan@kenya.isu.edu (Daniel Simmons)
Reply-To: LitProg@SHSU.edu, simmdan@KENYA.ISU.EDU
Subject: Re: Correction: TeX in FunnelWeb macro names
Date: 19 May 1994 09:53:29 -0600
Message-ID: <2rg21p$4h@kenya.isu.edu>
To: LitProg@SHSU.EDU
In article ,
Tony Coates wrote:
> However, in this typesetter-dependent mode, FunnelWeb typesetting
> commands do not work, and will result in errors if they appear in
> the file.
Maybe you have a different version of FunnelWeb than I do (I'm using v3.0),
but my copy does not work this way. When I'm in the tex typesetter mode, I
can use tex commands OR funnelweb commands. In fact, I have written a fairly
large set of tex macros which redefine certain of the funnelweb sectioning
commands so that if I use funnelweb sectioning commands and what not I end up
with a nicely formatted table of contents (complete with page numbers!) and
an index at the end.
> An extra proviso is that if you write your FunnelWeb file in
> this mode with the source in TeX form, rather than LaTeX form, it
> is up to you to include `\bye' at the end. If writing with
> LaTeX, the `\end{document}' will automatically do that for you.
Like I said above, you seem to see different behaviour than I see. I do not
have to put `\bye' into my funnelweb documents at all.
Danny
--
Daniel Simmons electronic mail : simmdan@isu.edu
Idaho State University voice mail : (208) 236-3199
Computer Center snail mail : Box 8037, Pocatello
================================================================================
Archive-Date: Thu, 19 May 1994 11:45:16 CDT
Sender: owner-litprog@SHSU.edu
From: ralexand@mason1.gmu.edu (Roger T Alexander)
Reply-To: LitProg@SHSU.edu, ralexand@MASON1.GMU.EDU
Subject: CWEB C++ Examples
Date: 19 May 1994 14:25:33 GMT
Message-ID: <2rfsst$p87@portal.gmu.edu>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
To: LitProg@SHSU.EDU
Could someone tell me where I could find a few examples that show how to
use CWEB with C++ ? Please reply to ralexand@gmu.edu
Thanks,
Roger Alexander
George Mason University
--
Roger T. Alexander rtalexander@acm.org or
George Mason University ralexand@gmu.edu
(703) 378-1500
================================================================================
Archive-Date: Mon, 23 May 1994 07:07:41 CDT
Sender: owner-litprog@SHSU.edu
From: umshih02@lithium.cs.umanitoba.ca (Jun Shih)
Reply-To: LitProg@SHSU.edu, umshih02@LITHIUM.CS.UMANITOBA.CA
Subject: nuweb.el
Date: 20 May 94 16:10:59 GMT
Message-ID:
To: LitProg@SHSU.EDU
Would someone tell where to get "nuweb.el", or send me a copy?
Thanks in advance.
--
Jun Shih
================================================================================
Archive-Date: Mon, 23 May 1994 07:07:50 CDT
Sender: owner-litprog@SHSU.edu
From: elliottm@csulb.edu (Mike Elliott)
Reply-To: LitProg@SHSU.edu, elliottm@CSULB.EDU
Subject: Re: Correction: TeX in FunnelWeb macro names
Date: 20 May 1994 04:50:01 GMT
Message-ID:
To: LitProg@SHSU.EDU
Daniel Simmons writes:
When I'm in the tex typesetter mode, I can use tex commands OR funnelweb
commands. In fact, I have written a fairly large set of tex macros
which redefine certain of the funnelweb sectioning commands so that if I
use funnelweb sectioning commands and what not I end up with a nicely
formatted table of contents (complete with page numbers!) and an index
at the end.
Any chance you'd be willing to share?
--
======================================================================
Mike Elliott elliottm@csulb.edu
======================================================================
================================================================================
Archive-Date: Mon, 23 May 1994 07:07:54 CDT
Sender: owner-litprog@SHSU.edu
From: forkin@Informatik.TU-Muenchen.DE (Christopher Forkin)
Reply-To: LitProg@SHSU.edu, forkin@INFORMATIK.TU-MUENCHEN.DE
Subject: ?WEB with EMACS?
Date: 20 May 1994 08:50:11 GMT
Message-ID: <2rhtk3$ol2@hpsystem1.informatik.tu-muenchen.de>
Keywords: WEB
To: LitProg@SHSU.EDU
Hi,
I hope this isn't a FAQ. I use CWEB and SchemeWEB lately and haven't been
able to come up with a useable solution to use them with emacs. I'm used
to running emacs in its different (lisp-mode, auctex-mode, c-mode, ..)
and would like to have something like a cweb-mode and a schemeweb-mode, which
would be like c-mode in the c-context and auctex-mode (or similar) in the
tex-context and so on. Does anybody know of such a beast?
thanks in advance.
cu.
forkin@informatik.tu-muenchen.de
--
+--------------------+----------------------------------+
| Christopher Forkin | forkin@informatik.tu-muenchen.de |
+--------------------+----------------------------------+
================================================================================
Archive-Date: Mon, 23 May 1994 07:08:07 CDT
Sender: owner-litprog@SHSU.edu
From: dornan@aloha (CB. Dornan)
Reply-To: LitProg@SHSU.edu, dornan@ALOHA
Subject: Re: Dijkstra algorithm ???? Shorest route needed
Message-ID:
Date: Fri, 20 May 1994 10:01:55 GMT
To: LitProg@SHSU.EDU
Ian Bale (bale1%tcvr60@cett.alcatel-alsthom.fr) wrote:
: I'm updating some code, which is commented:
: "uses Dijkstra algorithm to find the shortest route in a directed graph network"
: Has anyone heard of the Dijkstra algorithm ??
: can anyone send me an outline of how the algorithm is supposed to work ??
Check out "The Stanford Graph Base" by D.E.Knuth, published by Addison Wesley.
It has a complete description of this algorithm and its implementation in CWEB
(a C based literate programming system). You can obtain all the sources for
the programs given in the book, including GB_DIJK, at
address: labrea.stanford.edu
directory: pub/sgb
Cheers,
Chris
---------------------------
Chris Dornan dornan@compsci.bristol.ac.uk
Department of Computer Science
University of Bristol +44 272 303030 x 3676
================================================================================
Archive-Date: Mon, 23 May 1994 07:10:18 CDT
Sender: owner-litprog@SHSU.edu
From: payne@mickey.itd.nrl.navy.mil (Charles Payne)
Reply-To: LitProg@SHSU.edu, payne@MICKEY.ITD.NRL.NAVY.MIL
Subject: Re: Correction: TeX in FunnelWeb macro names
Message-ID:
Date: Fri, 20 May 1994 12:10:12 GMT
To: LitProg@SHSU.EDU
In article elliottm@csulb.edu (Mike Elliott) writes:
Daniel Simmons writes:
When I'm in the tex typesetter mode, I can use tex commands OR funnelweb
commands. In fact, I have written a fairly large set of tex macros
which redefine certain of the funnelweb sectioning commands so that if I
use funnelweb sectioning commands and what not I end up with a nicely
formatted table of contents (complete with page numbers!) and an index
at the end.
Any chance you'd be willing to share?
--
======================================================================
Mike Elliott elliottm@csulb.edu
======================================================================
On the other hand, if you're willing to use LaTeX rather than plain
TeX, you could redefine \fwseca ... \fwsece to be LaTeX \chapter
through \paragraph. Then the \tableofcontents command gets you
a table of contents without additional hassle. I've used this
approach with success. I expect that I could also redefine the
appropriate FunnelWeb commands in the preamble of my file to generate
index entries for MakeIndex, though I haven't tried.
Charlie
================================================================================
Archive-Date: Mon, 23 May 1994 07:11:01 CDT
Sender: owner-litprog@SHSU.edu
From: coates@kelvin.physics.uq.oz.au (Tony Coates)
Subject: Re: Writing portable code - any suggestions?
Date: 21 May 94 12:46:31
Message-ID:
Reply-To: LitProg@SHSU.edu, coates@physics.uq.oz.au
To: LitProg@SHSU.EDU
+-- fgartner@vax1.tcd.ie (Felix Gartner) writes:
| I'm currently writing a program in C that should run on a variety of UNIX
| machines. Can anybody point me to a book or document that is especially
| concerned with writing _portable_ code. (I'm using CWEB, but that doesn't
| remove the more `technical' problems of porting programs, I believe 8-)
For getting software to be portable over UNIX systems, I find the GNU
`autoconf' utility very good. The idea is that, for instance, if you
need a particular function, you can always write a small test program
and see if it links or not. If it does, you have it, if not, you
don't. Then you can set -DHAVE_FUNC=1 for the compiler if you have
the function, and the code is automatically adjusted to use the
function. Basically, `autoconf' gives you a set of functions for
doing such tests to configure a package for what is available on a
system. To use it, you require a little knowledge of the `m4' macro
package, unless you are lucky enough that the supplied functions can
test all the things you need (there are quite a lot, so you may never
need to worry about using m4, but you need to have it).
Unfortunately, because `autoconf' writes a configuration test
script designed for the Bourne shell, it is not so convenient for
non-UNIX systems, though the same basic idea could be used for any
system that supports some kind of batch language.
Not that this is literate programming, but I need to make my
literate programs portable as well ;-) .
Cheers,
Tony.
--
_____________________________________________________________________________
A.B.Coates, Dept. of Physics,
The University of Queensland QLD 4072 Australia.
Email: coates@physics.uq.oz.au
Phone: (07/+617) 365-3424 Fax: (07/+617) 365-1242
Disclaimer: The University is ignorant of my
opinions, let alone guilty ...
_____________________________________________________________________________
================================================================================
Archive-Date: Mon, 23 May 1994 07:11:38 CDT
Sender: owner-litprog@SHSU.edu
From: coates@kelvin.physics.uq.oz.au (Tony Coates)
Subject: 2nd correction: TeX in FunnelWeb macro/section names
Date: 20 May 94 19:54:33
Message-ID:
Reply-To: LitProg@SHSU.edu, coates@physics.uq.oz.au
To: LitProg@SHSU.EDU
Yes, my previous posting on the way FunnelWeb treats (La)TeX
expressions in macro and section names was again *WRONG*. I can only
apologise very deeply for this, and for wasting everyone's time. Let
me explain what happened and what FunnelWeb actually does.
In my own code, I never mix FunnelWeb's own typesetting and
LaTeX typesetting. I strictly use one or the other. I didn't realise
that the two could be mixed, and when I recently modified the weaver
component of FunnelWeb so it could produce hypertext (HTML), I set the
TeX output routines so that FunnelWeb typesetting commands could not
be used when `@p typesetter = tex' was in effect. I thought that this
was what was intended, but a recent posting showed that some users
rely on being able to mix both FunnelWeb typesetting commands and
(La)TeX commands in the one file. Since I don't want any existing
FunnelWeb code to break in my experimental version, I have modified my
version, and compared it to an unadulterated version of FunnelWeb
v3.0; they both now act the same for TeX output. That is to say
(i) FunnelWeb escapes all TeX expressions inside macro names and
section names, regardless of whether `@p typesetter = tex' is in
effect or not.
OK, so that is what happens. If you try to imbed (La)TeX into a
section or macro name, thinking that you will be able to cleverly
format the name, all you will see is raw TeX code treated as though it
were plain ASCII text.
For anyone who needs to imbed (La)TeX into macro and/or
section names, I have added a pragma `@p raw_macro_and_section_names'
to my experimental version of FunnelWeb. This pragma allows (La)TeX
or HTML (as appropriate) expressions to be used in macro and section
names (unless the macro is attached to a file). This behaviour cannot
be achieved, to the best of my knowledge, with an unmodified version
of FunnelWeb v3.0. Anyone who is interested in my version, which may
be beta-tested but is not for further distribution, may contact me at
coates@physics.uq.oz.au
My apologies for the errors of fact that I have posted
recently; I sincerely hope that this post finally corrects those
mistakes and lays them to rest.
Cheers,
Tony.
--
_____________________________________________________________________________
A.B.Coates, Dept. of Physics,
The University of Queensland QLD 4072 Australia.
Email: coates@physics.uq.oz.au
Phone: (07/+617) 365-3424 Fax: (07/+617) 365-1242
Disclaimer: The University is ignorant of my
opinions, let alone guilty ...
_____________________________________________________________________________
================================================================================
Archive-Date: Mon, 23 May 1994 07:11:52 CDT
Sender: owner-litprog@SHSU.edu
From: jacojn@inet.uni-c.dk (Jacob Nielsen)
Reply-To: LitProg@SHSU.edu, jacojn@INET.UNI-C.DK
Subject: Re: Need for new crossref. scheme in literate prog?
Date: Fri, 20 May 1994 13:51:38 GMT
Message-ID: <76944189820203@inet.uni-c.dk>
To: LitProg@SHSU.EDU
I got a letter asking me to make my previous posting clear. I hope this
clears up matters :-) if not please write and I will try to explain as
soon as I get time (and a terminal near my fingers :)
I thought the idea was clear, but that's life :-)
My proposal for a new crossref. scheme was not a meant as a replacement
for the existing methods, rather as a supplement to them.
The idea is that making crossreferences to identifiers in the code
(e.g. no_file) and to scrap names (e.g. ) goes a long
way in making it easy to navigate, alter and grasp the intentions of
a program, but it isn't always enough. The carefull selection af scrap
names adds another layer to the comprehension and good use of chapter,
sections etc. yet another, byt why settle for this?
With the current crossreference schemes (e.i. to identifiers and scrap names)
one is forced to read the documentation to discover limitations
in the design of the program (like the use of 'tempnam' to make temporary
files, use of machine language etc.). This problem could be solved by
mentioning caveats in a section of the documentation (like the documentation
to nuweb mentions the use/problems of 'tempnam' long before it's actually
used). IMO, this approach is not very usefull in a large program while
it's being programmed because it requires us to manually collect and update
the ``Problems''-section of the documentation; this means shifting between
the web proper and the ``Problems''-section constantly.
And also, we can deal with references to chapters and the like automatically
but references to scrap numbers? Knowing myself, I'd also be very concerned
about getting *all* the references in such a process.
We can all think of situations where a non-portable part of a program
cannot be clearly identified by a single word, so we document the problem
in the surrounding documentation. For a reader to notice this, he/she has
to either read the whole documentation carefully or we have to make a
special chapter only saying where problems could arise and the reader would
read that (see above)
Even if we can identify the non-portable part of a program by a single
word (e.g. 'tempnam'), would that word mean anything to the reader?
Unless the reader has the same knowlegde and experience as the writer,
it's more understandeble to make references like:
Problems with porting to
systems other than unix system V 30-40
when making temporary files 30 and 35
instead of just having a reference to 'tempnam' in the list of identifiers
in the code:
tempnam: 30 and 35
As the program grows, more and more specific knowlegde is assumed on the part
of the reader, the list of identifiers grows, making the readers task even
more difficult (provided the words means anything to the reader).
The carefull reader will notice that the above example isn't a real
crossreference but only an index. That is correct until we start to
indicate (by boldface numbers etc.) where there are explanations of the
problem. (e.g. ``systems other than unix system V {\bf 30}-40'' indicating
that the problem occurs in scraps 30-40 and the explanation is around scrap
30)
In a project with multible programmers, it is also possible to make a list of
who made which scraps, so all can see who to ask about something, using this
procedure.
I guess we are all under the illusion that a reader reads our web
carefully from cover to cover (at least the first time) and
as good writers we don't write the same thing over and over again, so if
a problem arises more than once, we assume that the reader catches it the
second time (he/she has read the explanation given 2 pages before, no?)
A cycle of reading the user manual, trying to compile the program, failing,
trying to correct the problem quickly and then reading the web from cover
to cover (hopefully finding and understanding the problem), is a more likely
scenario; it is therefore important to provide the reader with the best
possible means of getting the job done.
The bottomline is that it is also usefull to index/crossreference scraps
with senteces and not only scrap names and identifiers in the code.
Regards,
Jacob
--
Jacob Nielsen
Email: jacojn@inet.uni-c.dk (my private account)
or bc898574@bbar.dtu.dk (my account at the university)
================================================================================
Archive-Date: Mon, 23 May 1994 07:12:19 CDT
Sender: owner-litprog@SHSU.edu
From: bauer@spock.ame.arizona.edu (Holger Bauer 8/93)
Reply-To: LitProg@SHSU.edu, bauer@SPOCK.AME.ARIZONA.EDU
Subject: Re: Emacs-Highlighting mode with [no]WEB??
Date: 22 May 1994 19:23:32 GMT
Message-ID:
To: LitProg@SHSU.EDU
>>>>> "Marcus" == Marcus Speh writes:
Marcus> Has anybody made an attempt to enlarge hilit19.el [Emacs
Marcus> highlighting mode] for (any, or rather NO-) WEB??
Marcus> thanks, marcus --
Marcus> -----------------------------------------------------------------------------
Marcus> Marcus Speh, II.Inst.Theor.Physik,Luruper Chaussee 149,
Marcus> 22761 Hamburg,Germany Phone: +49-40 8998 2178, Fax: +49-40
Marcus> 8998 2267, Private: +49-40 801392 Email:
Marcus> DECnet:
Marcus> 13313::SPEH
Here a really quick and dirty hack (but at least a beginning) for FWEB (and
maybe also for others). Since I only program in FORTRAN-77 (how ugly, but
my adviser requires it) I only hacked FORTRAN patterns in it (Hmmm, :-) I mean
I've stolen it from hl319 (newest version of hilit19)).
Holger
============================= default.el ===================================
;;; Startup file for the AME-LAB
;;; global settings for EMACS for every user
;;; Holger Bauer, May 1994
;;; E-mail in Germany: bauer@itwds1.energietechnik.uni-stuttgart.de
;;; after October 1994!
;;; currently: see below
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; the following was added to have highlighted keywords in either
;; FORTRAN, C, C++, TeX, LaTeX, ..........
(cond (window-system
(setq hilit-patterns-alist '("web-mode"))
(setq hilit-mode-enable-list '(not text-mode)
hilit-background-mode 'light
hilit-inhibit-hooks nil
hilit-inhibit-rebinding nil)
(require 'hl319) ;;the latest version of hilit19.el
(require 'hilit-LaTeX) ;;patterns for LaTeX
(require 'hilit-web) ;; patterns for FWEB
;; (require 'hilit19)
(hilit-translate define 'DarkTurquoise string nil)))
========================== end of default.el ================================
=========================== hilit-web ========================================
;;; HIGHLIGHTING PATTERNS for WEB-MODE
;;; Holger Bauer, May 1994
;;; e-mail: bauer@itwds1.energietechnik.uni-stuttgart.de
(provide 'hilit-web)
;;; c- and c++-comment styles
(defvar comments '(("/\\*" "\\*/" comment)))
(defvar c++-comments '(("//.*$" nil comment)))
;;;
(hilit-set-mode-patterns
'(web-mode)
(append
comments c++-comments
'(
;;;; LaTeX-pattern (see ~/lisp/hilit-latex-1.06.el)
("[^\\]%.*$" nil comment) ;; comments
("\\\\\\(sc\\|bf\\|em\\|it\\|rm\\|sf\\|sl\\|ss\\|tt\\)\\b" nil decl)
("``" "''" string)
("\\\\\\(raggedright\\|makeindex\\|makeglossary\\|maketitle\\)\\b" nil
decl)
;; label-like things
("\\\\item\\(\\[[^]]*\\]\\)?" nil label)
;; formulas
("\\\\(" "\\\\)" formula) ; \( \)
("[^\\\\]\\\\\\[" "\\\\\\]" formula) ; \[ \] but not \\[len] (PS Galbraith)
("[^$\\]\\($\\($[^$]*\\$\\|[^$]*\\)\\$\\)" 1 formula) ; '$...$' or '$$...$$'
;; ^^ but not \$102.54 is expensive for a car wash.
;; various declarations/definitions
("\\\\\\(setlength\\|settowidth\\|addtolength\\|setcounter\\|addtocounter\\)" nil define)
("\\\\\\(normalsize\\|small\\|footnotesize\\|scriptsize\\|tiny\\|large\\|Large\\|LARGE\\|huge\\|Huge\\)\\b" nil decl)
("\\\\\\(appendix\\|tableofcontents\\|listoffigures\\|listoftables\\)\\b"
nil decl)
("\\\\[a-z]+box" nil keyword)
;; "wysiwyg" emphasis
(hilit-bracket-wysiwyg "{\\\\\\(em\\|it\\|sl\\)" italic)
(hilit-bracket-wysiwyg "{\\\\bf" bold)
(hilit-bracket-wysiwyg "{\\\\sc" label)
(hilit-bracket-region
; (\\(no\\)?cite -> changed to any cite commands that users make up.
"\\\\\\([A-z]*cite[A-z]*\\|\\(page\\)?ref\\|eqref\\|label\\|index\\|glossary\\){"
crossref)
(hilit-bracket-region "\\\\\\(v\\|h\\)space\\(\*\\)?{" keyword)
(hilit-bracket-region "\\\\footnote\\(mark\\|text\\)?{" keyword)
;; things that do some sort of cross-reference
(hilit-bracket-region
"\\\\\\(pagestyle\\|thispagestyle\\|pagenumbering\\|numberwithin\\){" decl)
;; things that bring in external files
(hilit-bracket-region "\\\\\\(include\\|input\\|bibliography\\){" include)
;; (re-)definde\\|input\\|bibliography\\){" include)
;; (re-)define new commands/environments/counters
(hilit-bracket-region "\\\\\\(re\\)?new\\(environment\\|command\\){" defun)
(hilit-bracket-region "\\\\new\\(length\\|theorem\\|counter\\){" defun)
;; the following two match \foo[xx]{xx} or \foo*{xx} or \foo{xx}
(hilit-bracket-region
"\\\\\\(sub\\)*\\(paragraph\\|section\\)\\(\*\\|\\[.*\\]\\)?{" keyword)
(hilit-bracket-region
"\\\\\\(chapter\\|part\\)\\(\*\\|\\[.*\\]\\)?{" keyword)
(hilit-bracket-region
"\\(\\\\document\\(style\\|class\\)\\|\\\\usepackage\\)\\(\\[.*\\]\\)?{"
decl)
(hilit-bracket-region "\\\\title\\(\\[.*\\]\\)?{" define)
(hilit-bracket-region "\\\\\\(author\\|date\\|thanks\\){" define)
(hilit-bracket-region "\\\\caption\\(\\[[^]]*\\]\\)?{" label)
(hilit-bracket-region "\\\\\\(begin\\|end\\|nofiles\\|includeonly\\){"
decl)
;;;;;; FORTRAN patterns
("^[*Cc].*$" nil comment)
("'[^'\n]*'" nil string)
("\\(^[ \t]*[0-9]+\\|[ \t]continue[ \t\n]\\|format\\)" nil define)
("[ \t]\\(do\\|do[ \t]*[0-9]+\\|go[ \t]*to[ \t]*[0-9]+\\|end[ \t]*do\\|if\\|else[ \t]*if\\|then\\|else\\|end[ \t]*if\\)[ \t\n(]" nil define)
("[ \t]\\(call\\|program\\|subroutine\\|function\\|stop\\|return\\|end\\|include\\)[ \t\n]" nil include)
("[ \t]\\(parameter[\t\n ]*([^)]*)\\|data\\|save\\|common[ \t\n]*/[^/]*/\\)"
nil decl)
("^ ." nil type)
("implicit[ \t]*none" nil decl)
("\\([ \t]\\|implicit[ \t]*\\)\\(dimension\\|integer\\|real\\|double[ \t]*precision\\|character\\|logical\\|complex\\|double[ \t]*complex\\)\\([*][0-9]*\\|[ \t\n]\\)" nil keyword)
;;;;;; WEB-Extension
("^[+\@].*$" nil operator)
("[^\\]\@.+$" nil defun)
;;; ("[^\\]\@.*$" nil operator)
)
))
=========================== end of file hilit-web.el =======================
|==========================================================================|
| _ _ _ |
| Holger Bauer ... __o ( ) ( ) (_ ) _ |
| 1426 E. 8th St. .. _`\<,_ | |_| | _ | | __ (_) |
| Tucson, AZ 85719 ...(*)/ (*). | _ | /'_`\ | | /'_ `\ | | |
| (602) 623-9003 | | | | ( (_) ) | | ( (_) | | | |
| (_) (_) `\___/ (___)`\__ | (_) |
|============================= bauer@spock.ame.arizona.edu === ( )_) | ====|
"Experience comes from bad judgment" Mark Twain \___/'
--
|==========================================================================|
| _ _ _ |
| Holger Bauer ... __o ( ) ( ) (_ ) _ |
| 1426 E. 8th St. .. _`\<,_ | |_| | _ | | __ (_) |
| Tucson, AZ 85719 ...(*)/ (*). | _ | /'_`\ | | /'_ `\ | | |
| (602) 623-9003 | | | | ( (_) ) | | ( (_) | | | |
| (_) (_) `\___/ (___)`\__ | (_) |
|============================= bauer@spock.ame.arizona.edu === ( )_) | ====|
"Experience comes from bad judgment" Mark Twain \___/'
================================================================================
Archive-Date: Mon, 23 May 1994 07:12:22 CDT
Sender: owner-litprog@SHSU.edu
From: simmdan@kenya.isu.edu (Daniel Simmons)
Reply-To: LitProg@SHSU.edu, simmdan@KENYA.ISU.EDU
Subject: Re: Correction: TeX in FunnelWeb macro names
Date: 20 May 1994 00:16:35 -0600
Message-ID: <2rhkk3$9do@kenya.isu.edu>
To: LitProg@SHSU.EDU
In article ,
Mike Elliott wrote:
>Daniel Simmons writes:
>
> When I'm in the tex typesetter mode, I can use tex commands OR funnelweb
> commands. In fact, I have written a fairly large set of tex macros
> which redefine certain of the funnelweb sectioning commands so that if I
> use funnelweb sectioning commands and what not I end up with a nicely
> formatted table of contents (complete with page numbers!) and an index
> at the end.
>
>Any chance you'd be willing to share?
I certainly know better than to make that kind of statement when the code
isn't ready to go out the door...
To answer your question: Yes, I'm willing to share. As a matter of fact,
packaging up the stuff and posting it to the net has been on my todo list
for a couple of months now. The problem (aside from the usual no time) is
that everything was hacked together based on some assumptions about local
setup.
I guess it's not too bad, though. Basically, you need perl and the Eplain
TeX macros already installed. Then you stick a few lines onto the top of
your funnelweb file:
@p typesetter = tex
\def\fwtitle{My project title}
\input loom
(I call the package "loom" since it "improves your weave".)
Now add \fwtoc where you want the table of contents and \fwindex where you
want the index (presumably at the end of the document).
To make it all go together, you have to run tex on fw's output file, then
run fw-mkindex which is the post-processing perl script and run tex again.
So, now that I've explained all that I might as well dump the stuff on you
all. (I'm sure you'll let me know if it doesn't work. :-) This message is
about all the docs you are going to get for the time being, though.
Here's a tar'd, gzipped and uuencoded copy:
------------------- cut here ----------------------
begin 0 loom-1.0.tar.gz
M'XL("#E4W"T``VQO;VTM,2XP+G1A<@#M6WMSV\B1][_"IYCH49(J)$7*DKTK
M6XYD2]XHY]?)5"Y&V08Q
MF.[I]W0WQHE2:;O7Z>X\^')7M[O7?;R_CWNWV]LS]X>]+M_M]:"[O__H<7=_
MM[NWA_'>P]YN[\'^%Z2INLI"!SF6+.(TC8+LSGE!E,9WOWWPH&+$WO]-KL3I
M?S!NIU=Q%LF;7WT-DL<]^G_TZ/&NTW]O_Q&][^WW'CYZ\)L(\3]<_VN_VRF+
M?*9SLCF2?>FKBD&993(9R[X(LL@A%6D0YJK@F?6$2%[+
M1(UD!&3]B3@)LE@FXCV4I+)"!%J<1<%0B?<:Q(@/67PM\R+6$\];_U]Q*'I/
M/"8C!,UQ=BE"E5W+3,Q'JK
MN_W$FX$0O`,IZX3E^^X/3SP+3>,=DEZ[_4SP0QS=,`9#,SQR)!3X@3A'I39"
M[I=Q$A$G05$H2$V#87"1!ZP1D4`*N5"E!@`CH>O-VXO3`_%1$@RX%7H(L67*
MR%ODO/MP(5Z>O3H5+]^>OSZ^.+`O<)T67PHVSI9Z\OLVAN=<^#-65;
M9V^(L998?>KTL`IUP0P@Y*VGYNVS!7UW2#?TO&;^!
ML3I"E>/?;Z_O
MF+E3;\5;6=>3D23K@26OK!OF\+1+3\P1'AZ"JI4U_&FR3>3PJ+?"1LQXY$]B
M]61UVUN9`L+08VX-FD>YO(Y5630,P\TU=T8'G\DG4T/0;-N\(*0@@O]9@J\F
MCF;@+_[.AU$.YE%`Q#"*.$^`C5;ED(RH6\.!V%Q_M=H.3E17BP3"Q,%6L?Q(=
ML=INP\`P94;_R*20$*2A``&7R*#E/P<1RZ&)C>:Z.R&N9(+W=^!HB286AV#F
M6>4U55Q[*G:``J'3$4HF0XS\/QKSC]*'UI51_!MN=
M0V+Y,W#-#$NR07042[&:!@GMB=CJ&%'`Y]&45K-6A8U<&"VOQL_>\<]QFY
M7:JLBQ[F)'%\B
M_++5%R1^1LIU=#=T*'3(+:Y9N"Z
M1XVG]ZOQ+L'?K\E:_.UV%;>G3E/S#GV'8N:"UVSU#D4LT>8\P)VBODN%)+G/
M],]%H?<1G,WN/R=O64S6]G2&S#1!72
MYE';+FD=Y[&F#%/:))0Y\^PR1=F'B241I(^%UH])Y<$3\^N?0N<[Q^W_V0G:
M_]BAL>?TMF]_W7I[+,)T)-:?.W)L5O?VPX5-ZYZYC)K2NB-;6AR*0N7:T;!U
M)2>%V&`Y8A+L0@8H`JR,MRS0?`YH%Q"KOD_BF%;R]R.EP6LRKQ:CEQG7$2@D
M+!D;8G>;W*%[/VX';"5M7[.HK3GPA%]'_U7]3S\Z^@M4_Z8T?L1]G67U_R[^
M/%ZL__<>]?:_UO^_P;4AG.*IBKJ0?W'E.':!U3@=Y:A$Q425N1C+X!I;)V+7
M2Z[2/U*5KD*NHPMOP]L01R_>OOOK^=EW?[PXXN>+H83I67Q!%.'O=8`=)A)#
M&40HV+D-,%`*Q6O1$CKHHPA#2$:UK@U2GF":$:`$F45A:F`0DR1T[Y=)(LFP
M"PT,T-^ES"D7Z5-TIQ8$(:'MC4)3BK(?-6F+&AH:F(,\HNQE$%"M2;L!UP-Z
MB#6*#G-@2NC341)0R"[$^>E_?S@[/SVI4-ZBN4%QJ"()-.+XU?NW%A,D8E_:
M,$ESD.L3P3(3UW&N2VZSA&H44_A%7;`34;R&K99F2>B;J7/^VX1
MYO&()`SKT&-R>`HC9G'`CU5^16&.<$Q8)\049U9^4-XP!SYV*1G%4*Y/B0^L
MP;U"DN,C]2'GHZY6)2!&?TM$9S3*\M&RH`1&RAN8&^7_WSLT/TR11LT8,AY4
M4PK.''SC#*%*RC2S0PU3,`-&HQ55P&;&*8@[6,)>I:%^B@B/I'YJHN5?$:PR
MR5-5#+E:-L+MNL%S;7O.'JS-<@)O6R$+3B\;7>VJX1!`VF$RW3T71MUW)8
MR75.X-.UWM%3OPBH0OB'M$#BZ!FL/(D50)T)-9K8*0R8PB=M5DU[
M'_EJ2T@==K8;MNR4,S,#\$8[LM8S=%\FJA\D"[/7>K.9,95X`$4Y`_C"CV25/YB7K1^,_C@X>(G>N
MP\D"^(:MWEW8V4S<^^)E+#,^44#M[&+J5\D8JWG
M[\S6_:2?!^'5^MKNNI^;G[.*$Q+'/".WR;F/E.5D3/W^`*O_S-I(<0P4+R(Y
M2E,XMHQD2MZ,H+**(JBTCL)NR9DAD0"-6XRIV+V*1RJ#&^5+:6=ENJ!]X?*+
M%W7%82,3DNB$TF,*?77!TT+!H3N=3C6O+!#6YW(9BBU4ZW#OR^2]=;X"$SUF
M&S66;%H)5F"ND]"P>DQ_OC@=7/XT)/4NG?YBZ?3[84[NAKD?\/1G`)=#W[E!
M&$>E8'P\7R/8#
M06UCDZWC3L76/)2=5\$QEAK*1!W:CQQ#_C`O,:.*W<3-SQ//0#62SV*)27I'
MBJXRLGMX:4QDR"8/1&VU'3"';#\*0==R<;"5$2XN&SDQFY#LI
MW`EGXU4USK&J1N?@7:)%)L/UXD)11&-3I-(1JX*]XA*ER\BWT?&PEG&0JC+3
M5D_6F^'+U.FYIA!8"=!(:4B:TVJO.])&],FZ;SHPZ[ZHA%G-1J%,T1N5(4'P
M,\?3PQYB`HBIUHT,R?AA"+6T.R97E_1UJ(IJU.JK1@AU79H&61DDA[@-4([P
M.A$!(]R:5WXX#/+>[F.K]RA&8>PCTZ*JVL[G59OB\*^#B`KN*:5>D$7WD$4R
M-:C]G\H@FLT)P2'$/-V=?V-[86X&'7+QH]%G3"(3(.G,S[R2>2;:U43C9-B*
MW`BQ,3!.Z"=),,*N`_IG"^1>%\7PK0OYE[Y2J.8[8J_[:+NQ_V,2^7X8%*@F8:A#'_O=
MG\@B\PG]?"G[N?O].LA#?G\\RN,$/[S7`;_X4YE)WH9:V9]OU+4;]DZ02?/O08R8S3HRNR0L?M(2[F$BR4.]JC-4CIH[*F(*
M,BJR2>CDJ*0Z:
M65_@I66BXS8=)B,4">C"3$RL*R:/BD&XJ+)!+_E95ZV!&VA\X4M7"[Y#,K'G>>
M"I5*$4+Q*JV:[%@H$,60OG:]HU:4;3EQRA1K,0)I,>6\6GE6!`Q3%>)]!<1#
M*$;`8<'EI.H9!IR)T>3F:X^[S0*\ZJ$JM6GM#9##43]Z0(^%/1T%X4],AWV;
MJG!NP),1.0G2YX#Q4-GN-(1`)E"H@1X'N:R.$4)`W&8K^TDVJJ=\=JFQ@C".@KYFHPEOB
M2LH1-AXO)7"R&?>M@/=
*<+++:YF,H@8U%BR3@,V%HX[0UEKAM5!W1.3)NR2518$.&HS"LZLXHZ
MZJJ%2) !Q,"OK\7
M1#SM\3(E#7&74J%YG30Z=,_DHUR(-+_M9G2*7Q
M3-(QU2"T'ZV<;FOK6["I%HU,&!1VD901N[@91/C=I,\F,$CZ!'(MY_"8SKL%
MMI^UM8TPHI@4V/2<$:>*/T_5S+C//F?F"T\QBF%[#I;"LJ"]NL4H7=2J(C(9
M;44'1Q,DG%>@V_KGIT_SR2D4GZL@NO5-J9:S^;8DH&ND+W$AZP]SE+;8D&EI
MR4SD$5N-P(#-#3M52W#+.\ZC;><,3RI-M.Y`7N&P$'.+H2RUVXLS)P1=6#Z1
M:O@@I>B&4BQF("/MIQ3/D!G&`W-HL0K_C0+=ENUJCA`8-_9IE!&3.:59K5T,
M51.'_31)Q-MULZ#0$V.B8VHR]*55T7PHI7!=:::@+:OIP!R&[`<^KC&,ZA8L
MD,Q.8]/(6N35G$2Q8,8JCPK;N:88/][[>O[G-[A>O7W[FO1/IW_L<1]*6NI,E8_]>-X+-9J8
M$P>];[_=6_9?#CJWPJGHA12T.XX_@$'G<+ZF6*$T2!G=]F
M<'4#A_6^>_-!O#/5Q:LXE!EB#YUJ>G7Z\D*05R/9]]XE$N6[H(-'2.C8;^-!
MS=I/I2Q,L%(FU:2DJ>5!7MG$Z^[O['9WOMWSO`7Y59=,$.MRE8$"3M,.A#7-
MH[@H.S(JO>5BMN#7*N;ZF"&W=KO?;(O=AX_:#Z$V*-'6GO29H#K#XO**C&`L
MX'-U([[I/GS<$N\4J@Z9),K[JO__A_K_5\>?K]?7Z^OUK[O^#[*-7K<`0```
`
end
--
Daniel Simmons electronic mail : simmdan@isu.edu
Idaho State University voice mail : (208) 236-3199
Computer Center snail mail : Box 8037, Pocatello
================================================================================
Archive-Date: Mon, 23 May 1994 07:30:55 CDT
Sender: owner-litprog@SHSU.edu
From: "P.K.N. Bowman"
Reply-To: LitProg@SHSU.edu, P.K.N.Bowman@DURHAM.AC.UK
Subject: LitProg in Software Engineering
Date: 21 May 1994 18:59:56 GMT
Message-ID: <2rllnc$pcd@mercury.dur.ac.uk>
To: LitProg@SHSU.EDU
Can anyone (briefly) describe any experience they have of using Literate
Programming in any form of Software Engineering? I am especially
interested in:
o Reuse
o Maintenance
o Testing
o Reverse / re-engineering
The sort of things I would like to know are:
o Was LitProg specifically used to make these tasks easier?
o Did it make it easier?
o What problems were encountered?
o What problems were avoided?
This is for a SE exam on Wed. 25 May --- I would like to be able to
mention the latest developments in LitProg, since our notes still only
mention the existence of WEB for Pascal.
Thanks in advance.
-------------------------------------------------------------------------------
Phil Bowman =);-)>
p.k.n.bowman@durham.ac.uk
PGP Public Keys available by fingering d1a3d2@vega.dur.ac.uk (slow!)
Is there anywhere on this planet I can get a decent cup of Tea?
-------------------------------------------------------------------------------
================================================================================
Archive-Date: Mon, 23 May 1994 08:29:11 CDT
Sender: owner-litprog@SHSU.edu
Subject: Web for Objective-C?
Message-ID: <2rnig1$3eo@news.cs.tu-berlin.de>
From: doko@cs.tu-berlin.de (Matthias Klose)
Date: 22 May 1994 13:16:46 GMT
Reply-To: LitProg@SHSU.edu, doko@cs.tu-berlin.de
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
To: LitProg@SHSU.EDU
Does a Web exist for Objective-C? Perhaps written a grammar for
spidery web based an the c or c++ grammar?
Thanks, Matthias
================================================================================
Archive-Date: Mon, 23 May 1994 08:29:31 CDT
Sender: owner-litprog@SHSU.edu
Subject: Writing portable code - Summary
Message-ID: <1994May22.163051.1@vax1.tcd.ie>
From: fgartner@vax1.tcd.ie (Felix Gartner)
Reply-To: LitProg@SHSU.edu, fgartner@VAX1.TCD.IE
Date: Sun, 22 May 1994 16:30:51 GMT
To: LitProg@SHSU.EDU
As some people have expressed their interest in the responses I got
to my request, here's a short summary:
I wrote:
> I'm currently writing a program in C that should run on a variety of UNIX
> machines. Can anybody point me to a book or document that is especially
> concerned with writing _portable_ code. (I'm using CWEB, but that doesn't
> remove the more `technical' problems of porting programs, I believe 8-)
Recommended Books:
==================
Rex Jaeschke: "Portability and the C Language."
Hayden Books, 1989, ISBN 0-672-48428-5
Lapin, J. E.: "Portable C and UNIX system programming."
Prentice-Hall, 1987.
[Has a detailed overview over differences of tools and
portability of systems calls between the different
UNIX versions.]
Kernighan & Plauger: "Elements of Programming Style."
2nd ed, McGraw-Hill, 1978.
Brian Meek (ed.): "Guide to Good Programming Practice."
CWEB technique:
===============
Furthermore Stuart Ferguson and Lee Wittenberg both suggested a CWEB
technique that I find very interesting. It deals with the problem of
ugly #ifdef... #endif constructs in system dependent parts of the code.
With the use of LP sectioning you can separate the non-portable parts
from the portable ones (and even organize the the non-portable
parts very clearly around the target architecture).
Here's the example taken from Lee Wittenberg's posting (I've added a
few blank lines for clarity):
-------- start of example -------------------------------------
...assume that I want to write a program that has to run on
both Unix and MS-DOS. I'd structure it something like this:
@*1The Important Stuff.
This is where the portable code goes. Somewhere in here I'll use a
system-dependent chunk.
...
@
...
@*1System-Dependent Code.
The system-dependent stuff goes here.
@*2Unix-dependent code.
This is where we put the Unix-dependent stuff (obviously). In this
simplified example, we only have one system dependent chunk, but in a
more ambitious program there would be many such chunks. Each chunk
in this ``chapter'' must be wrapped in a #if or #ifdef, like so:
@=
#ifdef UNIX
/* Unix code goes here. */
#endif
@*2DOS-dependent code.
We do the same thing with the DOS code (explained separately,
naturally).
@=
#ifdef MSDOS
/* DOS code goes here */
#endif
@ Often, one version needs variables, functions, etc. that the others
needs a global variable, |xxx|:
@=
#ifdef MSDOS
int xxx;
#endif
------- end of example -----------------------------------------------
Other things:
=============
Andrew Mauer points out that requiring something like ANSI C or GNU C
will limit you. It seems that only K&R C won't cause problems.
Daniel Simmons, Andrew Mauer and Tony Coates mention two software packages
that can help to write portable code. One is dist-3.0 and the other is GNU's
autoconf.
Cheers,
Felix
================================================================================
Archive-Date: Tue, 24 May 1994 12:01:29 CDT
Sender: owner-litprog@SHSU.edu
Subject: Re: Need for new crossref. scheme in literate prog?
Message-ID:
From: mauer@mcs.anl.gov (Andrew Mauer)
Reply-To: LitProg@SHSU.edu, mauer@MCS.ANL.GOV
Date: Mon, 23 May 1994 16:26:19 GMT
To: LitProg@SHSU.EDU
If I understand you correctly, you are complaining that the current
method of indexing chunks and identifiers is not sufficient to explain
higher-level problems such as the use of `tempnam'.
I think that in your case, the use of an LaTeX index would make the
most sense. In my standard litprog latex environemnt, I have
environments called "bug", "warning", "improvement", and "note". These
all involve doing a "\index{bug}" command in the setup for the
environment. I generally attempt to augment this by a more specific
entry at the start of the bug report, for instance, I will have:
\begin{bug}
\index{bug!deauthorizing variables that are not visible}
[...]
\end{bug}
When I generate the LaTeX index at the end of my
document, I get entries like:
bug, 3, 11, 12, 16
authorize dynamically allocated memory, 3
deauthorizing global vars, 12
deauthorizing variables that are not visible, 11
[That is an actual entry.]
Although your article does not make a very strong case for being able
to use scrap numbering, it does seem that it would be useful to be
able to insert some sort of \chunklabel{} command as part of the name
of a chunk so that it could be referenced by number in the text of the
web.
In noweb, this capability seems to be available with a minimum about
of hackery. [Using \sublabel{LABEL} and
{\nwtagstyle{}\subpageref{LABEL}} or some other macro equivalent.]
/Andrew/
================================================================================
Archive-Date: Wed, 25 May 1994 02:35:37 CDT
Sender: owner-litprog@SHSU.edu
From: thompson@sun1.coe.ttu.edu
Subject: comp.programming.literate FAQ
Date: 25 May 1994 02:17:25 GMT
Message-ID:
Reply-To: LitProg@SHSU.edu, thompson@sun1.coe.ttu.edu
To: LitProg@SHSU.EDU
Archive-name: literate-programming-faq
Last-modified: 1994/04/25
Version: 1.1.6
Welcome to the Literate Programming Frequently Asked Questions List
-------------------------------------------------------------------
This version was created Monday - April 25, 1994 and should considered
stale after 90 days. Information contained in this document is the best
available at preparation. The original file was dated October 15, 1993
(just for historical purposes).
Disclaimer: "This FAQ is presented with no warranties or guarantees of
ANY KIND including correctness or fitness for any particular purpose.
The author of this document has attempted to verify correctness of the
data contained herein; however, slip-ups can and do happen. If you use
this data, you do so at your own risk."
Copyright 1993, 1994 David B. Thompson. All rights reserved worldwide.
Permission is granted to copy this document for free distribution so
long as it remains intact and unmodified. For other arrangements,
contact the author/maintainer via email: thompson@sun1.coe.ttu.edu.
What's New?
-----------
+ Updated noweb entry. (Did I get it right this time? ;-)
+ Updated WWW entry.
= ======================================================================
* Introduction or "What's this all about?"
------------------------------------------
This document is for new and experienced users of literate programming
tools. The purpose is to explain the concept of literate programming and
to provide a resource for locating files of interest to literate
programmers and those interested in literate programming.
The Literate Programming (LitProg) Frequently Asked Questions (FAQ) list
is maintained by Dave Thompson, who can be reached at:
thompson@sun1.coe.ttu.edu * Preferred mailing address for FAQ
related comments/questions.
wqdbt@ttacs1.ttu.edu * Forwarded to my pc.
Comment and constructive criticism is welcome. Direct flames to
/dev/null (or > nul if you're a msdos user! ;-) If you find an error,
please report it. I'm particularly interested in establishing the
locations of generally available literate programming tools. If you are
the author of such a tool and wish to have it included in this list,
please send email.
Please note this is a work-in-progress. It is *not* complete, and
probably will not be complete for some months. Nevertheless, the
information contained herein may be useful to some. Use it as it is
intended.
- ----------------------------------------------------------------------
- Typography
------------
Major sections of the FAQ are divided by double lines (====). Minor
sections and other divisions are separated by single lines (----).
Major topics use a "* " as a leader. Minor topics use a "- " as a
leader. This should simplify searching for topics.
= ======================================================================
Table of Contents:
------------------
* Introduction, or "What's this all about?"
- Typography
* How do I get the FAQ?
- Literate Programming FAQ
- FWEB FAQ
* Is there a newsgroup? (The comp.programming.literate newsgroup)
* What internet nodes are of interest to literate programmers?
* What is literate programming?
* How do I begin literate programming?
* What literate programming tools are available and where are they?
- APLWEB
- AWEB
- CLiP
- CWEB
- FunnelWeb
- FWEB
- IMPACT
- lit2x
- Literate Programmer's Workshop (LPW)
- MapleWEB
- MWEB (Schrod/Detig)
- MWEB (Sewell)
- noweb
- nuweb
- ProTeX
- RWEB
- SchemeWEB
- Spidery WEB
- WEB
- WinWordWEB
* Are there other tools I should know about?
- C2LaTeX
- c2cweb
- c2man
- cnoweb
- FunnelWeb mode
- noweb.el
- nuweb.el
- TIE
- Web mode
* What other resources are available?
- World Wide Web
- TeX Resources
- Virtual Coursework
* Are there any code examples?
- Examples included with developer's tools
- Cameron Smith's KR-CWEB
- Stanford GraphBase
* Bibliographies.
* How to anonymously ftp.
* Acknowledgements.
* End notes.
= ======================================================================
* How do I get the FAQ?
-----------------------
- Literate Programming FAQ
--------------------------
You have many ways to get a current copy of this FAQ. One is to use
anonymous ftp (if you don't know how, see a later section in this FAQ)
to connect to one of the Comprehensive TeX Arvchive Network (CTAN) sites
or the Literate Programming Archive and retrieve a copy of the file.
(For more information on CTAN and the literate programming archive, see
the section below entitled "Internet Nodes of Interest to Literate
Programmers.")
An alternative is to use the fileserver at Sam Houston State University
(SHSU). Send a message to FILESERV@SHSU.EDU (FILESERV@SHSU.BITNET) and
include in your message
SENDME LITPROG.FAQ
The file server will forward a copy of the file to you via email.
- ----------------------------------------------------------------------
- FWEB FAQ
----------
Marcus Speh maintains the FWEB FAQ. The current
version number is 1.29. It can be retrieved in the same way as this
FAQ; either by anonymous ftp or through the SHSU file server. On the
SHSU server, the file name is FAQ.FWEB. Invoke your ftp software, open
a connection to NIORD.SHSU.EDU [192.92.115.8], attach to the directory
FAQ, and transfer the file FAQ.FWEB.
Alternatively, send a message to the file server, FILESERV@SHSU.EDU
(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).
Also, Marcus Speh is looking for someone willing to take over the FWEB
FAQ. The text of his email message follows...
"Please add to the FWEB FAQ the note that I am looking for someone
to take the maintenance of the FAQ over - I am ready to assist in
any way whatsoever, including tons of mail, notes for
v1.29->v1.30, Texinfo sources, a WWW server and Hypertextification
etc."
If you're interested, send mail to marcus@x4u2.desy.de and express your
willingness to serve.
= ======================================================================
* Is there a newsgroup?
-----------------------
One of the most important resources is the literate programming
newsgroup, comp.programming.literate. You can read this newsgroup using
your standard reader. Altenatively, the newsgroup is gated to a mailing
list hosted by George Greenwade and Sam Houston State University. You
can subscribe by sending mail to the list-server, LISTSERV@SHSU.EDU (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.
= ======================================================================
* What internet nodes are of interest to literate programmers?
--------------------------------------------------------------
The principal nodes of interest to literate programmers are the Literate
Programming Archive (LPA hereafter) and the CTAN (Comprehensive TeX
Archive Network).
The Literate Programming Archive (LPA) is:
Node: ftp.th-darmstadt.de [130.83.55.75]
Directory: programming/literate-programming
Notes: Fastest response during off-U.S. [yep] business hours.
The CTAN sites are:
ftp host IP CTAN root Institution and Sponsor
-------------------------------------------------------------------------
ftp.tex.ac.uk 134.151.79.32 pub/archive Aston Univ./UK TeX U.G.
ftp.dante.de 129.206.100.192 soft/tex DANTE e.V.
ftp.shsu.edu 192.92.115.10 tex-archive Sam Houston State Univ.
Other nodes and directories of interest include:
Node: niord.shsu.edu [192.92.115.8]
Directory: various (do some snooping!)
Notes: Has a gopher server.
Node: ftp.desy.de [131.169.10.115]
Directory: pub/web. Various documents, samples, and the FWEB FAQ.
Notes: Has a www server, http://info.desy.de:80/
= ======================================================================
* What is Literate Programming?
-------------------------------
Literate programming is the combination of documentation and source
together in a fashion suited for reading by human beings. In fact,
literate programs should be enjoyable reading, even inviting! (Sorry
Bob, I couldn't resist!) In general, literate programs combine source
and documentation in a single file. Literate programming tools then
parse the file to produce either readable documentation or compilable
source. The WEB style of literate programming was created by D.E. Knuth
during the development of his TeX typsetting software.
All the original work revolves around a particular literate programming
tool called WEB. Knuth says:
The philosophy behind WEB is that an experienced system
programmer, who wants to provide the best possible
documentation of his or her software products, needs two
things simultaneously: a language like TeX for formatting,
and a language like C for programming. Neither type of
language can provide the best documentation by itself; but
when both are appropriately combined, we obtain a system
that is much more useful than either language separately.
The structure of a software program may be thought of as a
web that is made up of many interconnected pieces. To
document such a program we want to explain each individual
part of the web and how it relates to its neighbours. The
typographic tools provided by TeX give us an opportunity to
explain the local structure of each part by making that
structure visible, and the programming tools provided by
languages such as C or Fortran make it possible for us to
specify the algorithms formally and unambigously. By
combining the two, we can develop a style of programming
that maximizes our ability to perceive the structure of a
complex piece of software, and at the same time the
documented programs can be mechanically translated into a
working software system that matches the documentation.
Another author (Eric W. van Ammers) wrote me a short article treating
his opinions on literate programming. The text follows:
First observation on LP
About 90% of the disussion on this list is about problems with
applying some WEB-family member to a particular programming language or
a special documentation situation. This is ridiculous, I think. Let me
explain shortly why...
Lemma 1:
I have proposed for many years that programming has nothing to do
with programming langauges, i.e. a good programmer makes good programs
in any language (given some time to learn the syntax) and a bad
programmer will never make a good program, no matter the language he
uses (today many people share this view, fortunately).
Lemma 2:
Literate Programming has (in a certain way not yet completely understood)
to do with essential aspects of programming.
Conclusion 1:
A LP-tool should be independent of programming language.
Lemma 3:
It seems likely that the so called BOOK FORMAT PARADIGM [ref. 1] plays an
important role in making literate programs work.
Lemma 4:
There are very many documentation systems currently being used to produce
documents in the BOOK FORMAT.
Conclusion 2:
A LP-tool should be independent of the documentation system that the
program author whishes to use.
My remark some time ago that we should discuss the generic properties of
an LP-tool was based on the above observation.
References:
[1] Paul W. Oman and Curtus Cook. Typographical style is more than cosmetic.
CACM 33, 5, 506-520 (May 1990)
Second observation on LP
The idea of a literate program as a text book should be extendend
even further. I would like to see a literate program as an (in)formal
argument of the correctness of the program.
Thus a literate program should be like a textbook on mathematicics.
A mathematical textbook explains a theory in terms of lemma and
theorems. But the proofs are never formal in the sense that they are
obtaind by symbol manipulation of a proof checker. Rather the proofs are
by so called "informal rigour", i.e. by very precise and unambiguous
sentences in a natural language.
Eric W. van Ammers
Department of Computer Science
Wageningen Agricultural University
Dreijenplein 2 E-mail: ammers@rcl.wau.nl
6703 HB Wageningen voice: +31 (0)8370 83356/84154
The Netherlands fax: +31 (0)8370 84731
= ======================================================================
* How do I begin literate programming?
--------------------------------------
A recommended book is D.E. Knuth's collection of articles (1992)
"Literate Programming," Center for the Study of Language and
Information, Stanford University, ISBN 0-937073-80-6 (pbk). This book
gives insight into Knuth's thoughts as he developed the web system of
literate programming (and TeX for typesetting). It does not document
methods for literate programming.
A recommended book is Wayne Sewell's (1989) "Weaving a Program: Literate
Programming in WEB," Van Nostrand Reinhold, ISBN 0-442-31946-0 (pbk).
This book focuses on using Knuth's web system.
Some talk exists in the newsgroup/mailing list for a Usenet University
course in literate programming. I'm sure discussion of this topic will
be welcomed. If you are interested, please participate.
= ======================================================================
* What literate programming tools are available and where are they?
-------------------------------------------------------------------
A significant number of tools for literate programming are available.
Most have been ported from their original systems, so support multiple
computer platforms. If you are the developer of such a tool, and would
like to make the software freely available, please send me email and
I'll reply with a form (like those below) for you to fill in. (Or
short-circuit the process and kludge a form from below. :-)
- ----------------------------------------------------------------------
- APLWEB
--------
Developer: Christoph von Basum
Version: Unknown
Hardware: MSDOS
Languages: IBM APL2 and STSC APL
Formatter: Plain TeX
Availability: Anonymous ftp from:
LPA:/apl
watserv1.uwaterloo.ca:/languages/apl/aplweb
Readme: Unknown
Description: None available.
Support: Unknown
Note: The status of this particular package is unknown.
- ----------------------------------------------------------------------
- AWEB
------
Developer: Unknown
Version: Unknown
Hardware: Unknown
Languages: Ada
Formatter: Unknown
Availability: Anonymous ftp from:
LPA:/ada/web
Readme: Unknown
Description: None available
Support: Not supported.
- ----------------------------------------------------------------------
- CLiP
------
Developer: E.W. van Ammers and M.R. Kramer
Version: Unknown
Hardware: Vax/VMS, Unix, and MS-DOS
Languages: Any programming language.
Formatter: Any formatter (TeX, LaTeX, Troff, Runoff, etc) or any
wordprocessor including WYSIWYG systems (Word Perfect,
Win Word, Ami Pro, Word, etc.)
Availability: Anonymous ftp from:
sun01.info.wau.nl:/CLIP/ms_dos MS-DOS version
sun01.info.wau.nl:/CLIP/vax_vms VAX/VMS version
CTAN:/web/clip
LPA:/machines/ms-dos
LPA:/machines/vax
Readme: With bundle above
Description:
CLiP does not use explicite commands to perform the extraction
process. Rather it recognizes pseudostatemens written as comments in
the programming language in question. CLiP distinguishes
pseudostatments from ordinary comments because the former comply with
a a particular style. This style can be adjusted to suit virtually any
programming language. The CLiP approach to LP makes the system
extremely versatile. It is independent of programming language and
text processing environment. We designed CLiP to be compatible with
hypertext systems as well but we have not yet experimented with this
form of documentation.
Features:
+ CLiP imposes virtually no limitations on the text-processing system
used to produce the documentation. If the text-processor supports
these items you can
+ structure the documentation according to your own taste.
+ include drawings, pictures, tables etc.
+ disclose your documentatio my means of X-ref tables, Indexes,
Table of contents, Table of tables, Table of figures, etc.
+ typeset the documented code.
+ Extracts any number of modules from a maximum of 64 source files.
+ No pretty-printing. Code from the source files is copied "as is" to
the module.
+ Appearance of code segments in the documentation matches those of
the modules to ease the identification of code segements.
+ Supports partially specified data types.
+ Comprehensive user manual (preliminary version) and technical
description.
- No automatic generation of a X-ref table for program identifiers.
Support: Bugs, problems and assistance by e-mail:
ammers@rcl.wau.nl
- ----------------------------------------------------------------------
- CWEB
------
Developer: Silvio Levy and D.E. Knuth
Version: 3.0
Hardware: Unix systems (dos and amiga ports available)
Languages: C and C++
Formatter: Plain TeX and LaTeX.
Availability: Anonymous ftp from:
labrea.stanford.edu:/pub/cweb
LPA:/c.c++
CTAN:/web/c_cpp/cweb
DOS version in CTAN:/web/c_cpp/cwb30p8c
DOS version in LPA:/machines/ms-dos
Amiga version CTAN:/web/c_cpp/AmigaCWEB
Mac port of CTANGLE in LPA:/machines/mac
LaTeX support in LPA:/c.c++
Readme: Bundled with above
Description: No description provided.
Support: Bugs to levy@math.berkeley.edu
Note: A fork of CWEB 3.x was developed by Marc van Leeuwen
which implements several changes to CWEB. It is
available for anonymous ftp from ftp.cwi.nl:pub/cweb. The principle
changes are:
- Scans include files for typedef definitions
- Grammar and formatting rules are well separated, allowing for
run-time selection of a rule set (via command line option)
- New manual.
- ----------------------------------------------------------------------
- FunnelWeb
-----------
Developer: Ross N. Williams: ross@guest.adelaide.edu.au
Version: Unknown
Hardware: MSDOS, Mac, VMS, Sun. Other ports reported.
Languages: No restrictions.
Formatter: Plain TeX for printing. Otherwise, no restrictions.
Availability: Anonymous ftp from:
CTAN:/web/funnelweb
LPA:/independent
ftp.adelaide.edu.au:/pub/funnelweb
Readme: With bundle above.
Description:
FunnelWeb is a production-quality literate-programming tool that
emphasises simplicity and reliability. Everything about FunnelWeb,
from the simplicity of its language to the comprehensive tutorial in
the user's manual, has been designed to make this as simple, as
practical, and as usable a tool as possible.
Features:
+ Provides a simple macro preprocessor facility.
+ Can produce typeset documentation.
+ Runs on Sun, VMS VAX, Macintosh, PC, and others.
+ Portable C source code distributed under GNU licence.
+ Comprehensive user's manual including tutorial.
+ Programming-language independent.
+ Can generate multiple output files.
+ Allows complete control over the output text.
+ Regression test suite with over 200 tests.
+ Fully worked example (in /pub/funnelweb/examples).
- Requires TeX to produce typeset documentation.
- Typesets program code using TT font only.
Support: No formal support available. Mailing list maintained with
about 50 subscribers. Informal assistance available from
mailing list.
- ----------------------------------------------------------------------
- FWEB
------
Developer: John A. Krommes
Version: 1.30a (1.40 for the experienced, patient, and brave)
Hardware: Unix, VMS, and DOS platforms (anything with ANSI C)
Languages: C, C++, Fortran-77, Fortran-90, Ratfor, TeX; also, a
language-independent mode.
Formatter: Plain TeX and LaTeX.
Availability: Anonymous ftp from:
ftp.pppl.gov:/pub/fweb
CTAN:/web/fweb
LPA:/fweb
DOS version in LPA:/machines/ms-dos
Readme: In bundle with above.
Description:
It also has a well-developed user's manual and its own FAQ (see
above). Beginning with 1.40, documentation is maintained in gnu
texinfo format. It runs on most platforms: VMS, PC, UNIX, and pretty
much anything that the GNU C compiler (GCC) is supported for.
Features:
+ Processes multiple languages during a single run (so one can mix C
and Fortran, for example).
+ Language-independent mode (v1.40).
+ Ability to turn off pretty-printing (v1.40).
+ Built-in Ratfor translator.
+ Built-in macro preprocessor (closely follows ANSI C, with
extensions).
+ A style file that allows the user to adjust many parameters and
behavior patterns of FWEB.
+ Various operator-overloading features that provide additional
pretty-printing capabilities to languages such as C++ and
Fortran-90.
+ Numerous miscellaneous features and command-line options.
Support: Bug reports and suggestions to krommes@princeton.edu
- ----------------------------------------------------------------------
- IMPACT
--------
Developer: Timothy Larkin, from Levy/Knuth CWEB 3.1
Version: 1.0
Hardware: Macintosh; requires AppleEvents.
Languages: C, C++
Formatter: TeX
Availability: CTAN archives
Readme: A short readme file is included in the SEA archive.
Description:
IMPACT implements CTangle from the Levy/Knuth CWEB 3.1. It operates as
a foreground program, tangling files selected from the Mac File
Picker. Or it can operate in the background, tangling files in
response to odoc events sent by other applications, such as editors.
Support:
I welcome any reports of bugs. The product will be updated as new
versions of the CWEB appear. Other features may be added as users
suggest them.
- ----------------------------------------------------------------------
- lit2x
-------
Developer: Unknown
Version: Unknown
Hardware: Unknown
Languages: Unknown
Formatter: Unknown
Availability: Anonymous ftp from:
LPA:/independent
Readme: Unknown
Description: None available
Support: Unknown
- ----------------------------------------------------------------------
- Literate Programmer's Workshop (LPW)
--------------------------------------
Developer: Norbert Lindenberg
Version: 1.1
Hardware: Apple Macintosh
Languages: C++, Object Pascal & others
Formatter: self-contained WYSIWYG system
Availability: Anonymous ftp from:
LPA:/machines/mac
CTAN:/web/lpw
ftp.apple.com:/pub/literate.prog
Readme: With bundle above. Also comes with 38-page manual.
Description:
The Literate Programming Workshop is an environment for the integrated
development of program source text and documentation in combined
documents. It consists of a WYSIWYG word processor based on a style
sheet approach, a mechanism to extract parts of the text in a
document, and a project management system that handles multi-document
projects. The system is designed to be used in conjunction with the
Macintosh Programmer's Workshop: it prepares raw source text for the
MPW compilers, accepts MPW error messages, and shows them in the
context of the original documents. Automatic indexing and hypertext
features allow for easy access to both source text and documentation.
LPW is shareware.
Support: Bugs, problems, and questions to lpw@aol.com.
- ----------------------------------------------------------------------
- MapleWEB
----------
Developer: Unknown
Version: Unknown
Hardware: Unknown
Languages: Maple
Formatter: Unknown
Availability: Anonymous ftp from:
LPA:/maple
Readme: Unknown
Description: None
Support: Unknown
- ----------------------------------------------------------------------
- MWEB (Schrod/Detig)
---------------------
Developer: Joachim Schrod
Version: Unknown
Hardware: Unknown
Languages: Modula-2
Formatter: Unknown
Availability: Anonymous ftp from:
LPA:/modula-2
Readme: Unknown
Description: None
Support: Not supported.
- ----------------------------------------------------------------------
- MWEB (Sewell)
---------------
Developer: Sewell
Version: Unknown
Hardware: Unknown
Languages: Modula-2
Formatter: Unknown
Availability: Anonymous ftp from:
LPA:/modula-2
Readme: Unknown
Description: None
Support: Not supported.
- ----------------------------------------------------------------------
- noweb
-------
Developer: Norman Ramsey
Version: 2.5a
Hardware: Unix and DOS platforms.
Languages: All programming languages.
Formatter: Plain TeX and LaTeX formatters.
Availability: Anonymous ftp from:
CTAN:/web/noweb
LPA:/independent
DOS version also in LPA:/machines/ms-dos
also bart.kean.edu:/pub/leew
Last recourse, use bellcore.com:/pub/norman
Readme: With bundle above.
Description:
noweb is designed to meet the needs of literate programmers while
remaining as simple as possible. Its primary advantages are
simplicity, extensibility, and language-independence. noweb uses 5
control sequences to WEB's 27. noweb now supports indexing and
identifier cross-reference. The simple noweb manual is only 2 pages;
documenting the full power of noweave and notangle requires another 3
pages. noweb works ``out of the box'' with any programming language,
and its formatter-dependent part is a 60-line nawk program. The
primary sacrifice relative to WEB is the loss of prettyprinting.
Support: email to the author
- ----------------------------------------------------------------------
- nuweb
-------
Developer: Preston Briggs: preston@cs.rice.edu
Version: 0.87
Hardware: Unix systems: Sparcs, RS/6000s, HPs; (!) MSDOS and Amiga.
Languages: Any programming language or combination of programming
languages.
Formatter: Latex
Availability: Anonymous ftp from:
Unix: CTAN:/web/nuweb
DOS: CTAN:/web/nuweb-pc
LPA:/independent
Amiga: CTAN:/web/nuweb/nuweb_ami
Amiga: wuarchive.wustl.edu/pub/aminet
Readme: Send mail to preston@cs.rice.edu
Description:
A single program that takes a web file written in a combination of
latex and any programming language(s) and produces a latex file that
can be pretty printed and a set of files containing code for
compilation/interpretation by the appropriate language processors.
Strengths include speed, simplicity, multiple languages, nice indices
and cross-references, latex. Doesn't require any special macros or
macro files.
Drawbacks: latex-dependent, no code pretty printing, harder to make
indices than cweb.
More good stuff: nice support for make, doesn't reformat source files,
so they're easy to debug. Lots of control without too much effort.
That is, it doesn't do too much!
Future directions... Very little change planned, except perhaps
refinements in the indexing software.
Support: Hack it yourself or send e-mail to preston@cs.rice.edu
- ----------------------------------------------------------------------
- ProTeX
--------
Developer: Eitan Gurari
Version: Unknown
Hardware: Unknown
Languages: Unknown
Formatter: TeX
Availability: Anonymous ftp from:
LPA:/independent
Readme: Unknown
Description: There is a book published on using ProTeX,
@Book{Gurari:TLD94,
author = "Eitan M. Gurari",
title = "{\TeX} and {\LaTeX}: Drawing and
Literate Programming",
publisher = pub-MH,
year = "1994",
address = pub-MH:adr,
bibdate = "Wed Sep 29 17:55:14 1993",
acknowledgement = ack-nhfb,
}
Support: Unknown
- ----------------------------------------------------------------------
- RWEB
------
Developer: Unknown
Version: Unknown
Hardware: Unknown
Languages: Unknown
Formatter: Unknown
Availability: Anonymous ftp from:
LPA:/reduce
Readme: Unknown
Description: Web generator in AWK.
Support: Unknown
- ----------------------------------------------------------------------
- SchemeWEB
-----------
Developer: John D. Ramsdell
Version: 2.0
Hardware: Unix and DOS platforms
Languages: Any dialect of Lisp.
Formatter: LaTeX.
Availability: The Unix version is in the Scheme Repository and it is
available via anonymous ftp from:
cs.indiana.edu:pub/scheme-repository/new/schemeweb.sh
LPA:/lisp
CTAN:web/schemeweb
The DOS version is part of the PCS/Geneva Scheme system
which is available via anonymous ftp from:
cui.unige.ch:/pub/pcs
LPA:/machines/ms-dos
Readme: In bundle with above.
Description:
SchemeWEB is a Unix filter that allows you to generate both Lisp and
LaTeX code from one source file. The generated LaTeX code formats
Lisp programs in typewriter font obeying the spacing in the source
file. Comments can include arbitrary LaTeX commands. SchemeWEB was
originally developed for the Scheme dialect of Lisp, but it can easily
be used with most other dialects.
Support: Bug reports to ramsdell@triad.mitre.org.
- ----------------------------------------------------------------------
- SpideryWEB
------------
Developer: Norman Ramsey
Version: Unknown
Hardware: Unix and DOS platforms
Languages: Most Algol-like languages, including C, Ada, Pascal,
Awk, and many others.
Formatter: Plain TeX and latex for text formatters.
Availability: Anonymous ftp from:
CTAN
LPA:/spiderweb
Readme: In distribution.
Description:
A system for building language-dependent WEBs. Spider is frozen; no
further development is planned.
Support: Bug reports to spider-bugs@oracorp.com.
- ----------------------------------------------------------------------
- WEB
-----
Developer: Donald Knuth
Version: Unknown
Hardware: Unknown
Languages: Pascal
Formatter: TeX (of course! ;-)
Availability: Anonymous ftp from:
LPA:/pascal
Readme: Unknown
Description:
This is the original software that started it all. The original TeX
processor was written in WEB.
Support: None known.
- ----------------------------------------------------------------------
- WinWordWEB
------------
Developer: Lee Wittenberg
Version: Unknown
Hardware: Needs Microsoft Word for Windows, v.2.x, and, of course,
MS-Windows 3.x.
Languages: Any programming language.
Formatter: Word for Windows 2.x for text formatting and file
maintenance.
Availability: Anonymous ftp from:
bart.kean.edu:pub/leew
LPA:/machines/ms-dos
World-Wide Web (WWW)
Readme: WORDWEB.DOC in the downloadable package describes the
system.
Description:
WinWordWEB is a set of a Word for Windows macros (plus a paragraph
style) that provide a crude literate programming environment. The
``look and feel'' of the system is based on Norman Ramsey's noweb, but
can easily be modified to suit individual tastes.
Support:
None. WinWordWEB was written as a prototype to see if a WYSIWYG
literate programming system was possible. It is intended as a jumping
off point for future work by others. However, the system is
surprisingly usable as it stands, and the author is interested in
hearing from users (satisfied and dissatisfied).
Anyone interested in actively supporting (and improving) the product
should contact the author via email.
= ======================================================================
* Are there other tools I should know about?
--------------------------------------------
First of all, I'll list some not-quite-literate-programming tools.
Some may consider these to be pretty-printers. Others may call them
literate programming tools. In any event, they don't seem to be quite
in the same category as the tools listed above, so I'll include them
here.
- C2LaTeX
---------
Developer: John D. Ramsdell
Version: Unknown
Hardware: Unix
Languages: C
Formatter: LaTeX but it's easy to change the formatter.
Availability: Anonymous ftp from
omnigate.clarkson.edu:/pub/tex/tex-programs/c2latex.
Readme: Absent. Documentation is in the C source for c2latex.
Description:
C2latex provides simple support for literate programming in C. Given
a C source file in which the comments have been written in LaTeX,
c2latex converts the C source file into a LaTeX source file. It can
be used to produce typeset listings of C programs and/or documentation
associated with the program.
C2latex produces LaTeX source by implementing a small number of rules.
A C comment that starts at the beginning of a line is copied
unmodified into the LaTeX source file. Otherwise, non-blank lines are
surrounded by a pair of formatting commands (\begin{flushleft} and
\end{flushleft}), and the lines are separated by \\*. Each non-blank
line is formatted using LaTeX's \verb command, except comments within
the line are formatted in an \mbox.
Support: Send bug reports to ramsdell@mitre.org.
- ----------------------------------------------------------------------
- c2cweb
--------
Developer: Werner Lemberg
Version: 1.1
Hardware: DOS, OS/2, Unix (presumed) -- source included
Languages: C, C++
Formatter: TeX
Availability: Anonymous ftp from
CTAN:/web/c_cpp
Readme: In distribution.
Description:
c2cweb will transform plain C or C++ code into a CWEB file to get a
pretty formatted output. A modified CWEAVE (which transforms the CWEB
file into a TeX file, see below) is included also.
Support: Werner Lemberg
- ----------------------------------------------------------------------
- c2man
-------
Developer: Graham Stoney
Version: Unknown
Hardware: Presumably anything with a C compiler.
Languages: C
Formatter: nroff -man, texinfo
Availability: Anonymous ftp from
ftp.wustl.edu:
/usenet/comp.sources.reviewed/volume03/c2man*
ftp.informatik.uni-stuttgart.de:
/pub/archive/comp.sources/reviewed/c2man*
Readme: Unknown
Description:
The primary philosophy here is to use the programming language as far
as possible to express the programmer's intentions, and to use
comments only when the programming language is not sufficiently
expressive. A comment can then become part of the language grammar
which is recognised by a "documentation compiler". This tool parses a
superset of the programming language and can automatically generate
documentation in human-readable form by associating the programmer's
comments with the objects in the code by their context.
Support: Unknown.
- ----------------------------------------------------------------------
- cnoweb
--------
Developer: Jim Fox
Version: 1.4 (January 4, 1991)
Hardware: Anything with C and TeX.
Languages: C
Formatter: Plain TeX.
Availability: Anonymous ftp from:
CTAN
LPA:/c.c++
Readme: Unknown, cnoweb.tex contains documentation.
Description:
cnoweb is as it's name describes: write C, not web. No tangling or
weaving is implemented. Documentation (between standard /* */
delimiteres) is written in TeX. cnoweb provides typesetting of
documentation, an table of contents of routines, and pretty-printing
of C source.
Support: None known.
- ----------------------------------------------------------------------
- Funnelweb Mode
----------------
Developer: Daniel Simmons
Version: Unknown
Availability: Litprog archives (was in email)
Anonymous ftp from:
ftp.imada.ou.dk
Description:
The other day I did a quick hack to nuweb.el as included with the nuweb
distribution so as to make a funnelweb-mode.el. I've only used it
briefly, and I'm sure that it can be improved quite a bit. I've been
thinking about adding support for folding on sections, a pull-down menu
to select macro definitions (like the recent functions posted to
gnu.emacs.sources for a C function definition pull-down menu) and some
kind of tags support for funnelweb.
Support: Unknown
- ----------------------------------------------------------------------
- noweb.el
----------
Developer: Bruce Stephens
Version: Unknown.
Availability: LitProg archives (in an email message).
Description:
This is a very simple mode I just hacked up. There's a lot wrong with
it, but I thought others may be interested, even as it stands. It
*requires* text properties, and assumes those used in GNU Emacs 19.22;
it'll quite likely work with Lucid Emacs, but I haven't tried it.
I use it with auctex8.1 and cc-mode 3.229, both of which are loaded
separately (I think my emacs is dumped with them, in fact).
The idea is to have one mode (which calls itself c-mode, but actually
has LaTeX-mode keybindings) generally (this means that the code is
hilighted nicely), and have the code chunks use a different keymap.
Support: Email to ddw@sunbim.be
- ----------------------------------------------------------------------
- nuweb.el
----------
Developer: Dominique de Waleffe
Version: 1.15 (2.0 RSN)
Availability: Anonymous ftp from:
LPA
CTAN
Description:
Provides a major mode extending Auctex for editing nuweb files. Main
features (in 2.0):
- Edit scrap bodies in a separate buffer in a different mode
(selected using emacs defaults for files, specific indication
-*-mode-*-, or a buffer-local variable)
- Extends Auctex commands so that nuweb is called before LaTeX,
- Easy navigation on scrap definition and use points.
Support: Email to ddw@sunbim.be
- ----------------------------------------------------------------------
- TIE
-----
Developer: Unknown
Version: Unknown
Hardware: Unknown
Availability: Anonymous ftp from:
LPA:/Tools
Readme: Unknown
Description:
This software merges change files.
Support: Unknown
- ----------------------------------------------------------------------
- Web mode
----------
Developer: Bart Childs
Version: Unknown
Tools supported: web, fweb, cweb, funnelweb
Availability: Anonymous ftp from
ftp.cs.tamu.edu:pub/tex-web/web/EMACS.web-mode
thrain.anu.edu.au:pub/web/EMACS.web-mode
Description:
This version works with versions 18 and 19 of Emacs to be best of my
knowledge. I have cleaned up a number of documentation items ...
In the same directory is wm_refcard.tex which is an edited version of
the famous one to include some web-mode commands.
The files limbo* are related to its use and notice that half them
have an uppercase L in them for LaTeX. The setup is based upon the
fact that we (I am not alone here) primarily use FWEB for C and Fortran
programming.
We are using version 1.40 of FWEB although John Krommes warns that it
is not mature and the manual is not yet updated. The info files are!
We are using LaTeX almost exclusively. That will likely change and we
will revert to version 1.30 if the final form of 1.40 cannot return
to the simple section numbers and avoid the HORRIBLE LATEX 0.1.7.2.4.6
type section numbers.
Support: Unknown
= ======================================================================
* What other resources are available?
-------------------------------------
- World Wide Web
----------------
An untapped resource (by me anyway ;-) is the World Wide Web. Marcus
Speh has expended considerable effort in this regard. If you're
connected to WWW, then access:
http://info.desy.de/user/projects/LitProg.html
If you aren't connected to WWW, telnet to info.cern.ch and explore.
You can reach Marcus' literate programming pages by typing:
go http://info.desy.de/user/projects/LitProg.html
Help for people who have only Email and neither WWW nor telnet, can be
obtained by Email from TEST-LIST@INFO.CERN.CH by sending a message,
SEND ,
for example,
SEND http://info.desy.de/user/projects/LitProg.html
to retrieve the LitProg library page. A help file can be retrieved by
sending a message to the list server above with the text
HELP
in the body of the message. Instructions will be returned by email. For
literate programming documents, you can try anonymous ftp to ftp.desy.de
[131.169.10.115] and get the file:
/pub/userWWW/projects/Announce/LitProg.txt
- ----------------------------------------------------------------------
- TeX Resources
---------------
Another resource of interest to literate programmers is the info-tex
mailing list. If you're using (La)TeX as your typsetting system and
have access to internet, then you should investigate this mailing list.
Mail list service is available through the SHSU list-server. To
subscribe, send a message to LISTSERV@SHSU.EDU (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.
Another reason the TeX resources should be important is that so many of
the literate programming tools rely on either plain TeX or LaTeX as
their text formatter. (La)TeX software systems exist for most computing
platforms. These systems can be found on CTAN and other major archive
sites. Use archie to find them or simply ftp to one of the CTAN
sites and browse.
- ----------------------------------------------------------------------
- Virtual Coursework
--------------------
Marcus Speh plans an introductory course on Literate Programming on the
Internet, part of the first semester of "Global Network Academy" [GNA],
a non-profit corporation incorporated in the state of Texas, affilated
with the Usenet University project. The texts/sample programs for this
class will be made available via the World-Wide Web. A special room on GNA
Virtual Campus will be staffed by a consultant in one to two hour
shifts. Students with questions can telnet to the virtual campus and
ask questions of the staff there. If you are interested in
registering for the course either as a student or as a consultant,
please contact marcus@x4u.desy.de. You will receive a standard reply
message; no further action will be taken until June 94. Interested
parties can check teh hypertext notes for the ongoing C++ Course done in
a similar fashion, at URL http://info.desy.de/pub/uu-gna/html/cc/index.html
[Editor's note: Because of workload, Marcus requests that email
inquiries be limited to a statement of interest for either a student or
consultant position until June 1994.]
= ======================================================================
* Are there any code examples?
------------------------------
Examples of web programs are included with the FWEB, CWEB, and noweb
distributions. nuweb is written in itself.
Cameron Smith converted the K&R calculator program into a literate
program. It can be retrieved by anonymous ftp from:
niord.shsu.edu [192.92.115.8] directory kr-cweb-sample as
krcwsamp.zip
or from
LPA/Documentation
Ross Williams has released a funnelweb example. You can retrieve this
file from node ftp.adelaide.edu.au [129.127.40.3] as
/pub/funnelweb/examples/except.*
This file should be on CTAN as well.
Lee Wittenberg has posted a few litprog examples. They are available
via anonymous ftp from:
bart.kean.edu:/pub/leew/samples.LP
The Stanford GraphBase is a large collection of programs by Don Knuth for
doing all kinds of computations and games with graphs; it is written in
(Levy/Knuth) CWEB. More details in the distribution. It is available
via anonymous ftp from:
labrea.stanford.edu:/pub/sgb
= ======================================================================
* Bibliographies
----------------
Nelson Beebe has collected an extensive bibliography treating literate
programming. His work is available for anonymous ftp from
ftp.math.utah.edu [128.110.198.2] in directory /pub/tex/bib as files:
litprog.bib
litprog.ltx
litprog.twx.
Although I have not verified this, LPA is an alternate source for these
files. Note that they are updated frequently (Nelson says several times
each week), so be sure to get a fresh copy before extensive use.
Joachim Schrod indicates that these files may be updated daily and can
be retrieved via anonymous ftp at LPA/documentation.
= ======================================================================
* How to anonymously ftp
------------------------
Pretty much everything mentioned here is available by anonymous FTP.
FAQ lists cross-posted to news.answers and rec.answers can be gotten
from rtfm.mit.edu [18.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 */
> /* 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.
for how to transfer, extract, and virus-check binary files. (At
rtfm.mit.edu)
If you can't FTP from your site, use one of the following ftp-by-mail
servers:
ftpmail@decwrl.dec.com
ftpmail@src.doc.ic.ac.uk
ftpmail@cs.uow.edu.au
ftpmail@grasp.insa-lyon.fr
For complete instructions, send a message reading "help" to the server.
If you don't know exactly what you're looking for, or exactly where it
is, there are programs and servers that can help you. For more info,
send e-mail to mail-server@rtfm.mit.with with the body of the
message reading send usenet/news.answers/finding-sources
Thanks to Aliza R. Panitz (the "buglady") for this text. I copied it
verbatim from her post on faq-maintainers with only minor modifications.
= ======================================================================
* Acknowledgements
------------------
This document would not have happened without the help of many people.
Among them are Marcus Speh, George Greenwade, Rob Beezer, Joachim
Schrod, Piet van Oostrum, and Ross N. Williams. A special thanks to
Aliza R. Panitz for the text describing how to execute an anonymous ftp
for files of interest.
Any omissions from these acknowledgements should be considered an act of
stupidity on my part. Of course, the authors of literate programming
tools mentioned above all play a vital role in the vitality of literate
programming. Furthermore, participants in the comp.programming.literate
newsgroup (and associated mailing list) all contributed in various
fashions. Thank all of you.
= ======================================================================
* End notes
-----------
This document will continue to evolve. I'm planning on adding entries
for additional literate programming tools and will expand the sections
on examples as more examples become available. Tools I will include are
WEB (the original pascal version) for starters. Others will be added as
I find and document them. Omission of a particular tool should not be
considered a snub in any sense--simply an error or oversight on my part.
= End of File ==========================================================
================================================================================
Archive-Date: Wed, 25 May 1994 13:20:13 CDT
Sender: owner-litprog@SHSU.edu
Date: Wed, 25 May 94 14:08:32 -0400
From: gtk@walsh.med.harvard.edu (Gregory Tucker-Kellogg)
Reply-To: LitProg@SHSU.edu, gtk@WALSH.MED.HARVARD.EDU
Message-ID: <9405251808.AA12426@walsh.med.harvard.edu>
To: Literate Programming
Subject: c2cweb in other that ZIP?
I've been trying to get c2cweb. Does anyone have it compressed in .z,
.Z, or .gz format? The CTAN archive has only a ZIPed version.
Thanks,
--
Gregory W. Tucker-Kellogg
Department of Biological Chemistry and Molecular Pharmacology
Harvard Medical School, Boston MA 02115
(617) 432-0930 or (617) 432-3212
================================================================================
Archive-Date: Wed, 25 May 1994 14:08:35 CDT
Sender: owner-litprog@SHSU.edu
Date: Wed, 25 May 1994 12:08:40 -0700 (MST)
From: bauer@spock.AME.Arizona.EDU (Holger Bauer 8/93)
Reply-To: LitProg@SHSU.edu, bauer@SPOCK.AME.ARIZONA.EDU
Subject: Re: c2cweb in other that ZIP?
To: LitProg@SHSU.edu, gtk@WALSH.MED.HARVARD.EDU
CC: litprog@shsu.edu
Message-ID: <9405251908.AA13754@AME.Arizona.edu>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-Transfer-Encoding: 7BIT
>>>>> "Gregory" == Gregory Tucker-Kellogg writes:
Gregory> I've been trying to get c2cweb. Does anyone have it
Gregory> compressed in .z, .Z, or .gz format? The CTAN archive
Gregory> has only a ZIPed version.
Gregory> Thanks,
Gregory> -- Gregory W. Tucker-Kellogg Department of Biological
Gregory> Chemistry and Molecular Pharmacology Harvard Medical
Gregory> School, Boston MA 02115 (617) 432-0930 or (617) 432-3212
unzip is also available for UNIX !
Get it and it works just fine.
Holger
|==========================================================================|
| _ _ _ |
| Holger Bauer ... __o ( ) ( ) (_ ) _ |
| 1426 E. 8th St. .. _`\<,_ | |_| | _ | | __ (_) |
| Tucson, AZ 85719 ...(*)/ (*). | _ | /'_`\ | | /'_ `\ | | |
| (602) 623-9003 | | | | ( (_) ) | | ( (_) | | | |
| (_) (_) `\___/ (___)`\__ | (_) |
|============================= bauer@spock.ame.arizona.edu === ( )_) | ====|
"Experience comes from bad judgment" Mark Twain \___/'
================================================================================
Archive-Date: Wed, 25 May 1994 16:17:08 CDT
Sender: owner-litprog@SHSU.edu
Date: Wed, 25 May 1994 16:16:57 CDT
From: "George D. Greenwade"
Reply-To: LitProg@SHSU.edu, bed_gdg@SHSU.EDU
To: LitProg@SHSU.edu, bauer@SPOCK.AME.ARIZONA.EDU
Message-ID: <0097EF71.F33E5340.2708@SHSU.edu>
Subject: Re: c2cweb in other that ZIP?
On Wed, 25 May 1994 12:08:40 -0700 (MST), bauer@spock.AME.Arizona.EDU
(Holger Bauer 8/93) posted:
> unzip is also available for UNIX !
Just for completeness on this -- on any CTAN host, the files for Info-ZIP's
zip/unzip for most platforms resides in the tools/info-zip/ hierarchy.
--George
================================================================================
Archive-Date: Wed, 25 May 1994 19:14:46 CDT
Sender: owner-litprog@SHSU.edu
From: Multimedia@cce.ubc.ca (Charles Tremewen)
Reply-To: LitProg@SHSU.edu, Multimedia@CCE.UBC.CA
Subject: MultiComm'94 - Call for Papers
Date: 25 May 1994 23:36:47 GMT
Message-ID:
To: LitProg@SHSU.EDU
CALL FOR PAPERS
******************************************
* MULTICOMM '94 *
******************************************
* Exploring Multimedia Solutions *
* in Business and Education *
* *
* November 2 & 3, 1994 *
* *
* The Westin Bayshore *
* Vancouver, British Columbia, CANADA *
******************************************
Hosted by The University of British Columbia
Continuing Studies
In association with
The International Interactive
Communications Association.
Call for Papers & Presentations
MultiComm `94 Conference Theme:
Advancing the Art of Communications Through the New Media.
Conference Description:
Information and communication are becoming more and more
important in today's changing world. Existing technology
promises innovative solutions for the future. The changes
that lie ahead are going to dramatically affect the ways we
work, learn and communicate. This informative two day
conference will identify how multimedia solutions available
today are influencing these areas. Conference topics will
include, but are not be limited to, leading-edge solutions in
the following areas:
* Corporate training and communications
* Education and research
* The arts
* The classroom of the future
* CD-ROM publishing
* On-line information, distribution and the Information
Superhighway
* The telecommunication industry
* Production, marketing and copyright
* Technology integration
In keeping with the conference subject, presenters are
encouraged to use multimedia in their presentations.
Presentations will be 45 minutes long with a 15 minute break
between each session.
Information for Authors:
Authors must submit copies of their manuscripts in hard copy
or by E-mail. They must include a one-paragraph abstract with
keywords and a one-paragraph biography. Each paper must be
accompanied by an audio-visual plan and a submission letter
that indicates to which one or two conference areas the topic
is most relevant. Authors will be notified of acceptance
after July 1, 1994. Upon acceptance of their paper, authors
will be asked submit copies of their paper for the proceedings
in hard copy duplicate and on diskette. A scanned personal
photograph is optional.
The Audio-Visual Plan:
Each submission must include a detailed audio visual plan that
identifies equipment that will be provided and the equipment
that will be required. Details will include such things as
descriptions of computers along with audio and video card
outputs, video resolutions, colour requirements and a full
schematic of the required equipment set-up (listing all cable
connection requirements for audio, video, and power). All
selected presenters will be required to set-up equipment the
day prior to the conference in the A/V preview room to assure
the presentation's integrity. It is recommended that each
presenter provide as much of their own equipment as possible.
Arrangements must be made in advance with the conference chair
regarding specialized equipment requests.
Submission Deadline:
Papers are to be forwarded to the Conference Chair by noon
(PST) of June 30, 1994. The conference advisory will complete selection by
July 15, 1994 (for preliminary brochure) and each accepted author will be
notified on or shortly thereafter that date.
Concurrent Sessions by"Young Producers"
This year the advisory ihas decided to offer a special series
of concurrent sessions that will be open to the category of
"Young Producers" . This is in recognition of the growing
number of young, talented producers in the school system
(grades 7-12 (13)). Each of these submissions must conform
with the above requirements but are to be submitted to the
conference advisory by the producer's instructor and should
judged as a best of school/district . For more details on
this program please contact the Conference Chair at (604)
822-0692.
Vendor Exposition:
Leading multimedia vendors are encouraged to participate in
the "Vendor Expo" which will be occuring throughout the
conference. For a details on booth information , costs etc.,
please contact the conference centre at the address below and
request the " MultiComm `94 Vendor Kit" package.
Submit Papers to:
MultiComm '94
The University of British Columbia
5997 Iona Drive, Vancouver, BC, Canada V6T 1Z1
Attn: Conference Chair
Phone: (604)822-0692 or 222-5256
FAX: (604) 822-0694 or 222-5249
E-mail: multicomm@cce.ubc.ca
Conference Chair: Charles Tremewen, University of British
Columbia, Vancouver, B.C.
****END*****
================================================================================
Archive-Date: Fri, 27 May 1994 18:59:52 CDT
Sender: owner-litprog@SHSU.edu
From: mcguire@cs.utexas.edu (Tommy Marcus McGuire)
Reply-To: LitProg@SHSU.edu, mcguire@CS.UTEXAS.EDU
Subject: Stanford GraphBase
Date: 27 May 1994 16:56:38 -0500
Message-ID: <2s5qam$dai@latexo.cs.utexas.edu>
To: LitProg@SHSU.EDU
(What the heck, things have been kind of boring around here lately.)
I have been reading Knuth's _The Stanford GraphBase_ in my free time
lately (and trying not to dribble on it; the only free time I've had
has been around dinner), and I've noticed a couple of problems with
it. In particular, it seems like Knuth does some things that are very
bad style, such as using or even defining some item and not describing
until later (if ever) what it is or is used for.
The worst example I have run across is in GB_GRAPH, section 31:
[...]
[blah, blah, stuff about gb_virgin_arc, gb_new_arc, and Arcs, blah]
#define gb_new_graph gb_nugraph /* abbreviations for Procrustian
linkers */
#define gb_new_arc gb_nuarc
#define gb_new_edge gb_nuedge
[...]
The only time gb_nugraph and co. show up in the index is there and in
section 41 of GB_GRAPH, where the #defines are set up for gb_graph.h.
Any idea what these things do or are actually for? I can see how the
shortened forms of the names would be good for broken linkers that
only look at the first 6 characters of an identifier, but then
wouldn't you need to define the actual functions as "gb_nugraph"
rather than "gb_new_graph"?
I had another example, which was a little less bad, of Knuth using a
function or data type without any description until much later, but I
can't seem to find it now. To me, this seems to one of the worst
examples of bad style in a literate program. As a reader, I don't
want to be kept in suspense unless there is a pressing reason like,
for example, the explanation of the thing in question would be a
significant digression from the current topic. Even then, in my own
work, I generally find that there is a way of restructuring the
program that avoids the problem.
-----
Tommy McGuire
mcguire@cs.utexas.edu Internet---where it's September all year long
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: Mon, 30 May 1994 05:49:20 CDT
Sender: owner-litprog@SHSU.edu
From: jacojn@inet.uni-c.dk (Jacob Nielsen)
Reply-To: LitProg@SHSU.edu, jacojn@INET.UNI-C.DK
Subject: Re: Stanford GraphBase
Date: Mon, 30 May 1994 10:33:33 GMT
Message-ID: <77029401325489@inet.uni-c.dk>
To: LitProg@SHSU.EDU
On 27 May 1994 16:56:38 -0500, Tommy Marcus McGuire wrote:
[...]
#define gb_new_graph gb_nugraph /* abbreviations for Procrustian
linkers */
#define gb_new_arc gb_nuarc
#define gb_new_edge gb_nuedge
[...]
The only time gb_nugraph and co. show up in the index is there and in
section 41 of GB_GRAPH, where the #defines are set up for gb_graph.h.
Any idea what these things do or are actually for? I can see how the
shortened forms of the names would be good for broken linkers that
only look at the first 6 characters of an identifier, but then
I guess you have answered your question (I'm not a wisard with
broken compilers :-) If the defines are for the benefit of
broken compilers, I would say that the comment in the code
is sufficient! I wouldn't say that the use of comments in the
code is the best way to document a literate program though.
IMHO, things to please compilers should be placed in a seperate
section or crossreferenced in a sensible way (using words, not
references to function names!)
(if possible; since DEK's CWEB can't use LaTeX, this could become
a problem) Since gb_nugraph and co. are not part of
the program proper but only there to please some compilers, there
is no need to index them like variables and function names.
wouldn't you need to define the actual functions as "gb_nugraph"
rather than "gb_new_graph"?
For DEK's sake, I hope not :-)
I had another example, which was a little less bad, of Knuth using a
function or data type without any description until much later, but I
can't seem to find it now. To me, this seems to one of the worst
examples of bad style in a literate program. As a reader, I don't
want to be kept in suspense unless there is a pressing reason like,
for example, the explanation of the thing in question would be a
significant digression from the current topic. Even then, in my own
work, I generally find that there is a way of restructuring the
program that avoids the problem.
Unless the meaning of the function/data type is clear from
the context, I agree that it is bad style.
Perhaps I should read Stanford GraphBase; at least to see if
I agree with Tommy :-)
Regards,
Jacob
--
Jacob Nielsen
Email: jacojn@inet.uni-c.dk (my private account)
or bc898574@bbar.dtu.dk (my account at the university)
================================================================================
Archive-Date: Mon, 30 May 1994 11:12:03 CDT
Sender: owner-litprog@SHSU.edu
Date: Mon, 30 May 94 12:11:50 -0400
From: gtk@walsh.med.harvard.edu (Gregory Tucker-Kellogg)
Reply-To: LitProg@SHSU.edu, gtk@WALSH.MED.HARVARD.EDU
Message-ID: <9405301611.AA21384@walsh.med.harvard.edu>
To: LitProg@SHSU.edu, mcguire@CS.UTEXAS.EDU
Subject: Re:Stanford GraphBase
References: <2s5qam$dai@latexo.cs.utexas.edu>
>>>>> Tommy Marcus McGuire writes:
> (What the heck, things have been kind of boring around here
> lately.)
> I have been reading Knuth's _The Stanford GraphBase_ in my free
> time lately (and trying not to dribble on it; the only free time
> I've had has been around dinner), and I've noticed a couple of
> problems with it. In particular, it seems like Knuth does some
> things that are very bad style, such as using or even defining some
> item and not describing until later (if ever) what it is or is used
> for.
[details deleted]
Doesn't DEK challenge readers to find errors in _The Standard
GraphBase_, just as in his other books and programs? You might have
just won $2.56!
--
Gregory W. Tucker-Kellogg
Department of Biological Chemistry and Molecular Pharmacology
Harvard Medical School, Boston MA 02115
(617) 432-0930 or (617) 432-3212
================================================================================
Archive-Date: Mon, 30 May 1994 15:13:11 CDT
Sender: owner-litprog@SHSU.edu
From: kap1@wimpy.cpe.uchicago.edu (Dietrich J. Kappe)
Reply-To: LitProg@SHSU.edu, kap1@WIMPY.CPE.UCHICAGO.EDU
Subject: Re: Stanford GraphBase
Message-ID:
Date: Mon, 30 May 1994 20:31:38 GMT
To: LitProg@SHSU.EDU
In article <2s5qam$dai@latexo.cs.utexas.edu> mcguire@cs.utexas.edu (Tommy Marcus McGuire) writes:
The worst example I have run across is in GB_GRAPH, section 31:
[...]
[blah, blah, stuff about gb_virgin_arc, gb_new_arc, and Arcs, blah]
#define gb_new_graph gb_nugraph /* abbreviations for Procrustian
linkers */
#define gb_new_arc gb_nuarc
#define gb_new_edge gb_nuedge
[...]
The only time gb_nugraph and co. show up in the index is there and in
section 41 of GB_GRAPH, where the #defines are set up for gb_graph.h.
Any idea what these things do or are actually for? I can see how the
shortened forms of the names would be good for broken linkers that
only look at the first 6 characters of an identifier, but then
wouldn't you need to define the actual functions as "gb_nugraph"
rather than "gb_new_graph"?
If the #define is in effect when "gb_new_graph" is *declared*, then
what is actually being declared is "gb_nugraph" (think textual
replacement).
--
Dietrich Kappe
kap1@wimpy.cpe.uchicago.edu
-finger for PGP public key-
================================================================================
Archive-Date: Tue, 31 May 1994 06:30:42 CDT
Sender: owner-litprog@SHSU.edu
From: schrod@iti.informatik.th-darmstadt.de (Joachim Schrod)
Reply-To: LitProg@SHSU.edu, schrod@ITI.INFORMATIK.TH-DARMSTADT.DE
Subject: Re: Stanford GraphBase
Date: 31 May 1994 11:15:22 GMT
Message-ID: <2sf68a$t7n@rs18.hrz.th-darmstadt.de>
To: LitProg@SHSU.EDU
In article <77029401325489@inet.uni-c.dk>, jacojn@inet.uni-c.dk (Jacob Nielsen) writes:
> (if possible; since DEK's CWEB can't use LaTeX, this could become
> a problem)
LaTeX support for DEK's CWEB is available from the LitProg Archive:
ftp.th-darmstadt.de [130.83.55.75]
directory pub/programming/literate-programming/c.c++
file cweb-sty-0.4.tar.Z
Enjoy.
--
Joachim
[THD Literate Programming Archive, maintainer]
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Joachim Schrod Email: schrod@iti.informatik.th-darmstadt.de
Computer Science Department
Technical University of Darmstadt, Germany
================================================================================
Archive-Date: Tue, 31 May 1994 07:32:35 CDT
Sender: owner-litprog@SHSU.edu
From: lynbech@avignon.daimi.aau.dk (Christian Lynbech)
Reply-To: LitProg@SHSU.edu, lynbech@AVIGNON.DAIMI.AAU.DK
Subject: Help: I have lost my LP quotations
Date: 31 May 1994 12:24:49 GMT
Message-ID:
To: LitProg@SHSU.EDU
There was a posting quite some time ago (either on the newsgroup or on
the mailing list), with interesting quotes by various gurus of the
area. The only quote I remember was something to the effect of:
When code and documentation disagree, both are probably wrong.
Unfortunately, I seem to have lost it, so if there is a kind soul with
a copy, could you please mail it to me?
Thanks it advance,
------------------------------------------------------------------------------
Christian Lynbech | Hit the philistines three times over the
office: R0.33 (phone: 3217) | head with the Elisp reference manual.
email: lynbech@daimi.aau.dk | - petonic@hal.com (Michael A. Petonic)
------------------------------------------------------------------------------
================================================================================
Archive-Date: Tue, 31 May 1994 08:45:24 CDT
Sender: owner-litprog@SHSU.edu
From: norman@flash.bellcore.com (Norman Ramsey)
Reply-To: LitProg@SHSU.edu, norman@FLASH.BELLCORE.COM
Subject: Re: C++ with cweb
Message-ID:
CC: lubell@nist.gov
Date: Sat, 21 May 1994 03:07:55 GMT
To: LitProg@SHSU.EDU
In article ,
Josh Lubell - msd wrote:
> I wish to document each class's public interface and to
>supress any display of private data members or member functions.
Put the private stuff in its own chunks (or modules, or whatever we're
calling them this week) and hide this chunks with \iffalse (or
soemthing analogous but fnacier if you want a full display for
implementors). \iffalse and its ilk work with most TeX-based tools,
although they usually confuse cross-reference machinery. stuff based
on web and plain tex is less susceptible to confusion than stuff based
on latex.
================================================================================
Archive-Date: Tue, 31 May 1994 10:31:50 CDT
Sender: owner-litprog@SHSU.edu
From: mcguire@cs.utexas.edu (Tommy Marcus McGuire)
Reply-To: LitProg@SHSU.edu, mcguire@CS.UTEXAS.EDU
Subject: Re: Stanford GraphBase
Date: 31 May 1994 10:19:33 -0500
Message-ID: <2sfki5$s2l@latexo.cs.utexas.edu>
To: LitProg@SHSU.EDU
In article ,
Dietrich J. Kappe wrote:
>If the #define is in effect when "gb_new_graph" is *declared*, then
>what is actually being declared is "gb_nugraph" (think textual
>replacement).
>
>--
>Dietrich Kappe
>kap1@wimpy.cpe.uchicago.edu
>-finger for PGP public key-
Well, I'll be a.... I should have thought of that. Maybe there is a
down side to the ability to rearrange things in a program---I might
have caught that one if the #define had been at the beginning of the
file. On the other hand, maybe not.
On the other hand, my original point remains: Knuth just dropped them
in without bothering to explain them with more than a rather trivial
comment.
-----
Tommy McGuire
mcguire@cs.utexas.edu Internet---where it's September all year long
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: Tue, 31 May 1994 11:21:29 CDT
Sender: owner-litprog@SHSU.edu
From: oz@ursa.sis.yorku.ca (ozan s. yigit)
Reply-To: LitProg@SHSU.edu, oz@URSA.SIS.YORKU.CA
Subject: Re: Stanford GraphBase
Message-ID:
Date: Tue, 31 May 1994 16:54:13 GMT
To: LitProg@SHSU.EDU
Tommy Marcus McGuire:
I have been reading Knuth's _The Stanford GraphBase_ [...]
[...] and I've noticed a couple of problems with it.
you are so gentle. the book is a bucket full of of algorithmic diamonds
and pearls buried in a diseaster area littered [or was it "literate"]
with poor typesetting and programming.
required inscription:
lasciate ogni speranza, voi ch'entrate.
oz (hurriedly slips into a flame-retardant suit...)
---
a technology is indistinguishable from | electric: oz@sis.yorku.ca
its implementation. -- Marshall Rose | or [416] 736 2100 x 33976
================================================================================
Archive-Date: Tue, 31 May 1994 22:57:07 CDT
Sender: owner-litprog@SHSU.edu
From: partingr@p4.cs.man.ac.uk (Robert Partington)
Reply-To: LitProg@SHSU.edu, partingr@P4.CS.MAN.AC.UK
Subject: multiple refs in section
Message-ID:
Date: 31 May 94 08:04:59 GMT
To: LitProg@SHSU.EDU
Right. What I want to do is something like this...
@ This section opens the file for reading.
@<|main| local var....@>=
FILE *handle;
@=
handle=fopen(filename,"r");
if(!handle) { perror("error"); exit(1); }
where both the references are handled in the one section. It's not a major hassle to do
without it, but I don't like sections without titles that are essentially part of the
previous section - like this
@ This section opens the file for reading.
@<|main| local var...@>=
FILE *handle;
@
@=
handle=fopen(filename,"r");
if(!handle) { perror("error"); exit(1); }
It makes more sense to me to have the local variables defined in the same section as
the code that uses them.
(This is using CWEB 3.0)
I tried adding a new control sequence '@9' to make cweave treat multiple refs properly,
but the section number of defining module references come out wrong (too high) if they
follow any references. I couldn't figure out how to stop this...
(I can post my .ch files for cweave if that will help)
ps Is there anything for turning (C)WEB programs into texinfo files? Even though
cweave.w was easier to follow, it was still quite tricky.
Rob Partington
partingr@cs.man.ac.uk
--
Rob Partington .o 0 0 0 ____ Along the mountain road,
partingr@cs.man.ac.uk _|| / __ \ Somehow it tugs at my heart:
My opinions... _/o o\___ __|_||_|__ A wild violet.
~~~~~~~~\O/~~~~~~~~~~~\_______/~~~~~~~/ Matsuo Basho 1644-1694