Archive-Date: Thu, 01 Apr 1993 12:30:33 CST Sender: LP-Mgr@SHSU.edu Date: Thu, 1 Apr 93 10:38:34 CST From: preston@cs.rice.edu (Preston Briggs) Reply-To: LitProg@SHSU.edu Message-ID: <9304011638.AA25541@dawn.cs.rice.edu> To: LitProg@shsu.edu Subject: Re: Mini-indexes in TeX: The Program & METAFONT: The Program >Would it be so hard to make the necessary modifications to >weave and to cwebmac.tex? I don't see how it could be easy. Consider the problem for a second. Weave looks at the web and builds the .tex file, inserting necessary TeX directives, cross reference info, and the indices. But it doesn't know where TeX is going to make line breaks or page breaks. Therefore, it's going to have a hard time finding where to put mini-indices and what identifiers to put in the indices. Of course, we have a couple of exampoles that say it's possible, but we also have Beebe saying it required lots of hand tweaking. Much more doable would be indices at the end of every major section. That way weave wouldn't have to know about page breaks. Preston Briggs ================================================================================ Archive-Date: Thu, 01 Apr 1993 12:51:09 CST Sender: LP-Mgr@SHSU.edu Message-ID: <9304011503.7053@bhars173.bnr.co.uk> From: S.C.Cross@bnr.co.uk Reply-To: LitProg@SHSU.edu Date: Thu, 1 Apr 93 16:03:37 BST To: litprog@shsu.edu Subject: Literate Programming Using FrameMaker Here is a very quick and simple method for using FrameMaker to write Literate Programs:- (1) Create two conditional_text tags (Special/Conditional Text...) Call the tags something like 'DocText' and 'CodeText' (2) Apply the CodeText Tag to all the code in the document (3) Apply the DocText Tag to everything else in the document (4) To Tangle the document simply change the Show/Hide options for the conditional text so that only the CodeText is shown (5) Save the Code to a text source file (File/Save As) Okay so its nothing special, but it does work. There are problably other (better) ways of doing this, any ideas? Steve. ---------------------------------------------- Stephen Cross, Systems & Software Engineering BNR Europe Ltd, Harlow, Essex, England Email: scc@bnr.co.uk Internal Tel : 742 2861 External Tel : +44 (0)279 402861 ================================================================================ Archive-Date: Thu, 01 Apr 1993 15:42:22 CST Sender: LP-Mgr@SHSU.edu Date: Thu, 1 Apr 93 16:40:30 -0500 From: norman@bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu Message-ID: <9304012140.AA00708@flaubert.bellcore.com> To: LitProg@SHSU.edu Subject: Re: Mini-indexes in TeX: The Program & METAFONT: The Program > I don't see how it could be easy. > Consider the problem for a second. > Weave looks at the web and builds the .tex file, > inserting necessary TeX directives, cross reference info, > and the indices. But it doesn't know where TeX is going > to make line breaks or page breaks. Therefore, it's going to > have a hard time finding where to put mini-indices and what > identifiers to put in the indices. That part's not hard; you use insertions, which are TeX's way of handling footnotes and floating figures. The hard part is the sorting and elimination of duplicates---these tasks are difficult to implement in TeX. Norman ================================================================================ Archive-Date: Thu, 01 Apr 1993 17:22:19 CST Sender: LP-Mgr@SHSU.edu Date: Thu, 01 Apr 1993 17:20:44 CST From: "George D. Greenwade" Reply-To: LitProg@SHSU.edu To: litprog@SHSU.edu Message-ID: <0096A63A.712BAC80.3573@SHSU.edu> Subject: Literate Programming Library on Gopher Yesterday, Marcus Speh contacted me regarding where I had placed the Literate Programming files within the Gopher Server on Niord.SHSU.edu (192.92.115.8, port 70) so he could include them in his project. Well, at the time, I hadn't included these files (for no good reason -- I just hadn't done it). Anyway, I think I have a relatively comprehensive Literate Programming library included now. If you are interested, the library is located within the "TeX-related Materials" item (number 9 presently) as "Literate Programming Library" (also item 9 on that menu presently). If all you are interested in is a link to this item, the Gopherspace link is: ##################################### ## Literate Programming files at SHSU Name=Literate Programming Library Type=1 Port=70 Path=1gopher_root:[_DATA.LITPROG] Host=Niord.shsu.edu I think I have included just about everything in our archives there (maybe a few are still missing, but I think it's pretty much there). If you look there, you will see that one of the last entries is to the "web" directory on the Comprehensive TeX Archive Network (CTAN) -- I hope to propagate the Literate programming packages to this directory sometime soon (still a few finishing touches are in order there -- this is one of my intended finishing touches). The VMS server which runs Niord is grossly out of date (it's as up to date as available for VMS, which is grossly out of date relative to all other server platforms). It has problems with executables, binary files, etc. (which is one reason I like the link to the Unix server we run for the CTAN), although the link above is stable -- promise! (even if all it ultimately has is a link to the Unix host, the main Niord entry will be stable; but a few of us here are working on a new VMS server, so........) If you see that I am missing anything, please let me know and I will make every effort to get in whatever I am missing. Better still, if you are the author of one of the packages and would consent to a routine mirroring of your authoritative host into the CTAN (Aston, Stuttgart, and SHSU in case you were wondering what hosts were involved), please let me know and I will arrange for that to occur (which is probably the least painful way I can think of to keep this updated, as well as widely propagated). The basic information I need is (a) host, (b) consistent directory and filename string to expect, and (c) any limitations at your site I ought to respect when ftp'ing in to mirror your files. Have fun, folks! --George ================================================================================ Archive-Date: Thu, 01 Apr 1993 20:41:00 CST Sender: LP-Mgr@SHSU.edu Date: Fri, 2 Apr 1993 12:38:46 +1000 From: Richard Walker Reply-To: LitProg@SHSU.edu Message-ID: <199304020238.AA12468@barnard.anu.edu.au> To: LitProg@SHSU.edu Subject: Re: Mini-indexes in TeX: The Program & METAFONT: The Program > That part's not hard; you use insertions, which are TeX's way of > handling footnotes and floating figures. The hard part is the sorting > and elimination of duplicates---these tasks are difficult to implement > in TeX. Well, Donald Arseneau seems to have done just that with his cite.sty style for LaTeX (at least for version 3.0, October 1992). It compresses and sorts lists of numerical citations: e.g. what would be printed as [3,7,2,8,4,6,3] is now printed as [2--4,6--8]. Richard. ================================================================================ Archive-Date: Fri, 02 Apr 1993 15:54:43 CST Sender: LP-Mgr@SHSU.edu Message-ID: <9304022153.AA13527@im4u.cs.utexas.edu> From: leew@cs.utexas.edu (Lee Wittenberg) Reply-To: LitProg@SHSU.edu Date: Fri, 2 Apr 1993 15:53:19 -0600 To: LitProg@shsu.edu Subject: Re: Literate Programming Using FrameMaker Stephen Cross writes: > Here is a very quick and simple method for using FrameMaker to write > Literate Programs:- > > (1) Create two conditional_text tags (Special/Conditional Text...) > Call the tags something like 'DocText' and 'CodeText' > > (2) Apply the CodeText Tag to all the code in the document > > (3) Apply the DocText Tag to everything else in the document > > (4) To Tangle the document simply change the Show/Hide options for the > conditional text so that only the CodeText is shown > > (5) Save the Code to a text source file (File/Save As) > > Okay so its nothing special, but it does work. There are problably other > (better) ways of doing this, any ideas? It's a nice approach, but it isn't exactly ``tangling,'' as the latter involves rearranging the code chunks from an human ordering (the sections in a web are supposed to be organized in a way that is easy for the human reader to grasp) into a machine ordering (something a compiler can accept). Your approach has the advantage of being able to interleave code and documentation, but it has the disadvantage that the code must still be presented in an order dictated by the machine. (cf. Dijkstra's "... I want the program written down as I can understand it, I want it written down as I would like to explain it to someone." ["Notes on Structured Programming", in _Structured_Programming_, Academic Press, 1972]). -- Lee ================================================================================ Archive-Date: Mon, 05 Apr 1993 04:09:19 CDT Sender: LP-Mgr@SHSU.edu Date: Mon, 05 Apr 93 11:02:10 MDT From: Zdenek Wagner Reply-To: LitProg@SHSU.edu Subject: Re: Mini-indexes in TeX: The Program & METAFONT: The Program To: Literate Progaramming list I can see a way how to make the mini-indexes. Of course the mini-index must be built by TeX, not by weave. Wherever weave finds an item to be indexed, it should emit some TeX command. When TeXing the woven file, TeX should store the index items in the token register (or someone may find a better way). Then you have to rewrite the output routine which would typeset the mini-index from the token register and then clear it so that the token register starts again from scratch at the next page. Well, it seems easy but I know that the task is not trivial. Regards , ,~~~/ /` / /| /~~~ / / |_/ /__/ ' | / / /~~/ /~~/ /~~/ /~~/ /\ | /| / /~~/ /~~/ /~~/ /~~/ /~~~ / , / / /~~~ / / /~~~ / \ |/ |/ / /_/ / / / /~~~ / ~~~~ ~~~ ~~~ ' ' ~~~ ' ` ' ' ~~~ ~~/ ' ' ~~~ ' Zdenek Wagner______/ Some gateway between me and you may garble backslash. It will appear on your screen as ã ================================================================================ Archive-Date: Mon, 05 Apr 1993 10:34:33 CDT Sender: LP-Mgr@SHSU.edu From: mstacey@mcs.kent.edu (Michael Stacey) Reply-To: LitProg@SHSU.edu Message-ID: <9304051533.AA13778@condor.mcs.kent.edu> Subject: Re: Mini-indexes in TeX: The Program & METAFONT: The Program To: LitProg@SHSU.edu Date: Mon, 5 Apr 1993 11:33:01 -0500 (EDT) Richard Walker says: > > > That part's not hard; you use insertions, which are TeX's way of > > handling footnotes and floating figures. The hard part is the sorting > > and elimination of duplicates---these tasks are difficult to implement > > in TeX. > > Well, Donald Arseneau seems to have done just that with his > cite.sty style for LaTeX (at least for version 3.0, October 1992). > It compresses and sorts lists of numerical citations: > e.g. what would be printed as [3,7,2,8,4,6,3] is now printed as > [2--4,6--8]. > > Richard. > Is there any place where one can get the required macros to configure FunnelWeb so that LaTeX is used as the typesetter rather than TeX? +--------------------------------------------------+--------------------------+ | Michael Stacey | | mstacey@mcs.kent.edu | | | | Department of Mathematical and Computer Sciences | | Kent State University | | Kent, Ohio 44240 | +--------------------------------------------------+--------------------------+ ================================================================================ Archive-Date: Mon, 05 Apr 1993 18:51:25 CDT Sender: LP-Mgr@SHSU.edu Date: 06 Apr 1993 01:23 +0100 (MET) From: CGL@RUGR86.RUG.NL Reply-To: LitProg@SHSU.edu Subject: Re: Mini-indexes in TeX: The Program & METAFONT: The Program To: LitProg@SHSU.edu Message-ID: <01GWO8MDLQIC8WW9C1@RUGR86.RUG.NL> Sorting hard in TeX? For Aston I submitted a paper where I do sorting within TeX. Just provide your comparison operator and it will be sorted. Look out for those proceedings or the MAPS from the Dutch TeX Users Group, NTG. ---Kees--- ================================================================================ Archive-Date: Mon, 05 Apr 1993 20:42:07 CDT Sender: LP-Mgr@SHSU.edu Date: Tue, 6 Apr 1993 11:36:54 +1000 From: Richard Walker Reply-To: LitProg@SHSU.edu Message-ID: <199304060136.AA15320@barnard.anu.edu.au> To: LitProg@SHSU.edu Subject: Re: Mini-indexes in TeX: The Program & METAFONT: The Program > > Is there any place where one can get the required macros to configure > FunnelWeb so that LaTeX is used as the typesetter rather than TeX? > A good question. I was thinking of doing it myself if no one else has done it. Ross Williams claims to be LaTeX-illiterate, so any such effort will be third party. Note however that the TeX preamble which fw spits out is hard-coded into the program. Hence making it LaTeX-compatible will require changing the program . . . I am thinking of using FunnelWeb to develop a compiler using some compiler tools (the Grosch set from Karlsruhe). The tools each have their own language, so I can't see any other way (except noweb, but I'm a fairly competent TeXnician, so fw seems the better option). Richard. ================================================================================ Archive-Date: Mon, 05 Apr 1993 23:34:08 CDT Sender: LP-Mgr@SHSU.edu Date: Mon, 5 Apr 93 23:33:26 -0500 From: plyon@emx.cc.utexas.edu (Paul Lyon) Reply-To: LitProg@SHSU.edu Message-ID: <9304060433.AA31321@emx.cc.utexas.edu> To: LitProg@SHSU.edu CC: LitProg@SHSU.edu Subject: Mini-indexes in TeX: The Program & METAFONT: The Program > A good question. I was thinking of doing it myself if no one > else has done it. Ross Williams claims to be LaTeX-illiterate, > so any such effort will be third party. > Note however that the TeX preamble which fw spits out is hard-coded > into the program. Hence making it LaTeX-compatible will require > changing the program . . . It is possible that no change to the programme itself will be need. I am, as well, for the most part unfamiliar with LaTeX, but it seems to me that it might suffice to redefine all the TeX macros used in FunnelWeb to invoke LaTeX macros or LaTeX compatible macros, collect the redefinitions in a file, and "\input" that file as the first line in a FunnelWeb source file. When FunnelWeb weaves a source file, the definitions built into the programme are prepended to the woven source, so they will be read by TeX before any of the redefinitions are read, hence the latter will override the former. Most of the FunnelWeb control sequence names start with "fw" so those should not conflict with any of the LaTeX macros. On the other hand, the FunnelWeb stuff does invoke outright certain plain TeX control sequences such as \obeylines and \raggedbottom. If there are no lplain definitions for these things, then indeed the FunnelWeb source must be changed. (Otherwise, just override the FunnelWeb settings in the included file.) If this works it will, nonetheless be a unsightly hack, but it might be preferable to modifying and then recompiling. (In the OS/2 port of FunnelWeb that I posted to the main OS/2 archive site I did make a couple of small changes in texhead.tex (the file containing the FunnelWeb macros) so that the appearance of the printed source was a bit more to my tastes...) In any case, even if it is necessary to modify texhead.tex, incorporating the results in a recompilation is simple enough; one merely invokes Funnelweb with the command that will convert texhead.tex into texhead.ctx and recompiles. I am, to be sure, assuming that LaTeX compatible equivalents for the existing macros will suffice; if there is no good way to map such things as FunnelWeb's section heading scheme onto LaTeX's chapter/ section stuff, then it may be necessary to rethink some of FunnelWeb's design to make it more LaTeX compatible. In any event, William's internal documentation for texhead.tex is thorough and it should not take one learned in the ways of LaTeX all that long to see whether the conversion can be done just by redefining what is in texhead.tex. Ciao, Paul Lyon ================================================================================ Archive-Date: Tue, 06 Apr 1993 06:20:12 CDT Sender: LP-Mgr@SHSU.edu Date: Tue, 6 Apr 1993 21:19:09 +1000 From: Richard Walker Reply-To: LitProg@SHSU.edu Message-ID: <199304061119.AA18095@barnard.anu.edu.au> To: LitProg@SHSU.edu Subject: Re: Mini-indexes in TeX: The Program & METAFONT: The Program > It is possible that no change to the programme itself will be need. I > am, as well, for the most part unfamiliar with LaTeX, but it seems to > me that it might suffice to redefine all the TeX macros used in > FunnelWeb to invoke LaTeX macros or LaTeX compatible macros, collect > the redefinitions in a file, and "\input" that file as the first line > in a FunnelWeb source file Exactly - you either have to: 1. write a script to strip off the preamble of the woven output, replace it with the LaTeX version, *and add a postamble*; or 2. modify the fw program to print out a better preamble *and postamble*. I think a modification is better - at least to add a typesetter directive, viz.: @p typesetter = latex Ah yes, but how to handle the preamble and postamble? How about something like this: @p typesetter = latex latexhead latexfoot This would make the woven output look like this: \input latexhead < Normal woven output, but *without* the `plain TeX'-specific preamble and postamble > \input latexfoot latexhead.tex would contain the preamble you want, e.g.: -------------- \documentstyle[12pt,fw-latex,makeidx,a4]{article} . . . more stuff . . . \begin{document} \maketitle \tableofcontents % Maybe not always . . . -------------- (fw-latex.sty would define all the `fw...' macros) and latexfoot.tex would contain the postamble, e.g.: -------------- \bibliography{myprogram} \printindex \end{document} -------------- When rewriting the implementation of the `fw...' macros I think we would want to use LaTeX's sectioning and indexing facilities. What do you think? Richard. ================================================================================ Archive-Date: Tue, 06 Apr 1993 06:46:32 CDT Sender: LP-Mgr@SHSU.edu Date: Tue, 6 Apr 1993 07:44:53 -0400 From: ae1181t@stnfor.ae.ge.com (Osman F Buyukisik) Reply-To: LitProg@SHSU.edu Message-ID: <9304061144.AA26457@stnfor.ae.ge.com> To: LitProg@SHSU.edu Subject: Re: Mini-indexes in TeX: The Program & METAFONT: The Program In FunnelWeb, you can set the typesetter using @t typesetter=tex. May be the code is easy to change so that LaTeX may be an option (or others?). ================================================================================ Archive-Date: Tue, 06 Apr 1993 16:41:28 CDT Sender: LP-Mgr@SHSU.edu Date: Tue, 6 Apr 93 17:39:25 -0400 From: norman@bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu Message-ID: <9304062139.AA04321@flaubert.bellcore.com> To: LitProg@SHSU.edu Subject: Re: Mini-indexes in TeX: The Program & METAFONT: The Program > Is there any place where one can get the required macros to configure > FunnelWeb so that LaTeX is used as the typesetter rather than TeX? I'll just take this opportunity to point out that noweb works with Latex as distributed. You can ftp noweb from bellcore.com:pub/norman/noweb.shar.Z or from csservices.princeton.edu:pub/noweb.shar.Z. Norman Ramsey ================================================================================ Archive-Date: Wed, 07 Apr 1993 12:15:50 CDT Sender: LP-Mgr@SHSU.edu Date: Wed, 7 Apr 93 12:14:49 -0500 From: plyon@emx.cc.utexas.edu (Paul Lyon) Reply-To: LitProg@SHSU.edu Message-ID: <9304071714.AA29135@emx.cc.utexas.edu> To: LitProg@SHSU.edu CC: LitProg@SHSU.edu Subject: LaTeX and FunnelWeb In regards to LaTeX and FunnelWeb, Richard Walker writes: > When rewriting the implementation of the `fw...' macros I think > we would want to use LaTeX's sectioning and indexing facilities. > What do you think? Well, since I have never actually written anything substantial using LaTeX, all I can say is that it seems plausble to me that this would be the right way to go, especially if LaTeX makes it possible to easily set up a table of contents from the calls to the section control sequences. Taken together these mechanisms could fill some of the gap between FunnelWeb and the language specific Webs in the matter of indexes and the like. Perhaps this may entice me away from plain TeX to LaTeX :-) My thinking had taken a different turn up to now. It seems to me that one could construct a FunnelWeb supplement macro file using some of the pieces avaibable from niord and eslewheres. So far all I have is a small file "fwsupl.tex" that combines some bits nicked from the Cweb macros with some nicked from the TeXbook appendix E via TeXsis. In addition, I use the ruled tables package out of TeXsis. I have been pondering how to use Karl Berry's eplain macros with FunnelWeb, but have not gotten very far with this (other things, such as the teaching I am paid to do, keep getting in the way :-) In addition, I would like to have other capabilities, such as those offered by epic or PiCTeX, or the TreeTeX package. On a related point, it seems to me that, at least at present, the resources, in the way of time and effort, available to improve the state of literate programming tools, are rather limited. We are still waiting for the new version of Cweb, for example; I presume that this is because Levy and Knuth have little time to devote to it. Accordingly, it seems to me that such energy and time as we have to spare ought to go into improving the tools we already have rather than into the development of GUI based ("WYSIWYG") literate programming tools. I, for one, was disheartened to read Lee Wittenberg's posting about his beginning efforts using Word for Windows, and that by S.C. Cross on using FrameMaker. Besides a better interface to pertinent TeX or LaTeX macro packages, I can think of several things that would be of aid to the literate programmer, such as better macro processing---to be achieved by stealing as much as seems applicable from GNU M4 (and perhaps also the macro capability in the preprocessor for the COOL C++ library, and other places as well), or cross-indexing over multi-module web source, and the like. Ciao, Paul Lyon ================================================================================ Archive-Date: Wed, 07 Apr 1993 12:47:32 CDT Sender: LP-Mgr@SHSU.edu Date: Wed, 7 Apr 93 12:49:24 -0500 From: plyon@emx.cc.utexas.edu (Paul Lyon) Reply-To: LitProg@SHSU.edu Message-ID: <9304071749.AA03131@emx.cc.utexas.edu> To: LitProg@SHSU.edu CC: LitProg@SHSU.edu Subject: Noweb and LaTeX Norman Ramsey writes: > I'll just take this opportunity to point out that noweb works with > Latex as distributed. Well, this had not occurred to me, but in light of the discussion about FunnelWeb and LaTeX, it now seems to me that using LaTeX with noweb could help significantly in making use of it. I rather liked the design idea of noweb when I first saw it, but thought more development was needed. I did a few things with it, but then switched to FunnelWeb as soon as I managed to make a working OS/2 2.0 port of the latter. Though I know little of LaTeX, being heretofore strictly a plain TeX person, I rather wonder if the additional capabilities of LaTeX might not be enough so that I could do what I wanted using noweb as well. I must say though, that I will have a hard time reconciling myself to using `<<...>>' rather than `@<...>@' when doing C/C++ :-) Could someone who is more LaTeX literate than I make some suggestions about how using LaTeX would make for better woven Webs? Ciao, Paul Lyon ================================================================================ Archive-Date: Wed, 07 Apr 1993 23:15:09 CDT Sender: LP-Mgr@SHSU.edu Date: Wed, 7 Apr 93 23:13:42 CDT From: preston@cs.rice.edu (Preston Briggs) Reply-To: LitProg@SHSU.edu Message-ID: <9304080413.AA01414@dawn.cs.rice.edu> To: LitProg@shsu.edu Subject: web tool Inspired by all these nice new tools, especially FunnelWeb and noweb, I've written yet another web-like system. Currently I call it nuweb, punning slighly on Ramsey's noweb. It's similar to FunnelWeb in that it allows use of many programming languages and allowing the creation of many output files. On the other hand, it is much simpler and depends on latex (versus tex). I also stole the idea of writing output files to temps first and comparing before touching the final result. This is a _really_ nice feature for large programs; everyone should do it. The big advantages I see for latex are the multilevel sectioning commands and the support for pictures (and bibliographies, crossreferences, etc). On the other hand, latex does add some overhead to programming. It may make nuweb better for writing papers and large programs than for smaller examples. Basically, you write a latex document, being slightly careful about using @ characters, but otherwise using all the features of latex. You can sprinkle in file definitions and macro definitions throughout the code. These'll be recognized and formatted slightly (code just comes out it \tt, with the no changes in line breaks or indentation). There's only one program. You run it on the web file and it spits out the .tex file and all the output files at once. Basically, it's so fast, I don't see a lot of reason not to do everything at once. On the other hand, I defined flags to suppress different passes for use on slower machines. When the tex file is written, the file and macro definitions get cross reference info similar that provided by weave. I can make indices for file names and macro names, but I can't make an index of identifiers. Thus, the big losses compared to a lagnuage-sensitive system like CWEB are: no pretty printing, no identifier index, and no line number info inserted in the output files. The big advantages are: no pretty printing, speed, and precise control of the output. It can be used it on any language or combination of languages (C, C++, Fortran, yacc, lex, awk, make, and so forth). There aren't very many commands: @@ puts a single @ into the result (tex or output file) @i file_name includes a file @o file-name scrap writes the scrap out to the file @d macro-name scrap defines a macro that can be invoked from within a scrap where scrap is @{anything@} where "anything" doesn't include @o, @d, @m, @f, or @{ but may include @ Every character between the @{ and the @} is significant, so be careful of those carriage returns. In the .tex output, a $\Diamond$ is inserted to help show how many newlines are at the end of a scrap. @f makes an index of file names @m makes an index of macro names @ may appear in a scrap. On output to a file, will be exapanded to include all the scraps making up a macro. The expansion will be indented to match the invocation. A file or a macro may be defined in several places. All the scraps contributing to their definitions are simply concatenated. I allow ... at the end of macro names (a la Knuth), so you can type @d This... as an abbreviation for @d This is a long macro name I wrote it all in a hurry over a weekend. Then I rewrote it in nuweb. This took a little longer, since I was being more careful (and fixing features that had turned out poorly). I'm still filling in documentation -- always hard for me. I'll be glad to share it around if people will send me bug reports. The code is all in C (old-style, not ANSI C). Seems to work on a Sun; ought to work on other things. Doesn't require awk or anything; but it doesn't make a lot of sense without latex. Preston Briggs ================================================================================ Archive-Date: Thu, 08 Apr 1993 00:57:53 CDT Sender: LP-Mgr@SHSU.edu Date: Thu, 8 Apr 1993 15:56:39 +1000 From: Richard Walker Reply-To: LitProg@SHSU.edu Message-ID: <199304080556.AA29261@barnard.anu.edu.au> To: LitProg@SHSU.edu Subject: Re: LaTeX and FunnelWeb OK, I bit the bullet and did the necessary work to get FunnelWeb to work with LaTeX. I was surprised how easy it was! I didn't even need to modify the fw program (but I did need to modify some of the TeX macros). To see how it's done, anonymous ftp to dcssoft.anu.edu.au and look in the directory pub/richard. (Or email if you can't ftp.) I've put the style file there, as well as an example program (a Knuth program originally in (Pascal) WEB, which appeared in CACM). (But DO read the README!) Please send me reports of problems . . . . Richard (richard@cs.anu.edu.au). ================================================================================ Archive-Date: Thu, 08 Apr 1993 04:18:53 CDT Sender: LP-Mgr@SHSU.edu Date: Thu, 8 Apr 93 11:08:38 +0200 From: coates@spectro.jussieu.fr Reply-To: LitProg@SHSU.edu Message-ID: <9304080908.AA03219@ernestine.spectro.jussieu.fr> To: LitProg@shsu.edu Subject: Future Developments > From: plyon@emx.cc.utexas.edu (Paul Lyon) ... > On a related point, it seems to me that, at least at present, the > resources, in the way of time and effort, available to improve the > state of literate programming tools, are rather limited. We are still > waiting for the new version of Cweb, for example; I presume that this > is because Levy and Knuth have little time to devote to it. > Accordingly, it seems to me that such energy and time as we have to > spare ought to go into improving the tools we already have rather than > into the development of GUI based ("WYSIWYG") literate programming > tools. I, for one, was disheartened to read Lee Wittenberg's posting > about his beginning efforts using Word for Windows, and that by S.C. > Cross on using FrameMaker. Besides a better interface to pertinent TeX > or LaTeX macro packages, I can think of several things that would be > of aid to the literate programmer, such as better macro > processing---to be achieved by stealing as much as seems applicable > from GNU M4 (and perhaps also the macro capability in the preprocessor > for the COOL C++ library, and other places as well), or cross-indexing > over multi-module web source, and the like. > > Ciao, > > Paul Lyon Disheartened? This intrigues me. After all, few of us have the foresight to really know what is going to be the way of the future. I for one don't see that improving the tools used by an elite few (and we are, let's face it, a minority) should take precedence over creating tools that could be more acceptable to the programming community at large. Fewer and fewer people use command lines any more, and Emacs is still often only for the cogniscenti, wonderful as it is. Many of my colleagues write all their scientific papers in Microsoft Word; if I was to try to convince them to use Literate Programming tools, I would have no chance with an Emacs/TeX combination. I might have a small chance with a Word for Windows package; who knows, using the coming abilities of the OLE 2.0 (Object Linking Environment) one could create a hypertext-style environment that might be much more attractive than anything currently seen under UNIX/TeX/Emacs (at least for now, we'll see what Sun can offer in terms of objects and such in the future). OK, so the argument is that maybe there are too few of us to chase all of these goals at once. But then, maybe there are too few of us to yet come to a consensus on what is best. We will see. Cheers, Tony. ________________________________________________________________________________ A.B.Coates (Tony) Laboratoire de Spectroscopie Hertzienne de l'ENS Universite Pierre et Marie Curie Case 74, 4 place Jussieu Email: coates@spectro.jussieu.fr F-75252 Paris CEDEX 05 Telephone: +33 1 44 27 44 09 France Fax: +33 1 44 27 38 45 "J'ai mes opinions. L'universite a ses opinions. L'intersection de ces deux ensembles est probablement vide." "I have my opinions. The university has its opinions. The intersection of these two sets is probably empty." ________________________________________________________________________________ ================================================================================ Archive-Date: Thu, 08 Apr 1993 09:00:06 CDT Sender: LP-Mgr@SHSU.edu Date: Thu, 8 Apr 1993 23:58:46 +1000 From: Richard Walker Reply-To: LitProg@SHSU.edu Message-ID: <199304081358.AA29959@barnard.anu.edu.au> To: LitProg@SHSU.edu Subject: Re: Noweb and LaTeX > Could someone who is more LaTeX literate than I make some suggestions > about how using LaTeX would make for better woven Webs? Sure. LaTeX gives you: . cover page . table of contents, lists of tables & figures . sectioning, page headers & footers . bibliography in any format known to mankind! . glossaries . indexes . easy-to-use footnotes, margin paragraphs, lists, tables, plus other LaTeX environments . . . . new font selection scheme (if you dare) . easily changeable page sizes, two-sided output, etc. With `standard' (third-party) LaTeX style files you get: . easy support for other languages (e.g. with german.sty) . PostScript pictures (PStricks etc.) . easy PostScript fonts . make transparencies/slides using (say) FoilTeX (or even SLiTeX!) . all the other hundreds of third-party styles . . . . Summary: Plain TeX + web/cweb macros <<<...<<< LaTeX (insert arbitrary number of `less than' signs). Richard. ================================================================================ Archive-Date: Wed, 08 Apr 1993 11:43:47 CDT Sender: LP-Mgr@SHSU.edu Date: Fri, 9 Apr 93 10:27:29 -0500 From: huff@ecn.purdue.edu (John E Huff) Reply-To: LitProg@SHSU.edu Message-ID: <9304091527.AA11688@livingstone.ecn.purdue.edu> To: litprog@shsu.edu Subject: Location of eqalign.sty Could someone please tell me where I can get the eqalign.sty that fweave puts as an option when one uses the command line option "-PL". Thank you, John Huff ================================================================================ Archive-Date: Thu, 08 Apr 1993 13:20:36 CDT Sender: LP-Mgr@SHSU.edu Subject: Re: LaTeX and FunnelWeb From: Paul Prescod Reply-To: LitProg@SHSU.edu To: LitProg@SHSU.edu Date: Thu, 8 Apr 1993 14:18:21 -0400 Message-ID: <93Apr8.141830edt.246307-1@undergrad.math.uwaterloo.ca> > On a related point, it seems to me that, at least at present, the > resources, in the way of time and effort, available to improve the > state of literate programming tools, are rather limited. We are still > waiting for the new version of Cweb, for example; I presume that this > is because Levy and Knuth have little time to devote to it. > Accordingly, it seems to me that such energy and time as we have to > spare ought to go into improving the tools we already have rather than > into the development of GUI based ("WYSIWYG") literate programming > tools. I, for one, was disheartened to read Lee Wittenberg's posting > about his beginning efforts using Word for Windows, and that by S.C. > Cross on using FrameMaker. Besides a better interface to pertinent TeX > or LaTeX macro packages, I can think of several things that would be > of aid to the literate programmer, such as better macro > processing---to be achieved by stealing as much as seems applicable > from GNU M4 (and perhaps also the macro capability in the preprocessor > for the COOL C++ library, and other places as well), or cross-indexing > over multi-module web source, and the like. Good idea! Instead of making Literate programming useful to the masses of programmers using DOS, Windows, and Mac, we'll try to contain it to an almost wholly Unix-based phenomenon. In fact, this fits beautifully with the whole Unix/C philosophy. If we make the intellectual price of admitance high enough, we can keep the riff-raff from getting involved. ================================================================================ Archive-Date: Fri, 09 Apr 1993 13:32:58 CDT Sender: LP-Mgr@SHSU.edu From: Joachim Schrod Reply-To: LitProg@SHSU.edu Message-ID: <9304091802.AA17935@spice.iti.informatik.th-darmstadt.de> Subject: LaTeX support for CWEB, alpha test To: litprog@shsu.edu (Literate Programming Discussion List) Date: Fri, 9 Apr 1993 20:02:17 +0100 (MESZ) An alpha test version for the LaTeX support within CWEB is available by anonymous ftp from ftp.th-darmstadt.de [130.83.55.75] directory pub/incoming/schrod/cweb You should "cd" to this directory with one command, the subdirectory schrod/ is not readable for you. NOTE 1: For the usage of LaTeX in CWEB you need a patched version of CWEAVE. This patched version is built upon CWEB V3.0-- and is available in the same directory, please read the README file first. This patched version is not intended to be used in a production environment, it's just for testing the style. The changes will be folded in the CWEB 3.0 release; Silvio Levy has them. (At least, I think so. ;-) NOTE 2: CWEB V3.0beta introduces @* where is a hint about the importance of this starred section (to be expressed by layout). This is not yet supported by the LaTeX style, but will be RSN. Watch this space for announcements. :-) NOTE 3: Please read the README files and the supplied documentation (for the style: 3 pages user manual and 38 (fullpage.sty) pages on the implementation) before you send questions to me... Enjoy, Joachim -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Joachim Schrod Email: schrod@iti.informatik.th-darmstadt.de Computer Science Department Technical University of Darmstadt, Germany ================================================================================ Archive-Date: Fri, 09 Apr 1993 13:53:31 CDT Sender: LP-Mgr@SHSU.edu Date: Fri, 9 Apr 93 19:33:50 +0200 From: marcus@x4u.desy.de (Marcus Speh) Reply-To: LitProg@SHSU.edu Message-ID: <9304091733.AA14666@x4u.desy.de> To: LitProg@SHSU.edu Subject: Re: Location of eqalign.sty References: <9304091527.AA11688@livingstone.ecn.purdue.edu> >>>>> On Fri, 9 Apr 93 10:27:29 -0500, huff@ecn.purdue.edu (John E Huff) said: |> Could someone please tell me where I can get the eqalign.sty that fweave |> puts as an option when one uses the command line option "-PL". Sorry, I dont know where to get that file from (you probably tried archie, too). Maybe this helps, though: In fweb.sty (included in FWEB-v1.30 release at lyman.pppl.gov), I read: ---------------------------------- % Get LaTeX to include the optional style file eqalign.sty. %LaTeX.options "eqalign" ---------------------------------- And the FWEB User's Manual (or the shorter Guide) for v1.30 says (section 20.3.5) that, with the switch "LaTeX.options" you can include any options for \documentstyle[options]{style} but that the default is "" (as it should be). Thus, if this line is not commented out, "-PL" should not ask for "equalign.sty" (unless you changed fwebmac.sty which is overridden by fweb.sty). --Marcus Speh -- ----------------------------------------------------------------------- FWEB has got a list of Frequently Asked Questions (FAQ) for LitProg: You may obtain the latest version of this FAQ via anonymous FTP from - `ftp.desy.de' [141.34.1.2] in directory `/pub/faq/web/fweb' - `niord.shsu.edu' [192.92.115.8] in directory `[FILESERV.FWEB]', [Either as .texi, .dvi, .ps, .info or plain text file, with makefile] NOTE: you can now access a wealth of Literate Programming documents, including the FWEB FAQ, on the World Wide Web [WWW] at http://x4u.desy.de:80/ If you dont know about WWW, but you are on the Internet, try telnet info.cern.ch from there, go to "HEP" and then to "DESY" where you'll find an entry for "Literate Programming". ----------------------------------------------------------------------- ================================================================================ Archive-Date: Tue, 13 Apr 1993 22:07:37 CDT Sender: LP-Mgr@SHSU.edu Message-ID: Date: Tue, 13 Apr 93 02:12 PDT To: litprog@SHSU.edu Subject: Experiences with litprog so far From: Kayvan Sylvan Reply-To: LitProg@SHSU.edu Whew... I just spent about a day and a half reading the entire litprog archives. I figured it would be good if I were a bit more informed before I started sending to this list. I'm new to Literate Programming, though I've known about it for some years now. Recently, I had the pleasure of writing a real-world literate program for a client (and then an in-house tool to aid in a {\it large} and nontrivial global change to a massive amount of 4GL source code). The first program that I wrote, \.{dbstrip}, took about two days to write, and about an hour or two to find and fix the one (fingers crossed \smiley) bug. I originally wrote it in CWEB 2.8 but switched over to FWEB (for reasons I'll talk about later). The purpose of the \.{dbstrip} program is to strip unwanted characters from STRING fields in a Unify database. I wrote this program using WEB mostly as an experiement to save time and effort (now and later). Part of my task was to write a design document, have it approved by my client, and then write the actual program. Using Literate Programming, I was able to produce an early version of the program/document which showed the essentials of my design, have it approved by the client, and then go on to complete the project (and have a beautifully typeset technical document as a side effect which I then delivered along with the code). It also made the task of coding {\it much} more fun. :-) To continue my tale, I now had a working program of high quality, produced in less time than it would take to create and debug a conventional program. I was ecstatic... but... ;-) Delivering the tangled code to my client proved a bit problematic. CWEB's ctangle produced uncommented, unformatted, {\t unreadable} C code. My client was not happy with this. I ran the code through indent and that was a bit more palatable, but the stripping of my copious comments was still annoying. At this time, I ran into FWEB, and since I was also looking for ANSI C/C++ support, I decided to try using FWEB. I brought it up on my ESIX system (with only a minor bug fix) using gcc-2.3.3. I converted my \.{dbstrip} program from CWEB to FWEB, and found, much to my pleasant surprise, that FWEB was much more customizable than CWEB. As a side comment, John Krommes, the author of FWEB, has been very helpful and responsive to Email and worked with me on finding solutions to various problems. Anyway, I regenerated the tangled code using ftangle, with the "-v" command line option that tells ftangle to keep the comments, ran the code through indent, and delivered the final code (along with the web file and a pointer to ftangle) to my client who was happy with the code and impressed by the documentation. The saga doesn't end here. :-) Upon porting this simple program to the RS6000, I ran into a problem and I'm wondering if anyone has seen anything similar to this: (*) The program works correctly if it is compiled without optimization, but seg-faults if it is compiled with optimization. This is obviously a copmpiler optimizer bug, but I'm wondering if using LitProg techniques might exacerbate these kinds of bugs. The tangled code from my web source includes a couple of {\it large} functions with lots of loops and control structures... A direct consequence of using named sections somewhat in place of function calls. The program works perfectly on some other machines I've tested it on. Has anyone else run into a compiler limit like this one because of using litprog techniques? What did you do? My second literate program was written in C++ using FWEB, producing a few files and being split across several sources with an attendant generic Makefile that I developed. It also ran perfectly the first time (and I credit that to the care I took when writing it and that the act of writing {\it about} what I was doing clarified my own thinking). This post is long enough as it is. I hope to contribue more to this list and I am particularly interested in insights that people have about using Object Oriented Design and Literate Programming. ---Kayvan | Kayvan Sylvan, Sylvan Associates, kayvan@satyr.Sylvan.COM, (408) 978-1407 | | Consulting, Training, Development, SysAdmin, {BSD,SVr3,SVr4} Unix Systems | | "Think Globally, Act Locally." "Only you can make your dreams come true." | | Proud Dad of Katherine Yelena (born 8/8/89) & Robin Gregory (born 2/28/92) | ================================================================================ Archive-Date: Wed, 14 Apr 1993 05:36:13 CDT Sender: LP-Mgr@SHSU.edu Message-ID: Date: Wed, 14 Apr 93 03:31 PDT To: litprog@shsu.edu Subject: I'm hooked now!! From: Kayvan Sylvan Reply-To: LitProg@SHSU.edu The problem I was talking about in my last (long) post, with my first {\em real} literate program, was just solved! While I was relaxing, reading my woven output, I spotted a subtle bug that only showed up on the RS6000. I fixed this bug, made some performance improvements while I was at it, and tested the RS6000 build. It worked!!! I'm very happy with the fact that I used Literate Programming, since similar bugs in non-literate programs have stumped me for days, sometimes weeks. Having written the program in an {\em expository} mode, I made it easier for {\em myself} to understand and debug what I was doing! ---Kayvan | Kayvan Sylvan, Sylvan Associates, kayvan@satyr.Sylvan.COM, (408) 978-1407 | | Consulting, Training, Development, SysAdmin, {BSD,SVr3,SVr4} Unix Systems | | "Think Globally, Act Locally." "Only you can make your dreams come true." | | Proud Dad of Katherine Yelena (born 8/8/89) & Robin Gregory (born 2/28/92) | ================================================================================ Archive-Date: Wed, 14 Apr 1993 17:19:10 CDT Sender: LP-Mgr@SHSU.edu From: Vince Mehringer Reply-To: LitProg@SHSU.edu Message-ID: <9304142217.AA23840@magnolia> Subject: Current View of LitProg To: litprog@shsu.edu Date: Wed, 14 Apr 93 18:17:17 EDT Here's where I stand in relation to Literate Programming at the moment. Set me straight if I'm wide of the mark on something. In any case I'd like to hear other opinions on the subject. Background: - software developer ~10 years - mostly C and C++, though some FORTRAN early on and some Lisp recently - last project involved more than 40 people and resulted in more than 2 million lines of C, C++, and Lisp - bought _Literate Programming_ when it first came out and have ruminated on the subject since then Problems Suitable for LitProg: Navigation ========== One thing I've seen on project after project is that it is difficult to focus on the appropriate level of the code. The indexing and cross-referencing I've seen in LP examples is very encouraging. But one must be able to change contexts _fast_! Double-clicking on the reference and having it on the screen is the kind of speed that is needed. Documentation ============= If the code and text are in separate files, forget it. And the farther away they are from each other in the same file, the less likely they will stay in synch. I know LP doesn't guarantee code and documentation synchronization, but at least it seems to present small chunks of both at the same time. This "in your face" presentation of the documentation seems the best approach so far. Difficulties with Current Tools: Formatting Language =================== I'm a software developer -- not a typesetter, and for now I refuse to get sucked into the black hole that is document layout. We have developed coding style guidelines to avoid questions of how far to indent, what declarations should look like, etc. These questions can be answered once, and then productivity is increased. I should _not_ have to deal with learning and coding in a formatting language. This is not a knock against TeX or any other formatting language -- they are extremely useful in the appropriate domain. But to a software developer any formatting language (if one is used) should be completely transparent. Debugging ========= Ideally this would be on the same document that the program was written. At the very least it should be on unaltered code. I haven't tried CNOWEB, FWEB, or many of the other tools mentioned here, but I am encouraged to read that they transfer code for compilation without making changes. Illustrations ============= Should be included in a document without difficulty. Right now generating illustrations for a document is difficult enough. Merging them into a literate program is another challenge. Bottom Line: The hyptext navigation ability rings 100% true with me. Does a tool exist for moving gracefully through the code? The problem of code and documentation getting out of synch gnaws away, but some improvements have been made. But the lack of a tool which hides the formatting language is a real killer. For now I will encourage the evolution of Literate Programming, dream about what an ideal tool should do, and keep looking for a tool which comes close to the ideal. Oh, and continue developing software as effectively as possible. Vince Mehringer vince@eye.com P.S. Thanks to all at SHSU for maintaining this forum! ================================================================================ Archive-Date: Wed, 14 Apr 1993 19:41:41 CDT Sender: LP-Mgr@SHSU.edu Message-ID: Date: Wed, 14 Apr 93 17:15 PDT To: litprog@shsu.edu From: Kayvan Sylvan Reply-To: LitProg@SHSU.edu Subject: All these WEBS... Quick thoughts I've probably gone overboard, but what the hell. I grabbed all the WEB tools I could get my hands on. Being between projects does strange things to me, especially when I have ``programming fever''. I've got CWEB-2.8, FWEB-v130, c-no-web, and noweb installed. Here's my quick thoughts on all these packages: 1. CWEB-2.8 is fairly good for non-ansi C (and Cameron Smith shows a way to use it for ANSI C by his KR-CW-sample). Fairly solid. Nice features. It's not easily configurable, and works easily only with TeX. It's a medium sized package. 2. FWEB-v130 is my current favorite. It handles C, C++, TeX, and a bunch of outdated programming languages that I almost don't believe people are still using. :-) It's nicely configurable. Among its features are a *large* user manual. Among its drawbacks is a *large* user manual. :-) Works with TeX or LaTeX. Large package. Lots of nice features. I've used it the most. 3. NOWEB. I like its simplicity. It's small and elegant. I'll probably use it for shell scripts, perl scrips, Makefiles, and other applications where literate programming would be good and I have no need for indexes or prettyprinting. It's a nice tool. Works with TeX or LaTeX (probably could change it to work with other formatters too). 4. C-no-web. Cute idea. I'm not sure if I will ever use it. I don't see it as "Literate Programming" since one of the basic ideas of litprog is the ability to organize your input code in any order you want (not tied to the order required by the compiler). I could see using c-no-web to enhance documentation of existing non-literate programs, though. Thoughts, comments, anyone? ---Kayvan | Kayvan Sylvan, Sylvan Associates, kayvan@satyr.Sylvan.COM, (408) 978-1407 | | Consulting, Training, Development, SysAdmin, {BSD,SVr3,SVr4} Unix Systems | | "Think Globally, Act Locally." "Only you can make your dreams come true." | | Proud Dad of Katherine Yelena (born 8/8/89) & Robin Gregory (born 2/28/92) | ================================================================================ Archive-Date: Wed, 14 Apr 1993 21:05:07 CDT Sender: LP-Mgr@SHSU.edu Date: Wed, 14 Apr 93 21:05:57 CDT From: fulling@sarastro.math.tamu.edu (Stephen A. Fulling) Reply-To: LitProg@SHSU.edu Message-ID: <9304150205.AA02484@sarastro.math.tamu.edu> To: LitProg@shsu.edu Subject: Re: Current View of LitProg CC: fulling@sarastro.math.tamu.edu Vince Mehringer writes: Difficulties with Current Tools: Formatting Language =================== I'm a software developer -- not a typesetter, and for now I refuse to get sucked into the black hole that is document layout. We have developed coding style guidelines to avoid questions of how far to indent, what declarations should look like, etc. These questions can be answered once, and then productivity is increased. I should _not_ have to deal with learning and coding in a formatting language. This is not a knock against TeX or any other formatting language -- they are extremely useful in the appropriate domain. But to a software developer any formatting language (if one is used) should be completely transparent. ========= Fair enough, but let's not confuse two very different things. GLOBAL formatting -- the layout of paragraphs and larger units -- can indeed be coded once and for all into macro files, and surely should be in any organization where many people have to work on the same document (or program). Same for coding style. However, the LOCAL TeX conventions for representing typeset mathematics in ASCII are too valuable in literate programming to give up. The ability to produce readable formulas in the documentation is one of the principal advantages of *WEB, and the basic symbols and control sequences needed to do a minimal job of that are presumably as easy to learn as the codes for any word processor that does an even remotely comparable job with mathematics. TeX users quickly get into the habit of using TeX notation in their e-mail, for direct mathematical communication with another human being through an ASCII medium that will never be typeset; TeX is now so nearly universal in academic math and physics that most people don't even bother to inquire whether the mail recipient is literate in the language. I think that this TeX coding will soon be learned by every calculus student. Of course, one can't produce perfect typeset output without a deeper knowledge of TeX. However, most people don't worry about polishing until the final draft, after all matters of substance have been settled; in the corporate context this task will presumably be handled by a specialist. Anal compulsives like me who insist on getting every thinspace right in the first draft will have no objection to learning TeX in depth. Steve Fulling ================================================================================ Archive-Date: Wed, 14 Apr 1993 22:57:52 CDT Sender: LP-Mgr@SHSU.edu Message-ID: Date: Wed, 14 Apr 93 20:19 PDT To: LitProg@SHSU.edu CC: vince@eye.COM Subject: Current View of LitProg From: Kayvan Sylvan Reply-To: LitProg@SHSU.edu >>>>> "Vince" == Vince Mehringer writes: Vince> Navigation [...] I use the GNU Emacs based web-mode, which allows me to do outlining (hiding various levels of the input source), jumping to sections and modules, use the web-generated index to jump to uses of identifiers or modules, and a lot more. Vince> Documentation [...] This is one of the *big* plusses of LitProg for me. My recent experiences have made me totally convinced of LitProg's utility to me *now* (without all the cool Hypertext/GUI advances that are probably in the wings). Vince> Difficulties with Current Tools: Vince> Vince> Formatting Language Not all LitProg implementations use TeX. NOWEB and FWEB both use LaTeX (which stands for Lazy-TeX, I think :-) You don't need to use all the features of TeX to get beautifully typeset programs out of a good LitProg tool. Vince> I'm a software developer -- not a typesetter, Capt'n, I can't change the laws of software development!! :-) But seriously, I'm not a typesetter, or a student, or a researcher, or a professor. :-) I'm a software developer working in the real world, developing systems... Vince> and for now I refuse to get sucked into the black hole that is Vince> document layout. We have developed coding style guidelines to Vince> avoid questions of how far to indent, what declarations should Vince> look like, etc. These questions can be answered once, and then Vince> productivity is increased. I should _not_ have to deal with Vince> learning and coding in a formatting language. This is not a Vince> knock against TeX or any other formatting language -- they are Vince> extremely useful in the appropriate domain. But to a software Vince> developer any formatting language (if one is used) should be Vince> completely transparent. Sounds like you might want to take a serious look at Norman Ramsey's NOWEB. It is simple and elegant, completely language independant, doesn't reformat your code, and is very easy to change for other formatters (The WEAVE process is a small shell script). Vince> Debugging [...] NOWEB, CWEB, and FWEB all provide support for including "#line" directives into the tangled program. FWEB also provides a breakpoint capability which I found useful in doing web-based debugging. Any compiler/debugger worth the bytes it is written on should be able to use these #line directives to jump you to the WEB source. Vince> Illustrations [...] If you relax your prohibitions against TeX and LaTeX, this is actaully not too hard. There are various ways of including postscript in TeX documents (my company letterhead is generated this way). I agree with you, though: My fantasy would be of a good GUI tool that allows you to paste graphics right into the WEB document as you are writing it. Vince> Bottom Line: Vince> The hyptext navigation ability rings 100% true with me. Does Vince> a tool exist for moving gracefully through the code? The Vince> problem of code and documentation getting out of synch gnaws Vince> away, but some improvements have been made. But the lack of Vince> a tool which hides the formatting language is a real killer. The web-mode for GNU Emacs that I spoke about above does most of this. I use it all the time. It's great. Vince> For now I will encourage the evolution of Literate Programming, Vince> dream about what an ideal tool should do, and keep looking for Vince> a tool which comes close to the ideal. Oh, and continue Vince> developing software as effectively as possible. I'm starting to believe that Literate Programming provides many benefits *now*, so while I agree with your sentiment, I'm not going to sit by the sidelines and watch it grow... I'm jumping right into the middle of it. ---Kayvan | Kayvan Sylvan, Sylvan Associates, kayvan@satyr.Sylvan.COM, (408) 978-1407 | | Consulting, Training, Development, SysAdmin, {BSD,SVr3,SVr4} Unix Systems | | "Think Globally, Act Locally." "Only you can make your dreams come true." | | Proud Dad of Katherine Yelena (born 8/8/89) & Robin Gregory (born 2/28/92) | ================================================================================ Archive-Date: Thu, 15 Apr 1993 11:24:10 CDT Sender: LP-Mgr@SHSU.edu Date: Thu, 15 Apr 1993 10:33:14 -0400 From: ae1181t@stnfor.ae.ge.com (Osman F Buyukisik) Reply-To: LitProg@SHSU.edu Message-ID: <9304151433.AA00560@stnfor.ae.ge.com> To: LitProg@SHSU.edu Subject: Re: All these WEBS... Quick thoughts there are a couple of more : CLIP: language independent, multiple files may be produced from one input, The WEB part looks like comment in the language you are using, order not important, you need to use your favorite Word processor/typesetter. FUNNELWEB: language independent, same as above but hooked into TeX some people have a working LaTeX version. sizable manual and programmers' manual. NUWEB: same as above but works with LaTeX. Couple of pages of manual. Program itself written in NUWEB. You get indices for the macros and files produced (just like in FWEB). All of the above does not pretty print your code and does not produce an index for the words used (other real WEB's do!). They are language independent. If you want code to be pretty printed and use different languages than (c,c++,fortran, TeX) the only option I know is to use SPIDER and produce your own WEB. I personally use NUWEB nowdays for everything. It is a small but powerful program. Osman. ================================================================================ Archive-Date: Thu, 15 Apr 1993 12:09:43 CDT Sender: LP-Mgr@SHSU.edu Date: Thu, 15 Apr 93 19:06:28 +0200 From: marcus@x4u.desy.de (Marcus Speh) Reply-To: LitProg@SHSU.edu Message-ID: <9304151706.AA17676@x4u.desy.de> To: LitProg@SHSU.edu Subject: Re: Current View of LitProg References: <9304142217.AA23840@magnolia> Thanks both to Vince and Kayvan Sylvan for their nice reports--keep those keynotes coming, folks. I think communicating among LitProgrammers on personal experiences cannot be overestimated. >>>>> On Wed, 14 Apr 93 18:17:17 EDT, Vince Mehringer said: |> Bottom Line: |> The hyptext navigation ability rings 100% true with me. Does |> a tool exist for moving gracefully through the code? This topic has not been beaten to death yet, but seems to come up regularly--for the sake of completeness: I was told by Tim Berners-Lee (who founded the World Wide Web initiative) that the www hypertext line mode browser (version 2.0) is capable of "Literate Programming" as well. This is part of his original message: BTW ... did you know you can now literate program in HTML, by using (the latest) www -to text/x-c xxx.html > xxx.h to reformat the document as C, with everything except PRE sections commented out? I used txt2html.sed to make the original .html, then I used the nextstep editor to format the file nicely. "text/x-c" is an experimental (x-) MIME content type. The "-to" and "-from" options take (from a limited set) a MIME content type value. You need version 2.0 or later. It's not documented yet. See http://info.cern.ch/hypertext/WWW/Library/Implementation/HTFormat.html for an example header file. I dont have www 2.0, and no time to bring it up now, but maybe someone who's experimenting with HyperText [HTML] wants to give it a try. All the source is (on the Web and) on info.cern.ch in pub/www. Note: the NeXTStep editor is not essential. There is also an Emacs mode to format HTML documents nicely. I'll put this (and Stephen Cross' earlier remark on using FrameMaker into the LitProg info page on the World Wide Web (see below). --Marcus Speh -- ----------------------------------------------------------------------- FWEB has got a list of Frequently Asked Questions (FAQ) for LitProg: You may obtain the latest version of this FAQ via anonymous FTP from - `ftp.desy.de' [141.34.1.2] in directory `/pub/faq/web/fweb' - `niord.shsu.edu' [192.92.115.8] in directory `[FILESERV.FWEB]', [Either as .texi, .dvi, .ps, .info or plain text file, makefile included.] NEW: you can now access a wealth of Literate Programming documents, including the FWEB FAQ, on the World Wide Web [WWW] at http://x4u.desy.de:80/ If you dont know about WWW, but you are on the Internet, try telnet info.cern.ch from there, go to "HEP" and then to "DESY" where you'll find an entry for "Literate Programming". ----------------------------------------------------------------------- ================================================================================ Archive-Date: Thu, 15 Apr 1993 12:35:41 CDT Sender: LP-Mgr@SHSU.edu Message-ID: <9304151718.AA17989@im4u.cs.utexas.edu> From: leew@cs.utexas.edu (Lee Wittenberg) Reply-To: LitProg@SHSU.edu Date: Thu, 15 Apr 1993 12:18:32 -0500 To: LitProg@shsu.edu Subject: Re: Noweb and LaTeX Adding my bit to the Noweb/FunnelWeb/plainTeX/LaTeX discussion: I use CWEB for my C/C++ code (currently a Spidery WEB version, but the new Levy/Knuth version should be out very soon -- it may be out already for all I know; I just got back from vacation, and am only halfway through my accumulated e-mail). I prefer the nicely typeset code a la Algol-60 (sorry, Norman). However, I also prefer LaTeX to plain TeX for most work, and Spidery WEBs are not appropriate for many languages, so I use Noweb with LaTeX for programs in these languages. When I saw FunnelWeb used in an article in a recent SIGPLAN Notices, I was very impressed and was planning on trying it, but now that I know it doesn't support LaTeX, I think I'll stick to Noweb. -- Lee ================================================================================ Archive-Date: Thu, 15 Apr 1993 12:35:50 CDT Sender: LP-Mgr@SHSU.edu From: Joachim Schrod Reply-To: LitProg@SHSU.edu Message-ID: <9304151717.AA15135@spice.iti.informatik.th-darmstadt.de> Subject: Literate Programming Archive, preliminary announcement To: litprog@shsu.edu (Literate Programming discussion) Date: Thu, 15 Apr 1993 19:17:52 +0100 (MESZ) Since the question on available WEBs came up recently on this list... I'm in the process to build the Literate Programming Archive. It's accessible by anonymous ftp at ftp.th-darmstadt.de [130.83.55.75] directory pub/programming/literate-programming This archive features both WEB systems and Tools for the aid of Literate Programming. All systems provided there are kept up to date automatically. Please note, that the directory is _not_ a subtree of the TeX directory tree. IMNSHO it's time that Literate Programming steps out of TeX's shadow into the realm of programming support. The archive isn't complete yet. Missing are Papers and other documentation on Literate Programming, the WEB mode of Mark Motl and Bart Childs, web_view, Sewell's MWEB, Sewell's webmerge, CLiP, some systems specific for certain platforms and only available as executables. (This list was not in any particular order, I just scetched a file in my notebook.) In addition, a README file which explains the archive structure and an OVERVIEW file which gives some hints on the highlights of the archive is not (yet) available. But I thought it might be of interest for you nevertheless. (Because of a long illness I wasn't able to finish the archive setup and now other (real ;-) work with higher priorities is to be done first.) Enjoy. Joachim -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Joachim Schrod Email: schrod@iti.informatik.th-darmstadt.de Computer Science Department Technical University of Darmstadt, Germany ================================================================================ Archive-Date: Thu, 15 Apr 1993 12:35:58 CDT Sender: LP-Mgr@SHSU.edu Date: Thu, 15 Apr 93 19:28:45 +0200 From: marcus@x4u.desy.de (Marcus Speh) Reply-To: LitProg@SHSU.edu Message-ID: <9304151728.AA17973@x4u.desy.de> To: LitProg@SHSU.edu Subject: Re: Experiences with litprog so far References: >>>>> On Tue, 13 Apr 93 02:12 PDT, Kayvan Sylvan said: |> My second literate program was written in C++ using FWEB, producing a |> few files and being split across several sources with an attendant |> generic Makefile that I developed. Did you solve the problem (outlined in the FWEB-FAQ in Question [29]) of presenting a _nice_ table of contents and a combined index which distinguishes between entries from different source files? The example I have in mind is Cameron Smith's hack of cwebmac.sty for the CWEB-KR-sample files. I know that John Krommes has put it in his long list of future enhancements (but it isnt contained in v1.30 as far as I can see). On Kayvan's list of tools: should merge with David's general FAQ (still in preparation). I only know CWEB (v3.0-beta, which I have found to be faultless so far) and FWEB (v1.30 is beta but John keeps eliminating bugs and it works fine for me). I agree with his opinions. I have CWEB,FWEB,NOWEB documents on the LitProg page for the World Wide Web. Somebody volunteers to write a few lines (HyperText ?) for C-No-Web along what I put up for the other LitProg tools? This mainly means one or more links to first-hand information and possibly some preprocessed examples. BTW, I plan to update the FAQ for FWEB v1.30 not later than next month. --Marcus Speh -- ----------------------------------------------------------------------- FWEB has got a list of Frequently Asked Questions (FAQ) for LitProg: You may obtain the latest version of this FAQ via anonymous FTP from - `ftp.desy.de' [141.34.1.2] in directory `/pub/faq/web/fweb' - `niord.shsu.edu' [192.92.115.8] in directory `[FILESERV.FWEB]', [Either as .texi, .dvi, .ps, .info or plain text file, makefile included.] NEW: you can now access a wealth of Literate Programming documents, including the FWEB FAQ, on the World Wide Web [WWW] at http://x4u.desy.de:80/ If you dont know about WWW, but you are on the Internet, try telnet info.cern.ch from there, go to "HEP" and then to "DESY" where you'll find an entry for "Literate Programming". ----------------------------------------------------------------------- ================================================================================ Archive-Date: Thu, 15 Apr 1993 17:22:40 CDT Sender: LP-Mgr@SHSU.edu From: ecprest@pocorvares.er.usgs.GOV (Eric Prestemon) Reply-To: LitProg@SHSU.edu Message-ID: <9304152216.AA09979@pocorvares> Subject: (none) To: LitProg@shsu.edu Date: Thu, 15 Apr 93 18:16:08 EDT CC: ecprest@pocorvares.er.usgs.GOV (Eric Prestemon) I have a question about a possible feature for a weave, that I think would be very useful. I would be interested to hear comments on whether you think it's a good idea, where the problems lie, and even how happy you'll be when I write it. Or feel free to tell me it's useless. Being stuck on a PC with no printer, I can't just print out my woven code. Also, we intend to ship a library with source, and we want to include the source in the most useful form possible. But we don't want to ship .dvi or postscript files. My idea, then, is to have a weave which produces the following: A texinfo or info file, such as those used for the GNU project documentation. The texinfo file is preferred, because it has the added benefit of being printable with TeX, with fairly nice output. Indexing and table of contents come about from the texinfo file. On-line info-viewers would let you follow references to where called modules were defined, variables defined, etc. I think this has potential. Of course, this would be ascii-based, and math-mode wouldn't be usable (although it *is* possible to have the printed version of the texinfo file contain TeX constructs.) I had thought about suggesting producing an html file, which could be read by a world-wide web browser, but I'm not sure how widely this format is used. It would be an excellent format for on-line woven output. Well, that's the general concept. Other issues, such as whethere this should/could be integrated into a current *weave, or whether it should be separate need to be addressed, also. Any thoughts? -Eric ================================================================================ Archive-Date: Thu, 15 Apr 1993 17:43:18 CDT Sender: LP-Mgr@SHSU.edu Date: Thu, 15 Apr 1993 17:42:58 CDT From: "George D. Greenwade" Reply-To: LitProg@SHSU.edu To: LitProg@SHSU.edu Message-ID: <0096B13D.DE5481C0.2879@SHSU.edu> Subject: RE: Literate Programming Archive, preliminary announcement On Thu, 15 Apr 1993 19:17:52 +0100 (MESZ), Joachim Schrod posted: > I'm in the process to build the Literate Programming Archive. It's > accessible by anonymous ftp at > > ftp.th-darmstadt.de [130.83.55.75] > directory pub/programming/literate-programming > > This archive features both WEB systems and Tools for the aid of Literate > Programming. All systems provided there are kept up to date automatically. > > Please note, that the directory is _not_ a subtree of the TeX directory > tree. IMNSHO it's time that Literate Programming steps out of TeX's shadow > into the realm of programming support. I have seen what Joachim is setting up had had been planning on mirroring this into the web archive area on the TeX archive network linking together Aston, Stuttgart, and SHSU. If the concensus is to put Literate Programming be within its own area, it's easily enough accomplished. Will get the mirror set up some time soon (probably need a few private messages between Joachim and me to look at some scheduling issues). --George ================================================================================ Archive-Date: Thu, 15 Apr 1993 18:34:19 CDT Sender: LP-Mgr@SHSU.edu Message-ID: <9304152332.AA12317@im4u.cs.utexas.edu> From: leew@cs.utexas.edu (Lee Wittenberg) Reply-To: LitProg@SHSU.edu Date: Thu, 15 Apr 1993 18:32:04 -0500 To: LitProg@shsu.edu Subject: Re: (none) Eric Prestemon writes: > My idea, then, is to have a weave which produces the following: > A texinfo or info file, such as those used for the GNU project > documentation. The texinfo file is preferred, because it has the added > benefit of being printable with TeX, with fairly nice output. Indexing > and table of contents come about from the texinfo file. On-line > info-viewers would let you follow references to where called modules > were defined, variables defined, etc. I think this has potential. I don't see why this couldn't be done. It should be fairly easy (sic) to write a filter for Noweb that takes the output from markup and produces texinfo instead of TeX or LaTeX output. It should also be possible to do this for the various prettyprinting WEBs, although it will require a lot more messing around with the code. -- Lee ================================================================================ Archive-Date: Sun, 18 Apr 1993 17:06:50 CDT Sender: LP-Mgr@SHSU.edu Date: Sun, 18 Apr 93 17:09:00 -0500 From: plyon@emx.cc.utexas.edu (Paul Lyon) Reply-To: LitProg@SHSU.edu Message-ID: <9304182209.AA29228@emx.cc.utexas.edu> To: LitProg@SHSU.edu CC: LitProg@shsu.edu Subject: Future Developments In response to a previous post of mine, Tony Coates writes: > Disheartened? This intrigues me. After all, few of us have the > foresight to really know what is going to be the way of the future. To be sure, but then I was not thinking about the next few years so much as I was thinking about the next few months, or perhaps a year or so. It seems unlikely there will be but one "way of the future", and in any case I do not expect that literate programming will ever be more than a minority pursuit (see below). > I for one don't see that improving the tools used by an elite few (and > we are, let's face it, a minority) should take precedence over > creating tools that could be more acceptable to the programming > community at large. Fewer and fewer people use command lines any > more, and Emacs is still often only for the cogniscenti, wonderful as > it is. Many of my colleagues write all their scientific papers in > Microsoft Word; if I was to try to convince them to use Literate > Programming tools, I would have no chance with an Emacs/TeX > combination. The urgency of spreading literate programming to the programming community at large escapes me. For one thing, one would have to foster better writing skills while one was at it. This pessimism on my part may be parochial: some of the courses I teach here are courses "with a substantial writing component", as it is put hereabouts. The University wisely requires that all its undergraduates take such courses in addition to the basic English composition course; judging by the overall quality of the work I receive, the undergraduates are much in need of practice and assistance. At that, the students I see are mostly Liberal Arts students, and 3rd and 4th year ones to boot. No doubt there is a significant non-overlap of the set of programmers possessed of decent writing skills with the set of those prepared to cope with TeX or LaTeX. Your colleagues may well be instances to the point. But then, one of the improvements I would hope for in the existing tools would be a better interface to TeX or LaTeX. Surely we can reach some agreement among us about what is desirable along these lines? The other thing needed to bridge the gap, so it seems to me, is a decent online help system for TeX or LaTeX, the which could be extended to include Web commands. Embedded command formatting would not be so difficult to deal with were one not constantly forgetting which command sequence does what. A main advantage of the GUI-based word processors is that they reduce the need for having the formatting manual (the TeXbook, in my case) by one's side. As for the gap between the text editors embedded the GUI-based word processors with Emacs, surely the various X windows versions of Emacs can serve as a bridge? Having posed this, I should note that I have never actually used Epoch or Lucid Emacs. The Emacs port to OS/2 2.0 is what I have to work with, and a Presentation Manager version of that will not soon be available, alas. [Emacs Version 19 will be a precondition for such, but one grows weary waiting for that...] Again, though, it seems to me that the major advantage of the GUI-based editors is the menu/dialog box system, which reduces the load on one's memory. Emacs could surely use some of that! (The Emacs 18 help system is clumsy at best; again, I mostly find myself reaching for the printed manual.) But I suppose this is mostly by-the-by; even with such improvements as as these, I doubt you would be able to wean your colleagues away from what they are using to consider tools that require Emacs plus TeX, or some such combination. But then I wonder, what is so terribly wrong with this state-of-affairs? Is it that you must use or maintain code that they write? Or that they expect to use code that you write? Trying to use literate programming tools on a multi-programmer project when none of the others are, will, I agree, pose a significant problem. > I might have a small chance with a Word for Windows package; who > knows, using the coming abilities of the OLE 2.0 (Object Linking > Environment) one could create a hypertext-style environment that might > be much more attractive than anything currently seen under > UNIX/TeX/Emacs (at least for now, we'll see what Sun can offer in > terms of objects and such in the future). I am unfamiliar with OLE 2.0. But I wonder what the impact of hypertext features would be on tangling and weaving. The hypertext model is, after all, a general graph. The compiler and the formatter, however, expect linear text in a fairly rigid order. What one could do, I suspect, is to include the hypertext links in the web source to make navigation among the parts of it easier when writing, but leave the undelying text in the proper linear order, then have the tangle and weave processors strip the links out before handing the results on to the compiler and formatter. > OK, so the argument is that maybe there are too few of us to chase > all of these goals at once. But then, maybe there are too few of us > to yet come to a consensus on what is best. We will see. I think that there are enough of us to see what is better, if not what is best :-) We all realize, for example, that user configurable pretty-printing would be desirable in Cweb, Fweb, and the like. And anyone who has stared at the code for Cweb, Fweb, and Spiderweb, should realize that the existing code is not readily extended. Perhaps the first thing that should be done with Cweb 3.0, when it is released, is to rewrite it in C++, with appropriate care taken to do a proper ``object-oriented'' job of it :-) Ciao, Paul Lyon ================================================================================ Archive-Date: Sun, 18 Apr 1993 17:06:58 CDT Sender: LP-Mgr@SHSU.edu Date: Sun, 18 Apr 93 17:09:00 -0500 From: plyon@emx.cc.utexas.edu (Paul Lyon) Reply-To: LitProg@SHSU.edu Message-ID: <9304182209.AA29228@emx.cc.utexas.edu> To: LitProg@SHSU.edu CC: LitProg@shsu.edu Subject: Future Developments In response to a previous post of mine, Tony Coates writes: > Disheartened? This intrigues me. After all, few of us have the > foresight to really know what is going to be the way of the future. To be sure, but then I was not thinking about the next few years so much as I was thinking about the next few months, or perhaps a year or so. It seems unlikely there will be but one "way of the future", and in any case I do not expect that literate programming will ever be more than a minority pursuit (see below). > I for one don't see that improving the tools used by an elite few (and > we are, let's face it, a minority) should take precedence over > creating tools that could be more acceptable to the programming > community at large. Fewer and fewer people use command lines any > more, and Emacs is still often only for the cogniscenti, wonderful as > it is. Many of my colleagues write all their scientific papers in > Microsoft Word; if I was to try to convince them to use Literate > Programming tools, I would have no chance with an Emacs/TeX > combination. The urgency of spreading literate programming to the programming community at large escapes me. For one thing, one would have to foster better writing skills while one was at it. This pessimism on my part may be parochial: some of the courses I teach here are courses "with a substantial writing component", as it is put hereabouts. The University wisely requires that all its undergraduates take such courses in addition to the basic English composition course; judging by the overall quality of the work I receive, the undergraduates are much in need of practice and assistance. At that, the students I see are mostly Liberal Arts students, and 3rd and 4th year ones to boot. No doubt there is a significant non-overlap of the set of programmers possessed of decent writing skills with the set of those prepared to cope with TeX or LaTeX. Your colleagues may well be instances to the point. But then, one of the improvements I would hope for in the existing tools would be a better interface to TeX or LaTeX. Surely we can reach some agreement among us about what is desirable along these lines? The other thing needed to bridge the gap, so it seems to me, is a decent online help system for TeX or LaTeX, the which could be extended to include Web commands. Embedded command formatting would not be so difficult to deal with were one not constantly forgetting which command sequence does what. A main advantage of the GUI-based word processors is that they reduce the need for having the formatting manual (the TeXbook, in my case) by one's side. As for the gap between the text editors embedded the GUI-based word processors with Emacs, surely the various X windows versions of Emacs can serve as a bridge? Having posed this, I should note that I have never actually used Epoch or Lucid Emacs. The Emacs port to OS/2 2.0 is what I have to work with, and a Presentation Manager version of that will not soon be available, alas. [Emacs Version 19 will be a precondition for such, but one grows weary waiting for that...] Again, though, it seems to me that the major advantage of the GUI-based editors is the menu/dialog box system, which reduces the load on one's memory. Emacs could surely use some of that! (The Emacs 18 help system is clumsy at best; again, I mostly find myself reaching for the printed manual.) But I suppose this is mostly by-the-by; even with such improvements as as these, I doubt you would be able to wean your colleagues away from what they are using to consider tools that require Emacs plus TeX, or some such combination. But then I wonder, what is so terribly wrong with this state-of-affairs? Is it that you must use or maintain code that they write? Or that they expect to use code that you write? Trying to use literate programming tools on a multi-programmer project when none of the others are, will, I agree, pose a significant problem. > I might have a small chance with a Word for Windows package; who > knows, using the coming abilities of the OLE 2.0 (Object Linking > Environment) one could create a hypertext-style environment that might > be much more attractive than anything currently seen under > UNIX/TeX/Emacs (at least for now, we'll see what Sun can offer in > terms of objects and such in the future). I am unfamiliar with OLE 2.0. But I wonder what the impact of hypertext features would be on tangling and weaving. The hypertext model is, after all, a general graph. The compiler and the formatter, however, expect linear text in a fairly rigid order. What one could do, I suspect, is to include the hypertext links in the web source to make navigation among the parts of it easier when writing, but leave the undelying text in the proper linear order, then have the tangle and weave processors strip the links out before handing the results on to the compiler and formatter. > OK, so the argument is that maybe there are too few of us to chase > all of these goals at once. But then, maybe there are too few of us > to yet come to a consensus on what is best. We will see. I think that there are enough of us to see what is better, if not what is best :-) We all realize, for example, that user configurable pretty-printing would be desirable in Cweb, Fweb, and the like. And anyone who has stared at the code for Cweb, Fweb, and Spiderweb, should realize that the existing code is not readily extended. Perhaps the first thing that should be done with Cweb 3.0, when it is released, is to rewrite it in C++, with appropriate care taken to do a proper ``object-oriented'' job of it :-) Ciao, Paul Lyon ================================================================================ Archive-Date: Sun, 18 Apr 1993 20:26:57 CDT Sender: LP-Mgr@SHSU.edu Date: Sun, 18 Apr 93 20:28:56 CDT From: fulling@sarastro.math.tamu.edu (Stephen A. Fulling) Reply-To: LitProg@SHSU.edu Message-ID: <9304190128.AA02933@sarastro.math.tamu.edu> To: LitProg@shsu.edu Subject: Re: Future Developments CC: fulling@sarastro.math.tamu.edu plyon@emx.cc.utexas.edu (Paul Lyon) writes: >The urgency of spreading literate programming to the programming >community at large escapes me. For one thing, one would have to foster >better writing skills while one was at it. This pessimism on my part >may be parochial: some of the courses I teach here are courses "with a >substantial writing component", as it is put hereabouts. The >University wisely requires that all its undergraduates take such >courses in addition to the basic English composition course; judging >by the overall quality of the work I receive, the undergraduates are >much in need of practice and assistance. At that, the students I see >are mostly Liberal Arts students, and 3rd and 4th year ones to boot. > >No doubt there is a significant non-overlap of the set of programmers >possessed of decent writing skills with the set of those prepared to >cope with TeX or LaTeX. All the more reasons why all students should be introduced to literate programming and to TeX as early as possible! At present they see a total disconnect between "verbal" courses and "mathematical" courses (and activities and occupations). They also see precious little connection between computing and other technical courses (e.g., calculus). It should all be a seamless web. Maybe it's parochial optimism, but I have the impression that when you force them to TRY, most students produce much better written work than their usual output. S. A. Fulling ================================================================================ Archive-Date: Mon, 19 Apr 1993 14:32:17 CDT Sender: LP-Mgr@SHSU.edu Date: Mon, 19 Apr 93 15:29:07 -0400 From: norman@bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu Message-ID: <9304191929.AA00834@flaubert.bellcore.com> To: LitProg@SHSU.edu Subject: spiderweb status copyright fixed trying to iron out archive problems (as per bcc) so i can make an announcement. N ================================================================================ Archive-Date: Mon, 19 Apr 1993 15:11:16 CDT Sender: LP-Mgr@SHSU.edu Date: Mon, 19 Apr 93 16:07:37 -0400 From: norman@bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu Message-ID: <9304192007.AA00905@flaubert.bellcore.com> To: TeXhax@cs.washington.edu, litprog@shsu.edu Subject: Spidery WEB copyright restrictions lifted I am pleased to announce that at long last the restrictive copyright on Spidery WEB has been eased. Spidery WEB may now be used freely for any purpose, including writing software for profit. I am also pleased to announce that I am no longer supporting Spidery WEB. (True de facto for some time, but now true de jure.) Bug fixes and bug reports should be sent to the copyright holders, ORA Corporation, E-mail address spider-bugs@oracorp.com. The location at which Spidery WEB is stored has also changed. Spidery WEB is available by anonymous ftp from pip.shsu.edu:tex-archive/web/spiderweb. This location is mirrored at other sites as part of the Comprehensive Tex Archive Network. Norman Ramsey ================================================================================ Archive-Date: Mon, 19 Apr 1993 15:15:34 CDT Sender: LP-Mgr@SHSU.edu Message-ID: <9304192013.AA16172@im4u.cs.utexas.edu> From: leew@cs.utexas.edu (Lee Wittenberg) Reply-To: LitProg@SHSU.edu Date: Mon, 19 Apr 1993 15:13:12 -0500 To: LitProg@shsu.edu Subject: Re: Future Developments Paul Lyon writes: > The urgency of spreading literate programming to the programming > community at large escapes me. For one thing, one would have to foster > better writing skills while one was at it. This pessimism on my part > may be parochial: some of the courses I teach here are courses "with a > substantial writing component", as it is put hereabouts. The > University wisely requires that all its undergraduates take such > courses in addition to the basic English composition course; judging > by the overall quality of the work I receive, the undergraduates are > much in need of practice and assistance. At that, the students I see > are mostly Liberal Arts students, and 3rd and 4th year ones to boot. I find the same situation with my students, although I teach mostly CS students. We also have ``writing emphasis'' courses (I'm trying to develop one in Literate Programming, e'en as we speak). One of the things I've found with LP, though, is that a poorly written literate program seems to be easier to maintain than an average quality non-literate one. Admittedly, all my evidence is anecdotal, and I have yet to see a really horrible literate program (perhaps once I've got a bunch of students trying it?), but maintenance is such an important part (perhaps the most important part) of CS, that LP seems worth pursuing for that reason alone. > No doubt there is a significant non-overlap of the set of programmers > possessed of decent writing skills with the set of those prepared to > cope with TeX or LaTeX. Your colleagues may well be instances to the > point. But then, one of the improvements I would hope for in the > existing tools would be a better interface to TeX or LaTeX. Surely we > can reach some agreement among us about what is desirable along these > lines? The other thing needed to bridge the gap, so it seems to me, is > a decent online help system for TeX or LaTeX, the which could be > extended to include Web commands. Embedded command formatting would > not be so difficult to deal with were one not constantly forgetting > which command sequence does what. A main advantage of the GUI-based > word processors is that they reduce the need for having the formatting > manual (the TeXbook, in my case) by one's side. Agreed, although I think that ``agreement...about what is desirable...'' is one of those things that never happens, for various reasons. Corporations want standards, but they want everyone else to accept their standard rather than accept someone else's (NeXT being a notable exception) -- witness the current PC-database-standard wars between Microsoft and Borland (and the various companies behind each one), not to mention the upcoming operating system war. Regarding ``embedded command formatting,'' I've noticed that everyone who uses WinWord around here runs it with all of the formatting symbols (paragraph marks, dots for spaces, etc.) displayed. If they don't, WinWord tends to do strange things when they delete invisible ``characters.'' Is this WYSIWYG or embedded commands? One problem that surfaces with WYSIWYG editors, but not text-editor/embedded-command systems is one of tools. Most WYSIWYG editors have undocumented (usually binary) file formats, so we can't rely on the many text-based tools that have been developed (e.g. most everything in UNIX). We have to rely on the manufacturers to supply new tools, or work out the file format (ugh!) and make our own. One of the things I like about the various WEB systems (and TeX as well) is that they are maintained by people who actually use them on a regular basis, which is _not_ true for (I would venture to say) most commercial software. > As for the gap between the text editors embedded the GUI-based word > processors with Emacs, surely the various X windows versions of Emacs > can serve as a bridge? Having posed this, I should note that I have > never actually used Epoch or Lucid Emacs. The Emacs port to OS/2 2.0 > is what I have to work with, and a Presentation Manager version of > that will not soon be available, alas. [Emacs Version 19 will be a > precondition for such, but one grows weary waiting for that...] > Again, though, it seems to me that the major advantage of the > GUI-based editors is the menu/dialog box system, which reduces the > load on one's memory. Emacs could surely use some of that! (The Emacs > 18 help system is clumsy at best; again, I mostly find myself reaching > for the printed manual.) I work with MS-Windows rather than OS/2, but I echo Paul's wish for a Presentation Manager (Windows in my case) version of Emacs. I've tried the Micro Emacs Windows port, and while it's really good, there are a few things (e.g., not highlighting mouse-selected text) that make it difficult to use with any efficiency. > But I suppose this is mostly by-the-by; even with such improvements as > as these, I doubt you would be able to wean your colleagues away from > what they are using to consider tools that require Emacs plus TeX, or > some such combination. But then I wonder, what is so terribly wrong > with this state-of-affairs? Is it that you must use or maintain code > that they write? Or that they expect to use code that you write? > Trying to use literate programming tools on a multi-programmer project > when none of the others are, will, I agree, pose a significant > problem. Emacs plus TeX, of course, gives you more control than does a WYSIWYG word processor, but then again, most people don't seem to want that kind of control. I reckon Paul's right, here, too. > I think that there are enough of us to see what is better, if not what > is best :-) We all realize, for example, that user configurable > pretty-printing would be desirable in Cweb, Fweb, and the like. And > anyone who has stared at the code for Cweb, Fweb, and Spiderweb, > should realize that the existing code is not readily extended... I kind of take exception to this statement (in a nice way, of course :-)). While I haven't looked at the code for Fweb, I _have_ worked with both CWEB and Spidery WEB, and was quite astonished at how easy they were to understand and modify. I had to fix several bugs before I could CWEB working on my PC (all fixed now in the forthcoming 3.0 release), and have made several major extensions to my copy of Spidery WEB. All of these were surprisingly easy, and did not break the existing code. -- Lee ================================================================================ Archive-Date: Tue, 20 Apr 1993 09:25:21 CDT Sender: LP-Mgr@SHSU.edu Date: Tue, 20 Apr 93 10:23:59 EDT From: purtill@ccr-p.ida.org (Mark Purtill) Reply-To: LitProg@SHSU.edu Message-ID: <9304201424.AA24086@ccr-p.ida.org> To: LitProg@SHSU.edu Subject: Re: Future Developments > Agreed, although I think that ``agreement...about what is desirable...'' is > one of those things that never happens, for various reasons. Corporations > want standards, but they want everyone else to accept their standard rather > than accept someone else's (NeXT being a notable exception) Sorry, have I missed a NeXT announcement of some sort? Last time I looked, NeXT was hardly an exception: Display PostScript rather than standard X11, Objective C rather than standard C++. True, they're porting this non-standard software to a standard CPU (i486), but not to one of the standard OSs, DOS, Windows, OS/2, Linux :-), but as a new, non-standard OS. Or do you mean that NeXT is an exception to "corporations want standards"? That I'd believe. ^.-.^ Mark Purtill, purtill@ccr-p.ida.org; UUCP: uunet!idacrd!purtill ((")) \@_: IDA/CCR-P, Thanet Road, Princeton NJ 08540; (609) 924-4600. ================================================================================ Archive-Date: Tue, 20 Apr 1993 13:19:22 CDT Sender: LP-Mgr@SHSU.edu Return-Path: gapski@dt.fee.unicamp.br (Pedro B. Gapski - 880704) Date: 20 Apr 1993 14:36:59 -0500 (EST) From: Reply-To: LitProg@SHSU.edu To: LitProg@SHSU.edu Message-ID: <9304201736.AA13624@dt.fee.unicamp.br> SIGNOFF LitProg ================================================================================ Archive-Date: Tue, 20 Apr 1993 14:46:01 CDT Sender: LP-Mgr@SHSU.edu Message-ID: <9304201944.AA02087@im4u.cs.utexas.edu> From: leew@cs.utexas.edu (Lee Wittenberg) Reply-To: LitProg@SHSU.edu Date: Tue, 20 Apr 1993 14:44:01 -0500 To: LitProg@shsu.edu Subject: Re: Future Developments Mark Purtill writes (in reply to a comment of mine): Me: > > Agreed, although I think that ``agreement...about what is desirable...'' is > > one of those things that never happens, for various reasons. Corporations > > want standards, but they want everyone else to accept their standard rather > > than accept someone else's (NeXT being a notable exception) Mark: > Sorry, have I missed a NeXT announcement of some sort? Last > time I looked, NeXT was hardly an exception: Display PostScript rather > than standard X11, Objective C rather than standard C++. True, > they're porting this non-standard software to a standard CPU (i486), > but not to one of the standard OSs, DOS, Windows, OS/2, Linux :-), but > as a new, non-standard OS. > Or do you mean that NeXT is an exception to "corporations want > standards"? That I'd believe. What I meant was that, rather than invent their own ``standards,'' the NeXT people looked around and said, ``What's already out there that we can adopt as a standard?'' They decided (rightly or wrongly, possibly both) on Unix as the operating system, PostScript as the display language, and Objective C as a systems language. There's no way of knowing for sure but I believe their reasons were something like: 1. Unix because, let's face it, there isn't any other operating system that is implemented on a large number of different platforms. 2. Display Postscript so that they could use the same graphics language for printer and screen output. X-Windows is lovely, but it would probably be a lot tougher to build an X11 printer than it was to build a PostScript video display. 3. At the time the NeXT came out, Objective C and C++ were pretty much running neck and neck as regards which language was C's ``legitimate object-oriented heir.'' C++'s current popularity seems to be as much from media attention as anything else, but the choice was not clear cut at the time. NeXT flipped a coin, and backed the wrong horse, although the decision to go with an object-oriented descendant of C accurately predicted the current trend. [Actually, Objective-C still has its adherents. Baby duck syndrome aside, whether you prefer Objective-C or C++ depends mostly on whether you come from the Smalltalk or the Simula school of object-oriented programming, the former advocating type checking at run-time, the latter, at compile time. Most of us have strong opinions on this issue, but this forum really isn't the place to get involved in that religious war -- we have enough of our own.] The main point I was railing at was the NIH (Not Invented Here) problem that is rampant in our industry. I chose NeXT as an example because all of their choices involved ``standards'' developed elsewhere that were already (somewhat) widely in use. I apologize for not making myself clearer the first time. -- Lee ================================================================================ Archive-Date: Tue, 20 Apr 1993 16:03:12 CDT Sender: LP-Mgr@SHSU.edu Date: Tue, 20 Apr 1993 15:54:17 -0500 From: bart@lanczos (Bart Childs) Reply-To: LitProg@SHSU.edu Message-ID: <9304202054.AA16161@lanczos> To: litprog@shsu.edu Subject: Re: Future Developments Lee W's comments are well founded. He mentions anecdotal evidence. Has anyone done any careful measurements of this type? I keep hoping to find a graduate student who will want to but one really needs funding to be able to support controlled studies with parallel control populations... Lee is a bit more optimistic about the file formats of WYSIWYG editors. We have worked on conversion programs from various editor formats to TeX (or LaTeX). It is not correct to call them undocumented; the documentation is often out of date (as most seems to be) or more often just nearly impossible to find. His sense was correct, but the biggest problem we found was that the owner RESERVES THE RIGHT TO CHANGE IT AT ANY TIME WITH NO NOTICE. Indeed, the worst case implied by such a statement has been done and only after you install the new version do you learn that the binary format has changed. Have you ever used WORD to wander around between DOS, MACs, and NeXTs? Even using RTF you don't have a panacea of portability. Knuth said one of his design goals for TeX was that a real ``archive'' would be possible. TeX written more than 10 years ago still runs. (It has been extended but not really changed.) I long ago quit trying the evangelist business. I don't try to convince people that they should use TeX instead of a WP. Most of them do a more than adequate job on memoranda, ... Human nature still dominates and it is rare that I accept statements of the nature that ``(any) WP does a good job of formatting a document with mathematics (or a large number of othere difficult items).'' Granted a lot of people say nobody complained ... The majority of the customers at MacDonalds don't complain but they also don't try to convince others that it is gourmet food ... My compliments to Lee, Paul, and others for a really good set of comments. Bart Childs ================================================================================ Archive-Date: Tue, 20 Apr 1993 17:19:59 CDT Sender: LP-Mgr@SHSU.edu Subject: Re: Future Developments From: Paul Prescod Reply-To: LitProg@SHSU.edu To: LitProg@SHSU.edu Date: Tue, 20 Apr 1993 18:14:48 -0400 Message-ID: <93Apr20.181500edt.246847-2@undergrad.math.uwaterloo.ca> > The main point I was railing at was the NIH (Not Invented Here) > problem that is rampant in our industry. I chose NeXT as an example > because all of their choices involved ``standards'' developed > elsewhere that were already (somewhat) widely in use. I apologize for > not making myself clearer the first time. Care to explain NeXTMail? And what about X? I get the impression that NeXT Corp. would not add X to NeXTStep even if you programmed it up for them. What they have is better, so what already exists is irrelevant! Even if they could work well together. I wonder how standard their Unix implementation is too. ================================================================================ Archive-Date: Wed, 21 Apr 1993 03:29:23 CDT Sender: LP-Mgr@SHSU.edu Message-ID: From: "John K Nicoll" Reply-To: LitProg@SHSU.edu Subject: beginner seeks module decomposition advice To: LitProg@SHSU.edu Date: Wed, 21 Apr 1993 09:28:10 +0100 (BST) Well, after reading the LitProg mailings for a while now, I got around to getting hold of WEB (FWEB, in fact, for my PC) and trying things in anger. I'm at the stage where I can convert/write a program (in C/C++) in a `modular' form, understand the error messages, and generate output files. What has so far taken me the longest time to sort out is the `art' of decomposing into modules. The FWEB (and other, as far as I can see) manuals are silent on this issue - perhaps due to its FORTRAN background. I haven't got a feeling yet for how to best arrange things between modules and functions, and would appreciate advice from more seasoned WEBers on this issue. An example of code written in C/C++ might be useful (perhaps in the FAQ - which also seems silent on the `art'). Thanks for any help in advance. john nicoll ================================================================================ Archive-Date: Wed, 21 Apr 1993 05:41:11 CDT Sender: LP-Mgr@SHSU.edu Date: Wed, 21 Apr 93 12:40:03 +0200 From: marcus@x4u.desy.de (Marcus Speh) Reply-To: LitProg@SHSU.edu Message-ID: <9304211040.AA06154@x4u.desy.de> To: LitProg@SHSU.edu Subject: re: beginner seeks module decomposition advice References: CC: jkn@ohm.york.ac.uk >>>>> On Wed, 21 Apr 1993 09:28:10 +0100 (BST), "John K Nicoll" said: |> What has so far taken me the longest time to sort out |> is the `art' of decomposing into modules. The FWEB (and other, as |> far as I can see) manuals are silent on this issue - perhaps due |> to its FORTRAN background. The fact that it's linked to FORTRAN by name is somewhat unfortunate. IMO, the reason why advice of that sort is lacking is because arrangement of functions, modules and such rather seem to be a matter of personal style. I guess you will have to spent some time to find the way of decomposing which suits you best [this statement is restricted below]. I remember an early discussion on this list on "where to put the main program", and another more recent one concerning the question of whether to put more than one @
= entries into one section/module [the nice summary by Steve Avery is in the LitProg archive, Archive-Date: Thu, 07 Jan 1993 17:31:45 CST]. That may be a way for you go: post a code fragment to put up a discussion. |> An example of code written in C/C++ might be useful (perhaps in the |> FAQ - which also seems silent on the `art'). As for the FWEB FAQ, I'll try to improve on that in the upcoming issue (John Krommes [JAK] does the checking for the final draft of the FAQ, and he may have to say something worthwile, too). There is already a remark on "multiple source files", though. This is on JAK's list of future improvements. Some (rather silly) C++ examples are at ftp.desy.de in directory pub/web/fweb -- a longer one is preprocessed and can be accessed on the World Wide Web (see below). I am working on a C++ library which will provide a fairly good example, too , but it won't be finished before this summer. There are already very useful examples available as part of the FWEB distribution: The choice of C, C++ or Fortran should not be an issue, IMO. The layout of your literate programs should rather follow general guidelines as sufficiently described in various articles and manuals. These imaginary 'guidelines' aren't just words: look into the source code of the CWEB and FWEB releases. Probably Levy/DEK have put parts of common.w into the User's Manual for this reason. Altogether, in _my_ programs, the decomposition does not change essentially from one language to another. But again, I _do_ have a Fortran background, so maybe I'm missing the point here. And I wouldnt claim to do an 'art', either. Some comments on this last point by people with another background ? Hope that helps, Marcus ----------------------------------------------------------------------- FWEB has got a list of Frequently Asked Questions (FAQ) for LitProg: You may obtain the latest version of this FAQ via anonymous FTP from - `ftp.desy.de' [141.34.1.2] in directory `/pub/faq/web/fweb' - `niord.shsu.edu' [192.92.115.8] in directory `[FILESERV.FWEB]', [Either as .texi, .dvi, .ps, .info or plain text file, makefile included.] NOTE: you can now access a wealth of Literate Programming documents, including the FWEB FAQ, on the World Wide Web [WWW] at http://x4u.desy.de:80/ If you dont know about WWW, but you are on the Internet, try telnet info.cern.ch from there, go to "HEP" and then to "DESY" where you'll find an entry for "Literate Programming". ----------------------------------------------------------------------- ================================================================================ Archive-Date: Wed, 21 Apr 1993 10:03:37 CDT Sender: LP-Mgr@SHSU.edu Date: Wed, 21 Apr 93 10:05:42 CDT From: fulling@sarastro.math.tamu.edu (Stephen A. Fulling) Reply-To: LitProg@SHSU.edu Message-ID: <9304211505.AA03379@sarastro.math.tamu.edu> To: LitProg@shsu.edu Subject: Re: beginner seeks module decomposition advice CC: fulling@sarastro.math.tamu.edu John K Nicoll writes: >What has so far taken me the longest time to sort out >is the `art' of decomposing into modules. The FWEB (and other, as >far as I can see) manuals are silent on this issue - perhaps due >to its FORTRAN background. I haven't got a feeling yet for how >to best arrange things between modules and functions, >and would appreciate advice from more seasoned WEBers on this issue. >An example of code written in C/C++ might be useful (perhaps in the >FAQ - which also seems silent on the `art'). Two books that contain discussions of this issue and example code: 1) Knuth's reprint book, "Literate Programming" (published at Stanford but marketed (also) by the University of Chicago Press). 2) Wayne Sewell, "Weaving a Program" (Van Nostrand, available from TeX Users Group). The 3 programs in chapters 4-6 of Knuth's book are worth studying. You may not agree with all of Knuth's tastes and design decisions (I don't), but as a "strict construction of the intent of the founding fathers" they obviously can't be beat. Original references: Computer Journal 27 ('84); Communications of the ACM 29 (May and June '86). Unfortunately, most of the published model programs are in Pascal. More attested C and C++ models are badly needed. Several sample C programs are distributed with CWEB, and there is another one in the last appendix of Sewell's book. Sewell discusses modularization (specifically, the horrors of failing to modularize an old program that is being converted (literated?)), but it has been several years since I read the book, so I wouldn't presume to recommend particular chapters at this point. Steve Fulling ================================================================================ Archive-Date: Wed, 21 Apr 1993 11:07:10 CDT Sender: LP-Mgr@SHSU.edu Date: Wed, 21 Apr 93 18:03:41 +0200 From: dak@POOL.Informatik.RWTH-Aachen.DE Reply-To: LitProg@SHSU.edu Message-ID: <9304211603.AA08239@kaa> To: LitProg@SHSU.edu CC: LitProg@SHSU.edu Subject: beginner seeks module decomposition advice X-Listname: Literate Programming Discussion List Warnings-To: <> Sender: LP-Mgr@SHSU.edu From: "John K Nicoll" Reply-To: LitProg@SHSU.edu Date: Wed, 21 Apr 1993 09:28:10 +0100 (BST) X-Mailer: ELM [version 2.4 PL20] Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Length: 826 Well, after reading the LitProg mailings for a while now, I got around to getting hold of WEB (FWEB, in fact, for my PC) and trying things in anger. I'm at the stage where I can convert/write a program (in C/C++) in a `modular' form, understand the error messages, and generate output files. What has so far taken me the longest time to sort out is the `art' of decomposing into modules. The FWEB (and other, as far as I can see) manuals are silent on this issue - perhaps due to its FORTRAN background. I haven't got a feeling yet for how to best arrange things between modules and functions, and would appreciate advice from more seasoned WEBers on this issue. An example of code written in C/C++ might be useful (perhaps in the FAQ - which also seems silent on the `art'). One thing to look at, of course, are other WEBs. TeX, the program is one to mention. Another rule is that a function might be appropriate if we have things done which are pretty capsulated, and when we might possibly call this function several times. If, on the other hand, we have something which is clearly intended to do a specific subjob of something larger, and will not be of use for anything else, a module is better used. In general, modules should keep pretty small. If you need a nice editor to see which brace belongs to which, chances are you had better split your source up a bit sooner. So, as a rule, modules should be plentiful as regarded to functions. David Kastrup dak@messua.informatik.rwth-aachen.de Tel: +49-241-72419 Fax: +49-241-79502 Goethestr. 20, W-5100 Aachen, Germany ================================================================================ Archive-Date: Thu, 22 Apr 1993 13:10:20 CDT Sender: LP-Mgr@SHSU.edu Message-ID: <9304221806.AA09924@im4u.cs.utexas.edu> From: leew@cs.utexas.edu (Lee Wittenberg) Reply-To: LitProg@SHSU.edu Date: Thu, 22 Apr 1993 13:06:17 -0500 To: LitProg@shsu.edu Subject: Re: Future Developments Paul Precod writes: > > The main point I was railing at was the NIH (Not Invented Here) > > problem that is rampant in our industry. I chose NeXT as an example > > because all of their choices involved ``standards'' developed > > elsewhere that were already (somewhat) widely in use. I apologize for > > not making myself clearer the first time. > > Care to explain NeXTMail? And what about X? I get the impression that > NeXT Corp. would not add X to NeXTStep even if you programmed it up for them. > What they have is better, so what already exists is irrelevant! Even if > they could work well together. > > I wonder how standard their Unix implementation is too. 1. Dunno about NeXTMail. It seems to handle plain ol' Internet mail just fine (unfortunately our NeXT is in NJ and I'm in TX, so I can't check out any of this -- please take this and the following comments as my impressions rather than gospel truth). 2. I was under the impression that NeXTstep _did_ support X (I think I read it in the documentation somewhere). Maybe not. 3. Their implementation of Unix is as standard as any I've seen. In fact, when I ftp something from the net, I usually try to build it on the NeXT first, because it almost always builds correctly the first time. I occasionally have problems on other Unix machines. [Relevant side issue: Now that C is officially standardized, I find it interesting that none of the cc compilers on any of the Unix systems I have accounts on conforms to the standard.] 4. I didn't claim the NeXT people were perfect -- just that they did a few major things right IMHO :-). -- Lee ================================================================================ Archive-Date: Thu, 22 Apr 1993 13:10:30 CDT Sender: LP-Mgr@SHSU.edu Date: Thu, 22 Apr 93 13:10:28 -0500 From: plyon@emx.cc.utexas.edu (Paul Lyon) Reply-To: LitProg@SHSU.edu Message-ID: <9304221810.AA13061@emx.cc.utexas.edu> To: LitProg@SHSU.edu CC: LitProg@shsu.edu Subject: Future Developments Lee Wittenberg writes: > I find the same situation with my students, although I teach mostly CS > students. We also have ``writing emphasis'' courses (I'm trying to develop > one in Literate Programming, e'en as we speak). Well, I like this idea! A couple of suggestions, if I may. Firstly, you might want to look at Chapter 9 (``Mathematical Writing'') of Knuth's ``Literate Programming'', if you have not already done so, for some hints about how students at Stanford got on with literate programming. I presume you are considering one or both of Knuth's book and Wayne Sewell's ``Weaving a Program'' as texts. I am tempted to suggest that if you feel that you can only use one, then Knuth is the one to try, even though not all of it is about literate programming. It seems to me that you are more apt to get them thinking about style and organization of their writing this way. It seems to me that one ought to play it straight here, namely to try to get the students to follow the conventions of expository writing as best they can, allowing for the differences between a literate programme and other types of exposition writing. They should give a proper introduction explaining to the reader what is coming, try to follow a coherent narrative organization, ond so on. You are, after all trying to help them improve their writing, albeit in a unusual genre of exposition. One interesting question about style is this: should they try to write a proper conclusion to their programme summing up what it does and what they think is most important among the ideas for the programme they have previously discussed? The examples of literate programmes we have from Knuth do not have a conclusion. More generally, it seems to me that in literate programmes written in noweb or Funnelweb, as they allow a more free form style, one may be able to use a model of expository writing closer to the traditional models, than with those written in Cweb, Fweb, or a Spidery Web. A proper conclusion may or may not be useful, but one perhaps should try it to see. In general, it seems to me, that since this is meant to be a writing course, the students should include more by way of commentary in what they write than they might in a literate programme written for use, and you should insist on good organization and writing style. The problem of expository structure in a literate programme raises a second issue. Though they are certainly an improvement on manuscript and typewriting, conventional text editors, including Emacs, do not offer that much by way of support for crafting expository organization nor do they provide much help for refining the ideas to be presented. For that sort of thing, one needs an ``outliner''. Unfortunately, the only ones that I know about are for MS-DOS or the Macintosh. Indeed, the only two I have tried are both DOS programmes, viz. MaxThink and Kamas. I have used MaxThink for some years now in writing my lecture notes, and am quite pleased with it. Now I find myself trying to use it for literate programming as well. The idea is to think through the ideas for the programme or programme or library modules, writing these in as topics in the outline, adding source as appropriate as text attached to a topic, then use the structuring features of MaxThink to work out an organization for the web source, and finally have MaxThink write it out in a suitable form to dump it into Emacs to finish the job. Pity that time constraints have prevented me thus far from completing this process for any of the things I am working on :-) As for Kamas (which is a DOS shareware product), I have only recently downloaded it from one of the mirrors of the simtel20 archive (e.g. ftp.uu.net, ~ftp/systems/ibmpc/msdos/simtel20/editor/kamas25.zip), and have only played with it a bit, so I can't say much about it, sawe that it seems to offer an interesting alternate approach to MaxThink, and also seems to have some of the more useful features of MaxThink, though not, by any means all. I should note that I also downloaded PC-Outline while I was at it (this is, curiously, in the txtutl subdirectory of the simtel20 archive---pco334.zip), but it seems to me that PC-Outline lacks most of the amenities of MaxThink and Kamas, and is decidedly less useful as a consequence. Yet even PC-Outline is clearly more useful than the best Emacs package, namely ``allout.el'', and never mind the equally inferior outlining components of Word and Wordperfect. (I just downloaded web-mode.el, and notice that it too offers some outlining capabilities, but no more, so it seems to me than ``allout.el''. To be sure ``web-mode.el'' looks to be well thought out and written; Bart Childs and Mike Motl have done a nice job here.) Having said this, I should note that I took the trouble to investigate alternatives to MaxThink so as to be able to present alternatives to the students in the ``writing component course'' I am teaching this term, thinking that use of such a tool could help them with the problems of expository organization that I saw in many of their papers. My presentation of this idea to the class some weeks ago, however, seems to have gone over like a lead ballon. I was pleased to discover, though, through a conference with a student in that class several days later, that her paper, which was unusually well organized, had been written with the aid of the outline capability in MS-Word. Primitive though that is, she had made good use of it in structuring her exposition. I am also moved to note a remark that Neil Larson, the designer of MaxThink, included in the user manual, namely: ``Word processing focuses on WYSIWYG---what you see is what you get'', but ``MaxThink focuses on WYTIWYG---what you think is what you get''. Later on in the manual, after remarking on the work it would take to convert MaxThink from a text-mode DOS programme to MS-Windows, he explains his decision not to undertake this thusly: ``After all this, the intellectual processes for better thinking, writing, and planning are not improved in the slightest. Summary: While Windows may be fashionable, it does not extend MaxThink's capabilities!'' (Apologies, sort of, to the WYSIWYG fans, but this is a point worth pondering in that connection, especially since Leslie Lamport makes a similar point, though with rather less justification, early on in his LaTeX book.) In any event, I am not actually recommending that one require students to lay hands on a good outliner, but merely trying to make a few points about appropriate tools for expository writing in general, and literate programming in particular. But I do commend Lee Wittenberg's idea to others reading this list who teach CS students, and I would encourge Lee to post information about the design for his course to the mailing list. (I have more things to say about other matters of interest that Lee Wittenberg raises in his thoughful comments, but I will do this in a subsequent post.) Ciao, Paul Lyon ================================================================================ Archive-Date: Thu, 22 Apr 1993 13:10:37 CDT Sender: LP-Mgr@SHSU.edu Date: Thu, 22 Apr 93 13:10:28 -0500 From: plyon@emx.cc.utexas.edu (Paul Lyon) Reply-To: LitProg@SHSU.edu Message-ID: <9304221810.AA13061@emx.cc.utexas.edu> To: LitProg@SHSU.edu CC: LitProg@shsu.edu Subject: Future Developments Lee Wittenberg writes: > I find the same situation with my students, although I teach mostly CS > students. We also have ``writing emphasis'' courses (I'm trying to develop > one in Literate Programming, e'en as we speak). Well, I like this idea! A couple of suggestions, if I may. Firstly, you might want to look at Chapter 9 (``Mathematical Writing'') of Knuth's ``Literate Programming'', if you have not already done so, for some hints about how students at Stanford got on with literate programming. I presume you are considering one or both of Knuth's book and Wayne Sewell's ``Weaving a Program'' as texts. I am tempted to suggest that if you feel that you can only use one, then Knuth is the one to try, even though not all of it is about literate programming. It seems to me that you are more apt to get them thinking about style and organization of their writing this way. It seems to me that one ought to play it straight here, namely to try to get the students to follow the conventions of expository writing as best they can, allowing for the differences between a literate programme and other types of exposition writing. They should give a proper introduction explaining to the reader what is coming, try to follow a coherent narrative organization, ond so on. You are, after all trying to help them improve their writing, albeit in a unusual genre of exposition. One interesting question about style is this: should they try to write a proper conclusion to their programme summing up what it does and what they think is most important among the ideas for the programme they have previously discussed? The examples of literate programmes we have from Knuth do not have a conclusion. More generally, it seems to me that in literate programmes written in noweb or Funnelweb, as they allow a more free form style, one may be able to use a model of expository writing closer to the traditional models, than with those written in Cweb, Fweb, or a Spidery Web. A proper conclusion may or may not be useful, but one perhaps should try it to see. In general, it seems to me, that since this is meant to be a writing course, the students should include more by way of commentary in what they write than they might in a literate programme written for use, and you should insist on good organization and writing style. The problem of expository structure in a literate programme raises a second issue. Though they are certainly an improvement on manuscript and typewriting, conventional text editors, including Emacs, do not offer that much by way of support for crafting expository organization nor do they provide much help for refining the ideas to be presented. For that sort of thing, one needs an ``outliner''. Unfortunately, the only ones that I know about are for MS-DOS or the Macintosh. Indeed, the only two I have tried are both DOS programmes, viz. MaxThink and Kamas. I have used MaxThink for some years now in writing my lecture notes, and am quite pleased with it. Now I find myself trying to use it for literate programming as well. The idea is to think through the ideas for the programme or programme or library modules, writing these in as topics in the outline, adding source as appropriate as text attached to a topic, then use the structuring features of MaxThink to work out an organization for the web source, and finally have MaxThink write it out in a suitable form to dump it into Emacs to finish the job. Pity that time constraints have prevented me thus far from completing this process for any of the things I am working on :-) As for Kamas (which is a DOS shareware product), I have only recently downloaded it from one of the mirrors of the simtel20 archive (e.g. ftp.uu.net, ~ftp/systems/ibmpc/msdos/simtel20/editor/kamas25.zip), and have only played with it a bit, so I can't say much about it, sawe that it seems to offer an interesting alternate approach to MaxThink, and also seems to have some of the more useful features of MaxThink, though not, by any means all. I should note that I also downloaded PC-Outline while I was at it (this is, curiously, in the txtutl subdirectory of the simtel20 archive---pco334.zip), but it seems to me that PC-Outline lacks most of the amenities of MaxThink and Kamas, and is decidedly less useful as a consequence. Yet even PC-Outline is clearly more useful than the best Emacs package, namely ``allout.el'', and never mind the equally inferior outlining components of Word and Wordperfect. (I just downloaded web-mode.el, and notice that it too offers some outlining capabilities, but no more, so it seems to me than ``allout.el''. To be sure ``web-mode.el'' looks to be well thought out and written; Bart Childs and Mike Motl have done a nice job here.) Having said this, I should note that I took the trouble to investigate alternatives to MaxThink so as to be able to present alternatives to the students in the ``writing component course'' I am teaching this term, thinking that use of such a tool could help them with the problems of expository organization that I saw in many of their papers. My presentation of this idea to the class some weeks ago, however, seems to have gone over like a lead ballon. I was pleased to discover, though, through a conference with a student in that class several days later, that her paper, which was unusually well organized, had been written with the aid of the outline capability in MS-Word. Primitive though that is, she had made good use of it in structuring her exposition. I am also moved to note a remark that Neil Larson, the designer of MaxThink, included in the user manual, namely: ``Word processing focuses on WYSIWYG---what you see is what you get'', but ``MaxThink focuses on WYTIWYG---what you think is what you get''. Later on in the manual, after remarking on the work it would take to convert MaxThink from a text-mode DOS programme to MS-Windows, he explains his decision not to undertake this thusly: ``After all this, the intellectual processes for better thinking, writing, and planning are not improved in the slightest. Summary: While Windows may be fashionable, it does not extend MaxThink's capabilities!'' (Apologies, sort of, to the WYSIWYG fans, but this is a point worth pondering in that connection, especially since Leslie Lamport makes a similar point, though with rather less justification, early on in his LaTeX book.) In any event, I am not actually recommending that one require students to lay hands on a good outliner, but merely trying to make a few points about appropriate tools for expository writing in general, and literate programming in particular. But I do commend Lee Wittenberg's idea to others reading this list who teach CS students, and I would encourge Lee to post information about the design for his course to the mailing list. (I have more things to say about other matters of interest that Lee Wittenberg raises in his thoughful comments, but I will do this in a subsequent post.) Ciao, Paul Lyon ================================================================================ Archive-Date: Fri, 23 Apr 1993 14:25:59 CDT Sender: LP-Mgr@SHSU.edu Message-ID: <9304231922.AA01098@laphroaig.aoc.nrao.edu> Date: Fri, 23 Apr 93 13:22:37 MDT From: Chris Flatters Reply-To: LitProg@SHSU.edu To: litprog@shsu.edu Subject: Supressing index entries in FWEB I am using FWEB to write an X Window System program. I would like to have the various types defined by the X Intrinsics (eg. XtPointer) typeset as types but would prefer not to have a long list of @f definitions appear in the woven output. Since I keep the @f definitions in an included file I can suppress them by including the file with an @I directive and using the -i command line flag. Unfortunately, index entries are still generated for the new type which clutters up the index (particularly for identifiers beginning with the letter 'x'). Is there any way of disabling the automatic generation of index entries for @f definitions? What I would really like to see, of course, is an escape that has the same effect on formatting as @f but that neither appears in the woven output nor generates an index entry (yes, I know this exists in CWEB but have reasons for using FWEB). Chris Flatters cflatter@nrao.edu ================================================================================ Archive-Date: Fri, 23 Apr 1993 15:20:18 CDT Sender: LP-Mgr@SHSU.edu Date: Fri, 23 Apr 93 16:17:01 -0400 From: norman@bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu Message-ID: <9304232017.AA14524@flash.bellcore.com> To: LitProg@SHSU.edu Subject: Re: beginner seeks module decomposition advice In my opinion, one of the biggest problems of the LP community has been that many people expend enormous effort on tools, while there is not a good understanding of how to use even very simple tools. When Carla Marceau and I wrote our paper on our experiences building a 10-20 K line system using Spidery WEB, we tried to explain how literate programming had made our proejct a success, and to be prescriptive about how to use literate-programming tools well. The referees quite rightly pointed out that this part of teh paper was vague if not actually content-free, and the final version of the paper contains only some weasel words along the lines of ``we're really pleased we used literate programming and we're not sure why.'' noweb was my effort to scrape away all the complexity of existing tools in order to try to learn something more fundamental about literate programming. I'm pleased with the tool, but I haven't learned the things I had hoped to learn from it. The best advice I can give to aspiring literate programmers is still the same advice I give to students writing papers: write, read your work, and rewrite. Peer review is invaluable if you can get it. Anybody else making better progress? Norman ================================================================================ Archive-Date: Fri, 23 Apr 1993 16:45:18 CDT Sender: LP-Mgr@SHSU.edu Message-ID: Date: Fri, 23 Apr 93 14:37 PDT To: litprog@shsu.edu Subject: Supressing index entries in FWEB From: Kayvan Sylvan Reply-To: LitProg@SHSU.edu Use @f @-XTypeName @-int instead of @f XtypeName int and I think that will solve your problem. ---Kayvan | Kayvan Sylvan, Sylvan Associates, kayvan@satyr.Sylvan.COM, (408) 978-1407 | | Consulting, Training, Development, SysAdmin, {BSD,SVr3,SVr4} Unix Systems | | "Think Globally, Act Locally." "Only you can make your dreams come true." | | Proud Dad of Katherine Yelena (born 8/8/89) & Robin Gregory (born 2/28/92) | ================================================================================ Archive-Date: Fri, 23 Apr 1993 22:28:03 CDT Sender: LP-Mgr@SHSU.edu Date: Fri, 23 Apr 93 22:25:26 CDT From: bart@cs.tamu.edu (Bart Childs) Reply-To: LitProg@SHSU.edu Message-ID: <9304240325.AA07480@neuron.cs.tamu.edu> To: litprog@shsu.edu Subject: Comments on ? starting, simplicity, ..? The inquiry from Chris Flatters on `Supressing index entries in FWEB' and the thoughtful response from Norman Ramsey encourage me to add a few more thoughts. First, I seriously considered answering Chris' inquiry with: 1. Even if they are seriously long (like many pages), the value of this in most cases is too great to want to throw away. 2. If someone else is going to (possibly) maintain your code, then you really want them. 3. If you are using dvips (and most good drivers) it is fairly easy to create scripts to just not print those pages if that is the problem. 4. Can't that be put in a `.h' file that could have been done as a web and then kept for everybody to use? Then Norman said: ``In my opinion, one of the biggest problems of the LP community has been that many people expend enormous effort on tools, while there is not a good understanding of how to use even very simple tools.... ... the final version of the paper contains only some weasel words along the lines of ``we're really pleased we used literate programming and we're not sure why.'' '' That is his opinion and I think based on sound reasoning. The postings on the subject `beginner seeks module decomposition advice' are evidence enough. He also said, ``The best advice I can give to aspiring literate programmers is still the same advice I give to students writing papers: write, read your work, and rewrite. Peer review is invaluable if you can get it.'' Eloquent! A word of warning, leave your feelings at the door. We are seldom ready for others' constructive criticism. It does not help that most we will get to read our work will not understand what literate programming is about and that we are frequently not true to the intent. (Also, remember this in the `new features' below.) Finally, Kayvan Sulvan's help prompts one more thought. Simplicity! I have read the FWEB manual many times and don't remember that at all. Have we lost sight of what we are after? Norman's primary reason for noweb was simplicity (his words were `scrape away all the complexity of existing tools'). I look at WEBs and see that most rarely use more than a small fraction of the available commands, features, or whatever you want to call the @-things. Yet, we have had a plethora of postings of requests for `new features'. I have observed that if a document is being prepared and a difficult (formatting) challenge comes along, then there is a real dichotomy: * if TeX (or the like) is being used the user may spend inordinate amounts of time trying to `make it perfect.' * if it can't be found in two minutes on the WYSIWYG's pull down menu, the mind is quickly set to ``God did not intend such to be done!' Of course the first * is from observations during the preparation stage and the second from questioning `why this?' after seeing student papers thought to be perfect because they: have an aligned right margin, have been within a mile of a spell checker, and have a gaudy excedd of bold font usage. It seems to me that some of our problems are due to this `TeX nature.' Don Knuth created some great research problems solving many aspects of TeX's and MetaFont's problems. Quotes from two I think deserve to be quoted: One way of improving efficiency is by restricting the power of the language --- Tony Hoare The need for more elaborate man/machine interaction can certainly be enhanced by designing more incomprehensible systems --- Edsger Dijkstra Some of the themes that I hope are woven into this commentary are what I feel we used as justification for the design decisions in Mark Motl's web-mode for emacs. We wanted it to be easy to do some of the more difficult things like: * Reuse section names (the @< .. @> things) with minimal typing. In web-mode's current form, a list of them are maintained and you select them by use of emacs completitions. I never did like Knuth's use of ellipses although I certainly understand why... * Navigation by chapters (major sections), sections, cross reference lists, index, ... It can be considered to be a restricted hypertext mechanism. * Creation and reuse of user supplied index entries (@. **@>, @^..@>, and the other one) The outline editing was added later and has been a real winner too. In much the spirit of Norman's comment, I would really like to get a lot of data back on how people use it before we add a lot more functions. Unless it is defeated, a journal file is written that we get lots of data from. However, most have come from within our local community. Indeed, many users don't use a lot of the functions that I believe would be of great benefit. However, isn't that the usual story? I have seen a large number of people who will move down 100 lines by 100 `down arrow's rather than 5 `page down's! We finally have our anonymous ftp back, it is ftp.cs.tamu.edu In the directory /pub/web exist the current form. It is web-mode.el (web-mode.elc can also be extracted). The manual is webm-man.tex. The other files needed are after the `\bye' in the manual. There is also a subdirectory DOCs in which I am placing a few documents that I hope can help in elementary LPing. Those that begin with `wm' are a set. wm_0.tex describes the four steps in an evolutionary web: wm_1.web begat wm_2.web, ..., wm_4.web. Constructive criticism is appreciated. Bart Childs ================================================================================ Archive-Date: Mon, 26 Apr 1993 11:34:56 CDT Sender: LP-Mgr@SHSU.edu Message-ID: <9304261633.AA18087@im4u.cs.utexas.edu> From: leew@cs.utexas.edu (Lee Wittenberg) Reply-To: LitProg@SHSU.edu Date: Mon, 26 Apr 1993 11:33:17 -0500 To: LitProg@shsu.edu Subject: Re: beginner seeks module decomposition advice Norman Ramsey writes: > ... The best advice I > can give to aspiring literate programmers is still the same advice I > give to students writing papers: write, read your work, and rewrite. > Peer review is invaluable if you can get it. > > Anybody else making better progress? I'll second Norman's advice. We've got a few people here at Tipton Cole + Co. getting started with literate programming (using noweb and WinWordWEB), and we seem to get our best results by writing, rewriting, and passing the programs around for comment. One of the best things about LP, I've found, is that it is possible to pass around a (woven) listing of a program and have people actually read it and make suggestions, something I cannot recall ever happening with a regular ol' source listing. -- Lee ================================================================================ Archive-Date: Mon, 26 Apr 1993 13:11:32 CDT Sender: LP-Mgr@SHSU.edu Date: Mon, 26 Apr 93 11:05:54 PDT From: bos@mdd.comm.mot.com (Mary Bos) Reply-To: LitProg@SHSU.edu Message-ID: <9304261805.AA14233@foghorn.mdd.comm.mot.com> To: LitProg@SHSU.edu Subject: Re: beginner seeks module decomposition advice > We've got a few people here at Tipton > Cole + Co. getting started with literate programming (using noweb and > WinWordWEB), and we seem to get our best results by writing, > rewriting, and passing the programs around for comment. One of the > best things about LP, I've found, is that it is possible to pass > around a (woven) listing of a program and have people actually read it > and make suggestions, something I cannot recall ever happening with a > regular ol' source listing. > > -- Lee Hi, I'm doing a seminar for my MSE program at Seattle U on LP and I saw this comment on WinWordWEB. Since I'm in the land of WinWord, I would like to know where I can acquire a copy of WinWordWEB. Thanks for your information and comments. mary bos ================================================================================ Archive-Date: Tue, 27 Apr 1993 03:44:50 CDT Sender: LP-Mgr@SHSU.edu From: Adrian F Clark Reply-To: LitProg@SHSU.edu Date: Tue, 27 Apr 93 09:42:59 +0100 Message-ID: <8917.9304270842@vulcan.essex.ac.uk.essex.ac.uk> To: LitProg@SHSU.edu Subject: Re: Comments on ? starting, simplicity, ..? On Fri, 23 Apr 93 22:25:26 CDT, bart%cs.tamu.edu@uk.ac.essex.mailhost (Bart Childs) said: BC> In much the spirit of Norman's comment, I would really like to get BC> a lot of data back on how people use it before we add a lot more BC> functions. I have put together Perl versions of most of Norman's excellent noweb system for my own consumption (this was for use on DOS, before someone came along with a DOS implementation of noweb). One of the things my Perl stuff can do is output statistics on the number of times each internal `@' construct is used. This was very helpful in optimizing the order of processing each construct in a else..if chain. Surely it would be pretty simple to do this to any web-like package? This would yield invaluable information on precisely which features were essential, which were highly desirable, and which totally superfluous. Much more reliable than allegory. For anyone burning to know, @nl is the most common noweb entity, followed by @text. For most of the programs I've looked at, everything else is used less than one-tenth as frequently. Dr Adrian F. Clark JANET: alien@uk.ac.essex INTERNET: alien%uk.ac.essex@nsfnet-relay.ac.uk FAX: (+44) 206-872900 BITNET: alien%uk.ac.essex@ac.uk PHONE: (+44) 206-872432 (direct) Dept ESE, University of Essex, Wivenhoe Park, Colchester, Essex, C04 3SQ, UK. ================================================================================ Archive-Date: Tue, 27 Apr 1993 12:25:43 CDT Sender: LP-Mgr@SHSU.edu Date: 27 Apr 93 05:09:57 PST From: "SMTP MAILER" Reply-To: LitProg@SHSU.edu Subject: Mail not delivered yet, still trying To: "LitProg" ----Mail status follows---- Have been unable to send your mail to , will keep trying for a total of three days. At that time your mail will be returned. ----Transcript of message follows---- Date: 27 Apr 93 01:01:00 PST From: LitProg@SHSU.edu Subject: Re: Comments on ? starting, simplicity, ..? To: "mckenzie" Return-Path: Received: from Niord.shsu.edu by geemunu.stanford.edu with SMTP ; Tue, 27 Apr 93 01:01:45 PST X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: LP-Mgr@SHSU.edu Sender: LP-Mgr@SHSU.edu Received: from sun2.nsfnet-relay.ac.uk by Niord.shsu.edu (MX V3.2) with SMTP; Tue, 27 Apr 1993 03:44:43 CDT Via: uk.ac.essex; Tue, 27 Apr 1993 09:43:06 +0100 Received: from vulcan.essex.ac.uk by postman.essex.ac.uk with SMTP (PP) id <23347-0@postman.essex.ac.uk>; Tue, 27 Apr 1993 09:43:03 +0100 From: Adrian F Clark Reply-To: LitProg@SHSU.edu Date: Tue, 27 Apr 93 09:42:59 +0100 Message-ID: <8917.9304270842@vulcan.essex.ac.uk.essex.ac.uk> To: LitProg@SHSU.edu In-Reply-To: Bart Childs's message of Fri, 23 Apr 93 22:25:26 CDT <9304240325.AA07480@neuron.cs.tamu.edu> Subject: Re: Comments on ? starting, simplicity, ..? On Fri, 23 Apr 93 22:25:26 CDT, bart%cs.tamu.edu@uk.ac.essex.mailhost (Bart Childs) said: BC> In much the spirit of Norman's comment, I would really like to get BC> a lot of data back on how people use it before we add a lot more BC> functions. I have put together Perl versions of most of Norman's excellent noweb system for my own consumption (this was for use on DOS, before someone came along with a DOS implementation of noweb). One of the things my Perl stuff can do is output statistics on the number of times each internal `@' construct is used. This was very helpful in optimizing the order of processing each construct in a else..if chain. Surely it would be pretty simple to do this to any web-like package? This would yield invaluable information on precisely which features were essential, which were highly desirable, and which totally superfluous. Much more reliable than allegory. For anyone burning to know, @nl is the most common noweb entity, followed by @text. For most of the programs I've looked at, everything else is used less than one-tenth as frequently. Dr Adrian F. Clark JANET: alien@uk.ac.essex INTERNET: alien%uk.ac.essex@nsfnet-relay.ac.uk FAX: (+44) 206-872900 BITNET: alien%uk.ac.essex@ac.uk PHONE: (+44) 206-872432 (direct) Dept ESE, University of Essex, Wivenhoe Park, Colchester, Essex, C04 3SQ, UK. ================================================================================ Archive-Date: Wed, 28 Apr 1993 19:39:29 CDT Sender: LP-Mgr@SHSU.edu Date: Wed, 28 Apr 93 17:30:17 PDT From: tex@mailhost.cs.pdx.edu Reply-To: LitProg@SHSU.edu Message-ID: <9304290030.AA00408@xavier.cs.pdx.edu> To: Litprog@SHSU.edu SENDME Litprog.1993-04 ================================================================================ Archive-Date: Thu, 29 Apr 1993 11:39:11 CDT Sender: LP-Mgr@SHSU.edu From: ark@mailhost.cs.pdx.edu (jim a arkenberg) Reply-To: LitProg@SHSU.edu Message-ID: <9304291637.AA01163@rigel.cs.pdx.edu> Subject: Re: your mail To: LitProg@shsu.edu Date: Thu, 29 Apr 1993 09:37:32 -0700 (PDT) > > SENDME Litprog.1993-04 > Tex, Did you mean to mail this to me? No reply necessary. Jim Arkenberg ark@rigel.cs.pdx.edu ================================================================================ Archive-Date: Fri, 30 Apr 1993 10:36:59 CDT Sender: LP-Mgr@SHSU.edu Message-ID: <9304301535.AA28478@im4u.cs.utexas.edu> From: leew@cs.utexas.edu (Lee Wittenberg) Reply-To: LitProg@SHSU.edu Date: Fri, 30 Apr 1993 10:35:41 -0500 To: litprog@shsu.edu Subject: Duplicate modules/sections and good webbing style The recent discussions about the proper use of modules vs. procedures and other points of style got me thinking about what would constitue ``good webbing practices.'' I'm not going to try to generate an "Elements of Webbing Style" here, but a thought struck me about style and duplicate code sections (the ones defined with +\equiv) that I thought might be of general interest: It would seem that the interests of good style would dictate that the code in the different chunks of a duplicated section should be completely independent. For example, @ @= x = y + z; @ @= a = b + c; would be okay, but @ @= x = y + z; @ @= a = x++; wouldn't. The reason for this is that in the former case, a reorganization of the web is guaranteed not to screw up the program, while in the latter case, there is a very real danger that reorganizing will break the program (and this would be a very difficult bug to find). This has some very interesting implications. If the duplicate sections are independent, then they can be executed in parallel, which leads to a very natural way to express parallelism (by way of literature): @*Chapter n. In this chapter, some really interesting stuff happens. @= /* A */ @ Meanwhile, back at the ranch~$\ldots$ @= /* B */ A smart tangle could generate the equivalent of cobegin A; B coend Declarations, of course, would not need the cobegin/end, but they (conceptually) execute in parallel already. This technique will, of course, cause severe problems with my second example, but (as I pointed out earlier) it was bound to break eventually, anyway. -- Lee ================================================================================ Archive-Date: Fri, 30 Apr 1993 12:03:52 CDT Sender: LP-Mgr@SHSU.edu From: bgod@mailhost.cs.pdx.edu Reply-To: LitProg@SHSU.edu Message-ID: <9304301701.AA10433@xavier.cs.pdx.edu> Subject: Re: your mail parser < t2.ma To: LitProg@shsu.edu Date: Fri, 30 Apr 1993 10:01:34 -0700 (PDT) CC: parser@mailhost.cs.pdx.edu rser < t2.ma parser < t2.ma parser < t2.ma parser < t2.ma parser < t2.ma parser < t2.ma ZZ ================================================================================ Archive-Date: Fri, 30 Apr 1993 12:53:51 CDT Sender: LP-Mgr@SHSU.edu Date: Fri, 30 Apr 93 12:51:48 CDT From: preston@cs.rice.edu (Preston Briggs) Reply-To: LitProg@SHSU.edu Message-ID: <9304301751.AA18436@dawn.cs.rice.edu> To: LitProg@shsu.edu Subject: Re: Duplicate modules/sections and good webbing style I find that I use "duplicate sections" almost exclusively for accumulating declarations and almost never for code. When I want several pieces of code to contribute to a single module, I organize it hierarchically, and explain the subdivision right away. For example, instead of @= @ @= @ @= @ possibly scattered throughout the document, I prefer to write @= @ @ @ I find the idea of having tangle perform automatic parallelization to be a little scary :-) Preston Briggs