Archive-Date: Sun, 01 May 1994 10:28:21 CST Sender: owner-litprog@SHSU.edu From: "P.K.N. Bowman" Reply-To: LitProg@SHSU.edu, P.K.N.Bowman@DURHAM.AC.UK Subject: WEB for Modula-2? Date: 1 May 1994 15:15:14 GMT Message-ID: <2q0h22$8am@mercury.dur.ac.uk> To: tex-news@SHSU.EDU Is there a version of WEB suitable for programming with Modula-2 rather than PASCAL? If not, which of the non-language-specific WEBs would work with it? Does anyone have any experience of Web/M2 programming? (I have only just discovered the c.p.l newsgroup) Many thanks, ------------------------------------------------------------------------------- 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: Sun, 01 May 1994 14:49:53 CST Sender: owner-litprog@SHSU.edu From: preston@noel.cs.rice.edu (Preston Briggs) Reply-To: LitProg@SHSU.edu, preston@NOEL.CS.RICE.EDU Subject: Re: WEB for Modula-2? Date: 1 May 1994 19:10:32 GMT Message-ID: <2q0ur8$hm4@larry.rice.edu> To: tex-news@SHSU.EDU writes: >Is there a version of WEB suitable for programming with Modula-2 rather >than PASCAL? If not, which of the non-language-specific WEBs would work >with it? The popular language-independent systems (funnelweb, noweb, nuweb) will all handle Modula-2. I'm biased toward nuweb, which you can obtain via anonymous ftp from cs.rice.edu, in the directory public/preston. Preston Briggs ================================================================================ Archive-Date: Sun, 01 May 1994 17:14:24 CST Sender: owner-litprog@SHSU.edu From: wkwong@mccarthy.uwo.ca (William King Wong) Reply-To: LitProg@SHSU.edu, wkwong@MCCARTHY.UWO.CA Subject: Symantic C++ compiler Date: 1 May 1994 21:55:19 GMT Message-ID: <2q18g7$hsj@falcon.ccs.uwo.ca> To: LitProg@SHSU.EDU Hi, 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) ? I really like to known more about any one of these compilers before I head to the computer store. Thank you in advance. William. ================================================================================ Archive-Date: Sun, 01 May 1994 22:31:02 CST Sender: owner-litprog@SHSU.edu From: coates@kelvin.physics.uq.oz.au (Tony Coates) Subject: HTML for FunnelWeb - first look Date: 2 May 94 12:21:54 Message-ID: Reply-To: LitProg@SHSU.edu, coates@physics.uq.oz.au To: LitProg@SHSU.EDU Well, I have added HTML output to FunnelWeb, for files created without the `@p typesetter = tex' pragma. I will include here a simple sample, including the matching TeX and HTML output. The only difference between the sources for the two is that `@p typesetter = hypertext' is added in order to get HTML output. I have only tested the HTML code with Mosaic to date, and it seems to work correctly with this version. I would be interested to hear any comments on the HTML output, and whether I have done a reasonable job of setting up the formatting and the hypertext links. I anyone is interested, I would also be happy to process FunnelWeb files (which don't use `@p typesetter = tex') for anyone who would like to see a hypertext version of their own docs. I usually use `@p typesetter = tex' in fact, so I don't have a lot of sources to test my additions on. I would also be interested from anyone who would like to test my code itself, subject to an acceptance of non-distribution: only Ross Williams can make a FunnelWeb distribution official, and while my version prints a `WARNING: EXPERIMENTAL' type message every time it runs, I would also have to demand that anyone to whom I gave my sources agreed not to distribute them without my permission, and not to post them to any bulletin-board or FTP site. Anyway, the sources follow. The `httest1' files are for TeX output, the `httest2' files are for HTML output. Cheers, Tony. --------------------- cut here: httest1.fw --------------------- @t title titlefont centre "Test File #1" @t table_of_contents @A@ 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@/. @B @$@@(@1@)@M==@{<<@1>>@} @B @$@+=@{@- dummy test #1 for @@(test file #1@) @} @$@+=@{@- dummy test #2 for @@(test file #1@) @} @B @$@==@{@- dummy test #3 for @@(test file #1@) @} @B @O@==@{@- @ @@} @A@ Here is some text afterwards, <>. ------------------------- cut here: httest1.tex ----------------- %******************************************************************************* %* START OF AUTOMATICALLY GENERATED TEX FILE * %******************************************************************************* %* * %* This TeX file was automatically generated by the FunnelWeb preprocessor. * %* You can typeset this file to produce printed documentation by running it * %* through the TeX typesetter using a command such as: * %* tex thisfilename * %* The resultant file thisfilename.dvi can be printed using a command such as: * %* lpr -Pcslw -d thisfilename.dvi * %* * %* FunnelWeb is a preprocessor that allows programmers to weave programs and * %* their documentation together in a single document. The FunnelWeb program * %* analyses such documents producing both program files and typeset * %* documentation such as this TeX file. * %* FunnelWeb was created by Ross Williams. * %* * %* For more information on FunnelWeb look in the following FTP archive: * %* Machine : sirius.itd.adelaide.edu.au [IP=129.127.40.3]. * %* Directory: ~pub/funnelweb/ * %* (or some other appropriately named directory). * %* or email Ross Williams at ross@spam.adelaide.edu.au * %* * %******************************************************************************* %===================== Start of FunnelWeb TeX Definitions ====================== % Version % ------- % This is FunnelWeb TeX Macro Library Version 1.0. % Copyright % --------- % This set of FunnelWeb TeX definitions was written by Ross Williams and was % originally Copyright (C) 1992 Ross N. Williams. However, I, Ross Williams, % hereby forego any claim to Copyright in this set of FunnelWeb TeX definitions % and hereby authorize that the set of TeX definitions pass into the public % domain. -- Ross N. Williams, 3:41pm 07-May-1992, Adelaide, Australia. % Modification % ------------ % Please record all modifications to these TeX definitions here. Unless % otherwise specified, all modified definitions fall in the public domain too. % % Programmers: % RNW Ross N. Williams ross@spam.adelaide.edu.au % % Changes: % 07-May-1992 RNW Prepared this work for public domain release. % % General Comments % ---------------- % This set of TeX definitions exists for two reasons: % % 1. To shorten and neaten the FunnelWeb TeX output. % 2. To allow users to fiddle with the output format in their input files % (by inserting redefining "\def"s) without having to resort to % modifying the FunnelWeb code. % % The user is warned that these definitions may be changed from time to time % (but probably not much). The user should not be too sneaky. In particular, % users wishing to redefine some of these macros should do so in an explicitly % defined section at the top of their input file. This will mean that in the % event of problems, that section can simply be deleted or commented out to % allow the document to at least be typeset in the default format. Users should % limit themselves to redefining these macros in such a section and should % refrain from using the macros throughout their documents. % Environment Parameters % ---------------------- % \tolerance tells TeX how tolerant it should be about making bad line and % page breaks. Here we set it to it's maximum, as % 1) Computer programs are likely to cause lots of bad breaks. % 2) In most cases the user would probably rather get the TeX file through % TeX without any errors than fiddle with spacings for perfection. \tolerance=10000 % I don't like indentation as it makes the page look more busy. Instead, % paragraphs are separated by a little space (see next). \parindent=0pt % In many cases, users will produce documents with long runs of paragraphs. % In order to space out these paragraphs, it is convenient to maintain a % prevailing non-zero \parskip (end-of-paragaph skip). The only trouble is % that the skip becomes a problem in macro definitions which require no skip % and so we have to turn the skip on and off. The following two macros % simplify this process. \def\fwparskipon{\parskip=\medskipamount} \def\fwparskipoff{\parskip=0pt} \fwparskipon % Setting raggedbottom allows TeX to leave a bit of space at the bottom of the % page in order to better vertically align the rest of the page (e.g. skips % won't stretch as much). It also means that headings are less likely to be % isolated at the bottom of the page without any following text. \raggedbottom % Fonts % ----- % Most of the typeset output is set in 10pt roman and 10pt tt font. % The major extra font needs spring from titles and headings. % For portability's sake we use only the following fonts: % cmr10 % cmbx10 % cmtt10 % and some enlargements of them. These fonts are all "standard" fonts % in Plain TeX. See The TeXbook p.350. \font\fwfontnote=cmr7 \font\fwfontnorm=cmr10 \font\fwfontnorma=cmr10 scaled \magstep1 \font\fwfontnormb=cmr10 scaled \magstep2 \font\fwfontbold=cmbx10 \font\fwfontbolda=cmbx10 scaled \magstep1 \font\fwfontboldb=cmbx10 scaled \magstep2 \font\fwfontboldc=cmbx10 scaled \magstep3 \font\fwfontboldd=cmbx10 scaled \magstep4 % Macros for Stylistic Details % ---------------------------- % This section contains all the fiddly little macros for setting the details % of each macro definition. % Macro definitions are sandwiched by calls to these macros which can be used % to sort out the spacing before and after the macro definition. \def\fwbeginmacro{\fwparskipoff\bigskip} \def\fwendmacro{\fwparskipon\par} % These macros deal with the macro name and definition line. \def\fwmacroname#1#2{{\sl #1\/}$\lbrack$#2$\rbrack$} \def\fwfilename#1#2{{\bf #1}$\lbrack$#2$\rbrack$} \def\fwzero#1{{\bf Z}} \def\fwmany#1{{\bf M}} \def\fwequals{ $\equiv$} \def\fwplusequals{ $+\equiv$} % Now for the actual body of the definition. It looks nice to have the tt % code indented a little. Again, we use macros instead of writing direct TeX, % so as to allow the user to fiddle this stuff to taste without having to % modify the FunnelWeb C code. \def\fwodef{\parindent=15pt\vskip0pt$\lbrace$\parindent=20pt} \def\fwcdef{$\rbrace$\vskip0pt\parindent=0pt} \def\fwoquote{`} \def\fwcquote{'} \def\fwoparen{$($} \def\fwcomma{$,$} \def\fwcparen{$)$} \def\fwparam#1{$\diamond #1$} \def\fwparams#1{$(\diamond #1)$} % These macros deal with the notes that are appended at the end of each % macro definition. Note that even though \fwisafile,\fwusedin, and \fwseealso % have the same definition, they are given different names so as to allow the % user to redefine these macros to typeset each kind of information differently % if desired. \def\fwbeginmacronotes{\begingroup\baselineskip=9pt\smallskip} \def\fwnote#1{{\fwfontnote #1}\par} \def\fwisafile#1{\fwnote{#1}} \def\fwusedin#1{\fwnote{#1}} \def\fwseealso#1{\fwnote{#1}} \def\fwendmacronotes{\endgroup} % Macros to Typeset Program Code Verbatim % --------------------------------------- % This is by far the hairiest and most difficult part of the typesetting task % because we have to turn off most of TeX's natural instincts in order to % typeset the program text exactly as it appears in the input file. % Two macros are defined to pull this off: \fwbtx and \fwverbatimgobble. % Their code was inspired by the following sections of "The TeXbook": % Appendix D: Dirty Tricks, 3.Verbatim listing, p.380-382. % Appendix E: Example Formats, p.421. % The \fwbtx[ (for "FunnelWeb Begin TeXt") macro does most of the hard work. % The liberal use of "%" is because I don't understand TeX well enough to % understand when an end of line will cause trouble, and I am playing it safe. % Before defining the main \fwbtx macro, we have to stash away some definitions % in the hidden part of TeX's environment. Let's hope that these "hidden" % definitions don't affect anything except what is desired to be affected. % The tt font in which we wish to set the text has two Latin lurking ligatures! % These are ?` and !`. To disable them, we define the left quote when ACTIVE % to be defined in such a way as to prevent ligatures. The main TeX text will % normally not be exposed to this definition because normally the leftquote % character is not active. The \fwbtx macro temporarily makes the left quote % character active thus activating the deactivation of left quote ligatures. % See The TeXbook p.381. {\catcode`\`=\active \gdef`{\relax\lq}} % TeX is fairly carefree about spaces and so we have to make it more serious. % To do so we pull the same trick as above, setting up a definition for active % space, but only making space active during the span of the verbatim text. % In Plain TeX the active space is defined to be simply a space, but here we % define it to be a control space. This ensures that the space cannot % be gobbled up by one of TeX's mysterious mechanisms when activated. % See The TeXbook, p.381 and p.352. {\obeyspaces\global\let =\ } % Here is the main \fwbtx verbatim text macro. % Note: The order in which all these pieces of business have to be done is % still a partial mystery to me. Don't fiddle with this stuff unless you % think you know what you are doing. \def\fwbtx[{% % % The funnies involved in getting verbatim output are safely housed inside % this \begingroup, and the \endgroup in \fwverbatimgobble. Groups are used % instead of curly braces because we have to be able to signal the end of % this macro with a curly brace. \begingroup% % % \pars at the end of empty lines in the verbatim text won't come out normally % because TeX is in vertical mode and they get gobbled up. To prevent this, % we force \par to exit vertical mode first. See The TeXbook p.381. \def\par{\leavevmode\endgraf}% % % Activate the leftquote character so as to avoid ligatures (see above). \catcode`\`=\active% % % The \obeylines macro simply defines end of line (^M) to be \par. This ensures % that TeX will treat each verbatim line as a new paragraph. \obeylines% % % To get verbatim output, we have to desex all the special characters. This % is explained in detail in The TeXbook p.380. \def\do##1{\catcode`##1=12 }\dospecials% % % Activate the space character so as to make TeX treat blanks seriously. % This activation invokes an eralier definition (see above). \obeyspaces % % Interparagraph skips do not help the cause. % Note: We have to preserve the indentation though, as the code is actually % indented in the final output. See \fwodef in an earlier section. \parskip=0pt% % % We typeset the verbatim text in tt font (courier on the Macintosh) for a % number of reasons: % - tt font has the same horizontal spacing for each character. % - tt font covers the ASCII character set. % - tt font doesn't have many surprises (e.g. ligatures). % - tt font looks much what you might see on a computer terminal screen. \tt% % % Having set up an environment for verbatim, we are ready to use it. % By invoking \fwverbatimgobble, this \fwbtx macro gobbles up text verbatim (as % part of the parameter of \fwverbatimgobble) until it sees the termination % string "]fwetx=" (the "=" was thrown in to add obscurity as this sequence % must never occur in the verbatim text). \fwverbatimgobble} % The \fwverbatimgobble macro exists to allow \fwbtx to bracket verbatim text. \def\fwverbatimgobble#1]fwetx={#1\endgroup} % Table of Contents % ----------------- % The five levels of table of contents that FunnelWeb supports are identified % by the five letters [A..E]. These are used throughout the following macros. % The following macros are utilities to the TOC macros to follow. \def\fwrule{\medskip\hrule\medskip} \def\fwqh{\hskip1.5em\relax} \def\fwbeforesec{\penalty-200\bigskip\medskip\par} % The following macros are used to typeset the table of contents. \def\fwtocstart#1{\fwrule\leftline{\fwfontbolda Table of Contents}\fwrule} \def\fwtoca#1#2{\leftline{{\bf #1 #2}}} \def\fwtocb#1#2{\leftline{\fwqh #1 #2}} \def\fwtocc#1#2{\leftline{\fwqh\fwqh #1 #2}} \def\fwtocd#1#2{\leftline{\fwqh\fwqh\fwqh #1 #2}} \def\fwtoce#1#2{\leftline{\fwqh\fwqh\fwqh\fwqh #1 #2}} \def\fwtocfinish#1{\fwrule} % The following "library" macros define five different strengths of headings % which can be used later in the section macros. \def\fwliba#1#2{\vfill\eject{\fwfontboldc #1 #2}\penalty200\smallskip} \def\fwlibb#1#2{\fwbeforesec{\fwfontboldb #1 #2}\penalty200\smallskip} \def\fwlibc#1#2{\fwbeforesec{\fwfontnormb #1 #2}\penalty200\smallskip} \def\fwlibd#1#2{\fwbeforesec{\bf #1 #2}\penalty200} \def\fwlibe#1#2{\fwbeforesec{\bf #1 #2}} % Here are the macros that actually typeset the section headings throughout % the document. The fwlib system has been employed so as to easily allow the % user to redefine the strengths of headings to taste. For example, the % user could insert in the input document a similar set of definitions to these % but with the b..e headings set to \fwlibc. This would tone down the output. \def\fwseca#1#2{\fwliba{#1}{#2}} \def\fwsecb#1#2{\fwlibb{#1}{#2}} \def\fwsecc#1#2{\fwlibc{#1}{#2}} \def\fwsecd#1#2{\fwlibd{#1}{#2}} \def\fwsece#1#2{\fwlibe{#1}{#2}} % Support for Explicit Typesetting % -------------------------------- % FunnelWeb supports pragmas and other constructs that allow % typesetter-independent typesetting commands to be given. The % following macros support these features. % The in-text literal @{sloth@} and emphasise @[walrus@] features. \def\fwlit#1{{\tt #1}} \def\fwemp#1{{\it #1}} % The "@p new_page" pragma. \def\fwnewpage{\vfill\eject} % The "@p vskip Nmm" pragma. \def\fwvskip#1{\null\vskip #1mm} % The "@p title " 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


1 First section

1.1 macro fn

1.2 dummy.txt definition

1.3 dummy.txt definition 2

1.4 dummy.txt

2 closing


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 code would be typeset and some other text that is emphasised.

1.1 macro fn

macro fn[1](#1)M=
{<<#1>>}
This macro is invoked in definitions 2, 3, and 4.

1.2 dummy.txt definition

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.

1.3 dummy.txt definition 2

dummy.txt definition 2[4]=
{dummy test #3 for macro fn[1](`test file #1')
}
This macro is invoked in definition 5.

1.4 dummy.txt

dummy.txt[5]=
{dummy.txt definition[2]
dummy.txt definition 2[4]}
This macro is attached to an output file.

2 closing

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?*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<)TSI9Z\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#*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