Archive-Date: Thu, 01 Jun 1995 16:08:07 CDT Sender: owner-litprog@SHSU.edu Subject: Re: Positive ion dangers - Computers causing stress / depression Message-ID: <3qkdr7$7a2@nntp.crl.com> From: weiqigao@crl.com (Weiqi Gao) Reply-To: LitProg@SHSU.edu, weiqigao@CRL.COM Date: 1 Jun 1995 13:03:35 GMT MIME-Version: 1.0 To: LitProg@SHSU.EDU In article <3qj4s4$r26@newsbf02.news.aol.com>, daniels222@aol.com says... > >Hello Netters, > [blaming depression on positive ions from the computer monitor, etc.] First off, the topic is irrelevent to literate programming. Secondly, there is a cure for the monitor rpoblem if you are using vi: turn the thing off! You can still write your program. The quality of your program will improve. And you don't get those positive ions. :) Thirdly, what happened to the theory that running cold water emits large quantities of negative ions? Weiqi Gao weiqigao@crl.com ================================================================================ Archive-Date: Fri, 02 Jun 1995 09:31:00 CDT Sender: owner-litprog@SHSU.edu From: chesser@isgtec.com (Tom Chesser) Reply-To: LitProg@SHSU.edu, chesser@ISGTEC.COM Subject: Re: i want to start programming but don't know where to start Message-ID: Date: Tue, 30 May 1995 15:24:49 GMT To: LitProg@SHSU.EDU See "C/C++ Users Journal", May 1995 ================================================================================ Archive-Date: Fri, 02 Jun 1995 09:31:53 CDT Sender: owner-litprog@SHSU.edu Subject: Re: Scientific Word and LP Message-ID: <3ql2kb$8mj@network.ucsd.edu> From: kgatlin@cs.ucsd.edu (Kang Su Gatlin) Reply-To: LitProg@SHSU.edu, kgatlin@CS.UCSD.EDU Date: 1 Jun 1995 18:58:19 GMT To: LitProg@SHSU.EDU In article <3ptmcj$ps2@lowell.bellcore.com> norman@flash.bellcore.com (Norman Ramsey) writes: > >In article <3prtss$2o9@network.ucsd.edu>, >Kang Su Gatlin wrote: >>I've been reading all of the stuff about LP (also just read the Dr. Dobbs >>journal article) > >Please provide a pointer to this article? Sorry about that. The article that I was referring to wasn't necessarily an LP article as I referred to it being, but rather an article on CWEB which had a reference to this newsgroup. It was the May 1995 issue though I believe (but not sure, but it was real recent). Again Sorry about the misunderstanding. KSG > >Norman -- >> KSG << http://www-cse.ucsd.edu:80/users/kgatlin/ ================================================================================ Archive-Date: Fri, 02 Jun 1995 11:28:17 CDT Sender: owner-litprog@SHSU.edu From: natsnav@cix.compulink.co.uk ("T Rowe Civil Aviati") Reply-To: LitProg@SHSU.edu, natsnav@CIX.COMPULINK.CO.UK Subject: Ada Message-ID: Date: Fri, 2 Jun 1995 14:13:17 GMT To: LitProg@SHSU.EDU Are there any literate programming tools about for Ada? In a personal capacity, Tim ================================================================================ Archive-Date: Fri, 02 Jun 1995 11:28:35 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: compile-only LP (was Re: Web systems and TeXinfo?) Date: 1 Jun 1995 17:29:23 GMT Message-ID: <3qktdj$5ib@lowell.bellcore.com> To: LitProg@SHSU.EDU In article , Lee Thomas wrote: >Actually, one of my interests is Literate Programming in scripted >languages like Perl, TCL/Tk/Expect, etc., and SQL. Yes! This was one of the goals motivating the design of noweb back in 1989. In fact, one of the coolest things you can do is this: #!/bin/sh PATH=... <Another limitation of LP is the target of TeX/LaTeX as the document >preparer of choice, because 1) most places I've worked have either no >TeX system administrator, or a disinterested/lackadaisical one, so the >system is not maintained - plus, it's multiple steps to print the >document; 2) once it's printed, a document is out-of-date, or at least >suspicious; and 3) there are N printed copies and N+1 interested >parties, leading to "borrowed" documents which are not returned, which >leads to multiple copies with different revision dates, ... HTML might be a better solution, since almost everybody has a WEB browser these days, and it can easily be turned into PostScript or ASCII. noweb and nuweb support HTML. >Putting the documentation online solves much of this. I've tried to >use tools like dvips and ghostview, but they're usually poor >substitutes for actual paper copy, alas. I think so, too. >I'm glad to see noweb adding an HTML target, >because people here are putting their documents on the World Wide Web >- even material that is viewed only within a small group of engineers >is most easily browsed via Mosaic or Netscape. I am really hoping to get funding for adding automatic cross-file indexing support to noweb. I have the plan; I just need the money... Norman ================================================================================ Archive-Date: Fri, 02 Jun 1995 11:28:38 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: Why is literate programming nearly unused? Date: 1 Jun 1995 17:23:11 GMT Message-ID: <3qkt1v$5i1@lowell.bellcore.com> CC: Jacob Nielsen To: LitProg@SHSU.EDU In article , Jacob Nielsen wrote: >The adoption of a Common Web Format (CWF) that all webs could be >transformed into, would be better. This way one would only write two >tools for each different WEB; one for the translation to CWF and one >for the translation from CWF. Also, the CWF wouldn't have to conform >to the WEB that does the least. A command that is not understood or >implemented in the target WEB would just be lost. I have my doubts about this approach because of the likely complexity of the CWF. >The total number of commands in the CWF would be around the number of >commands in ``WEB'' (or ``CWEB''), since they do the most... > >Anyone know af any caveats to this approach? Yes. CWEB & friends are too damn complicated, and unless the CWF is designed very carefully and tested thoroughly, it is going to be very hard to write tools for it. You will have to define very carefully what sorts of parts of the CWF different tools are required to understand. You probably know that the implementation of noweb uses a similar approach, translating the source code into an intermediate form, which is then gradually transformed by a pipeline of individual tools. This is costly because Unix processes aren't free, but it means the individual tools can be small and simple. Most important, users can write tools that add new features without having to touch one line of noweb distributed code, and without haveing to recompile. For example the conditional-extraction feature you mention is implemented in a short tool written by Lee Wittenberg. >...noweb and nuweb uses user-defined indexes and CWEB can generate the >indexes automatically. Actually, noweb can generate indexes automatically for C, Icon, TeX, Standard ML, Yacc, and Object-Oriented Turing. Each of these index generators is implemented as another small tool. Except for C, which is notoriously hard to parse, these things are implmeneted in <30 lines of code each. BTW, noweb also comes with a nuweb parser, so any nuweb program is automatically a noweb program (with slight loss of information). So you can use noweb to automatically add an index to your nuweb source. (The automatic indexes aren't as good as what programmers write by hand, because programmers are better at figuring out which identifiers should be indexed.) So, without much evidence to justify it, I think the goal of automatic or semi-automatic translation from one source form to another is interesting. I think the goal of building ``universal'' tools based on a universal intermediate form is misguided---many literate-programming tools are too featureful to be duplicated easily, and I suspect you'll just end up creating yet another literate-programming tool :-( Norman ================================================================================ Archive-Date: Fri, 02 Jun 1995 12:48:31 CDT Sender: owner-litprog@SHSU.edu Date: Fri, 2 Jun 95 13:48:08 EDT From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET To: LitProg@SHSU.edu, natsnav@cix.compulink.co.uk Subject: Re: Ada Message-ID: Tim asks: > Are there any literate programming tools about for Ada? According to the FAQ, there is an AWEB for Ada, and Spidery WEB has an Ada grammar. In addition, the language-independents (noweb, Nuweb, CLiP, etc.) will all work with Ada. I recommend noweb, as it is easiest to learn, IMO. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | The answers one gives to life's crucial Computer Science Department | questions are never truly spontaneous; Kean College of New Jersey | they are the embodiment of years of Union, NJ 07083 | contextual experience. | | -- Caleb Carr leew@pilot.njin.net | "The Alienist" (1994) ------------------------------------------------------------------------ ================================================================================ Archive-Date: Sun, 04 Jun 1995 00:13:58 CDT Sender: owner-litprog@SHSU.edu From: jacob@dannug.dk (Jacob Nielsen) Reply-To: LitProg@SHSU.edu, jacob@DANNUG.DK Subject: Re: A Common Web Format; why not? Date: 03 Jun 1995 18:57:41 GMT Message-ID: To: LitProg@SHSU.EDU >>>>> "NR" == Norman Ramsey writes: NR> In article , Jacob Nielsen NR> wrote: >> The adoption of a Common Web Format (CWF) that all webs could >> be transformed into, would be better. This way one would only >> write two tools for each different WEB; one for the translation >> to CWF and one for the translation from CWF. Also, the CWF >> wouldn't have to conform to the WEB that does the least. A >> command that is not understood or implemented in the target WEB >> would just be lost. NR> I have my doubts about this approach because of the likely NR> complexity of the CWF. >> The total number of commands in the CWF would be around the >> number of commands in ``WEB'' (or ``CWEB''), since they do the >> most... >> >> Anyone know af any caveats to this approach? NR> Yes. CWEB & friends are too damn complicated, and unless the NR> CWF is designed very carefully and tested thoroughly, it is NR> going to be very hard to write tools for it. You will have to NR> define very carefully what sorts of parts of the CWF different NR> tools are required to understand. First let me explain that the reason for coining the Common Web Format was that it's less work to write 2*n than n*n translators if you want to exchange and reuse web code across different literate programming tools. That said, I do see problems with D.E. Knuth's tools in relation to other tools, and it's the not the prettyprinting. The major problem with CWEB is that it limits you to make only one code chunk per section which almost no other tools does. D.E. Knuth has decided on the entire enviroment where many other tools lets you decide on how to divide your web (i.e. leaves the documentation parts alone.) I believe the Common Web Format should support CWEB and friends but to deal with them properly, the CWF should not only deal with the code chunks but also with the documentation parts. This would render the whole idea of a CWF somewhat useless. The solution is to simplify the CWF (called ACWF -- Almost Common W... :-) and only let it deal with the chunks and the odd piece of code in the documentation. I suppose this will translate all webs into nowebs :-) NR> So, without much evidence to justify it, I think the goal of NR> automatic or semi-automatic translation from one source form NR> to another is interesting. I think the goal of building NR> ``universal'' tools based on a universal intermediate form is NR> misguided---many literate-programming tools are too featureful NR> to be duplicated easily, and I suspect you'll just end up NR> creating yet another literate-programming tool :-( If one needs to exchange webs, the (A)CWF could be usefull (2*n versus n*n translators) but I agree that the literate programming tools has to be similar in nature for this to work well. PS: I'm glad to hear that noweb can parse a nuweb web now. Jacob -- Jacob Nielsen jacob@dannug.dk ================================================================================ Archive-Date: Sun, 04 Jun 1995 00:15:00 CDT Sender: owner-litprog@SHSU.edu From: mauer@cursa.math.uiuc.edu (Andrew John Mauer) Reply-To: LitProg@SHSU.edu, mauer@CURSA.MATH.UIUC.EDU Subject: `noweb' automatic indexing Date: 04 Jun 1995 00:01:42 GMT Message-ID: To: LitProg@SHSU.EDU -------- I recently tried out the "autodefs" on a C code in noweb. I was pleased, except that things that I had indexed by hand appeared twice in the indices. :-( Can someone familiar with the noweb IR (no-CWF :-) suggest or outline a reasonable hack to fix this behaviour? Has it already been done? /Andrew/ mauer@mcs.anl.gov ================================================================================ Archive-Date: Sun, 04 Jun 1995 00:44:22 CDT Sender: owner-litprog@SHSU.edu Date: Sat, 3 Jun 95 17:51:07 EDT From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET To: LitProg@SHSU.edu, norman@flaubert.bellcore.com Subject: Re: Why is literate programming nearly unused? Message-ID: Norman Ramsey writes: > I think the goal of building ``universal'' tools based > on a universal intermediate form is misguided---many > literate-programming tools are too featureful to be duplicated easily, > and I suspect you'll just end up creating yet another > literate-programming tool :-( I agree. The best place to look for evidence is the realm of programming languages. How many of these were designed as "universal tools" to replace all previous languages? [I don't know, but I suspect that I can't count that high.] How many of these "universal tools" succeeded in actually displacing the languages they were intended to supersede? [zero]. As P.J. Plauger puts it ("Programming on Purpose II", Prentice-Hall, 1993): We techies like to believe that the technical issues are most important.... So much of our future productivity (and fun) depends on the elegance of the languages we use. We'd better get it as right as possible. That viewpoint ignores an important truth, however. Each of us has his own notion of what constitutes the best technical solution. Put 50 techies in a room with a 300-page document and you'll get an amazing spectrum of opinions. Opinions about issues on every page. Just try to resolve each difference with a rational discussion aimed at achieving unanimity. I assure you the process will never converge. The simple fact is, we techies are human. (Perhaps some of your coworkers are suspect, but I don't want to hear about it.) We have emotional attachments to certain ideas that are impossible to factor out. As I've often remarked, the fewer facts we can marshal in defense of a technical opinion, the more zealous we become in arguing that opinion. I think we will have different LP tools for quite a long time. I tend to prefer noweb (for its simplicity and extensibility), but there are times when using it that I really miss the features of CWEB. FWEB has (or had, I haven't looked at it in a long time) an interesting feature in that it automatically subscripts identifiers with the number of the chunk in which it is defined. I found this feature very disconcerting, but I can see how it could be useful, and how someone could get attached to it. We have to make tradeoffs in the tools we use, and each of us has (and will continue to have) a different set of criteria and priorities. Vive la difference! [Apologies for my -- possibly -- misspelled French.] -- Lee ------------------------------------------------------------------------ Lee Wittenberg | The answers one gives to life's crucial Computer Science Department | questions are never truly spontaneous; Kean College of New Jersey | they are the embodiment of years of Union, NJ 07083 | contextual experience. | | -- Caleb Carr leew@pilot.njin.net | "The Alienist" (1994) ------------------------------------------------------------------------ ================================================================================ Archive-Date: Sun, 04 Jun 1995 04:09:51 CDT Sender: owner-litprog@SHSU.edu From: thompson@sun1.coe.ttu.edu Subject: comp.programming.literate FAQ Date: 4 Jun 1995 08:58:51 GMT Message-ID: Reply-To: LitProg@SHSU.edu, thompson@sun1.coe.ttu.edu To: LitProg@SHSU.EDU Archive-name: literate-programming-faq Last-modified: 1995/05/19 Version: 1.1.13 Welcome to the Literate Programming Frequently Asked Questions List ------------------------------------------------------------------- This version was created Friday, 19 May 1995, and should considered stale after 90 days. Information contained in this document is the best available at preparation. The original file was dated October 15, 1993 (just for historical purposes). Disclaimer: "This FAQ is presented with no warranties or guarantees of ANY KIND including correctness or fitness for any particular purpose. The author of this document has attempted to verify correctness of the data contained herein; however, slip-ups can and do happen. If you use this data, you do so at your own risk." Copyright 1993, 1994, 1995 by David B. Thompson. All rights reserved worldwide. Permission is granted to copy this document for free distribution so long as it remains intact and unmodified. For other arrangements, contact the author/maintainer via email: thompson@sun1.coe.ttu.edu. What's New? ----------- + FWEB FAQ entry updated. (finally! ;-) + Comments of Norman Ramsey included. (Thanks, Norman!) + c2man entry updated. + Request for hypertext help included. Help! ----- I'm interested in experimenting with a hypertext format for this document. I've been chatting with Norman Ramsey (of noweb fame) concerning the possibilities, but have been unable to dedicate sufficient personal resources to bring myself up to speed. I need an experienced person willing to offer advice and, possibly, some time to help me out. If your capable and interested, please drop my an email so we can discuss what is required. Thanks in advance. -=d = ====================================================================== * Introduction or "What's this all about?" ------------------------------------------ This document is for new and experienced users of literate programming tools. The purpose is to explain the concept of literate programming and to provide a resource for locating files of interest to literate programmers and those interested in literate programming. The Literate Programming (LitProg) Frequently Asked Questions (FAQ) list is maintained by Dave Thompson, who can be reached at: thompson@sun1.coe.ttu.edu * Preferred mailing address for FAQ related comments/questions. wqdbt@ttacs1.ttu.edu * Forwarded to my pc. Comment and constructive criticism is welcome. Direct flames to /dev/null (or > nul if you're a msdos user! ;-) If you find an error, please report it. I'm particularly interested in establishing the locations of generally available literate programming tools. If you are the author of such a tool and wish to have it included in this list, please send email. Please note this is a work-in-progress. It is *not* complete, and probably will not be complete for some months. Nevertheless, the information contained herein may be useful to some. Use it as it is intended. - ---------------------------------------------------------------------- - Typography ------------ Major sections of the FAQ are divided by double lines (====). Minor sections and other divisions are separated by single lines (----). Major topics use a "* " as a leader. Minor topics use a "- " as a leader. This should simplify searching for topics. = ====================================================================== Table of Contents: ------------------ * Introduction, or "What's this all about?" - Typography * How do I get the FAQ? - Literate Programming FAQ - FWEB FAQ * Is there a newsgroup? (The comp.programming.literate newsgroup) * What internet nodes are of interest to literate programmers? * What is literate programming? * How do I begin literate programming? * What literate programming tools are available and where are they? - APLWEB - AWEB - CLiP - CWEB - FunnelWeb - FWEB - IMPACT - lit2x - Literate Programmer's Workshop (LPW) - MapleWEB - MWEB (Schrod/Detig) - MWEB (Sewell) - noweb - nuweb - ProTeX - RWEB - SchemeWEB - Spidery WEB - WEB - WinWordWEB * Are there other tools I should know about? - C2LaTeX - c2cweb - c2man - cnoweb - Fold2web - FunnelWeb mode - noweb.el - nuweb.el - TIE - Web mode * What other resources are available? - World Wide Web - TeX Resources - Virtual Coursework * Are there any code examples? - Examples included with developer's tools - Cameron Smith's KR-CWEB - Stanford GraphBase * Bibliographies. * How to anonymously ftp. * Acknowledgements. * End notes. = ====================================================================== * How do I get the FAQ? ----------------------- - Literate Programming FAQ -------------------------- You have many ways to get a current copy of this FAQ. One is to use anonymous ftp (if you don't know how, see a later section in this FAQ) to connect to one of the Comprehensive TeX Arvchive Network (CTAN) sites or the Literate Programming Archive and retrieve a copy of the file. Open an ftp connection to one of the CTAN sites and retrieve the file: help/LitProg-FAQ (For more information on CTAN and the literate programming archive, see the section below entitled "Internet Nodes of Interest to Literate Programmers.") An alternative is to use the fileserver at Sam Houston State University (SHSU). Send a message to FILESERV@SHSU.EDU and include in your message: SENDME LITPROG.FAQ The file server will forward a copy of the file to you via email. - ---------------------------------------------------------------------- - FWEB FAQ ---------- David Coker now maintains the FWEB FAQ. (We all owe Marcus Speh a big THANK YOU for maintaining the FWEB FAQ for so long!) The current version number is 1.30a. It can be retrieved in the same way as this FAQ; either by anonymous ftp or through the SHSU file server. On the SHSU server, the file name is FAQ.FWEB. Invoke your ftp software, open a connection to NIORD.SHSU.EDU [192.92.115.8], attach to the directory FAQ, and transfer the file FAQ.FWEB. Alternatively, send a message to the file server, FILESERV@SHSU.EDU, and include the following text in a one line message: SENDME FAQ.FWEB The file server will send the current version of the file via email. The FWEB FAQ exists in various formats, including HyperText (see other resources below). In Europe, the complete distribution can also be obtained from ftp.desy.de [131.169.10.115] in directory /pub/faq/web/fweb/. It is also available from the literate programming archive (LPA) in the directory LPA/Documentation/faq/fweb (see the references to LPA below for more information). = ====================================================================== * Is there a newsgroup? ----------------------- One of the most important resources is the literate programming newsgroup, comp.programming.literate. You can read this newsgroup using your standard reader. Altenatively, the newsgroup is gated to a mailing list hosted by George Greenwade and Sam Houston State University. You can subscribe by sending mail to the list-server, LISTSERV@SHSU.EDU, and include in the message one line of text: SUBSCRIBE LITPROG "your name in quotes" The list is unmoderated; messages sent to litprog@shsu.edu are automatically distributed to all subscribers and cross-posted to comp.programming.literate. Archives of the mailing list and newsgroup are maintained on niord.shsu.edu [192.92.115.8] in the directory litprog. = ====================================================================== * What internet nodes are of interest to literate programmers? -------------------------------------------------------------- The principal nodes of interest to literate programmers are the Literate Programming Archive (LPA hereafter) and the CTAN (Comprehensive TeX Archive Network). The Literate Programming Archive (LPA) is: Node: ftp.th-darmstadt.de [130.83.55.75] Directory: programming/literate-programming Notes: Fastest response during off-U.S. [yep] business hours. Participating hosts in the Comprehensive TeX Archive Network are: ftp.dante.de (Deutschland) -- anonymous ftp /tex-archive (/pub/tex /pub/archive) -- gopher on node sun.dante.de -- e-mail via ftpmail@dante.de -- Administrator: ftp.shsu.edu (Texas, USA) -- anonymous ftp and gopher /tex-archive (/pub/tex /pub/archive) -- NFS mountable from ftp.SHSU.edu:/pub/ftp/tex-archive -- e-mail via ftpmail@ftp.SHSU.edu -- World Wide Web access on www.SHSU.edu -- Administrator: ftp.tex.ac.uk (England) -- anonymous ftp /tex-archive (/pub/tex /pub/archive) -- gopher on node gopher.tex.ac.uk -- NFS mountable from nfs.tex.ac.uk:/public/ctan/tex-archive -- World Wide Web access on www.tex.ac.uk -- Administrator: A list of CTAN archive sites and their mirrors can be found on: ftp.dante.de: /tex-archive/CTAN.sites I presume that the other CTAN sites mirror this file, but have not checked. As of my last check (September 1994), it contains: "In order to reduce network load, it is recommended that you use the Comprehensive TeX Archive Network (CTAN) host which is located in the closest network proximity to your site." Known partial mirrors of the CTAN reside on (alphabetically): dongpo.math.ncu.edu.tw (Taiwan) /tex-archive ftp.adfa.oz.au (Australia) /pub/tex/ctan ftp.muni.cz (The Czech Republic) /pub/tex/CTAN ftp.cs.ruu.nl (The Netherlands) /pub/tex-archive ftp.uu.net (Virginia, USA) /pub/text-processing/TeX nic.switch.ch (Switzerland) /mirror/tex Known mirrors of the CTAN reside on (alphabetically): ftp.center.osaka-u.ac.jp (Japan) /CTAN ftp.ccu.edu.tw (Taiwan) /pub/tex ftp.cs.rmit.edu.au (Australia) /tex-archive ftp.duke.edu (North Carolina, USA) /tex-archive ftp.germany.eu.net (Deutschland) /pub/packages/TeX ftp.gwdg.de (Deutschland) /pub/dante ftp.jussieu.fr (France) /pub4/TeX/CTAN ftp.loria.fr (France) /pub/unix/tex/ctan ftp.mpi-sb.mpg.de (Deutschland) /pub4/tex/mirror/ftp.dante.de ftp.uni-bielefeld.de (Deutschland) /pub/tex ftp.uni-stuttgart.de (Deutschland) /tex-archive (/pub/tex) ftpserver.nus.sg (Singapore) /pub/zi/TeX src.doc.ic.ac.uk (England) /packages/tex/uk-tex sunsite.unc.edu (North Carolina, USA) /pub/packages/TeX wuarchive.wustl.edu (Missouri, USA) /packages/TeX Other nodes and directories of interest include: Node: niord.shsu.edu [192.92.115.8] Directory: various (do some snooping!) Notes: Has a gopher server. Node: ftp.desy.de [131.169.10.115] Directory: pub/web. Various documents, samples, and the FWEB FAQ. Notes: Has a www server, http://info.desy.de:80/ = ====================================================================== * What is Literate Programming? ------------------------------- Literate programming is the combination of documentation and source together in a fashion suited for reading by human beings. In fact, literate programs should be enjoyable reading, even inviting! (Sorry Bob, I couldn't resist!) In general, literate programs combine source and documentation in a single file. Literate programming tools then parse the file to produce either readable documentation or compilable source. The WEB style of literate programming was created by D.E. Knuth during the development of his TeX typsetting software. All the original work revolves around a particular literate programming tool called WEB. Knuth says: The philosophy behind WEB is that an experienced system programmer, who wants to provide the best possible documentation of his or her software products, needs two things simultaneously: a language like TeX for formatting, and a language like C for programming. Neither type of language can provide the best documentation by itself; but when both are appropriately combined, we obtain a system that is much more useful than either language separately. The structure of a software program may be thought of as a web that is made up of many interconnected pieces. To document such a program we want to explain each individual part of the web and how it relates to its neighbours. The typographic tools provided by TeX give us an opportunity to explain the local structure of each part by making that structure visible, and the programming tools provided by languages such as C or Fortran make it possible for us to specify the algorithms formally and unambigously. By combining the two, we can develop a style of programming that maximizes our ability to perceive the structure of a complex piece of software, and at the same time the documented programs can be mechanically translated into a working software system that matches the documentation. Another author (Eric W. van Ammers) wrote me a short article treating his opinions on literate programming. The text follows: First observation on LP About 90% of the disussion on this list is about problems with applying some WEB-family member to a particular programming language or a special documentation situation. This is ridiculous, I think. Let me explain shortly why... Lemma 1: I have proposed for many years that programming has nothing to do with programming langauges, i.e. a good programmer makes good programs in any language (given some time to learn the syntax) and a bad programmer will never make a good program, no matter the language he uses (today many people share this view, fortunately). Lemma 2: Literate Programming has (in a certain way not yet completely understood) to do with essential aspects of programming. Conclusion 1: A LP-tool should be independent of programming language. Lemma 3: It seems likely that the so called BOOK FORMAT PARADIGM [ref. 1] plays an important role in making literate programs work. Lemma 4: There are very many documentation systems currently being used to produce documents in the BOOK FORMAT. Conclusion 2: A LP-tool should be independent of the documentation system that the program author whishes to use. My remark some time ago that we should discuss the generic properties of an LP-tool was based on the above observation. References: [1] Paul W. Oman and Curtus Cook. Typographical style is more than cosmetic. CACM 33, 5, 506-520 (May 1990) Second observation on LP The idea of a literate program as a text book should be extendend even further. I would like to see a literate program as an (in)formal argument of the correctness of the program. Thus a literate program should be like a textbook on mathematicics. A mathematical textbook explains a theory in terms of lemma and theorems. But the proofs are never formal in the sense that they are obtaind by symbol manipulation of a proof checker. Rather the proofs are by so called "informal rigour", i.e. by very precise and unambiguous sentences in a natural language. Eric W. van Ammers Department of Computer Science Wageningen Agricultural University Dreijenplein 2 E-mail: ammers@rcl.wau.nl 6703 HB Wageningen voice: +31 (0)8370 83356/84154 The Netherlands fax: +31 (0)8370 84731 Another author (Norman Ramsey) wrote me and asked that his opinions be included in the FAQ. What follows are Norman's comments verbatim. I see it's time for the ``how is literate programming different from verbose commenting'' question. Perhaps David Thompson will get this into the FAQ. Alert! What follows are my opinions. In no way do I claim to speak for the (fractious) literate-programming community. How is literate programming different from verbose commenting? There are three distinguishing characteristics. In order of importance, they are: - flexible order of elaboration - automatic support for browsing - typeset documentation, especially diagrams and mathematics Flexible order of elaboration means being able to divide your source program into chunks and write the chunks in any order, independent of the order required by the compiler. In principle, you can choose the order best suited to explaining what you are doing. More subtly, this discipline encourages the author of a literate program to take the time to consider each fragment of the program in its proper sphere, e.g., not to rush past the error checking to get to the ``good parts.'' In its time and season, each part of the program is a good part. (This is the party line; your mileage may vary.) I find the reordering most useful for encapsulating tasks like input validation, error checking, and printing output fit for humans --- all tasks that tend to obscure ``real work'' when left inline. Reordering is less important when using languages like Modula-3, which has exceptions and permits declarations in any order, than when using languages like C, which has no exceptions and requires declaration before use. Automatic support for browsing means getting a table of contents, index, and cross-reference of your program. Cross-reference might be printed, so that you could consult an index to look up the definition of an identifier `foo'. With good tools, you might get a printed mini-index on every page if you wanted. Or if you can use a hypertext technology, cross-reference might be as simple as clicking on an identifier to reach its definition. Indexing is typically done automatically or `semi-automatically', the latter meaning that identifier definitions are marked by hand. Diligently done semi-automatic indexes seem to be best, because the author can mark only the identifiers he or she considers important, but automatic indexing can be almost as good and requires no work. Some tools allow a mix of the two strategies. Some people have applied literate-programming tools to large batches of legacy code just to get the table of contents, index, and cross-reference. I don't use diagrams and mathematics very often, but I wouldn't want to have to live without them. I have worked on one or two projects where the ability to use mathematical formulae to document the program was indispensible. I also wouldn't like to explain some of my concurrent programs without diagrams. Actually I write almost all of my literate programs using only sections headers, lists, and the occasional table. >Wouldn't it be easier to do one's literate programming using a wysiwyg >word processor (e.g. Word for Windows) and indicate what is source >code by putting it in a different font? The data formats used in wysiwyg products are proprietary, and they tend to be documented badly if at all. They are subject to change at the whim of the manufacturer. (I'll go out on a limb and say there are no significant wysiwyg tools in the public domain. I hope the Andrew people will forgive me.) These conditions make it nearly impossible to write tools, especially tools that provide automatic indexing and cross-reference support. The CLiP people have a partial solution that works for tools that can export text --- they plant tags and delimiters throughout the document that enable the reordering transformation (``tangling''). People use TeX, roff, and HTML because free implementations of these tools are widely available on a variety of platforms. TeX and HTML are well documented, and TeX and roff are stable. TeX is the most portable. I think I have just answered the FAQ ``how come all these tools use TeX, anyway?'' :-) Norman Ramsey = ====================================================================== * How do I begin literate programming? -------------------------------------- A recommended book is D.E. Knuth's collection of articles (1992) "Literate Programming," Center for the Study of Language and Information, Stanford University, ISBN 0-937073-80-6 (pbk). This book gives insight into Knuth's thoughts as he developed the web system of literate programming (and TeX for typesetting). It does not document methods for literate programming. A recommended book is Wayne Sewell's (1989) "Weaving a Program: Literate Programming in WEB," Van Nostrand Reinhold, ISBN 0-442-31946-0 (pbk). This book focuses on using Knuth's web system. Some talk exists in the newsgroup/mailing list for a Usenet University course in literate programming. I'm sure discussion of this topic will be welcomed. If you are interested, please participate. = ====================================================================== * What literate programming tools are available and where are they? ------------------------------------------------------------------- A significant number of tools for literate programming are available. Most have been ported from their original systems, so support multiple computer platforms. If you are the developer of such a tool, and would like to make the software freely available, please send me email and I'll reply with a form (like those below) for you to fill in. (Or short-circuit the process and kludge a form from below. :-) - ---------------------------------------------------------------------- - APLWEB -------- Developer: Christoph von Basum Version: Unknown Hardware: MSDOS Languages: IBM APL2 and STSC APL Formatter: Plain TeX Availability: Anonymous ftp from: LPA:/apl watserv1.uwaterloo.ca:/languages/apl/aplweb Readme: Unknown Description: None available. Support: Unknown Note: The status of this particular package is unknown. - ---------------------------------------------------------------------- - AWEB ------ Developer: Unknown Version: Unknown Hardware: Unknown Languages: Ada Formatter: Unknown Availability: Anonymous ftp from: LPA:/ada/web Readme: Unknown Description: None available Support: Not supported. - ---------------------------------------------------------------------- - CLiP ------ Developer: E.W. van Ammers and M.R. Kramer Version: Unknown Hardware: Vax/VMS, Unix, and MS-DOS Languages: Any programming language. Formatter: Any formatter (TeX, LaTeX, Troff, Runoff, etc) or any wordprocessor including WYSIWYG systems (Word Perfect, Win Word, Ami Pro, Word, etc.) Availability: Anonymous ftp from: sun01.info.wau.nl:/CLIP/ms_dos MS-DOS version sun01.info.wau.nl:/CLIP/vax_vms VAX/VMS version CTAN:/web/clip LPA:/machines/ms-dos LPA:/machines/vax Readme: With bundle above Description: CLiP does not use explicite commands to perform the extraction process. Rather it recognizes pseudostatemens written as comments in the programming language in question. CLiP distinguishes pseudostatments from ordinary comments because the former comply with a a particular style. This style can be adjusted to suit virtually any programming language. The CLiP approach to LP makes the system extremely versatile. It is independent of programming language and text processing environment. We designed CLiP to be compatible with hypertext systems as well but we have not yet experimented with this form of documentation. Features: + CLiP imposes virtually no limitations on the text-processing system used to produce the documentation. If the text-processor supports these items you can + structure the documentation according to your own taste. + include drawings, pictures, tables etc. + disclose your documentatio my means of X-ref tables, Indexes, Table of contents, Table of tables, Table of figures, etc. + typeset the documented code. + Extracts any number of modules from a maximum of 64 source files. + No pretty-printing. Code from the source files is copied "as is" to the module. + Appearance of code segments in the documentation matches those of the modules to ease the identification of code segements. + Supports partially specified data types. + Comprehensive user manual (preliminary version) and technical description. - No automatic generation of a X-ref table for program identifiers. Support: Bugs, problems and assistance by e-mail: ammers@rcl.wau.nl - ---------------------------------------------------------------------- - CWEB ------ Developer: Silvio Levy and D.E. Knuth Version: 3.0 Hardware: Unix systems (dos and amiga ports available) Languages: C and C++ Formatter: Plain TeX and LaTeX. Availability: Anonymous ftp from: labrea.stanford.edu:/pub/cweb LPA:/c.c++ CTAN:/web/c_cpp/cweb DOS version in CTAN:/web/c_cpp/cwb30p8c DOS version in LPA:/machines/ms-dos Amiga version CTAN:/web/c_cpp/AmigaCWEB Mac port of CTANGLE in LPA:/machines/mac LaTeX support in LPA:/c.c++ Readme: Bundled with above Description: No description provided. Support: Bugs to levy@math.berkeley.edu Note: A fork of CWEB 3.x was developed by Marc van Leeuwen which implements several changes to CWEB. It is available for anonymous ftp from ftp.cwi.nl:pub/cweb. The principle changes are: - Scans include files for typedef definitions - Grammar and formatting rules are well separated, allowing for run-time selection of a rule set (via command line option) - New manual. - ---------------------------------------------------------------------- - FunnelWeb ----------- Developer: Ross N. Williams: ross@guest.adelaide.edu.au Version: Unknown Hardware: MSDOS, Mac, VMS, Sun. Other ports reported. Languages: No restrictions. Formatter: Plain TeX for printing. Otherwise, no restrictions. Availability: Anonymous ftp from: CTAN:/web/funnelweb LPA:/independent ftp.adelaide.edu.au:/pub/funnelweb Readme: With bundle above. Description: FunnelWeb is a production-quality literate-programming tool that emphasises simplicity and reliability. Everything about FunnelWeb, from the simplicity of its language to the comprehensive tutorial in the user's manual, has been designed to make this as simple, as practical, and as usable a tool as possible. Features: + Provides a simple macro preprocessor facility. + Can produce typeset documentation. + Runs on Sun, VMS VAX, Macintosh, PC, and others. + Portable C source code distributed under GNU licence. + Comprehensive user's manual including tutorial. + Programming-language independent. + Can generate multiple output files. + Allows complete control over the output text. + Regression test suite with over 200 tests. + Fully worked example (in /pub/funnelweb/examples). - Requires TeX to produce typeset documentation. - Typesets program code using TT font only. Support: No formal support available. Mailing list maintained with about 50 subscribers. Informal assistance available from mailing list. - ---------------------------------------------------------------------- - FWEB ------ Developer: John A. Krommes Version: 1.30a (1.40 for the experienced, patient, and brave) Hardware: Unix, VMS, and DOS platforms (anything with ANSI C) Languages: C, C++, Fortran-77, Fortran-90, Ratfor, TeX; also, a language-independent mode. Formatter: Plain TeX and LaTeX. Availability: Anonymous ftp from: ftp.pppl.gov:/pub/fweb CTAN:/web/fweb LPA:/fweb DOS version in LPA:/machines/ms-dos Readme: In bundle with above. Description: It also has a well-developed user's manual and its own FAQ (see above). Beginning with 1.40, documentation is maintained in gnu texinfo format. It runs on most platforms: VMS, PC, UNIX, and pretty much anything that the GNU C compiler (GCC) is supported for. Features: + Processes multiple languages during a single run (so one can mix C and Fortran, for example). + Language-independent mode (v1.40). + Ability to turn off pretty-printing (v1.40). + Built-in Ratfor translator. + Built-in macro preprocessor (closely follows ANSI C, with extensions). + A style file that allows the user to adjust many parameters and behavior patterns of FWEB. + Various operator-overloading features that provide additional pretty-printing capabilities to languages such as C++ and Fortran-90. + Numerous miscellaneous features and command-line options. Support: Bug reports and suggestions to krommes@princeton.edu - ---------------------------------------------------------------------- - IMPACT -------- Developer: Timothy Larkin, from Levy/Knuth CWEB 3.1 Version: 1.0 Hardware: Macintosh; requires AppleEvents. Languages: C, C++ Formatter: TeX Availability: CTAN archives Readme: A short readme file is included in the SEA archive. Description: IMPACT implements CTangle from the Levy/Knuth CWEB 3.1. It operates as a foreground program, tangling files selected from the Mac File Picker. Or it can operate in the background, tangling files in response to odoc events sent by other applications, such as editors. Support: I welcome any reports of bugs. The product will be updated as new versions of the CWEB appear. Other features may be added as users suggest them. - ---------------------------------------------------------------------- - lit2x ------- Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/independent Readme: Unknown Description: None available Support: Unknown - ---------------------------------------------------------------------- - Literate Programmer's Workshop (LPW) -------------------------------------- Developer: Norbert Lindenberg Version: 1.1 Hardware: Apple Macintosh Languages: C++, Object Pascal & others Formatter: self-contained WYSIWYG system Availability: Anonymous ftp from: LPA:/machines/mac CTAN:/web/lpw ftp.apple.com:/pub/literate.prog Readme: With bundle above. Also comes with 38-page manual. Description: The Literate Programming Workshop is an environment for the integrated development of program source text and documentation in combined documents. It consists of a WYSIWYG word processor based on a style sheet approach, a mechanism to extract parts of the text in a document, and a project management system that handles multi-document projects. The system is designed to be used in conjunction with the Macintosh Programmer's Workshop: it prepares raw source text for the MPW compilers, accepts MPW error messages, and shows them in the context of the original documents. Automatic indexing and hypertext features allow for easy access to both source text and documentation. LPW is shareware. Support: Bugs, problems, and questions to lpw@aol.com. - ---------------------------------------------------------------------- - MapleWEB ---------- Developer: Unknown Version: Unknown Hardware: Unknown Languages: Maple Formatter: Unknown Availability: Anonymous ftp from: LPA:/maple Readme: Unknown Description: None Support: Unknown - ---------------------------------------------------------------------- - MWEB (Schrod/Detig) --------------------- Developer: Joachim Schrod Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. - ---------------------------------------------------------------------- - MWEB (Sewell) --------------- Developer: Sewell Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. - ---------------------------------------------------------------------- - noweb ------- Developer: Norman Ramsey Version: 2.6c Hardware: Unix and DOS platforms. Languages: All programming languages. Formatter: Plain TeX, LaTeX, and HTML (Mosaic) formatters. Availability: Anonymous ftp from: CTAN:/web/noweb LPA:/independent DOS version also in LPA:/machines/ms-dos also bart.kean.edu:/pub/leew Last recourse, use bellcore.com:/pub/norman Readme: With bundle above, or see ``Literate Programming Simplified,'' IEEE Software, September 1994, pp97-105. Description: noweb is designed to meet the needs of literate programmers while remaining as simple as possible. Its primary advantages are simplicity, extensibility, and language-independence. noweb uses 5 control sequences to WEB's 27. noweb now supports indexing and identifier cross-reference, including hypertext ``hot links'' courtesy of Mosaic. The simple noweb manual is only 2 pages; documenting the full power of noweave and notangle requires another 3 pages. noweb works ``out of the box'' with any programming language, and a simple back end for a new text formatter can be written in about 50 lines of awk. The primary sacrifice relative to WEB is the loss of prettyprinting. Support: email to the author - ---------------------------------------------------------------------- - nuweb ------- Developer: Preston Briggs: preston@cs.rice.edu Version: 0.87 Hardware: Unix systems: Sparcs, RS/6000s, HPs; (!) MSDOS and Amiga. Languages: Any programming language or combination of programming languages. Formatter: Latex Availability: Anonymous ftp from: Unix: CTAN:/web/nuweb DOS: CTAN:/web/nuweb-pc LPA:/independent Amiga: CTAN:/web/nuweb/nuweb_ami Amiga: wuarchive.wustl.edu/pub/aminet Readme: Send mail to preston@cs.rice.edu Description: A single program that takes a web file written in a combination of latex and any programming language(s) and produces a latex file that can be pretty printed and a set of files containing code for compilation/interpretation by the appropriate language processors. Strengths include speed, simplicity, multiple languages, nice indices and cross-references, latex. Doesn't require any special macros or macro files. Drawbacks: latex-dependent, no code pretty printing, harder to make indices than cweb. More good stuff: nice support for make, doesn't reformat source files, so they're easy to debug. Lots of control without too much effort. That is, it doesn't do too much! Future directions... Very little change planned, except perhaps refinements in the indexing software. Support: Hack it yourself or send e-mail to preston@cs.rice.edu - ---------------------------------------------------------------------- - ProTeX -------- Developer: Eitan Gurari Version: ProTeX 1.1, AlProTeX 1.4 Hardware: Any platform with (La)TeX Languages: Any language Formatter: TeX or LaTeX Availability: Anonymous ftp from: ftp.cis.ohio-state.edu : pub/tex/osu/gurari/ LPA:/independent Readme: With bundle above Description: + Easy to use + Extensible + Language independent + Multiple output files + Fast (single compilation provides output and dvi files) + No installation is needed besides copying the files (written in TeX) Introduction of main features and examples in pub/tex/osu/gurari/LitProg Complete manual in Eitan M. Gurari, "TeX and LaTeX: Drawing and Literate Programming", McGraw-Hill, 1994 Support: gurari@cis.ohio-state.edu - ---------------------------------------------------------------------- - RWEB ------ Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/reduce Readme: Unknown Description: Web generator in AWK. Support: Unknown - ---------------------------------------------------------------------- - SchemeWEB ----------- Developer: John D. Ramsdell Version: 2.1 Hardware: Unix and DOS platforms Languages: Any dialect of Lisp. Formatter: LaTeX. Availability: The Unix version is in the Scheme Repository and it is available via anonymous ftp from: cs.indiana.edu:/pub/scheme-repository/utl/schemeweb.sh LPA:/lisp CTAN:/tex-archive/web/schemeweb The DOS version is part of the PCS/Geneva Scheme system which is available via anonymous ftp from: cui.unige.ch:/pub/pcs LPA:/machines/ms-dos Readme: In bundle with above. Description: SchemeWEB is a Unix filter that allows you to generate both Lisp and LaTeX code from one source file. The generated LaTeX code formats Lisp programs in typewriter font obeying the spacing in the source file. Comments can include arbitrary LaTeX commands. SchemeWEB was originally developed for the Scheme dialect of Lisp, but it can easily be used with most other dialects. Support: Bug reports to ramsdell@mitre.org. - ---------------------------------------------------------------------- - SpideryWEB ------------ Developer: Norman Ramsey Version: Unknown Hardware: Unix and DOS platforms Languages: Most Algol-like languages, including C, Ada, Pascal, Awk, and many others. Formatter: Plain TeX and latex for text formatters. Availability: Anonymous ftp from: CTAN LPA:/spiderweb Readme: In distribution. Description: A system for building language-dependent WEBs. Spider is frozen; no further development is planned. Support: Bug reports to spider-bugs@oracorp.com. - ---------------------------------------------------------------------- - WEB ----- Developer: Donald Knuth Version: Unknown Hardware: Unknown Languages: Pascal Formatter: TeX (of course! ;-) Availability: Anonymous ftp from: LPA:/pascal Readme: Unknown Description: This is the original software that started it all. The original TeX processor was written in WEB. Support: None known. - ---------------------------------------------------------------------- - WinWordWEB ------------ Developer: Lee Wittenberg Version: Unknown Hardware: Needs Microsoft Word for Windows, v.2.x, and, of course, MS-Windows 3.x. Languages: Any programming language. Formatter: Word for Windows 2.x for text formatting and file maintenance. Availability: Anonymous ftp from: bart.kean.edu:pub/leew LPA:/machines/ms-dos World-Wide Web (WWW) Readme: WORDWEB.DOC in the downloadable package describes the system. Description: WinWordWEB is a set of a Word for Windows macros (plus a paragraph style) that provide a crude literate programming environment. The ``look and feel'' of the system is based on Norman Ramsey's noweb, but can easily be modified to suit individual tastes. Support: None. WinWordWEB was written as a prototype to see if a WYSIWYG literate programming system was possible. It is intended as a jumping off point for future work by others. However, the system is surprisingly usable as it stands, and the author is interested in hearing from users (satisfied and dissatisfied). Anyone interested in actively supporting (and improving) the product should contact the author via email. = ====================================================================== * Are there other tools I should know about? -------------------------------------------- First of all, I'll list some not-quite-literate-programming tools. Some may consider these to be pretty-printers. Others may call them literate programming tools. In any event, they don't seem to be quite in the same category as the tools listed above, so I'll include them here. - C2LaTeX --------- Developer: John D. Ramsdell Version: Unknown Hardware: Unix Languages: C Formatter: LaTeX but it's easy to change the formatter. Availability: Anonymous ftp from omnigate.clarkson.edu:/pub/tex/tex-programs/c2latex. Readme: Absent. Documentation is in the C source for c2latex. Description: C2latex provides simple support for literate programming in C. Given a C source file in which the comments have been written in LaTeX, c2latex converts the C source file into a LaTeX source file. It can be used to produce typeset listings of C programs and/or documentation associated with the program. C2latex produces LaTeX source by implementing a small number of rules. A C comment that starts at the beginning of a line is copied unmodified into the LaTeX source file. Otherwise, non-blank lines are surrounded by a pair of formatting commands (\begin{flushleft} and \end{flushleft}), and the lines are separated by \\*. Each non-blank line is formatted using LaTeX's \verb command, except comments within the line are formatted in an \mbox. Support: Send bug reports to ramsdell@mitre.org. - ---------------------------------------------------------------------- - c2cweb -------- Developer: Werner Lemberg Version: 1.4 Hardware: DOS, OS/2, Unix (gcc) - CWEB source included Languages: C, C++ Formatter: TeX Availability: Anonymous ftp from CTAN:/web/c_cpp/c2cweb Readme: In distribution. Description: c2cweb will transform plain C or C++ code into a CWEB file to get a pretty formatted output. A modified CWEAVE (which transforms the CWEB file into a TeX file, see below) is included also. Support: Werner Lemberg - ---------------------------------------------------------------------- - c2man ------- language: C, nroff, texinfo, latex, html package: c2man version: 2.0 patchlevel 33 parts: documentation generator (C -> nroff -man, -> texinfo, ->latex, -> html) author: Graham Stoney location: ftp from any comp.sources.misc archive, in volume42 (the version in the comp.sources.reviewed archive is obsolete) ftp /pub/Unix/Util/c2man-2.0.*.tar.gz from dnpap.et.tudelft.nl Australia: ftp /usenet/comp.sources.misc/volume42/c2man-2.0/* from archie.au N.America: ftp /usenet/comp.sources.misc/volume42/c2man-2.0/* from ftp.wustl.edu Europe: ftp /News/comp.sources.misc/volume42/c2man-2.0/* from ftp.irisa.fr Japan: ftp /pub/NetNews/comp.sources.misc/volume42/c2man-2.0/* from ftp.iij.ad.jp Patches: ftp pub/netnews/sources.bugs/volume93/sep/c2man* from lth.se description: c2man is an automatic documentation tool that extracts comments from C source code to generate functional interface documentation in the same format as sections 2 & 3 of the Unix Programmer's Manual. It requires minimal effort from the programmer by looking for comments in the usual places near the objects they document, rather than imposing a rigid function-comment syntax or requiring that the programmer learn and use a typesetting language. Acceptable documentation can often be generated from existing code with no modifications. conformance: supports both K&R and ISO/ANSI C coding styles features: + generates output in nroff -man, TeXinfo, LaTeX or HTML format + handles comments as part of the language grammar + automagically documents enum parameter & return values + handles C (/* */) and C++ (//) style comments - doesn't handle C++ grammar (yet) requires: yacc/byacc/bison, lex/flex, and nroff/groff/texinfo/LaTeX. ports: Unix, OS/2, MSDOS, VMS. portability: very high for unix, via Configure status: actively developed; contributions by users are encouraged. discussion: via a mailing list: send "subscribe c2man " (in the message body) to listserv@research.canon.oz.au help: from the author and other users on the mailing list: c2man@research.canon.oz.au announcements: patches appear first in comp.sources.bugs, and then in comp.sources.misc. updated: 1994/10/07 - ---------------------------------------------------------------------- - cnoweb -------- Developer: Jim Fox Version: 1.4 (January 4, 1991) Hardware: Anything with C and TeX. Languages: C Formatter: Plain TeX. Availability: Anonymous ftp from: CTAN LPA:/c.c++ Readme: Unknown, cnoweb.tex contains documentation. Description: cnoweb is as it's name describes: write C, not web. No tangling or weaving is implemented. Documentation (between standard /* */ delimiteres) is written in TeX. cnoweb provides typesetting of documentation, an table of contents of routines, and pretty-printing of C source. Support: None known. - ---------------------------------------------------------------------- - Fold2Web ---------- Developer: Bernhard Lang Version: V0.8 Hardware: MSDOS Languages: All (must allow comment lines) Formatter: LaTeX Availability: Anonymous ftp from: kirk.ti1.tu-harburg.de (134.28.41.50) /pub/fold2web/readme /pub/fold2web/fold2web.zip Readme: In distribution Description: The idea behind the Fold2Web tool is the following: A programmer can write his program source with a folding editor and later map the folded source files automatically to WEB-files. The generated WEB-files can then be modified by inserting required documentations. The advantage by starting program developement with original sources is to get short design cycles during the compile/debug steps. By using a folding editor the global structuring information can be already captured in folds during this developement phase. Fold information is typically stored in comment lines and thus will not affect the efficiency of the compile/debug design cycle. Some folding editors and a folding mode for the emacs are available (e.g. see our FUE folding editor for MSDOS machines which is a modified micro emacs. Pick it at kirk in directory /pub/fold2web). After reaching a stable version of a program source its time to convert the source file to a WEB-file and do the program documentation. Fold2Web is written to convert folded source text of any programming language to nuweb files. The folded structure is kept by mapping folds to scraps. Fold markers which differ between languages due to different ways of specifying comments can be configured for each language. Good results can also achived when given but poor documented program sources have to be modified. Such sources can be folded using a folding editor to extract the global structures. This offers a global view to the program structures and help to understand its functionality. Furthermore the program code is not affected, only comment lines are inserted. Once folded the program source can be automatically translated to a WEB document using the above tool. Support: email to lang@tu-harburg.d400.de - ---------------------------------------------------------------------- - Funnelweb Mode ---------------- Developer: Daniel Simmons Version: Unknown Availability: Litprog archives (was in email) Anonymous ftp from: ftp.imada.ou.dk Description: The other day I did a quick hack to nuweb.el as included with the nuweb distribution so as to make a funnelweb-mode.el. I've only used it briefly, and I'm sure that it can be improved quite a bit. I've been thinking about adding support for folding on sections, a pull-down menu to select macro definitions (like the recent functions posted to gnu.emacs.sources for a C function definition pull-down menu) and some kind of tags support for funnelweb. Support: Unknown - ---------------------------------------------------------------------- - noweb.el ---------- Developer: Bruce Stephens Version: Unknown. Availability: LitProg archives (in an email message). Description: This is a very simple mode I just hacked up. There's a lot wrong with it, but I thought others may be interested, even as it stands. It *requires* text properties, and assumes those used in GNU Emacs 19.22; it'll quite likely work with Lucid Emacs, but I haven't tried it. I use it with auctex8.1 and cc-mode 3.229, both of which are loaded separately (I think my emacs is dumped with them, in fact). The idea is to have one mode (which calls itself c-mode, but actually has LaTeX-mode keybindings) generally (this means that the code is hilighted nicely), and have the code chunks use a different keymap. Support: Email to bruce@liverpool.ac.uk - ---------------------------------------------------------------------- - nuweb.el ---------- Developer: Dominique de Waleffe Version: 1.99 Availability: Anonymous ftp from: LPA CTAN Description: Provides a major mode extending Auctex for editing nuweb files. Main features (in 2.0): - Edit scrap bodies in a separate buffer in a different mode (selected using emacs defaults for files, specific indication -*-mode-*-, or a buffer-local variable) - Extends Auctex commands so that nuweb is called before LaTeX, - Easy navigation on scrap definition and use points. - Now creates an imenu (C-M-mouse1) with user index entries, macro definition positions and file definition positions. Support: Email to ddw@sunbim.be - ---------------------------------------------------------------------- - TIE ----- Developer: Unknown Version: Unknown Hardware: Unknown Availability: Anonymous ftp from: LPA:/Tools Readme: Unknown Description: This software merges change files. Support: Unknown - ---------------------------------------------------------------------- - Web mode ---------- Developer: Bart Childs Version: Unknown Tools supported: web, fweb, cweb, funnelweb Availability: Anonymous ftp from ftp.cs.tamu.edu:pub/tex-web/web/EMACS.web-mode thrain.anu.edu.au:pub/web/EMACS.web-mode Description: This version works with versions 18 and 19 of Emacs to be best of my knowledge. I have cleaned up a number of documentation items ... In the same directory is wm_refcard.tex which is an edited version of the famous one to include some web-mode commands. The files limbo* are related to its use and notice that half them have an uppercase L in them for LaTeX. The setup is based upon the fact that we (I am not alone here) primarily use FWEB for C and Fortran programming. We are using version 1.40 of FWEB although John Krommes warns that it is not mature and the manual is not yet updated. The info files are! We are using LaTeX almost exclusively. That will likely change and we will revert to version 1.30 if the final form of 1.40 cannot return to the simple section numbers and avoid the HORRIBLE LATEX 0.1.7.2.4.6 type section numbers. Support: Unknown = ====================================================================== * What other resources are available? ------------------------------------- - World Wide Web ---------------- An untapped resource (by me anyway ;-) is the World Wide Web. Marcus Speh has expended considerable effort in this regard. If you're connected to WWW, then access: http://info.desy.de:80/user/projects/LitProg.html If you aren't connected to WWW, telnet to info.cern.ch and explore. You can reach Marcus' literate programming pages by typing: go http://info.desy.de:80/user/projects/LitProg.html or use a WWW browser and access the URL ftp://rtfm.mit.edu/pub/usenet/news-answers/www/resources/literate-programming Help for people who have only Email and neither WWW nor telnet, can be obtained by Email from TEST-LIST@INFO.CERN.CH by sending a message, SEND , for example, SEND http://info.desy.de:80/user/projects/LitProg.html to retrieve the LitProg library page. A help file can be retrieved by sending a message to the list server above with the text HELP in the body of the message. Instructions will be returned by email. For literate programming documents, you can try anonymous ftp to rtfm.mit.edu and retrieve the official Usenet resource file /pub/usenet/news.answers/www/resources/literate-programming - ---------------------------------------------------------------------- - TeX Resources --------------- Another resource of interest to literate programmers is the info-tex mailing list. If you're using (La)TeX as your typsetting system and have access to internet, then you should investigate this mailing list. Mail list service is available through the SHSU list-server. To subscribe, send a message to LISTSERV@SHSU.EDU, and include in the message one line of text: SUBSCRIBE INFO-TEX "your name in quotes" The list is unmoderated; messages sent to info-tex@shsu.edu are automatically distributed to all subscribers and cross-posted to comp.text.tex. Archives of the mailing list and newsgroup are maintained on niord.shsu.edu [192.92.115.8] in the directory info-tex. Another reason the TeX resources should be important is that so many of the literate programming tools rely on either plain TeX or LaTeX as their text formatter. (La)TeX software systems exist for most computing platforms. These systems can be found on CTAN and other major archive sites. Use archie to find them or simply ftp to one of the CTAN sites and browse. - ---------------------------------------------------------------------- - Virtual Coursework -------------------- Marcus Speh plans an introductory course on Literate Programming on the Internet, part of the first semester of "Global Network Academy" [GNA], a non-profit corporation incorporated in the state of Texas, affilated with the Usenet University project. The texts/sample programs for this class will be made available via the World-Wide Web. A special room on GNA Virtual Campus will be staffed by a consultant in one to two hour shifts. Students with questions can telnet to the virtual campus and ask questions of the staff there. If you are interested in registering for the course either as a student or as a consultant, please contact marcus@x4u.desy.de. You will receive a standard reply message; no further action will be taken until June 94. Interested parties can check the hypertext notes for the completed C++ Course done in a similar fashion, at URL http://info.desy.de:80/pub/uu-gna/html/cc/index.html [Editor's note: Because of workload, Marcus requests that email inquiries be limited to a statement of interest for either a student or consultant position until June 1994.] = ====================================================================== * Are there any code examples? ------------------------------ Examples of web programs are included with the FWEB, CWEB, and noweb distributions. nuweb is written in itself. Cameron Smith converted the K&R calculator program into a literate program. It can be retrieved by anonymous ftp from: niord.shsu.edu [192.92.115.8] directory kr-cweb-sample as krcwsamp.zip or from LPA/Documentation Ross Williams has released a funnelweb example. You can retrieve this file from node ftp.adelaide.edu.au [129.127.40.3] as /pub/funnelweb/examples/except.* This file should be on CTAN as well. Lee Wittenberg has posted a few litprog examples. They are available via anonymous ftp from: bart.kean.edu:/pub/leew/samples.LP The Stanford GraphBase is a large collection of programs by Don Knuth for doing all kinds of computations and games with graphs; it is written in (Levy/Knuth) CWEB. More details in the distribution. It is available via anonymous ftp from: labrea.stanford.edu:/pub/sgb = ====================================================================== * Bibliographies ---------------- Nelson Beebe has collected an extensive bibliography treating literate programming. His work is available for anonymous ftp from ftp.math.utah.edu [128.110.198.2] in directory /pub/tex/bib as files: litprog.bib litprog.ltx litprog.twx. Although I have not verified this, LPA is an alternate source for these files. Note that they are updated frequently (Nelson says several times each week), so be sure to get a fresh copy before extensive use. Joachim Schrod indicates that these files may be updated daily and can be retrieved via anonymous ftp at LPA/documentation. = ====================================================================== * How to anonymously ftp ------------------------ Pretty much everything mentioned here is available by anonymous FTP. FAQ lists cross-posted to news.answers and rec.answers can be gotten from rtfm.mit.edu [18.181.0.24], under /pub/usenet/news.answers or under /pub/usenet/more.specific.group.name "anonymous FTP" is just a way for files to be stored where anyone can retrieve them over the Net. For example, to retrieve the latest version of the literate programming FAQ, do the following: > ftp rtfm.mit.edu /* connect to the site; message follows */ > anonymous /* type this when it asks for your name */ > /* type your address as the password */ > cd /pub/usenet /* go to the directory you want to be */ > cd comp.programming.literate /* one level down (no slash). */ > dir /* look at what's there */ > get literate-progamming-faq /* get the file; case-sensitive */ > quit /* stop this mysterious thing */ If your FTP program complains that it doesn't know where the site you want to use is, type the numerical address instead of the sitename: > ftp 18.181.0.24 /* connect with numerical address */ If you don't have ftp access, send e-mail to mail-server@rtfm.mit.edu with the single word "help" in the body of the message. Getting binary files (executables, or any compressed files) is only slightly more difficult. You need to set binary mode inside FTP before you transfer the file. > binary /* set binary transfer mode */ > ascii /* set back to text transfer mode */ FAQs and spoiler lists are generally ascii files; everything else is generally binary files. Some common extensions on binary files in archive sites are: .Z Compressed; extract with uncompress .tar.Z Compressed 'tape archive'; uncompress then untar or tar -xvf .gz or .z Gnu gzip; use gunzip (available from prep.gnu.ai.mit.edu) .sit (Mac) StufIt archive .zip Extract with Zip or Unzip .zoo Yet another archive/compress program .lhe (Amiga) ? .lzh Lha archive program. .arj (PC) Arj archive program. .exe (PC) Sometimes self-extracting archives-just execute them. .uue or .UUE Transfer as text file; use uudecode to convert to binary .hqx (Mac) BinHex format; transfer in text mode Generic help can be found in the FAQs of comp.binaries. for how to transfer, extract, and virus-check binary files. (At rtfm.mit.edu) If you can't FTP from your site, use one of the following ftp-by-mail servers: ftpmail@decwrl.dec.com ftpmail@src.doc.ic.ac.uk ftpmail@cs.uow.edu.au ftpmail@grasp.insa-lyon.fr For complete instructions, send a message reading "help" to the server. If you don't know exactly what you're looking for, or exactly where it is, there are programs and servers that can help you. For more info, send e-mail to mail-server@rtfm.mit.with with the body of the message reading send usenet/news.answers/finding-sources Thanks to Aliza R. Panitz (the "buglady") for this text. I copied it verbatim from her post on faq-maintainers with only minor modifications. = ====================================================================== * Acknowledgements ------------------ This document would not have happened without the help of many people. Among them are Marcus Speh, George Greenwade, Rob Beezer, Joachim Schrod, Piet van Oostrum, and Ross N. Williams. A special thanks to Aliza R. Panitz for the text describing how to execute an anonymous ftp for files of interest. Any omissions from these acknowledgements should be considered an act of stupidity on my part. Of course, the authors of literate programming tools mentioned above all play a vital role in the vitality of literate programming. Furthermore, participants in the comp.programming.literate newsgroup (and associated mailing list) all contributed in various fashions. Thank all of you. = ====================================================================== * End notes ----------- This document will continue to evolve. I'm planning on adding entries for additional literate programming tools and will expand the sections on examples as more examples become available. Tools I will include are WEB (the original pascal version) for starters. Others will be added as I find and document them. Omission of a particular tool should not be considered a snub in any sense--simply an error or oversight on my part. = End of File ========================================================== ================================================================================ Archive-Date: Sun, 04 Jun 1995 23:58:24 CDT Sender: owner-litprog@SHSU.edu From: lparke3@vms1.gmu.edu Reply-To: LitProg@SHSU.edu, lparke3@VMS1.GMU.EDU Subject: GETTING MARRIED? MUST READ (ADVERTISEMENT) Date: 4 Jun 95 23:09:09 EST Message-ID: <1995Jun4.230909@vms1.gmu.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit To: LitProg@SHSU.EDU Plan your wedding flawlessly with the VIDEO WEDDING PLANNER!! (sponsored by E L E G A N T B R I D E M A G A Z I N E ) The VIDEO WEDDING PLANNER will teach you step-by-step everything you need to know about planning the wedding of a lifetime for only $19.95. (Nominee for 1995 Best How-To Video of the Year) With the purchase of a VIDEO WEDDING PLANNER, you will receive a discounted price off these other fabulous wedding products: * KODAK WEDDING CAMERA (single use) PUT ONE AT EVERY TABLE AT THE RECEPTION! We have never met a bride who said she had too many pictures! (Packs of 5) REGULAR $71.99, NOW $59.95 * WEDDING MUSIC - MUSIQUES NUPTIALES Best Selling Wedding Music CD from Elektra Records (a Time Warner Company) REGULAR $18.95 NOW $16.95 * THE BRIDE'S BOOK - MY WRITTEN REMEMBRANCE Keep track of every memory of your wedding day! REGULAR $13.95 NOW $11.95 * FLOWERS FOR YOUR WEDDING DAY Here is all the inspiration you need in chosing the perfect flowers for your wedding day! REGULAR $27.95 NOW $23.95 Because the memories of your wedding last a lifetime, you will need all of these tools to make it a complete success. ORDER NOW! Start planning your new life together! Contact a representative (Ron Beres or Lance Parker) at 7 0 3 - 7 5 8 - 7 8 3 2 or write to: Cornerstone Entertainment Inc. P.O. Box 2036 Reston VA 22091 * include $4.95 Shipping and Handling VISA / MASTERCARD / AMERICAN EXPRESS / CHECK / MONEY ORDER * With credit card orders that are mailed in, please include name on card, type of card, credit card number and expiration date, telephone number and the quantities of each item. ================================================================================ Archive-Date: Mon, 05 Jun 1995 05:20:01 CDT Sender: owner-litprog@SHSU.edu From: natsnav@cix.compulink.co.uk ("T Rowe Civil Aviati") Reply-To: LitProg@SHSU.edu, natsnav@CIX.COMPULINK.CO.UK Subject: Re: Why is literate programming nearly unused? Message-ID: Date: Mon, 5 Jun 1995 09:42:29 GMT To: LitProg@SHSU.EDU Richard A. O'Keefe; http://www.cs.rmit.edu.au/~ok; RMIT Comp.Sci. said: > TeX may be _rare_ in the DOS/Windows world, but it has been _available_ > for quite some time. So long, in fact, that the only free dvi viewer I can find for MS-Windows barfs on anything more recent that Windows v2.x! I run Linux on my PC mainly so I can run nTeX because I can't find anything as good cheaply for MS-DOS/MS-Windows. But yes, TeX *is* available, and emTeX is free and quite useable. In a personal capacity, Tim ================================================================================ Archive-Date: Mon, 05 Jun 1995 10:29:41 CDT Sender: owner-litprog@SHSU.edu From: youssef@crim.ca (Ghassan Youssef) Subject: Documentation Overview Message-ID: <1995Jun5.150642.10795@clouso.crim.ca> Keywords: Documentation, Literate Programming Reply-To: LitProg@SHSU.edu, youssef@crim.ca Date: Mon, 5 Jun 1995 15:06:42 GMT To: LitProg@SHSU.EDU Hi everybody, Is there anyone who has done already an overview on Documentation approaches and tools already existing ??? besides literate programming ? It's realy urgent and even if you haven't done that overview, send me an e-mail telling me about the documentation approaches you know or you heard about, I'll put them all together and send back to you the full report. Thanks a lot, Ghassan. --- *** ``` (o o) +---------------o00--(_)--00o-------------------+ Ghassan Youssef Research Assistant youssef@crim.ca CRIM: Computer Research Tel:(514) 398-1476 Institute of Montreal. Fax:(514) 398-1244 +-----------------------------------------------+ ~ ================================================================================ Archive-Date: Mon, 05 Jun 1995 16:58:42 CDT Sender: owner-litprog@SHSU.edu From: simon@pogner.demon.co.uk (Simon Wright) Reply-To: LitProg@SHSU.edu, simon@POGNER.DEMON.CO.UK Subject: Re: Ada Date: 04 Jun 1995 16:15:04 GMT Message-ID: To: LitProg@SHSU.EDU I have found nuweb useful for Ada LP. Presumably noweb would also be fine. -- Simon Wright Ferranti Naval Systems Voice: +44(0)1705-701778 A Division of GEC-Marconi Ltd FAX: +44(0)1705-701800 ================================================================================ Archive-Date: Tue, 06 Jun 1995 00:34:18 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: Where to find Icon Date: 31 May 1995 17:36:43 GMT Message-ID: <3qi9fb$m0a@lowell.bellcore.com> To: LitProg@SHSU.EDU In article , smurf@SmurfIX1.igd.fhg.de (Christian Kumpf) writes: >! b.t.w., noweb makes extensive use of a programming language named >! `icon'. Where can I get this (sources and/or a port to Linux and/or >! SunOS)? If I ask archie I've get thousands of locations of tiny >! pictures but no reference to a programming langunage. :-( The noweb home page at Noweb contains pointers to sources and binaries for noweb and Icon, pointers to source code for an awk that works, and other useful information. I have updated the noweb README to point to this page. Norman ================================================================================ Archive-Date: Tue, 06 Jun 1995 04:58:25 CDT Sender: owner-litprog@SHSU.edu From: maavl@cwi.nl (Marc van Leeuwen) Reply-To: LitProg@SHSU.edu, maavl@CWI.NL Subject: Re: compile-only LP (was Re: Web systems and TeXinfo?) Message-ID: Date: Tue, 6 Jun 1995 08:40:41 GMT To: LitProg@SHSU.EDU In article , leet@ims.com (Lee Thomas) writes: |> Putting the documentation online solves much of this. I've tried to |> use tools like dvips and ghostview, but they're usually poor |> substitutes for actual paper copy, alas. Is it just sloppiness that you forgot to mention any plain dvi-previewers here or did you actually not try any of these? If you want to view TeX-output on the screen, there is really no point in converting to postscript; in fact TeX files viewed via ghostview usually look horrible, because the (bitmapped) fonts have been included at a resolution unfit for displaying on the screen. On the other hand a previewer like xdvi can select bitmaps according to the screen resolution, and if your screen has grayscales (or colours) it can use greyscale anti-aliasing to improve the apparent resolution even beyond the actual resolution of the screen; all in all the quality is incomparably better then via dvips|ghostview. Since xdvi also automatically rereads dvi-files when they are changed, it allows you to view TeX output almost immediately as it is produced; moreover it can even display included postscript images (albeit not as fast as the surrounding text). The hypertext additions of xhdvi should give it all the possibilities you could wish for a browser of TeX output, but unfortunately the version of xhdvi I have seen is still buggy. If you are not using X-windows, there must be other other applicable dvi-previewers with similar properties. Marc van Leeuwen ================================================================================ Archive-Date: Tue, 06 Jun 1995 08:50:59 CDT Sender: owner-litprog@SHSU.edu From: utcke@nerys.ti1.tu-harburg.de (Sven Utcke) Reply-To: LitProg@SHSU.edu, utcke@NERYS.TI1.TU-HARBURG.DE Subject: Re: comp.programming.literate FAQ Date: 06 Jun 1995 13:27:00 GMT Message-ID: To: LitProg@SHSU.EDU In article thompson@sun1.coe.ttu.edu writes: > - FWEB > ------ > > Developer: John A. Krommes > Version: 1.30a (1.40 for the experienced, patient, and brave) Last I checked FWEB was version 1.51 (I think basically 1.4 with some bug-fixes and LaTeX2e support). Check ftp://ftp.pppl.gov:/pub/fweb/READ_ME for the newest infos. Sven -- e-mail: utcke@tu-harburg.d400.de finger: -l utcke@kirk.ti1.tu-harburg.de WWW : http://www.ti1.tu-harburg.de/~utcke/utcke.html ================================================================================ Archive-Date: Tue, 06 Jun 1995 11:15:53 CDT Sender: owner-litprog@SHSU.edu Date: Tue, 6 Jun 1995 11:02:20 -0500 From: rsmith2@buster.eng.ua.edu (Randy K. Smith) Reply-To: LitProg@SHSU.edu, rsmith2@BUSTER.ENG.UA.EDU Message-ID: <9506061602.AA16822@ho04.eng.ua.edu> To: LitProg@SHSU.edu Subject: -v Basile STARYNKEVITCH referenced an article by Norman Ramsey titled "Literate Programming should be a model for Software Engineering and Programming Languages" dated March 1995. Can someone provide a pointer to the journal for this article?? Thanks Randy Smith ================================================================================ Archive-Date: Tue, 06 Jun 1995 13:12:48 CDT Sender: owner-litprog@SHSU.edu From: leet@ims.com (Lee Thomas) Reply-To: LitProg@SHSU.edu, leet@IMS.COM Subject: Re: compile-only LP (was Re: Web systems and TeXinfo?) Date: 06 Jun 1995 09:38:22 -0700 Message-ID: To: LitProg@SHSU.EDU >>>>> On Tue, 6 Jun 1995 08:40:41 GMT, >>>>> maavl@cwi.nl (Marc van Leeuwen) wrote: Marc> In article , Marc> leet@ims.com (Lee Thomas) writes: Marc> |> Putting the documentation online solves much of this. I've tried Marc> |> to use tools like dvips and ghostview, but they're usually poor Marc> |> substitutes for actual paper copy, alas. Marc> Is it just sloppiness that you forgot to mention any plain Marc> dvi-previewers here or did you actually not try any of these? Neither sloppiness nor ignorance, Marc - but thanks for at least giving me *that* much choice. It's been 5-7 years since I last worked at a site which had xdvi, and which had decent sysadmin support for TeX/LaTeX. (Some days I wish Knuth would charge $5,000 per copy of TeX so I could convince management that it's superior to the other - commercial - systems.) When I last tried it, it worked well. However, the dvi still needed to be processed into PostScript to be printed (I couldn't avoid printing), and we encountered differences between the online and the printed versions. Trying to get it all to work together became a time sink I couldn't afford. I very much want a system which allows me to programmatically produce text that looks identical when rendered on-screen or on-paper. If I could be the TeX administrator everywhere I work (and job changes are a fact of life), I would install xdvi in a heartbeat. However (trust me), altogether it's just not workable in most of the U.S. high-tech environments I encounter. If I need to abandon LaTeX (temporarily?) so I can get Literate Programming happening where I work, so be it. Prioritizing is painful, but often necessary. -- Lee Thomas, leet@ims.com Integrated Measurement Systems 9525 SW Gemini Dr. Beaverton, Or 97005 ================================================================================ Archive-Date: Tue, 06 Jun 1995 16:17:29 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: `noweb' automatic indexing Date: 6 Jun 1995 17:42:02 GMT Message-ID: <3r241a$qab@lowell.bellcore.com> CC: Andrew John Mauer To: LitProg@SHSU.EDU In article , Andrew John Mauer wrote: >I recently tried out the "autodefs" on a C code in noweb. I was >pleased, except that things that I had indexed by hand appeared twice >in the indices. :-( > >Can someone familiar with the noweb IR (no-CWF :-) suggest or outline >a reasonable hack to fix this behaviour? Has it already been done? If you jsut want to remove your by-hand indexes, try this $NW/markup file | sed '/^@index /d' | $NW/unmarkup > newfile where the NW variable points to the place where noweb's guts are installed. If you want to remove only those by-hand things that duplicate the automatic indexing, it gets more complicated... Norman ================================================================================ Archive-Date: Wed, 07 Jun 1995 05:52:48 CDT Sender: owner-litprog@SHSU.edu From: bhoover@freenet.vcu.edu Reply-To: LitProg@SHSU.edu, bhoover@FREENET.VCU.EDU Subject: web info Date: 7 Jun 1995 06:29:50 -0400 Message-ID: <3r3v2u$ibi@freenet.vcu.edu> To: LitProg@SHSU.EDU Can anyone point me in the direction to information on setting up a web site? Don't know a thing about it. I don't have direct access to ftp - this free-net does not provide it. thanks for any help you can give. -- miracles will have their claimers more will bow to Rome he and she are in the house but there's only me at home ================================================================================ Archive-Date: Wed, 07 Jun 1995 09:21:31 CDT Sender: owner-litprog@SHSU.edu Date: Wed, 7 Jun 95 10:21:28 EDT From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET To: LitProg@SHSU.edu, natsnav@cix.compulink.co.uk Subject: Re: Why is literate programming nearly unused? Message-ID: Tim Rowe writes: > So long, in fact, that the only free dvi viewer I can find for MS-Windows > barfs on anything more recent that Windows v2.x! I run Linux on my PC > mainly so I can run nTeX because I can't find anything as good cheaply > for MS-DOS/MS-Windows. But yes, TeX *is* available, and emTeX is free and > quite useable. I've been using emTeX under DOS, and the excellent freeware DVIWIN viewer by Hippocrates Sendoukas under Windows (v3.1!). I don't know which other Windows viewers you tried, but DVIWIN has never given me any problems. It's available at CTAN, and even SIMTEL. You might want to try it. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | The answers one gives to life's crucial Computer Science Department | questions are never truly spontaneous; Kean College of New Jersey | they are the embodiment of years of Union, NJ 07083 | contextual experience. | | -- Caleb Carr leew@pilot.njin.net | "The Alienist" (1994) ------------------------------------------------------------------------ ================================================================================ Archive-Date: Wed, 07 Jun 1995 10:51:08 CDT Sender: owner-litprog@SHSU.edu From: Laurent Reply-To: LitProg@SHSU.edu, hb12@CALVANET.CALVACOM.FR Subject: QuickTime Instrument documentation Date: 7 Jun 1995 15:26:48 GMT Message-ID: <3r4gfo$eul@midgard.calvacom.fr> To: LitProg@SHSU.EDU Please, if you have any information about QuickTime Instrument documentation (for programmers), say hello at hb12@calvanet.calvacom.fr. Cheers, Laurent. ================================================================================ Archive-Date: Wed, 07 Jun 1995 11:59:53 CDT Sender: owner-litprog@SHSU.edu From: sriram@glock.tcs.com (Sriram Srinivasan) Reply-To: LitProg@SHSU.edu, sriram@GLOCK.TCS.COM Subject: ANNOUNCE : fmweb - literate programming with FrameMaker Date: 7 Jun 1995 16:16:43 GMT Message-ID: <3r4jdc$caf@tcsi.tcs.com> To: LitProg@SHSU.EDU fmweb is an attempt to do literate programming using FrameMaker. The fundamental problem I have with traditional web tools is that the web text looks like a mess, because it has code, documentation and formatting data all in the soup. I prefer WYSIWIG documentation systems over TeX, where formatting meta-information does not clutter up your thinking. fmweb allows you to write your code in a way that it looks exactly like the WEB system's output from the outset. It supports output to multiple files, is language independent, and doesn't care how many figures or fonts you use. The three files in this distribution are - fmweb.mif - a FrameMaker 4 document containing everything - including a perl5 fmweb script. fmweb.ps - a postscript print of this document for those who don't have Frame, but want to have a look at the approach. fmweb.README - this file. fmweb has been uploaded to one of the CTAN sites (ftp.shsu.edu:/incoming), and should show up in the tex-archive/web/fmweb directory soon. Please send comments/ideas/flames to sriram@tcs.com. I am exploring usage of such an approach for largish systems. I would like to know what people who use the traditional WEB approach think of the workability of this approach. -Sriram Srinivasan (sriram@tcs.com) -- ================================================================================ Archive-Date: Wed, 07 Jun 1995 14:13:57 CDT Sender: owner-litprog@SHSU.edu From: joewong@iohk.com Reply-To: LitProg@SHSU.edu, joewong@IOHK.COM Subject: Help:how to decode the attached file? (0/1) Date: 7 Jun 1995 18:35:18 GMT Message-ID: <3r4rh6$p7l@ibridge.iohk.com> To: LitProg@SHSU.EDU Dear all Does there any one know how to decode the attached file, this is a file that auto capture by a software (I didn't know the software name) from a time recoder. the contant is something the code, date and time. I want transfer it to a text file format. can any one give me a helping hand? Best regard Have a nice day. Joe Wong ================================================================================ Archive-Date: Wed, 07 Jun 1995 14:14:01 CDT Sender: owner-litprog@SHSU.edu From: joewong@iohk.com Reply-To: LitProg@SHSU.edu, joewong@IOHK.COM Subject: Help:how to decode the attached file? [hi950524.hst] (1/1) Date: 7 Jun 1995 18:35:22 GMT Message-ID: <3r4rha$p7l@ibridge.iohk.com> To: LitProg@SHSU.EDU begin 644 HI950524.HST M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````!``0`!0`-``X`%P`8`!P`'0`C`"0`)0`F`"<`*``H```````I`"D` M*@`K````````````+``L```````````````````````M`"T``````"X`+@`` M```````````````````````````````````````````````````````````` M`````````````"\`+P`````````````````P`#`````````````````````` M`#$`,0`````````````````````````````````````````````````````` M`````````````````````````````````````#(`0@!#`$X`3P!2`%,`4P!4 M`%8`5P!8`%D`60!:`%T`7@!>``````!?`&,`9`!E`&8`:0!J`&T`;@!W`'@` M>0!Z`'\`@`""`(,`A@`````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M``````````````````````````````````````"'`(H`BP"+`(P`C0".`)$` M``````````"2`),`E`"6``````"7`)@``````)D`F0````````````````": M`)L```````````````````````````"<`)P`G0">````````````GP"?```` M````````H`"A`*(`I0```````````*8`IP"H`*D```````````"J`*H`JP"M M````````````K@"N```````````````````````````````````````````` M````````````````````````````````KP"Q```````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` MEP$`'P0```B7`0`?!`(`")`0#S`Q0`")X!`"@$%0`(GP$`[P,6``B?`0#J M`Q<`")\!``H$```(H`$`(009``BA`0`D!!H`"*$!`!,$&P`(H@$`$@0<``BC M`0`G!```"*0!`!T$'@`(I`$`^P,?``BD`0`;!"``"*0!```$(0`(I`$`*@0B M``BE`0#]`R,`"*8!`/X#```(J`$`-`0E``BI`0`)!```"*X!`/P#)P`(KP$` M*00```BR`0`B!```"+H!`.D#```(@`$`$`0K``F!`0`X!```"8T!`!$$```) MH@$`!@0```FK`0`5!```":L!``$$```*^`$`)`0```K2`0`=!```"]P!`!4$ M,P`,W0$`+@0T``S>`0`.!#4`#-X!`!P$-@`,W@$`'@0W``S>`0`I!#@`#-X! M`!<$.0`,W@$`'P0Z``S?`0`;!#L`#-\!`"($/``,WP$`)00]``S?`0#M`SX` M#-\!`!($/P`,WP$`!@1```S?`0`!!$$`#-\!``D$0@`,WP$`Z@,```S@`0`* M!$0`#.`!`/4#10`,X`$`\P-&``S@`0#R`T<`#.$!`!,$2``,X0$`%@1)``SA M`0`T!$H`#.(!``L$2P`,XP$`*@1,``SC`0`G!$T`#.,!`"@$3@`,XP$`+P0` M``SD`0`P!%``#.4!`"T$40`,Y0$`$`12``SE`0#\`P``#.H!```$```,[P$` M.`15``RO`0`N!%8`#.\!`$P$```,\`$`Z0-8``SQ`0#N`P``#/8!`!$$```, MN`$`)P1;``RX`0`P!%P`#+@!`"H$70`,N`$`+P0```R"`0`Y!```#P`-H`$`_`-\ M``V@`0``!'T`#:(!`!P$?@`-H@$`'P1_``VB`0`I!```#:4!`.T#@0`-I0$` M^P."``VE`0`2!```#:@!`!X$A``-J`$`&P2%``VH`0`B!(8`#:@!``8$```- M[`$`[P.(`!'O`0#N`XD`$>\!`!8$B@`1[P$`(00``!'R`0`7!```$?0!``X$ MC0`1]`$```0``!'Y`0#M`X\`$?D!`!($D``1^@$`^P.1`!'[`0#S`P``$ To: LitProg@SHSU.EDU this mobile sculpture (length 21,8 meters, weight 1800 kg) by r. kriesche is physically positioned in the austrian pavilion during the biennale of venice. T.S.4 is driven by the data flow in internet according to the relation of the world wide computer newsgroups versus world wide art newsgroups. according to this relation T.S.4 will transcross the austrian pavilion during the time of the biennale and might even break through the wall of the pavilion. you are invited to become part of T.S.4 by: o visiting its www homepage http://iis.joanneum.ac.at/kriesche/biennale95.html o discussion about T.S.4 on usenet news o sending e-mail to T.S.4 (mailto:ts4@iis.joanneum.ac.at) your participation will slow down the movement of T.S.4 and prevent it crashing. ================================================================================ Archive-Date: Wed, 07 Jun 1995 16:34:18 CDT Sender: owner-litprog@SHSU.edu From: carsuki@aol.com (Carsuki) Subject: Mainframe vrs PC Date: 7 Jun 1995 16:43:55 -0400 Message-ID: <3r532b$d0@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, carsuki@aol.com (Carsuki) To: LitProg@SHSU.EDU I want a career in processing but I don't know which direction to take. I would like some pro and con feedback from people in the industry. Thanks Carsuki ================================================================================ Archive-Date: Thu, 08 Jun 1995 03:48:23 CDT Sender: owner-litprog@SHSU.edu From: schrod@iti.informatik.th-darmstadt.de (Joachim Schrod) Reply-To: LitProg@SHSU.edu, schrod@ITI.INFORMATIK.TH-DARMSTADT.DE Subject: Re: My experience with LP Date: 7 Jun 1995 19:11:32 GMT Message-ID: <3r4tl4$agf@rs18.hrz.th-darmstadt.de> To: LitProg@SHSU.EDU In article maavl@cwi.nl (Marc van Leeuwen) writes: > > here is the simple idea that should do the trick: add just one > code to the (C)WEB langage that signals the end of a section without > starting a new one, but rather gets you into a similar mode as you had in > limbo (i.e., not in any section, but talking directly to TeX). That would > give you all the opportunity you need for sectioning (in the document sense, > rather than the WEB sense) and other non-program related stuff. For a really > pleasant result you might want some additional modifications, like changing > the support macros that are currently geared towards the ``WEB-section as > basic structuring element'' philosophy, and adding hooks to allow the > WEB-section to be numbered subsidiary to the larger document sections. One > step further would be to modify CWEAVE into an eqn-style filter that just > prettyprints code sections, while passing everything else through unchanged > (anybody volunteer to do this? :-). cweb.sty has all the code already. `Just' redefine the appropriate macros from the protected level (\Cweb...), there are (IMHO) enough hooks. Cheers, Joachim -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Joachim Schrod Email: schrod@iti.informatik.th-darmstadt.de Computer Science Department Technical University of Darmstadt, Germany ================================================================================ Archive-Date: Thu, 08 Jun 1995 09:38:34 CDT Sender: owner-litprog@SHSU.edu From: "Denis B. Roegel" Reply-To: LitProg@SHSU.edu, Denis.Roegel@LORIA.FR Message-ID: <199506081426.QAA09179@pandore.loria.fr> Subject: Re: My experience with LP To: LitProg@SHSU.edu, schrod@iti.informatik.th-darmstadt.de Date: Thu, 8 Jun 1995 16:26:52 +0200 (MET DST) CC: roegel@lorraine.loria.fr (Denis B. Roegel) MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit 'Joachim Schrod' > > cweb.sty has all the code already. `Just' redefine the appropriate > macros from the protected level (\Cweb...), there are (IMHO) enough > hooks. > > Joachim, Where can I find cweb.sty ? I searched on CTAN as well as on the desy server, but didn't find it. Thanks in advance, Denis ================================================================================ Archive-Date: Thu, 08 Jun 1995 10:20:14 CDT Sender: owner-litprog@SHSU.edu From: Michal Gomulinski Reply-To: LitProg@SHSU.edu, s146028@IA.PW.EDU.PL Subject: LP program in Polish Date: 8 Jun 1995 13:31:22 GMT Message-ID: <3r6u3a$g3m@gemini.coi.pw.edu.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 7bit To: LitProg@SHSU.EDU I've just finished writing a program using LP. It is about some strange subject: Generating Huge Prime Numbers and one application of this generator. I wrote it using FWEB 1.50-beta as a project for DATA STRUCTURES lecture at my university. If someone is interested I can send a source, but you must know some facts: it is written in C++ and the documentation is in Polish. As far as I know it is one of the first literate programs in Polish. Regards Michal Gomulinski (M.Gomulinski@elka.pw.edu.pl) (http://www.ia.pw.edu.pl/~s146028/) ================================================================================ Archive-Date: Thu, 08 Jun 1995 20:52:21 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: How to start in Literate Programming Date: 8 Jun 1995 15:19:51 GMT Message-ID: <3r74en$2ln@lowell.bellcore.com> Keywords: web emacs web-mode To: LitProg@SHSU.EDU In article <3q5dmm$dsk@news.tamu.edu>, Bart Childs wrote: >1) Get FWEB, emacs (preferably v 19 +), TeX, and web-mode. >... >I would also be pleased to hear from those who try this and feel it is >not appropriate. I have tried this (outside a classroom setting) WITHOUT Bart's introductory literature (which I look forward to reading) with a number of people and the consensus is that some people flounder if just handed FWEB or CWEB. It is worth trying noweb or nuweb, which are much simpler. noweb and nuweb also support HTML, which means those who don't know TeX but do know HTML have that leg up. Norman ================================================================================ Archive-Date: Thu, 08 Jun 1995 20:52:23 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: A Common Web Format (was: Re: Why is literate programming nearly unused?) Date: 8 Jun 1995 15:25:07 GMT Message-ID: <3r74oj$2oj@lowell.bellcore.com> To: LitProg@SHSU.EDU In article , Jacob Nielsen wrote: >As I see it, the problem isn't as much not understanding the >CWEB/noweb et al. sources but rather the inherent trouble in reusing a >piece of, say, CWEB source in a noweb source. > >With a Common Web Format I could transform The Stanford GraphBase into >a noweb document and integrate the bits and pieces that I needed >_directly_ into my noweb WEB. OK. Today there are tools shipped with noweb that perform nuweb -> noweb with slight information loss I am willing to write noweb -> nuweb without loss noweb -> CWEB nuweb -> CWEB if someone will volunteer to test them. nuweb->CWEB may lose information unnecessarily because of course I just intend to compose nuweb->noweb->CWEB. I have no intention of touching CWEB->noweb. Been there, done that. Norman ================================================================================ Archive-Date: Thu, 08 Jun 1995 21:22:06 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: Web systems and TeXinfo? Date: 8 Jun 1995 21:28:16 GMT Message-ID: <3r7q1g$5am@lowell.bellcore.com> To: LitProg@SHSU.EDU In article , Mike Eggleston wrote: >I haven't seen any other mechanism [besides texinfo] >that has both a hard-copy and an >on-line format for the document. HTML, which is supported by nuweb and noweb. In my own work I do best by using a simple subset of latex that is easily converted to HTML. That way I get page numbers on the hard copy, but I don't clutter up the online version with meaningless numbers. Of course, I have to resist the temptation to do things in latex that can't be done in HTML... Norman ================================================================================ Archive-Date: Fri, 09 Jun 1995 03:37:07 CDT Sender: owner-litprog@SHSU.edu From: Danny Ben-Ari <75033.3427@CompuServe.COM> Reply-To: LitProg@SHSU.edu, 75033.3427@COMPUSERVE.COM Subject: Shareware CASE tool Date: 2 Jun 1995 14:58:10 GMT Message-ID: <3qn8u2$3os$1@mhadf.production.compuserve.com> To: LitProg@SHSU.EDU There is a shareware version of a product called WITH CLASS that does reverse engineering, gereates C++, Ada, Eiffel and Pascal code, creates class and state diagrams and has a script language for custom reports. It is available on the Compuserve Shareware forum (GO CASE) and the file is wclass24.zip. You can also find an older version on ftp:oak.oakland.edu/simtel/win3/pgmtools. The shareware is definetely worth checking out! -- Dan Ben-Ari 75033.3427@compuserve.com ================================================================================ Archive-Date: Fri, 09 Jun 1995 03:37:22 CDT Sender: owner-litprog@SHSU.edu From: 71247.3221@compuserve.com (Don Wallace) Reply-To: LitProg@SHSU.edu, 71247.3221@COMPUSERVE.COM Subject: Definition for 'Literate Programming'? Date: Mon, 05 Jun 1995 05:43:29 GMT Message-ID: <3qtqjo$7ol@dub-news-svc-1.compuserve.com> To: LitProg@SHSU.EDU Hello, I am fascinated by the title of this forum... Can anyone tell me, if practical, what the formal definition of literate programming is? I assume that l.p. has to do with the writing of source code, and alludes to construction of programs that are humanly readable as logical descriptions of processes. (True?) Does it also encompass such practices as commenting of code? FWIW, I have been witness over the years to what one could only call 'illterate programming'... cryptic variable names, non commented code, inexplicable spaghetti, all ignorantly defended by the idiot-savant programmer/propellor head/whining prima donna-with-an-attitude of the moment as being 'necessary' because 'we need to get this out.' If the above hypothesis of what l.p. is, is correct, then I am (sadly) afraid that 95% of the slop that is written in the commercial world is truly <>... In fact most programmers I have known probably do not read more than the the back of the cereal box in the morning... while admirable, L.P. is swimming against the tide. - Don Wallace ================================================================================ Archive-Date: Fri, 09 Jun 1995 10:12:34 CDT Sender: owner-litprog@SHSU.edu From: utcke@nerys.ti1.tu-harburg.de (Sven Utcke) Reply-To: LitProg@SHSU.edu, utcke@NERYS.TI1.TU-HARBURG.DE Subject: Q: FWEB --- HTML and verbatim Date: 09 Jun 1995 09:13:30 GMT Message-ID: To: LitProg@SHSU.EDU Hello, I wonder if anyone out there could help me with one or both of the two FWEB-problems (I'm using FWEB 1.40 (October 30, 1993)): 1) FWEB and HTML What is the way to go if one needs both an online (html?) as well as a printed version, and if both versions will need to contain images and formulas? LaTeX2html won't do (at least not Version 0.7a4 (Wed Dec 21 1994)). Will I have to get xhdvi? I really would prefer to be able to use netscape (however, if this isn't possible, so be it). Could some kind soul outline the way to go? 2) verbatim Language (@Lv) in FWEB While most of my current work is written in C, some of it needs to be done in a verbatim kind of language where formating is important (and FWEB shouldn't add any additional information, please). However, I can't get this to work at all. In the best cases, formatting just is destroyed (lines can easily exceed 72 characters). In the worst cases, ftangle breaks. Will this change with a newer (1.51?) version? Note, however, that I can't use LaTeX2e for several reasons. Any help would really be appreciated Sven -- e-mail: utcke@tu-harburg.d400.de finger: -l utcke@kirk.ti1.tu-harburg.de WWW : http://www.ti1.tu-harburg.de/~utcke/utcke.html ================================================================================ Archive-Date: Fri, 09 Jun 1995 11:34:09 CDT Sender: owner-litprog@SHSU.edu From: Steve Greenwood Subject: CALLING ALL PROGRAMMERS! Date: 9 Jun 1995 17:00:36 +0100 Message-ID: <360004968wnr@arcadein.demon.co.uk> Reply-To: LitProg@SHSU.edu, Steve@arcadein.demon.co.uk To: LitProg@SHSU.EDU Calling all programmers! We are currently looking to purchase exclusive licenses and/or publishing rights for PC software, both disk and CD based. Email sev@arcadein.demon.co.uk for details. -- ================================================================================ Archive-Date: Fri, 09 Jun 1995 11:50:09 CDT Sender: owner-litprog@SHSU.edu From: Mark Ainsworth Subject: Extracting named modules using FWEB Date: 9 Jun 1995 17:00:50 +0100 Message-ID: <543641442wnr@smtd.demon.co.uk> Reply-To: LitProg@SHSU.edu, ma@smtd.demon.co.uk To: LitProg@SHSU.EDU I have recently move over from noweb to fweb, 'cause I'm simple and like the pretty printing. Now in noweb it allows me to untangle specific named modules. This was handy in that I could have a single file that contained the header, source and makefile for particular programs. Then all I had to do was extract them one at a time to produce the relevant files. This was especially handy for generating separate header files for use in other programs. It meant I only had to type the code once and it would be included where ever it was needed. I would love to have the same facility in Fweb. Does it exist? I am running version 1.30 because I am a dumb DOS user. Also the facility of having other languages would be useful. I also use SML and VHDL. Rgds Mark Ainsworth. -- Sundance Multiprocessor Technology Limited 4 Market Square, Amersham, BUCKS HP7 0DQ Tel +44 1494 431203 Fax +44 1494 726363 Email ma@sundance.com or ma@smtd.demon.co.uk http://www.sundance.com/sundance/ ================================================================================ Archive-Date: Sat, 10 Jun 1995 11:14:07 CDT Sender: owner-litprog@SHSU.edu From: jon@oas.Stanford.EDU (Jon Claerbout) Reply-To: LitProg@SHSU.edu, jon@OAS.STANFORD.EDU Subject: Re: Unusual Paragraph Indent (future of tex and me) Date: 10 Jun 1995 15:59:41 GMT Message-ID: <3rcfhd$6t7@morrow.stanford.edu> To: tex-news@SHSU.EDU >> The suggestion that everyone read the TeXBook from cover to cover... Tex and Web are great for people whose lives have only 1. Math typesetting 2. Programs but some of us have lots more in them 3. Data bases 4. Graphics 5. Calculations leading to multimedia 6. Interactive education programs, etc. 7. Humongous makefiles and software distribution systems Few can handle all these things well. We want the essential features, maybe like the "style sheets" now being developed for HTML. .XP Incidentally, ten years ago I used the original UNIX typsetter, troff with Berkeley -ms macros. The easily remembered macro .XP begins a paragraph eXdented like this one. Tabs were easy to set too. -- o ~ _-'\_ ~ Jon Claerbout: FREE BOOKS http://sepwww.stanford.edu/sep/prof (*)<(*) ~ jon@sep.stanford.edu http://sepwww.stanford.edu/sep/jon ================================================================================ Archive-Date: Sat, 10 Jun 1995 19:02:38 CDT Sender: owner-litprog@SHSU.edu From: thecrow34@aol.com (THECROW34) Subject: Wanted:"C" Date: 10 Jun 1995 19:25:34 -0400 Message-ID: <3rd9le$oms@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, thecrow34@aol.com (THECROW34) To: LitProg@SHSU.EDU Is their anywhere I can download C?? I know someone who did, but he forgot where he got it from. Could someone please help??? ================================================================================ Archive-Date: Mon, 12 Jun 1995 07:45:16 CDT Sender: owner-litprog@SHSU.edu From: Weiqi Gao Reply-To: LitProg@SHSU.edu, weiqigao@CRL.COM Subject: Re: Wanted:"C" Date: 11 Jun 1995 16:51:05 GMT Message-ID: <3rf6tp$6f1@nntp.crl.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: thecrow34@aol.com To: LitProg@SHSU.EDU oak.oakland.edu /pub/msdos/djgpp/*.zip This is the SimTel archive. Djgpp is the "C" compiler that's freely available. There are another free C compiler called EMX, but I forget where it is. -- Weiqi Gao weiqigao@crl.com ================================================================================ Archive-Date: Mon, 12 Jun 1995 07:45:36 CDT Sender: owner-litprog@SHSU.edu From: davis@wln.com (Ryan Davis) Reply-To: LitProg@SHSU.edu, davis@WLN.COM Subject: LPW Language Extensions available Date: Sun, 11 Jun 1995 12:30:01 -0700 Message-ID: To: LitProg@SHSU.EDU I've written a ResEdit TMPL resource to help decode the LANG parameters... Granted it isn't as good as having the ability to modify these resources in the program, but for those of you who use LPW (Literate Programming Workshop) you can download this and add, delete, or modify any of the parameters associated with a language (programming or natural)... If you are interested, email me... -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- \ davis@wln.com \ _O_ / ...will code for food... / \ Smalltalk, C, & C++ \ | / / \ Mac, UNIX, & Windows \ / Finger for Resume / -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ================================================================================ Archive-Date: Mon, 12 Jun 1995 08:00:17 CDT Sender: owner-litprog@SHSU.edu From: schrod@iti.informatik.th-darmstadt.de (Joachim Schrod) Reply-To: LitProg@SHSU.edu, schrod@ITI.INFORMATIK.TH-DARMSTADT.DE Subject: Re: A Common Web Format (was: Re: Why is literate programming nearly unused?) Date: 12 Jun 1995 10:04:51 GMT Message-ID: <3rh3g3$11mc@rs18.hrz.th-darmstadt.de> To: LitProg@SHSU.EDU In article <3r74oj$2oj@lowell.bellcore.com>, norman@flaubert.bellcore.com (Norman Ramsey) writes: > > I have no intention of touching CWEB->noweb. Been there, done that. It's a pity. That's much more needed than noweb->CWEB, IMHO. May you please elaborate about the ``Been there, done that''? What were the hard problems you encountered? (Can you tell that we've got lots of legacy code in CWEB... ;-) Joachim -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Joachim Schrod Email: schrod@iti.informatik.th-darmstadt.de Computer Science Department Technical University of Darmstadt, Germany ================================================================================ Archive-Date: Mon, 12 Jun 1995 09:04:46 CDT Sender: owner-litprog@SHSU.edu From: xsf@aol.com (XSF) Subject: What is literate programming? Date: 12 Jun 1995 09:29:35 -0400 Message-ID: <3rhffv$m5b@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, xsf@aol.com (XSF) To: LitProg@SHSU.EDU I initially thought this was a programming style, and documentation, but all I see is WEB writing stuff. What is literate programming? ================================================================================ Archive-Date: Mon, 12 Jun 1995 20:03:30 CDT Sender: owner-litprog@SHSU.edu Date: Tue, 13 Jun 1995 00:20:44 +0000 (GMT) From: "Stephen Boyan (510) 926-3291/fax 926-3604" Reply-To: LitProg@SHSU.edu, BOYANST@NCAL.KAIPERM.ORG Subject: RE: Mainframe vrs PC To: LitProg@shsu.edu I'd reframe this question a bit. Up until the nineties, one could pretty much regard mainframe as programming for large commercial (COBOL) or scientific (FORTRAN) organizations. This is no longer the case. So now the question might be restated as whether to pursue corporate programming or vendor programming. The distinction is roughly programming for your own company's use in running its business, or writing software to sell to others to use. From my own experience I'd say the issues to look at are: - how valued are programmers compared to others related to the development and maintenance of software; for example, is the only career path through management, or can one advance highly as a technician - is there a group of workers who have special status in the organization; for example, in a medical irganization, maybe only doctors have real clout, or in a research lab, maybe only scientific Ph.D's - is the company outsourcing a lot of its software development or maintenance - what will be the competition from offshore programmers - are large or small organizations better places to work, and what means better? Actually, large organizations can be safer places sometimes, because they have personnel rules that are taken more seriously. This, however, may be changing. There may be no really secure employer anymore. Sorry not to be able to give exact answers. It depends on your own values and security needs. My own observation is that pure programming talent may be more valued in small companies founded by programmers, but there is more instability and less room to maneuver if you don't get along with your project leader. There is no way to avoid the need to manage your manager, regardless of where you work. And this skill is not always highly correlated with programming skill. ================================================================================ Archive-Date: Wed, 14 Jun 1995 07:22:20 CDT Sender: owner-litprog@SHSU.edu From: roegel@loria.fr (Denis B. Roegel) Reply-To: LitProg@SHSU.edu, roegel@LORIA.FR Subject: *** The Stanford GraphBase *** Date: 14 Jun 1995 14:12:34 +0200 Message-ID: <3rmjni$79q@pandore.loria.fr> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit To: tex-news@SHSU.EDU Hi, If you want to have a look at the formatted files comprising The Stanford GraphBase get http://www.loria.fr/tex/sgb.html Regards, Denis ================================================================================ Archive-Date: Wed, 14 Jun 1995 10:24:38 CDT Sender: owner-litprog@SHSU.edu From: sp106@york.ac.uk ("stephen") Reply-To: LitProg@SHSU.edu, sp106@YORK.AC.UK Subject: noweb autodefs.c file? Date: 14 Jun 1995 13:17:01 GMT Message-ID: <3rmngd$nrm@mailer.york.ac.uk> To: LitProg@SHSU.EDU (Number 6 in a series of many ``Dumb newbie tries to find out how to use noweb'' questions.) I would like to get noweb to automagically index my identifiers for nice (not so) simple ansi C. It seems the method is through the use of autodefs.{lang} files but I have failed to find one for C. Could someone point me towards such a thing, or save me the effort of discovering for myself that the search is futile? stephen. ================================================================================ Archive-Date: Wed, 14 Jun 1995 12:06:57 CDT Sender: owner-litprog@SHSU.edu From: bart@stellar.NoSubdomain.NoDomain (Bart Childs) Reply-To: LitProg@SHSU.edu, bart@STELLAR.NOSUBDOMAIN.NODOMAIN Subject: Re: How to start in Literate Programming Date: 14 Jun 1995 16:07:22 GMT Message-ID: <3rn1fq$26t@news.tamu.edu> Keywords: web emacs web-mode To: LitProg@SHSU.EDU In article <3r74en$2ln@lowell.bellcore.com>, norman@flaubert.bellcore.com (Norman Ramsey) writes: |> In article <3q5dmm$dsk@news.tamu.edu>, Bart Childs wrote: |> ... the consensus is that some people flounder if |> just handed FWEB or CWEB. It is worth trying noweb or nuweb, which |> are much simpler. ... |> |> Norman |> I have complete confidence that Norman is right that some flounder. Heck, I am a CS prof and I have seen thousands flounder. It is a fact of life. I am not sure about the second statement and let me first sound like a hypocrite. In a similar vein, my experiences causes me to believe it is better to learn Pascal before C for much the same reason that he espouses. I really think that when one learns LP, they are usually far enough along that learning a full one is worth it and besides, I just do not like monospace fonts, like the one this is in. Cheers, Bart ================================================================================ Archive-Date: Wed, 14 Jun 1995 16:17:53 CDT Sender: owner-litprog@SHSU.edu From: marcel@wam.umd.edu (Leon Marcel Colaco) Reply-To: LitProg@SHSU.edu, marcel@WAM.UMD.EDU Subject: Seminar in software reuse, C++ and object-oriented programming Date: 14 Jun 1995 20:16:18 GMT Message-ID: <3rng2i$bal@cville-srv.wam.umd.edu> To: LitProg@SHSU.EDU You and members of your organization are invited to participate in a live satellite broadcast titled: Increasing Software Reuse by Switching to C++ and Object-Oriented Programming presented by the University of Maryland Instructional Television System on July 13, July 20, and July 27, 1995. For information about this seminar, you can e-mail us at itv@jolt.eng.umd.edu or call us at (301)-405-4905 Enrollment: This 3 day seminar will be broadcast live via satellite on the National Technological University (NTU) Network. (Seminar Code MC95071301). To participate in this seminar your organization must be a member of NTU. A list of NTU sites is included at the end of this post. If you have questions about NTU registration/membership, please call (303) 495-6400. Seminar Description: This seminar helps the student with the shift from C to C++ and from functional programming to object-oriented programming. These topics are examined in the light of the practical need to build abstract data types that have a high degree of reusability. With this approach, C++ becomes not just a "better C," but the basis of a paradigm that allows great productivity gains. The seminar will include practical examples based on classical data structures as well as models of application-specific objects. The seminar will be paced to give students time to work out the problems and send them in to the instructor for comment. Benefits: After completing this seminar, you will: * Understand the differences between C and C++ * Know how data abstractions and recursion are used to enhance reuse * Learn the syntax and semantics of C++ classes and objects * Know how to use inheritance and polymorphism in C++ * Understand how container classes are used to build reusable software for such classical data structures as lists, stacks, queues, trees, sets, dictionaries and files * Learn how to build application-specific objects that are easy to reuse by drawing on data abstractions and inheritance Intended Audience: Engineers, programmers, and software designers who are considering switching from C to C++ to gain productivity through software reuse Prerequisites: Some experience in writing programs is necessary. The ability to understand programming examples written in C is assumed. Dr. C. Wrandle Barth is currently a senior computer scientist at Hughes STX Corporation, and a visiting lecturer at the University of Maryland. He has been very active in testing and troubleshooting the interoperability of VAX, Sun, and PC workstations and servers. Dr. Barth received a B.A. in mathematics from University of South Florida, and a Ph. D. in computer science from the University of Maryland. Enrollment: This 3 day seminar will be broadcast live via satellite on the National Technological University (NTU) Network. (Seminar Code MC95071301). To participate in this seminar your organization must be a member of NTU. A list of NTU sites is included with this post. If you have questions about NTU registration/membership, please call (303) 495-6400. *If you are an employee or member of the following organizations, you are member of the NTU Network and your organization has the capability to receive this broadcast. Contact your training office and ask for the NTU Site Coordinator or call NTU at (303)495-6400. Participating Organizations: Advanced Micro Devices, Inc Aeroquip Corporation Air Products and Chemicals, Inc. ALCOA Alliance for Higher Education Allied Signal Aerospace Company American Association of Retired Persons (AARP) AMP Incorporated Analog Devices, Inc. Applied Research Laboratory Argonne National Laboratory ARINC Armco Steel Co., L.P. Army Research Laboratory AT & T AT & T Global Information Solutions AXIOHM IPB Bellcore BNR Inc. Boeing Defense and Space Group Bull Electronics Burle Industries Inc. Burr-Brown Corporation Colorado Memory Systems Computing Devices International datotek, An AT & T Company David Sarnoff Research Center Deere & Company Detroit Diesel Corporation Digital Communications Associates, Inc. Digital Equipment Corporation Eastman Chemical Company Eastman Kodak Company Eaton Corporation Eaton Cutler-Hammer EG & G Rocky Flats E.I. du Pont de Nemours & Company Electronic Data Systems Corporation E-Systems, Inc. Ericsson GE Mobile Communications Evans & Sutherland Extended Systems, Inc. Exxon Corporation GBCS Education & Training General Electric Company General Instrument Corporation Glenayre Electronics Corporation GM Saginaw Steering Grass Valley Group GTE Corporation Hamilton Standard Harris Corporation Hewlett-Packard Company Honeywell, Inc. HRB Systems Hughes Missile Systems Company IBM Integrated Device Technology, Inc. Intel Corporation Internal Revenue Service IOMEGA Corporation John Deere Dubuque Works K & L Microwave Knolls Atomic Power Laboratory Lake Shore, Inc. Lawrence Berkeley Laboratory Lawrence Livermore National Laboratory LEXIS-NEXIS Lexmark International, Inc. Lockheed Martin Corporation Loral Federal Systems Company Loral Space Information Systems Company Los Alamos National Laboratory Magnavox Electro-Optical Systems Company Magnavox Electronic Systems Company Mason & Hanger McDonnell Douglas Aerospace-East Metrum Information Storage Michigan Information Technology Network, Inc. Micron Technology, Inc. Middle Georgia Technology Development Center Milliken & Company The MITRE Corporation Motorola, Inc. Naval Air Development Center Naval Air Engineering Center Naval Air Systems Command Naval Air Warfare Center Naval Research Laboratory Naval Surface Warfare Center NASA National Semiconductor Corporation Noise Cancellation Technologies Occidental Chemical Corporation Pacific Bell Pacific Tustin Polaroid Corporation Prince Corporation PSE & G Nuclear Training Center Quantum Corporation RDL Inc. Rockwell International Corporation ROLM Company Sandia National Laboratories Santa Barbara Research Center Schuller International, Inc. Siemens Medical Systems, Inc. Symbios Logic, Inc. Tektronics Consolidated Texas Instruments, Inc. 3M Company The Travelers Insurance Company U.S. West Advanced Technologies, Inc. U.S. Air Force U.S. Air Force Academy U.S. Army U.S. Bureau of Mines U.S. Department of Energy U.S. Mine Safety & Health Admistration U.S. Navy US Signal Corporation Westinghouse Electronic Corporation Whirlpool Corporation Xerox Corporation Zenith Data Systems ================================================================================ Archive-Date: Wed, 14 Jun 1995 17:46:21 CDT Sender: owner-litprog@SHSU.edu From: jacob@dannug.dk (Jacob Nielsen) Reply-To: LitProg@SHSU.edu, jacob@DANNUG.DK Subject: Re: noweb autodefs.c file? Date: 14 Jun 1995 20:54:39 GMT Message-ID: To: LitProg@SHSU.EDU >>>>> "Stephen" == "stephen" writes: Stephen> (Number 6 in a series of many ``Dumb newbie tries to find Stephen> out how to use noweb'' questions.) Stephen> I would like to get noweb to automagically index my Stephen> identifiers for nice (not so) simple ansi C. It seems Stephen> the method is through the use of autodefs.{lang} files Stephen> but I have failed to find one for C. Could someone point Stephen> me towards such a thing, or save me the effort of Stephen> discovering for myself that the search is futile? It's included in the distribution (both 2.6c and the new 2.7a) On my machine it's located at .../lib/noweb/autodefs.c Now if I could only remember if it took something special to get the autodefs.c installed... Perhaps a more recent version of noweb than you're using? Regards, Jacob -- Jacob Nielsen jacob@dannug.dk ================================================================================ Archive-Date: Thu, 15 Jun 1995 14:42:48 CDT Sender: owner-litprog@SHSU.edu Date: Thu, 15 Jun 95 14:48:54 EDT From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET To: LitProg@SHSU.edu, jacob@dannug.dk Subject: Re: noweb autodefs.c file? Message-ID: > >>>>> "Stephen" == "stephen" writes: > > Stephen> (Number 6 in a series of many ``Dumb newbie tries to find > Stephen> out how to use noweb'' questions.) > > Stephen> I would like to get noweb to automagically index my > Stephen> identifiers for nice (not so) simple ansi C. It seems > Stephen> the method is through the use of autodefs.{lang} files > Stephen> but I have failed to find one for C. Could someone point > Stephen> me towards such a thing, or save me the effort of > Stephen> discovering for myself that the search is futile? Jacob Nielsen replies: > It's included in the distribution (both 2.6c and the new 2.7a) On my > machine it's located at .../lib/noweb/autodefs.c > > Now if I could only remember if it took something special to get the > autodefs.c installed... Perhaps a more recent version of noweb than > you're using? If you're using my DOS distribution, you'll have to do some futzing around to use autodefs (all of this *should* be explained in the README). The program names are changed, as they don't agree with DOS conventions, and you have to use -filter directly instead of -autodefs, which isn't supported. If you're not using the DOS port, never mind. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Everything was in the lap of the gods, Computer Science Department | and there was no telling what would Kean College of New Jersey | happen when they stood up. Union, NJ 07083 | | -- Richard Armour leew@pilot.njin.net | "It All Started With Europa" (1955) ------------------------------------------------------------------------ ================================================================================ Archive-Date: Fri, 16 Jun 1995 07:56:35 CDT Sender: owner-litprog@SHSU.edu From: creilly@maths.tcd.ie (Colman Reilly) Reply-To: LitProg@SHSU.edu, creilly@MATHS.TCD.IE Subject: Noweb and m4. Any way of getting #lines right? Date: 16 Jun 1995 13:41:56 +0100 Message-ID: <3rru6k$q09@bell.maths.tcd.ie> To: LitProg@SHSU.EDU I'm using m4 with noweb in order to build up the main file to be noweb from subfiles. This is fine, except that the #line directives all end up pointing at the m4'ed file rather tha at the orignal source. Any ideas on how to fix this? (Or have I missed another way around this?) Colman -- Colman Reilly (creilly@maths.tcd.ie) [+353-(0)1-7022280] c/o School of Mathematics,18.05 Westland Row,Trinity College,Dublin. PGP Public Key on Request MIME OK "Nothing so strong as gentleness; nothing so gentle as real strength." ================================================================================ Archive-Date: Fri, 16 Jun 1995 09:08:57 CDT Sender: owner-litprog@SHSU.edu Date: Fri, 16 Jun 95 10:09:04 EDT From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET To: LitProg@SHSU.edu, creilly@maths.tcd.ie Subject: Re: Noweb and m4. Any way of getting #lines right? Message-ID: Colman Reilly writes: > I'm using m4 with noweb in order to build up the main file to be noweb > from subfiles. This is fine, except that the #line directives all end up > pointing at the m4'ed file rather tha at the orignal source. > > Any ideas on how to fix this? (Or have I missed another way around this?) According to the m4 manpage, the -s option will cause m4 to emit #line directives of its own. You may have to play around about with notangle's -L option, depending on where in the pipeline m4 rests, but somewhere therein lies the solution (I think). -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Everything was in the lap of the gods, Computer Science Department | and there was no telling what would Kean College of New Jersey | happen when they stood up. Union, NJ 07083 | | -- Richard Armour leew@pilot.njin.net | "It All Started With Europa" (1955) ------------------------------------------------------------------------ ================================================================================ Archive-Date: Sat, 17 Jun 1995 09:46:40 CDT Sender: owner-litprog@SHSU.edu From: kakima@ix.netcom.com (Kiyoshi Akima) Reply-To: LitProg@SHSU.edu, kakima@IX.NETCOM.COM Subject: [Q] file organization Date: 17 Jun 1995 03:04:18 GMT Message-ID: <3rtgni$803@ixnews6.ix.netcom.com> To: LitProg@SHSU.EDU I'm using C++ and CWEB, but this question should be general enough. In illiterate programming a common organization for a library is a single header file giving the interface to the library and several source files implementing the various functions in that library. One of the reasons for the several source files is that if all of the code was in one file, most conventional linkers will pull in _all_ of it even when you only needed a portion of it. For example an application might only need the output functionality of the library without the input functionality. The library I'm working on is small enough that I would like to document the entire thing in one CWEB file. I know I can use the "@(" control sequence to output to different files, but what should the main file be? I'm thinking of having the unnamed code section go to the header file and using @( to produce the several implementation files. Is this the right way? Does anybody have experience doing this type of thing? Thanks in advance, Kiyoshi Akima kakima@ix.netcom.com ================================================================================ Archive-Date: Sat, 17 Jun 1995 09:46:50 CDT Sender: owner-litprog@SHSU.edu From: kakima@ix.netcom.com (Kiyoshi Akima) Reply-To: LitProg@SHSU.edu, kakima@IX.NETCOM.COM Subject: [Q] breaking up CWEB Date: 17 Jun 1995 03:08:38 GMT Message-ID: <3rtgvm$81r@ixnews6.ix.netcom.com> To: LitProg@SHSU.EDU I'm using CWEB 3.4. The documentation describes a method for breaking up a large file into subfiles. Unfortunately, it doesn't work. The section numbers restart with 1, and the index gets chopped up as well. Has anybody done this? Am I using an obsolete version of CWEB? Thanks in advance, Kiyoshi Akima kakima@ix.netcom.com ================================================================================ Archive-Date: Sat, 17 Jun 1995 12:17:59 CDT Sender: owner-litprog@SHSU.edu From: bobbycha@aol.com (BobbyCha) Subject: Visual Basic MultiMedia Newsletter Date: 17 Jun 1995 12:25:30 -0400 Message-ID: <3ruvlq$647@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, bobbycha@aol.com (BobbyCha) To: LitProg@SHSU.EDU Attention all developers, consumers, and those interested in Visual Basic MultiMedia Development software. The newly released Online Visual Basic MultiMedia NewsLetter is specifically designed for you. It will contain multimedia product information, surveys, and multimedia articles. It will also provide information for ordering multimedia development products and will announce new products. Any subsciber can submit interesting multimedia articles, product announcements, or other relevant Visual-Basic multimedia development information for display in the newsletter. If you want to subscribe or have suggestions, email me at bobbycha@aol.com. Bobby Chandra ================================================================================ Archive-Date: Sat, 17 Jun 1995 15:34:37 CDT Sender: owner-litprog@SHSU.edu From: kdj@mindspring.com (Kristopher Johnson) Reply-To: LitProg@SHSU.edu, kdj@MINDSPRING.COM Subject: [Q] Encapsulation in LP Date: Sat, 17 Jun 1995 02:11:51 -0400 Message-ID: To: LitProg@SHSU.EDU I'm writing a fairly large program in C++, using CWEB for the first time. I find myself doing stuff like this a lot: @ We need a class to represent something. @@ += class Foo { public: @ private: int privateMemberDataValue; }; ... (dozens of pages later, far away from the discussion of class Foo) @ In function f(), we need to access a Foo instance's data. We'll add a new accessor function to the Foo class. @ += int GetDataValue() { return privateMemberDataValue; } In short, instead of declaring a class's data and functions all in one place, I add stuff where I need it. I wonder whether this practice is good or bad. Here are my thoughts: It's bad: the author is obviously making this stuff up as s/he goes along, with no forethought or design. A reader cannot possibly understand the essential nature of a class if it does not have a simple, concise declaration, all in one place, and no one can easily make changes to the classes involved. It's the LP equivalent of spaghetti code. It's good: this is how the process of designing classes really works. A class designer starts with a vague idea of which classes are needed, and then refines the design iteratively. The CWEB file chronicles the iterative process, and can explain why certain features have been added to a class. Thus, although classes are intermingled throughout the document, the associations between them are made clear. The indexing and cross-referencing provided by CWEB make it easy for a reader to find all declarations for a class, if that is desired. It depends: the goal of an author is to make the reader understand, so authors must use their own judgments and refrain from relying on simple rules. I welcome comments. -- Kristopher Johnson kdj@mindspring.com ================================================================================ Archive-Date: Sat, 17 Jun 1995 17:59:00 CDT Sender: owner-litprog@SHSU.edu From: bobbycha@aol.com (BobbyCha) Subject: Multimedia Newsletter Date: 17 Jun 1995 05:06:19 -0400 Message-ID: <3ru5ub$2bu@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, bobbycha@aol.com (BobbyCha) To: LitProg@SHSU.EDU I'm thinking of putting together a newsletter for multimedia programers which would have info on multimedia products, display surveys of multimedia interests, and have other related multimedia articles. Please reply if interested or if you have suggestion. You can reply here or to bobbycha@aol.com. Thank you. Bobby Chandra OmniSoft ================================================================================ Archive-Date: Sat, 17 Jun 1995 23:53:09 CDT Sender: owner-litprog@SHSU.edu From: mohsen@interlog.com Reply-To: LitProg@SHSU.edu, mohsen@INTERLOG.COM Subject: Disable disk/file copying Date: 18 Jun 1995 03:39:01 GMT Message-ID: <3s074l$8q@steel.interlog.com> To: LitProg@SHSU.EDU Anybody know of a little program that would disable copying of a file or entire content of a disk. Can you send me a program or some method of doing so. Thx; mohsen@interlog.com ================================================================================ Archive-Date: Sun, 18 Jun 1995 06:36:02 CDT Sender: owner-litprog@SHSU.edu From: creilly@maths.tcd.ie (Colman Reilly) Reply-To: LitProg@SHSU.edu, creilly@MATHS.TCD.IE Subject: Re: Noweb and m4. Any way of getting #lines right? Date: 18 Jun 1995 12:18:36 +0100 Message-ID: <3s122c$e5v@bell.maths.tcd.ie> To: LitProg@SHSU.EDU creilly@maths.tcd.ie (Colman Reilly) writes: >I'm using m4 with noweb in order to build up the main file to be noweb >from subfiles. This is fine, except that the #line directives all end up >pointing at the m4'ed file rather tha at the orignal source. >Any ideas on how to fix this? (Or have I missed another way around this?) The answer is to use [[m4 -s]] (on GNU m4) and the sharpline filter from the examples directory. This means that you get to do includes more or less like nuweb. Colman, who only found sharpline after writing his own version. Sad really. -- Colman Reilly (creilly@maths.tcd.ie) [+353-(0)1-7022280] c/o School of Mathematics,18.05 Westland Row,Trinity College,Dublin. PGP Public Key on Request MIME OK "Nothing so strong as gentleness; nothing so gentle as real strength." ================================================================================ Archive-Date: Sun, 18 Jun 1995 18:03:07 CDT Sender: owner-litprog@SHSU.edu From: jacob@dannug.dk (Jacob Nielsen) Reply-To: LitProg@SHSU.edu, jacob@DANNUG.DK Subject: Re: [Q] Encapsulation in LP Date: 18 Jun 1995 13:59:34 GMT Message-ID: To: LitProg@SHSU.EDU >>>>> "Kristopher" == Kristopher Johnson writes: Kristopher> [...] In short, instead of declaring a class's data and Kristopher> functions all in one place, I add stuff where I need Kristopher> it. Kristopher> I wonder whether this practice is good or bad. Here Kristopher> are my thoughts: Kristopher> It's bad: the author is obviously making this stuff up Kristopher> as s/he goes along, with no forethought or design. A Kristopher> reader cannot possibly understand the essential nature Kristopher> of a class if it does not have a simple, concise Kristopher> declaration, all in one place, and no one can easily Kristopher> make changes to the classes involved. It's the LP Kristopher> equivalent of spaghetti code. Kristopher> It's good: this is how the process of designing Kristopher> classes really works. A class designer starts with a Kristopher> vague idea of which classes are needed, and then Kristopher> refines the design iteratively. The CWEB file Kristopher> chronicles the iterative process, and can explain why Kristopher> certain features have been added to a class. Thus, Kristopher> although classes are intermingled throughout the Kristopher> document, the associations between them are made Kristopher> clear. The indexing and cross-referencing provided by Kristopher> CWEB make it easy for a reader to find all Kristopher> declarations for a class, if that is desired. Kristopher> It depends: the goal of an author is to make the Kristopher> reader understand, so authors must use their own Kristopher> judgments and refrain from relying on simple rules. Or: The Literate Programming Paradigm is just a tool; don't expect it to do everything. There's no substitute for thinking a little ahead. LP is just so nice, because: 1) You can keep all the documentation (diagrams, analysis, code) in the same place and intermix them as needed. 2) We can present the actual code in pieces. There's nothing wrong with a text only introduction or even actually writing the important methods down from the start, but leave the implementation out of it---this also means *not* listing ``private'' data before they are actually needed. [Yes, I never place code in the C++ class interface; I use 'inline' istead.] Object Oriented Analysis and Design is an iterative process and not introducing the private data before they're actually used, eases the iteration process. It's good if you take the time to explain the overall purpose of the class(es). The description should, IMO, go into a seperate ``chapter''. I've found that keeping the relevant data together with the methods that alter them is *good*; it makes altering so much easier. Regards, Jacob -- Jacob Nielsen jacob@dannug.dk ================================================================================ Archive-Date: Sun, 18 Jun 1995 18:03:09 CDT Sender: owner-litprog@SHSU.edu From: brass@netcom.com (Bill Rassieur) Reply-To: LitProg@SHSU.edu, brass@NETCOM.COM Subject: Re: [Q] Encapsulation in LP Message-ID: Date: Sun, 18 Jun 1995 22:11:37 GMT To: LitProg@SHSU.EDU In article , Kristopher Johnson wrote: (text omitted...) > >In short, instead of declaring a class's data and functions all in one >place, I add stuff where I need it. > >I wonder whether this practice is good or bad. Here are my thoughts: > >It's bad: the author is obviously making this stuff up as s/he goes >along, with no forethought or design. A reader cannot possibly >understand the essential nature of a class if it does not have a >simple, concise declaration, all in one place, and no one can easily >make changes to the classes involved. It's the LP equivalent of >spaghetti code. > >It's good: this is how the process of designing classes really works. >A class designer starts with a vague idea of which classes are needed, >and then refines the design iteratively. The CWEB file chronicles >the iterative process, and can explain why certain features have been >added to a class. Thus, although classes are intermingled throughout >the document, the associations between them are made clear. The >indexing and cross-referencing provided by CWEB make it easy for a >reader to find all declarations for a class, if that is desired. > >It depends: the goal of an author is to make the reader understand, >so authors must use their own judgments and refrain from relying on >simple rules. > >I welcome comments. > IMHO: it is best to treat a class as a type, and a "something" for which we desire a nice, easy to grasp, model for. Therefore, I say that the introducing methods with that kind of commentary you describe is "bad." (well, it's not evil, just hard to read...) I have found that when I write comments like: @ Okay, in this function we need to access a data member, so let's add it above. <>= ...blah blah... that is *does* serve me, the author, but it does not serve the reader. I think that I should delete comments like this on a second pass over the Web. Imagine reading mystery novel where Hercule Poirot (or choose your favorite character) discovers some clue, and then you read, "and it was okay that he found the gun under the bed because earlier, the bad guy secretly put it there, and the bad guy had time to do it because..." So what should the reader be presented? I think that at the class declaration, all of the methods and data members should be described. Hopefully the class makes enough sense as an abstraction that each of the member functions' operations relates in a more or less common sense way to the class. If it is a "spacecraft" class and it has a "fuelReading" function, that's fine, but a "cleanUpFiles" function might not be clear. You the author are free to provide whatever interface that class may require (i.e., you may not have been Godlike in anticipating all members when you first penned the declaration, and you are allowed to make changes before you release the program to the public). The reader gets a polished version and sees the class documentation. In those 12-pages away locations where you reference a member function you are free to write some commentary that connects up the current use of a member with the class. That's the style that I as a reader would prefer (my taste). As an author I *want* the kind of commentary you first mentioned, but I promise (on good days) to polish before others read it. Bill Rassieur brass@netcom.com ================================================================================ Archive-Date: Mon, 19 Jun 1995 15:17:06 CDT Sender: owner-litprog@SHSU.edu From: maavl@cwi.nl (Marc van Leeuwen) Reply-To: LitProg@SHSU.edu, maavl@CWI.NL Subject: Re: [Q] breaking up CWEB Message-ID: Date: Mon, 19 Jun 1995 08:24:56 GMT To: LitProg@SHSU.EDU In article <3rtgvm$81r@ixnews6.ix.netcom.com>, kakima@ix.netcom.com (Kiyoshi Akima) writes: |> I'm using CWEB 3.4. |> |> The documentation describes a method for breaking up a large file into |> subfiles. Unfortunately, it doesn't work. The section numbers restart |> with 1, and the index gets chopped up as well. |> |> Has anybody done this? Am I using an obsolete version of CWEB? I suppose you are referring to note 10 about the cwebmac macros, on page 22 of the cwebman documentation. Note that it says: ``Here's a safe way to break a woven file into three parts:...'' The woven file, that is the *.tex file output by CWEAVE, not the *.w source file! So the trick described here is something you would do either very infrequently, or by an automated file-chopping process, to get your output printed on some deficient installation; you certainly do not want to repeat this by hand every time you run CWEAVE. I think you have tried to use it as a way to break up your source code into parts (only this can explain the symptoms you describe); for this there are however other, simpler, methods (notably @i). In any case, with the size and speed of modern TeX versions, I see no reason why it should be necessary to break up the woven file before applying TeX, and all dvi-printing programs I know of have options to select page ranges, in case your file is too large for the printer to handle all at once. So your version of CWEB is not obsolete, but the part of the documentation you were trying to apply is. Marc van Leeuwen ================================================================================ Archive-Date: Mon, 19 Jun 1995 15:17:22 CDT Sender: owner-litprog@SHSU.edu From: maavl@cwi.nl (Marc van Leeuwen) Reply-To: LitProg@SHSU.edu, maavl@CWI.NL Subject: Re: [Q] Encapsulation in LP Message-ID: Date: Mon, 19 Jun 1995 08:41:20 GMT To: LitProg@SHSU.EDU In article , kdj@mindspring.com (Kristopher Johnson) writes: |> I'm writing a fairly large program in C++, using CWEB for the first time. |> I find myself doing stuff like this a lot: |> [...] |> In short, instead of declaring a class's data and functions all in one |> place, I add stuff where I need it. |> |> I wonder whether this practice is good or bad. To me, the only criterion for deciding to order to present a literate program is what is the best way to explain the program to someone not familiar with it (like the next person to maintain the program, or the friends you give the program to, or yourself in a year's time). This may take a significant amount of planning, or rearranging the code if you are not satisfied with your original setup (which is fortunately relatively easy using LP), but it is certainly worth the effort for any serious program. This criterion could favour either a localised or a distributed presentation, depending of the specifics of the program at hand. Marc van Leeuwen ================================================================================ Archive-Date: Mon, 19 Jun 1995 17:30:18 CDT Sender: owner-litprog@SHSU.edu From: rsmith2@ho04.eng.ua.edu (Randy K. Smith) Reply-To: LitProg@SHSU.edu, rsmith2@HO04.ENG.UA.EDU Subject: Journal Request Message-ID: <1995Jun19.191702.194787@ua1ix.ua.edu> Date: Mon, 19 Jun 1995 19:17:02 GMT To: LitProg@SHSU.EDU Basile STARYNKEVITCH referenced an article by Norman Ramsey titled "Literate Programming should be a model for Software Engineering and Programming Languages" dated March 1995. Can someone provide a pointer to the journal for this article?? Thanks Randy Smith ================================================================================ Archive-Date: Mon, 19 Jun 1995 17:30:19 CDT Sender: owner-litprog@SHSU.edu From: bay@daacdev1.stx.com (John Bay) Subject: Dumb CWEB Question Date: 19 Jun 1995 22:10:37 GMT Message-ID: <3s4skt$j2r@post.gsfc.nasa.gov> Reply-To: LitProg@SHSU.edu, bay@daacdev1.stx.com To: LitProg@SHSU.EDU Why doesn't CWEB have true comments? The manual (for version 3.0) says of "@q" that "The control text that follows will be totally ignored--it's a comment for readers of the CWEB file only." But that's not precisely true because the context of the "@q" control text is restricted, so the text can't contain other control sequences, for instance. The motivation for this is that I would like to use Sccs revision control with CWEB source files. But Sccs introduces control sequences of its own - things like "@(#)" that cause CWEB to complain. -- John Bay bay@daacdev1.stx.com ================================================================================ Archive-Date: Mon, 19 Jun 1995 17:30:19 CDT Sender: owner-litprog@SHSU.edu From: bart@stellar.NoSubdomain.NoDomain (Bart Childs) Reply-To: LitProg@SHSU.edu, bart@STELLAR.NOSUBDOMAIN.NODOMAIN Subject: Re: [Q] Encapsulation in LP Date: 19 Jun 1995 20:54:38 GMT Message-ID: <3s4o6e$lk7@news.tamu.edu> Keywords: locality, maintenance To: LitProg@SHSU.EDU This makes at least the fourth response to this question. I agree with the earlier answers and each of us have addressed a slightly different part of the answer. As in the original post, it depends upon the view as to which way it is best? The view of the maintenance programmer or the author? I wish to add that if it is written for the author, then the author should seriously consider the maintenance programmer as well. That does not necessarily mean that it should be reorganized as soon as it is working. (I assume that) CWEB does the same as the original. That is, the section numbers for a class are differentiated. The number for a definition of a class gets underlined. I think the Knuthian index is one of the best things about literate programming. Further, for a Knuthian or Knuth-like index, the author would add a number of user-supplied index entries. In a number of cases, it is advantageous to reference section numbers of the class definition. I suppose that some systems may not allow forward reference, but backward reference should always be done. The need for smaller scope of appearance of variables, classes, ... can be reduced by good indexes, but not totally eliminated. Often people dismiss literate programming without making total use of the facilities and I think this is a good example of how the whole should be used. Cheers, Bart Childs ================================================================================ Archive-Date: Mon, 19 Jun 1995 23:48:42 CDT Sender: owner-litprog@SHSU.edu From: asabove@aol.com (As Above) Subject: HELP learning Visual Basic Date: 20 Jun 1995 00:41:48 -0400 Message-ID: <3s5jic$ngn@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, asabove@aol.com (As Above) To: LitProg@SHSU.EDU Urgent. I need guidance in learning Visual Basic Version 1.0 for MS DOS professional edition. Microsoft could not help. Universities in town cannot help. Computer schools in town charge too much. I have no prior programming experience but have an urgent project requiring knowledge of Visual Basi for DOS. Can anyone suggest a good teacher, book, or video to learn? Please e-mail me. Thank you. ================================================================================ Archive-Date: Tue, 20 Jun 1995 05:20:49 CDT Sender: owner-litprog@SHSU.edu From: maavl@cwi.nl (Marc van Leeuwen) Reply-To: LitProg@SHSU.edu, maavl@CWI.NL Subject: Re: Dumb CWEB Question Message-ID: Date: Tue, 20 Jun 1995 09:59:55 GMT To: LitProg@SHSU.EDU In article <3s4skt$j2r@post.gsfc.nasa.gov>, bay@daacdev1.stx.com (John Bay) writes: |> Why doesn't CWEB have true comments? |> |> The manual (for version 3.0) says of "@q" that "The control text that follows |> will be totally ignored--it's a comment for readers of the CWEB file only." |> |> But that's not precisely true because the context of the "@q" control text is |> restricted, so the text can't contain other control sequences, for instance. |> |> The motivation for this is that I would like to use Sccs revision control |> with CWEB source files. But Sccs introduces control sequences of its own - |> things like "@(#)" that cause CWEB to complain. While it is true that the control text following `@q' is totally ignored, it is not true that it can consist of an arbitrary sequence of characters (the control text has the same specification as control texts used for other purposes). Note that the same is true for any comment in any language, since there must always be a way to terminate a comment. On the other hand you are right that "@q" is more restrictive than comments usually are: any undoubled `@' sign either signals the end of the control text or an error. Guessing reasons why this was done, the following come to mind: (1) it is simpler to use the same lexical rules for similar constructs (control texts); (2) having only `@>' recognised after `@q' might lead to a quiet loss of control codes if `@>' is forgotten or mistyped (this is not so likely because contol texts are limited to a single line anyway). The code `@q' is a fairly recent addition to CWEB; the traditional way to keep something out of print is to use TeX comments (after `%'). However, like in contol texts, `@' must be doubled if it is used in a TeX comment, so this does not solve you problem either. I believe that `@q' was only added because you cannot use TeX comments in C mode; for instance in @ Some commentary. @< A module @>= { some_code; } @i auxiliary.file @ A later section. the beginning of `auxiliary.file' belongs to the C-code portion of the previous section, and therefore one cannot use `%' there. (This convinces me once more that it would be a good thing to have and ``end of section'' code that does not immediately start a new section; why is this idea not used in any LP system?). As for `Sccs', you can only make this work if Sccs would accept `@@(#)' in place of `@(#)'. However, I feel that this whole problem is due more to Sccs than to CWEB: apparently it assumes that any language has sufficiantly flexible commenting conventions to encapsulate Sccs's junk strings without causing any harm. There are more tools that make such assumptions, but there really is no justification for them, and CWEB will certainly not be the only language causing problems. The proper solution to the problem is that if tools like Sccs insist on placing certain strings in source files, then they should also provide tools to strip these strings before actual processing of those files. Marc van Leeuwen ================================================================================ Archive-Date: Tue, 20 Jun 1995 07:48:01 CDT Sender: owner-litprog@SHSU.edu From: thompson@sun1.coe.ttu.edu Subject: comp.programming.literate FAQ Date: 20 Jun 1995 12:41:15 GMT Message-ID: Reply-To: LitProg@SHSU.edu, thompson@sun1.coe.ttu.edu To: LitProg@SHSU.EDU Archive-name: literate-programming-faq Last-modified: 1995/06/09 Version: 1.1.15 Welcome to the Literate Programming Frequently Asked Questions List ------------------------------------------------------------------- This version was created Friday, 9 June 1995, and should considered stale after 90 days. Information contained in this document is the best available at preparation. The original file was dated October 15, 1993 (just for historical purposes). Disclaimer: "This FAQ is presented with no warranties or guarantees of ANY KIND including correctness or fitness for any particular purpose. The author of this document has attempted to verify correctness of the data contained herein; however, slip-ups can and do happen. If you use this data, you do so at your own risk." Copyright 1993, 1994, 1995 by David B. Thompson. All rights reserved worldwide. Permission is granted to copy this document for free distribution so long as it remains intact and unmodified. For other arrangements, contact the author/maintainer via email: thompson@sun1.coe.ttu.edu. What's New? ----------- + Updated ddw's email address (for nuweb.el). + Updated noweb entry (thanks Norman! ;-). = ====================================================================== * Introduction or "What's this all about?" ------------------------------------------ This document is for new and experienced users of literate programming tools. The purpose is to explain the concept of literate programming and to provide a resource for locating files of interest to literate programmers and those interested in literate programming. The Literate Programming (LitProg) Frequently Asked Questions (FAQ) list is maintained by Dave Thompson, who can be reached at: thompson@sun1.coe.ttu.edu * Preferred mailing address for FAQ related comments/questions. wqdbt@ttacs1.ttu.edu * Forwarded to my pc. Comment and constructive criticism is welcome. Direct flames to /dev/null (or > nul if you're a msdos user! ;-) If you find an error, please report it. I'm particularly interested in establishing the locations of generally available literate programming tools. If you are the author of such a tool and wish to have it included in this list, please send email. Please note this is a work-in-progress. It is *not* complete, and probably will not be complete for some months. Nevertheless, the information contained herein may be useful to some. Use it as it is intended. - ---------------------------------------------------------------------- - Typography ------------ Major sections of the FAQ are divided by double lines (====). Minor sections and other divisions are separated by single lines (----). Major topics use a "* " as a leader. Minor topics use a "- " as a leader. This should simplify searching for topics. = ====================================================================== Table of Contents: ------------------ * Introduction, or "What's this all about?" - Typography * How do I get the FAQ? - Literate Programming FAQ - FWEB FAQ * Is there a newsgroup? (The comp.programming.literate newsgroup) * What internet nodes are of interest to literate programmers? * What is literate programming? * How do I begin literate programming? * What literate programming tools are available and where are they? - APLWEB - AWEB - CLiP - CWEB - FunnelWeb - FWEB - IMPACT - lit2x - Literate Programmer's Workshop (LPW) - MapleWEB - MWEB (Schrod/Detig) - MWEB (Sewell) - noweb - nuweb - ProTeX - RWEB - SchemeWEB - Spidery WEB - WEB - WinWordWEB * Are there other tools I should know about? - C2LaTeX - c2cweb - c2man - cnoweb - Fold2web - FunnelWeb mode - noweb.el - nuweb.el - TIE - Web mode * What other resources are available? - World Wide Web - TeX Resources - Virtual Coursework * Are there any code examples? - Examples included with developer's tools - Cameron Smith's KR-CWEB - Stanford GraphBase * Bibliographies. * How to anonymously ftp. * Acknowledgements. * End notes. = ====================================================================== * How do I get the FAQ? ----------------------- - Literate Programming FAQ -------------------------- You have many ways to get a current copy of this FAQ. One is to use anonymous ftp (if you don't know how, see a later section in this FAQ) to connect to one of the Comprehensive TeX Arvchive Network (CTAN) sites or the Literate Programming Archive and retrieve a copy of the file. Open an ftp connection to one of the CTAN sites and retrieve the file: help/LitProg-FAQ (For more information on CTAN and the literate programming archive, see the section below entitled "Internet Nodes of Interest to Literate Programmers.") An alternative is to use the fileserver at Sam Houston State University (SHSU). Send a message to FILESERV@SHSU.EDU and include in your message: SENDME LITPROG.FAQ The file server will forward a copy of the file to you via email. - ---------------------------------------------------------------------- - FWEB FAQ ---------- David Coker now maintains the FWEB FAQ. (We all owe Marcus Speh a big THANK YOU for maintaining the FWEB FAQ for so long!) The current version number is 1.30a. It can be retrieved in the same way as this FAQ; either by anonymous ftp or through the SHSU file server. On the SHSU server, the file name is FAQ.FWEB. Invoke your ftp software, open a connection to NIORD.SHSU.EDU [192.92.115.8], attach to the directory FAQ, and transfer the file FAQ.FWEB. Alternatively, send a message to the file server, FILESERV@SHSU.EDU, and include the following text in a one line message: SENDME FAQ.FWEB The file server will send the current version of the file via email. The FWEB FAQ exists in various formats, including HyperText (see other resources below). In Europe, the complete distribution can also be obtained from ftp.desy.de [131.169.10.115] in directory /pub/faq/web/fweb/. It is also available from the literate programming archive (LPA) in the directory LPA/Documentation/faq/fweb (see the references to LPA below for more information). = ====================================================================== * Is there a newsgroup? ----------------------- One of the most important resources is the literate programming newsgroup, comp.programming.literate. You can read this newsgroup using your standard reader. Altenatively, the newsgroup is gated to a mailing list hosted by George Greenwade and Sam Houston State University. You can subscribe by sending mail to the list-server, LISTSERV@SHSU.EDU, and include in the message one line of text: SUBSCRIBE LITPROG "your name in quotes" The list is unmoderated; messages sent to litprog@shsu.edu are automatically distributed to all subscribers and cross-posted to comp.programming.literate. Archives of the mailing list and newsgroup are maintained on niord.shsu.edu [192.92.115.8] in the directory litprog. = ====================================================================== * What internet nodes are of interest to literate programmers? -------------------------------------------------------------- The principal nodes of interest to literate programmers are the Literate Programming Archive (LPA hereafter) and the CTAN (Comprehensive TeX Archive Network). The Literate Programming Archive (LPA) is: Node: ftp.th-darmstadt.de [130.83.55.75] Directory: programming/literate-programming Notes: Fastest response during off-U.S. [yep] business hours. Participating hosts in the Comprehensive TeX Archive Network are: ftp.dante.de (Deutschland) -- anonymous ftp /tex-archive (/pub/tex /pub/archive) -- gopher on node sun.dante.de -- e-mail via ftpmail@dante.de -- Administrator: ftp.shsu.edu (Texas, USA) -- anonymous ftp and gopher /tex-archive (/pub/tex /pub/archive) -- NFS mountable from ftp.SHSU.edu:/pub/ftp/tex-archive -- e-mail via ftpmail@ftp.SHSU.edu -- World Wide Web access on www.SHSU.edu -- Administrator: ftp.tex.ac.uk (England) -- anonymous ftp /tex-archive (/pub/tex /pub/archive) -- gopher on node gopher.tex.ac.uk -- NFS mountable from nfs.tex.ac.uk:/public/ctan/tex-archive -- World Wide Web access on www.tex.ac.uk -- Administrator: A list of CTAN archive sites and their mirrors can be found on: ftp.dante.de: /tex-archive/CTAN.sites I presume that the other CTAN sites mirror this file, but have not checked. As of my last check (September 1994), it contains: "In order to reduce network load, it is recommended that you use the Comprehensive TeX Archive Network (CTAN) host which is located in the closest network proximity to your site." Known partial mirrors of the CTAN reside on (alphabetically): dongpo.math.ncu.edu.tw (Taiwan) /tex-archive ftp.adfa.oz.au (Australia) /pub/tex/ctan ftp.muni.cz (The Czech Republic) /pub/tex/CTAN ftp.cs.ruu.nl (The Netherlands) /pub/tex-archive ftp.uu.net (Virginia, USA) /pub/text-processing/TeX nic.switch.ch (Switzerland) /mirror/tex Known mirrors of the CTAN reside on (alphabetically): ftp.center.osaka-u.ac.jp (Japan) /CTAN ftp.ccu.edu.tw (Taiwan) /pub/tex ftp.cs.rmit.edu.au (Australia) /tex-archive ftp.duke.edu (North Carolina, USA) /tex-archive ftp.germany.eu.net (Deutschland) /pub/packages/TeX ftp.gwdg.de (Deutschland) /pub/dante ftp.jussieu.fr (France) /pub4/TeX/CTAN ftp.loria.fr (France) /pub/unix/tex/ctan ftp.mpi-sb.mpg.de (Deutschland) /pub4/tex/mirror/ftp.dante.de ftp.uni-bielefeld.de (Deutschland) /pub/tex ftp.uni-stuttgart.de (Deutschland) /tex-archive (/pub/tex) ftpserver.nus.sg (Singapore) /pub/zi/TeX src.doc.ic.ac.uk (England) /packages/tex/uk-tex sunsite.unc.edu (North Carolina, USA) /pub/packages/TeX wuarchive.wustl.edu (Missouri, USA) /packages/TeX Other nodes and directories of interest include: Node: niord.shsu.edu [192.92.115.8] Directory: various (do some snooping!) Notes: Has a gopher server. Node: ftp.desy.de [131.169.10.115] Directory: pub/web. Various documents, samples, and the FWEB FAQ. Notes: Has a www server, http://info.desy.de:80/ = ====================================================================== * What is Literate Programming? ------------------------------- Literate programming is the combination of documentation and source together in a fashion suited for reading by human beings. In fact, literate programs should be enjoyable reading, even inviting! (Sorry Bob, I couldn't resist!) In general, literate programs combine source and documentation in a single file. Literate programming tools then parse the file to produce either readable documentation or compilable source. The WEB style of literate programming was created by D.E. Knuth during the development of his TeX typsetting software. All the original work revolves around a particular literate programming tool called WEB. Knuth says: The philosophy behind WEB is that an experienced system programmer, who wants to provide the best possible documentation of his or her software products, needs two things simultaneously: a language like TeX for formatting, and a language like C for programming. Neither type of language can provide the best documentation by itself; but when both are appropriately combined, we obtain a system that is much more useful than either language separately. The structure of a software program may be thought of as a web that is made up of many interconnected pieces. To document such a program we want to explain each individual part of the web and how it relates to its neighbours. The typographic tools provided by TeX give us an opportunity to explain the local structure of each part by making that structure visible, and the programming tools provided by languages such as C or Fortran make it possible for us to specify the algorithms formally and unambigously. By combining the two, we can develop a style of programming that maximizes our ability to perceive the structure of a complex piece of software, and at the same time the documented programs can be mechanically translated into a working software system that matches the documentation. Another author (Eric W. van Ammers) wrote me a short article treating his opinions on literate programming. The text follows: First observation on LP About 90% of the disussion on this list is about problems with applying some WEB-family member to a particular programming language or a special documentation situation. This is ridiculous, I think. Let me explain shortly why... Lemma 1: I have proposed for many years that programming has nothing to do with programming langauges, i.e. a good programmer makes good programs in any language (given some time to learn the syntax) and a bad programmer will never make a good program, no matter the language he uses (today many people share this view, fortunately). Lemma 2: Literate Programming has (in a certain way not yet completely understood) to do with essential aspects of programming. Conclusion 1: A LP-tool should be independent of programming language. Lemma 3: It seems likely that the so called BOOK FORMAT PARADIGM [ref. 1] plays an important role in making literate programs work. Lemma 4: There are very many documentation systems currently being used to produce documents in the BOOK FORMAT. Conclusion 2: A LP-tool should be independent of the documentation system that the program author whishes to use. My remark some time ago that we should discuss the generic properties of an LP-tool was based on the above observation. References: [1] Paul W. Oman and Curtus Cook. Typographical style is more than cosmetic. CACM 33, 5, 506-520 (May 1990) Second observation on LP The idea of a literate program as a text book should be extendend even further. I would like to see a literate program as an (in)formal argument of the correctness of the program. Thus a literate program should be like a textbook on mathematicics. A mathematical textbook explains a theory in terms of lemma and theorems. But the proofs are never formal in the sense that they are obtaind by symbol manipulation of a proof checker. Rather the proofs are by so called "informal rigour", i.e. by very precise and unambiguous sentences in a natural language. Eric W. van Ammers Department of Computer Science Wageningen Agricultural University Dreijenplein 2 E-mail: ammers@rcl.wau.nl 6703 HB Wageningen voice: +31 (0)8370 83356/84154 The Netherlands fax: +31 (0)8370 84731 Another author (Norman Ramsey) wrote me and asked that his opinions be included in the FAQ. What follows are Norman's comments verbatim. I see it's time for the ``how is literate programming different from verbose commenting'' question. Perhaps David Thompson will get this into the FAQ. Alert! What follows are my opinions. In no way do I claim to speak for the (fractious) literate-programming community. How is literate programming different from verbose commenting? There are three distinguishing characteristics. In order of importance, they are: - flexible order of elaboration - automatic support for browsing - typeset documentation, especially diagrams and mathematics Flexible order of elaboration means being able to divide your source program into chunks and write the chunks in any order, independent of the order required by the compiler. In principle, you can choose the order best suited to explaining what you are doing. More subtly, this discipline encourages the author of a literate program to take the time to consider each fragment of the program in its proper sphere, e.g., not to rush past the error checking to get to the ``good parts.'' In its time and season, each part of the program is a good part. (This is the party line; your mileage may vary.) I find the reordering most useful for encapsulating tasks like input validation, error checking, and printing output fit for humans --- all tasks that tend to obscure ``real work'' when left inline. Reordering is less important when using languages like Modula-3, which has exceptions and permits declarations in any order, than when using languages like C, which has no exceptions and requires declaration before use. Automatic support for browsing means getting a table of contents, index, and cross-reference of your program. Cross-reference might be printed, so that you could consult an index to look up the definition of an identifier `foo'. With good tools, you might get a printed mini-index on every page if you wanted. Or if you can use a hypertext technology, cross-reference might be as simple as clicking on an identifier to reach its definition. Indexing is typically done automatically or `semi-automatically', the latter meaning that identifier definitions are marked by hand. Diligently done semi-automatic indexes seem to be best, because the author can mark only the identifiers he or she considers important, but automatic indexing can be almost as good and requires no work. Some tools allow a mix of the two strategies. Some people have applied literate-programming tools to large batches of legacy code just to get the table of contents, index, and cross-reference. I don't use diagrams and mathematics very often, but I wouldn't want to have to live without them. I have worked on one or two projects where the ability to use mathematical formulae to document the program was indispensible. I also wouldn't like to explain some of my concurrent programs without diagrams. Actually I write almost all of my literate programs using only sections headers, lists, and the occasional table. >Wouldn't it be easier to do one's literate programming using a wysiwyg >word processor (e.g. Word for Windows) and indicate what is source >code by putting it in a different font? The data formats used in wysiwyg products are proprietary, and they tend to be documented badly if at all. They are subject to change at the whim of the manufacturer. (I'll go out on a limb and say there are no significant wysiwyg tools in the public domain. I hope the Andrew people will forgive me.) These conditions make it nearly impossible to write tools, especially tools that provide automatic indexing and cross-reference support. The CLiP people have a partial solution that works for tools that can export text --- they plant tags and delimiters throughout the document that enable the reordering transformation (``tangling''). People use TeX, roff, and HTML because free implementations of these tools are widely available on a variety of platforms. TeX and HTML are well documented, and TeX and roff are stable. TeX is the most portable. I think I have just answered the FAQ ``how come all these tools use TeX, anyway?'' :-) Norman Ramsey = ====================================================================== * How do I begin literate programming? -------------------------------------- A recommended book is D.E. Knuth's collection of articles (1992) "Literate Programming," Center for the Study of Language and Information, Stanford University, ISBN 0-937073-80-6 (pbk). This book gives insight into Knuth's thoughts as he developed the web system of literate programming (and TeX for typesetting). It does not document methods for literate programming. A recommended book is Wayne Sewell's (1989) "Weaving a Program: Literate Programming in WEB," Van Nostrand Reinhold, ISBN 0-442-31946-0 (pbk). This book focuses on using Knuth's web system. Some talk exists in the newsgroup/mailing list for a Usenet University course in literate programming. I'm sure discussion of this topic will be welcomed. If you are interested, please participate. = ====================================================================== * What literate programming tools are available and where are they? ------------------------------------------------------------------- A significant number of tools for literate programming are available. Most have been ported from their original systems, so support multiple computer platforms. If you are the developer of such a tool, and would like to make the software freely available, please send me email and I'll reply with a form (like those below) for you to fill in. (Or short-circuit the process and kludge a form from below. :-) - ---------------------------------------------------------------------- - APLWEB -------- Developer: Christoph von Basum Version: Unknown Hardware: MSDOS Languages: IBM APL2 and STSC APL Formatter: Plain TeX Availability: Anonymous ftp from: LPA:/apl watserv1.uwaterloo.ca:/languages/apl/aplweb Readme: Unknown Description: None available. Support: Unknown Note: The status of this particular package is unknown. - ---------------------------------------------------------------------- - AWEB ------ Developer: Unknown Version: Unknown Hardware: Unknown Languages: Ada Formatter: Unknown Availability: Anonymous ftp from: LPA:/ada/web Readme: Unknown Description: None available Support: Not supported. - ---------------------------------------------------------------------- - CLiP ------ Developer: E.W. van Ammers and M.R. Kramer Version: Unknown Hardware: Vax/VMS, Unix, and MS-DOS Languages: Any programming language. Formatter: Any formatter (TeX, LaTeX, Troff, Runoff, etc) or any wordprocessor including WYSIWYG systems (Word Perfect, Win Word, Ami Pro, Word, etc.) Availability: Anonymous ftp from: sun01.info.wau.nl:/CLIP/ms_dos MS-DOS version sun01.info.wau.nl:/CLIP/vax_vms VAX/VMS version CTAN:/web/clip LPA:/machines/ms-dos LPA:/machines/vax Readme: With bundle above Description: CLiP does not use explicite commands to perform the extraction process. Rather it recognizes pseudostatemens written as comments in the programming language in question. CLiP distinguishes pseudostatments from ordinary comments because the former comply with a a particular style. This style can be adjusted to suit virtually any programming language. The CLiP approach to LP makes the system extremely versatile. It is independent of programming language and text processing environment. We designed CLiP to be compatible with hypertext systems as well but we have not yet experimented with this form of documentation. Features: + CLiP imposes virtually no limitations on the text-processing system used to produce the documentation. If the text-processor supports these items you can + structure the documentation according to your own taste. + include drawings, pictures, tables etc. + disclose your documentatio my means of X-ref tables, Indexes, Table of contents, Table of tables, Table of figures, etc. + typeset the documented code. + Extracts any number of modules from a maximum of 64 source files. + No pretty-printing. Code from the source files is copied "as is" to the module. + Appearance of code segments in the documentation matches those of the modules to ease the identification of code segements. + Supports partially specified data types. + Comprehensive user manual (preliminary version) and technical description. - No automatic generation of a X-ref table for program identifiers. Support: Bugs, problems and assistance by e-mail: ammers@rcl.wau.nl - ---------------------------------------------------------------------- - CWEB ------ Developer: Silvio Levy and D.E. Knuth Version: 3.0 Hardware: Unix systems (dos and amiga ports available) Languages: C and C++ Formatter: Plain TeX and LaTeX. Availability: Anonymous ftp from: labrea.stanford.edu:/pub/cweb LPA:/c.c++ CTAN:/web/c_cpp/cweb DOS version in CTAN:/web/c_cpp/cwb30p8c DOS version in LPA:/machines/ms-dos Amiga version CTAN:/web/c_cpp/AmigaCWEB Mac port of CTANGLE in LPA:/machines/mac LaTeX support in LPA:/c.c++ Readme: Bundled with above Description: No description provided. Support: Bugs to levy@math.berkeley.edu Note: A fork of CWEB 3.x was developed by Marc van Leeuwen which implements several changes to CWEB. It is available for anonymous ftp from ftp.cwi.nl:pub/cweb. The principle changes are: - Scans include files for typedef definitions - Grammar and formatting rules are well separated, allowing for run-time selection of a rule set (via command line option) - New manual. - ---------------------------------------------------------------------- - FunnelWeb ----------- Developer: Ross N. Williams: ross@guest.adelaide.edu.au Version: Unknown Hardware: MSDOS, Mac, VMS, Sun. Other ports reported. Languages: No restrictions. Formatter: Plain TeX for printing. Otherwise, no restrictions. Availability: Anonymous ftp from: CTAN:/web/funnelweb LPA:/independent ftp.adelaide.edu.au:/pub/funnelweb Readme: With bundle above. Description: FunnelWeb is a production-quality literate-programming tool that emphasises simplicity and reliability. Everything about FunnelWeb, from the simplicity of its language to the comprehensive tutorial in the user's manual, has been designed to make this as simple, as practical, and as usable a tool as possible. Features: + Provides a simple macro preprocessor facility. + Can produce typeset documentation. + Runs on Sun, VMS VAX, Macintosh, PC, and others. + Portable C source code distributed under GNU licence. + Comprehensive user's manual including tutorial. + Programming-language independent. + Can generate multiple output files. + Allows complete control over the output text. + Regression test suite with over 200 tests. + Fully worked example (in /pub/funnelweb/examples). - Requires TeX to produce typeset documentation. - Typesets program code using TT font only. Support: No formal support available. Mailing list maintained with about 50 subscribers. Informal assistance available from mailing list. - ---------------------------------------------------------------------- - FWEB ------ Developer: John A. Krommes Version: 1.30a (1.40 for the experienced, patient, and brave) Hardware: Unix, VMS, and DOS platforms (anything with ANSI C) Languages: C, C++, Fortran-77, Fortran-90, Ratfor, TeX; also, a language-independent mode. Formatter: Plain TeX and LaTeX. Availability: Anonymous ftp from: ftp.pppl.gov:/pub/fweb CTAN:/web/fweb LPA:/fweb DOS version in LPA:/machines/ms-dos Readme: In bundle with above. Description: It also has a well-developed user's manual and its own FAQ (see above). Beginning with 1.40, documentation is maintained in gnu texinfo format. It runs on most platforms: VMS, PC, UNIX, and pretty much anything that the GNU C compiler (GCC) is supported for. Features: + Processes multiple languages during a single run (so one can mix C and Fortran, for example). + Language-independent mode (v1.40). + Ability to turn off pretty-printing (v1.40). + Built-in Ratfor translator. + Built-in macro preprocessor (closely follows ANSI C, with extensions). + A style file that allows the user to adjust many parameters and behavior patterns of FWEB. + Various operator-overloading features that provide additional pretty-printing capabilities to languages such as C++ and Fortran-90. + Numerous miscellaneous features and command-line options. Support: Bug reports and suggestions to krommes@princeton.edu - ---------------------------------------------------------------------- - IMPACT -------- Developer: Timothy Larkin, from Levy/Knuth CWEB 3.1 Version: 1.0 Hardware: Macintosh; requires AppleEvents. Languages: C, C++ Formatter: TeX Availability: CTAN archives Readme: A short readme file is included in the SEA archive. Description: IMPACT implements CTangle from the Levy/Knuth CWEB 3.1. It operates as a foreground program, tangling files selected from the Mac File Picker. Or it can operate in the background, tangling files in response to odoc events sent by other applications, such as editors. Support: I welcome any reports of bugs. The product will be updated as new versions of the CWEB appear. Other features may be added as users suggest them. - ---------------------------------------------------------------------- - lit2x ------- Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/independent Readme: Unknown Description: None available Support: Unknown - ---------------------------------------------------------------------- - Literate Programmer's Workshop (LPW) -------------------------------------- Developer: Norbert Lindenberg Version: 1.1 Hardware: Apple Macintosh Languages: C++, Object Pascal & others Formatter: self-contained WYSIWYG system Availability: Anonymous ftp from: LPA:/machines/mac CTAN:/web/lpw ftp.apple.com:/pub/literate.prog Readme: With bundle above. Also comes with 38-page manual. Description: The Literate Programming Workshop is an environment for the integrated development of program source text and documentation in combined documents. It consists of a WYSIWYG word processor based on a style sheet approach, a mechanism to extract parts of the text in a document, and a project management system that handles multi-document projects. The system is designed to be used in conjunction with the Macintosh Programmer's Workshop: it prepares raw source text for the MPW compilers, accepts MPW error messages, and shows them in the context of the original documents. Automatic indexing and hypertext features allow for easy access to both source text and documentation. LPW is shareware. Support: Bugs, problems, and questions to lpw@aol.com. - ---------------------------------------------------------------------- - MapleWEB ---------- Developer: Unknown Version: Unknown Hardware: Unknown Languages: Maple Formatter: Unknown Availability: Anonymous ftp from: LPA:/maple Readme: Unknown Description: None Support: Unknown - ---------------------------------------------------------------------- - MWEB (Schrod/Detig) --------------------- Developer: Joachim Schrod Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. - ---------------------------------------------------------------------- - MWEB (Sewell) --------------- Developer: Sewell Version: Unknown Hardware: Unknown Languages: Modula-2 Formatter: Unknown Availability: Anonymous ftp from: LPA:/modula-2 Readme: Unknown Description: None Support: Not supported. - ---------------------------------------------------------------------- - noweb ------- Developer: Norman Ramsey Version: 2.7a Hardware: Unix and DOS platforms. Languages: All programming languages. Automatic indexing for C, Icon, Standard ML, TeX, Yacc Formatter: Plain TeX, LaTeX, and HTML (Mosaic/Netscape) formatters. Availability: Anonymous ftp from: CTAN:/web/noweb LPA:/independent Last recourse, use bellcore.com:/pub/norman Readme: With bundle above, or see ``Literate Programming Simplified,'' IEEE Software, September 1994, pp97-105. Description: noweb is designed to meet the needs of literate programmers while retaining the simplest possible input format. Its primary advantages are simplicity, extensibility, and language-independence. noweb uses 5 control sequences to WEB's 27. The simple noweb manual is only 2 pages; documenting the full power of noweave and notangle requires another 3 pages. noweb works ``out of the box'' with any programming language, and a simple back end for a new text formatter can be written in about 50 lines of awk. The primary sacrifice relative to WEB is the loss of prettyprinting. noweb supports indexing and identifier cross-reference, including hypertext ``hot links'' courtesy of Mosaic or Netscape. noweb includes a simple, efficient LaTeX-to-HTML converter, so you can use hypertext browsers on your legacy documents. noweb can also process nuweb programs, so you can use noweb to convert a standard nuweb program to HTML with one command. Support: email to the author - ---------------------------------------------------------------------- - nuweb ------- Developer: Preston Briggs: preston@cs.rice.edu Version: 0.87 Hardware: Unix systems: Sparcs, RS/6000s, HPs; (!) MSDOS and Amiga. Languages: Any programming language or combination of programming languages. Formatter: Latex Availability: Anonymous ftp from: Unix: CTAN:/web/nuweb DOS: CTAN:/web/nuweb-pc LPA:/independent Amiga: CTAN:/web/nuweb/nuweb_ami Amiga: wuarchive.wustl.edu/pub/aminet Readme: Send mail to preston@cs.rice.edu Description: A single program that takes a web file written in a combination of latex and any programming language(s) and produces a latex file that can be pretty printed and a set of files containing code for compilation/interpretation by the appropriate language processors. Strengths include speed, simplicity, multiple languages, nice indices and cross-references, latex. Doesn't require any special macros or macro files. Drawbacks: latex-dependent, no code pretty printing, harder to make indices than cweb. More good stuff: nice support for make, doesn't reformat source files, so they're easy to debug. Lots of control without too much effort. That is, it doesn't do too much! Future directions... Very little change planned, except perhaps refinements in the indexing software. Support: Hack it yourself or send e-mail to preston@cs.rice.edu - ---------------------------------------------------------------------- - ProTeX -------- Developer: Eitan Gurari Version: ProTeX 1.1, AlProTeX 1.4 Hardware: Any platform with (La)TeX Languages: Any language Formatter: TeX or LaTeX Availability: Anonymous ftp from: ftp.cis.ohio-state.edu : pub/tex/osu/gurari/ LPA:/independent Readme: With bundle above Description: + Easy to use + Extensible + Language independent + Multiple output files + Fast (single compilation provides output and dvi files) + No installation is needed besides copying the files (written in TeX) Introduction of main features and examples in pub/tex/osu/gurari/LitProg Complete manual in Eitan M. Gurari, "TeX and LaTeX: Drawing and Literate Programming", McGraw-Hill, 1994 Support: gurari@cis.ohio-state.edu - ---------------------------------------------------------------------- - RWEB ------ Developer: Unknown Version: Unknown Hardware: Unknown Languages: Unknown Formatter: Unknown Availability: Anonymous ftp from: LPA:/reduce Readme: Unknown Description: Web generator in AWK. Support: Unknown - ---------------------------------------------------------------------- - SchemeWEB ----------- Developer: John D. Ramsdell Version: 2.1 Hardware: Unix and DOS platforms Languages: Any dialect of Lisp. Formatter: LaTeX. Availability: The Unix version is in the Scheme Repository and it is available via anonymous ftp from: cs.indiana.edu:/pub/scheme-repository/utl/schemeweb.sh LPA:/lisp CTAN:/tex-archive/web/schemeweb The DOS version is part of the PCS/Geneva Scheme system which is available via anonymous ftp from: cui.unige.ch:/pub/pcs LPA:/machines/ms-dos Readme: In bundle with above. Description: SchemeWEB is a Unix filter that allows you to generate both Lisp and LaTeX code from one source file. The generated LaTeX code formats Lisp programs in typewriter font obeying the spacing in the source file. Comments can include arbitrary LaTeX commands. SchemeWEB was originally developed for the Scheme dialect of Lisp, but it can easily be used with most other dialects. Support: Bug reports to ramsdell@mitre.org. - ---------------------------------------------------------------------- - SpideryWEB ------------ Developer: Norman Ramsey Version: Unknown Hardware: Unix and DOS platforms Languages: Most Algol-like languages, including C, Ada, Pascal, Awk, and many others. Formatter: Plain TeX and latex for text formatters. Availability: Anonymous ftp from: CTAN LPA:/spiderweb Readme: In distribution. Description: A system for building language-dependent WEBs. Spider is frozen; no further development is planned. Support: Bug reports to spider-bugs@oracorp.com. - ---------------------------------------------------------------------- - WEB ----- Developer: Donald Knuth Version: Unknown Hardware: Unknown Languages: Pascal Formatter: TeX (of course! ;-) Availability: Anonymous ftp from: LPA:/pascal Readme: Unknown Description: This is the original software that started it all. The original TeX processor was written in WEB. Support: None known. - ---------------------------------------------------------------------- - WinWordWEB ------------ Developer: Lee Wittenberg Version: Unknown Hardware: Needs Microsoft Word for Windows, v.2.x, and, of course, MS-Windows 3.x. Languages: Any programming language. Formatter: Word for Windows 2.x for text formatting and file maintenance. Availability: Anonymous ftp from: bart.kean.edu:pub/leew LPA:/machines/ms-dos World-Wide Web (WWW) Readme: WORDWEB.DOC in the downloadable package describes the system. Description: WinWordWEB is a set of a Word for Windows macros (plus a paragraph style) that provide a crude literate programming environment. The ``look and feel'' of the system is based on Norman Ramsey's noweb, but can easily be modified to suit individual tastes. Support: None. WinWordWEB was written as a prototype to see if a WYSIWYG literate programming system was possible. It is intended as a jumping off point for future work by others. However, the system is surprisingly usable as it stands, and the author is interested in hearing from users (satisfied and dissatisfied). Anyone interested in actively supporting (and improving) the product should contact the author via email. = ====================================================================== * Are there other tools I should know about? -------------------------------------------- First of all, I'll list some not-quite-literate-programming tools. Some may consider these to be pretty-printers. Others may call them literate programming tools. In any event, they don't seem to be quite in the same category as the tools listed above, so I'll include them here. - C2LaTeX --------- Developer: John D. Ramsdell Version: Unknown Hardware: Unix Languages: C Formatter: LaTeX but it's easy to change the formatter. Availability: Anonymous ftp from omnigate.clarkson.edu:/pub/tex/tex-programs/c2latex. Readme: Absent. Documentation is in the C source for c2latex. Description: C2latex provides simple support for literate programming in C. Given a C source file in which the comments have been written in LaTeX, c2latex converts the C source file into a LaTeX source file. It can be used to produce typeset listings of C programs and/or documentation associated with the program. C2latex produces LaTeX source by implementing a small number of rules. A C comment that starts at the beginning of a line is copied unmodified into the LaTeX source file. Otherwise, non-blank lines are surrounded by a pair of formatting commands (\begin{flushleft} and \end{flushleft}), and the lines are separated by \\*. Each non-blank line is formatted using LaTeX's \verb command, except comments within the line are formatted in an \mbox. Support: Send bug reports to ramsdell@mitre.org. - ---------------------------------------------------------------------- - c2cweb -------- Developer: Werner Lemberg Version: 1.4 Hardware: DOS, OS/2, Unix (gcc) - CWEB source included Languages: C, C++ Formatter: TeX Availability: Anonymous ftp from CTAN:/web/c_cpp/c2cweb Readme: In distribution. Description: c2cweb will transform plain C or C++ code into a CWEB file to get a pretty formatted output. A modified CWEAVE (which transforms the CWEB file into a TeX file, see below) is included also. Support: Werner Lemberg - ---------------------------------------------------------------------- - c2man ------- language: C, nroff, texinfo, latex, html package: c2man version: 2.0 patchlevel 33 parts: documentation generator (C -> nroff -man, -> texinfo, ->latex, -> html) author: Graham Stoney location: ftp from any comp.sources.misc archive, in volume42 (the version in the comp.sources.reviewed archive is obsolete) ftp /pub/Unix/Util/c2man-2.0.*.tar.gz from dnpap.et.tudelft.nl Australia: ftp /usenet/comp.sources.misc/volume42/c2man-2.0/* from archie.au N.America: ftp /usenet/comp.sources.misc/volume42/c2man-2.0/* from ftp.wustl.edu Europe: ftp /News/comp.sources.misc/volume42/c2man-2.0/* from ftp.irisa.fr Japan: ftp /pub/NetNews/comp.sources.misc/volume42/c2man-2.0/* from ftp.iij.ad.jp Patches: ftp pub/netnews/sources.bugs/volume93/sep/c2man* from lth.se description: c2man is an automatic documentation tool that extracts comments from C source code to generate functional interface documentation in the same format as sections 2 & 3 of the Unix Programmer's Manual. It requires minimal effort from the programmer by looking for comments in the usual places near the objects they document, rather than imposing a rigid function-comment syntax or requiring that the programmer learn and use a typesetting language. Acceptable documentation can often be generated from existing code with no modifications. conformance: supports both K&R and ISO/ANSI C coding styles features: + generates output in nroff -man, TeXinfo, LaTeX or HTML format + handles comments as part of the language grammar + automagically documents enum parameter & return values + handles C (/* */) and C++ (//) style comments - doesn't handle C++ grammar (yet) requires: yacc/byacc/bison, lex/flex, and nroff/groff/texinfo/LaTeX. ports: Unix, OS/2, MSDOS, VMS. portability: very high for unix, via Configure status: actively developed; contributions by users are encouraged. discussion: via a mailing list: send "subscribe c2man " (in the message body) to listserv@research.canon.oz.au help: from the author and other users on the mailing list: c2man@research.canon.oz.au announcements: patches appear first in comp.sources.bugs, and then in comp.sources.misc. updated: 1994/10/07 - ---------------------------------------------------------------------- - cnoweb -------- Developer: Jim Fox Version: 1.4 (January 4, 1991) Hardware: Anything with C and TeX. Languages: C Formatter: Plain TeX. Availability: Anonymous ftp from: CTAN LPA:/c.c++ Readme: Unknown, cnoweb.tex contains documentation. Description: cnoweb is as it's name describes: write C, not web. No tangling or weaving is implemented. Documentation (between standard /* */ delimiteres) is written in TeX. cnoweb provides typesetting of documentation, an table of contents of routines, and pretty-printing of C source. Support: None known. - ---------------------------------------------------------------------- - Fold2Web ---------- Developer: Bernhard Lang Version: V0.8 Hardware: MSDOS Languages: All (must allow comment lines) Formatter: LaTeX Availability: Anonymous ftp from: kirk.ti1.tu-harburg.de (134.28.41.50) /pub/fold2web/readme /pub/fold2web/fold2web.zip Readme: In distribution Description: The idea behind the Fold2Web tool is the following: A programmer can write his program source with a folding editor and later map the folded source files automatically to WEB-files. The generated WEB-files can then be modified by inserting required documentations. The advantage by starting program developement with original sources is to get short design cycles during the compile/debug steps. By using a folding editor the global structuring information can be already captured in folds during this developement phase. Fold information is typically stored in comment lines and thus will not affect the efficiency of the compile/debug design cycle. Some folding editors and a folding mode for the emacs are available (e.g. see our FUE folding editor for MSDOS machines which is a modified micro emacs. Pick it at kirk in directory /pub/fold2web). After reaching a stable version of a program source its time to convert the source file to a WEB-file and do the program documentation. Fold2Web is written to convert folded source text of any programming language to nuweb files. The folded structure is kept by mapping folds to scraps. Fold markers which differ between languages due to different ways of specifying comments can be configured for each language. Good results can also achived when given but poor documented program sources have to be modified. Such sources can be folded using a folding editor to extract the global structures. This offers a global view to the program structures and help to understand its functionality. Furthermore the program code is not affected, only comment lines are inserted. Once folded the program source can be automatically translated to a WEB document using the above tool. Support: email to lang@tu-harburg.d400.de - ---------------------------------------------------------------------- - Funnelweb Mode ---------------- Developer: Daniel Simmons Version: Unknown Availability: Litprog archives (was in email) Anonymous ftp from: ftp.imada.ou.dk Description: The other day I did a quick hack to nuweb.el as included with the nuweb distribution so as to make a funnelweb-mode.el. I've only used it briefly, and I'm sure that it can be improved quite a bit. I've been thinking about adding support for folding on sections, a pull-down menu to select macro definitions (like the recent functions posted to gnu.emacs.sources for a C function definition pull-down menu) and some kind of tags support for funnelweb. Support: Unknown - ---------------------------------------------------------------------- - noweb.el ---------- Developer: Bruce Stephens Version: Unknown. Availability: LitProg archives (in an email message). Description: This is a very simple mode I just hacked up. There's a lot wrong with it, but I thought others may be interested, even as it stands. It *requires* text properties, and assumes those used in GNU Emacs 19.22; it'll quite likely work with Lucid Emacs, but I haven't tried it. I use it with auctex8.1 and cc-mode 3.229, both of which are loaded separately (I think my emacs is dumped with them, in fact). The idea is to have one mode (which calls itself c-mode, but actually has LaTeX-mode keybindings) generally (this means that the code is hilighted nicely), and have the code chunks use a different keymap. Support: Email to bruce@liverpool.ac.uk - ---------------------------------------------------------------------- - nuweb.el ---------- Developer: Dominique de Waleffe Version: 1.99 Availability: Anonymous ftp from: LPA CTAN Description: Provides a major mode extending Auctex for editing nuweb files. Main features (in 2.0): - Edit scrap bodies in a separate buffer in a different mode (selected using emacs defaults for files, specific indication -*-mode-*-, or a buffer-local variable) - Extends Auctex commands so that nuweb is called before LaTeX, - Easy navigation on scrap definition and use points. - Now creates an imenu (C-M-mouse1) with user index entries, macro definition positions and file definition positions. Support: Email to ddw@acm.org - ---------------------------------------------------------------------- - TIE ----- Developer: Unknown Version: Unknown Hardware: Unknown Availability: Anonymous ftp from: LPA:/Tools Readme: Unknown Description: This software merges change files. Support: Unknown - ---------------------------------------------------------------------- - Web mode ---------- Developer: Bart Childs Version: Unknown Tools supported: web, fweb, cweb, funnelweb Availability: Anonymous ftp from ftp.cs.tamu.edu:pub/tex-web/web/EMACS.web-mode thrain.anu.edu.au:pub/web/EMACS.web-mode Description: This version works with versions 18 and 19 of Emacs to be best of my knowledge. I have cleaned up a number of documentation items ... In the same directory is wm_refcard.tex which is an edited version of the famous one to include some web-mode commands. The files limbo* are related to its use and notice that half them have an uppercase L in them for LaTeX. The setup is based upon the fact that we (I am not alone here) primarily use FWEB for C and Fortran programming. We are using version 1.40 of FWEB although John Krommes warns that it is not mature and the manual is not yet updated. The info files are! We are using LaTeX almost exclusively. That will likely change and we will revert to version 1.30 if the final form of 1.40 cannot return to the simple section numbers and avoid the HORRIBLE LATEX 0.1.7.2.4.6 type section numbers. Support: Unknown = ====================================================================== * What other resources are available? ------------------------------------- - World Wide Web ---------------- An untapped resource (by me anyway ;-) is the World Wide Web. Marcus Speh has expended considerable effort in this regard. If you're connected to WWW, then access: http://info.desy.de:80/user/projects/LitProg.html If you aren't connected to WWW, telnet to info.cern.ch and explore. You can reach Marcus' literate programming pages by typing: go http://info.desy.de:80/user/projects/LitProg.html or use a WWW browser and access the URL ftp://rtfm.mit.edu/pub/usenet/news-answers/www/resources/literate-programming Help for people who have only Email and neither WWW nor telnet, can be obtained by Email from TEST-LIST@INFO.CERN.CH by sending a message, SEND , for example, SEND http://info.desy.de:80/user/projects/LitProg.html to retrieve the LitProg library page. A help file can be retrieved by sending a message to the list server above with the text HELP in the body of the message. Instructions will be returned by email. For literate programming documents, you can try anonymous ftp to rtfm.mit.edu and retrieve the official Usenet resource file /pub/usenet/news.answers/www/resources/literate-programming - ---------------------------------------------------------------------- - TeX Resources --------------- Another resource of interest to literate programmers is the info-tex mailing list. If you're using (La)TeX as your typsetting system and have access to internet, then you should investigate this mailing list. Mail list service is available through the SHSU list-server. To subscribe, send a message to LISTSERV@SHSU.EDU, and include in the message one line of text: SUBSCRIBE INFO-TEX "your name in quotes" The list is unmoderated; messages sent to info-tex@shsu.edu are automatically distributed to all subscribers and cross-posted to comp.text.tex. Archives of the mailing list and newsgroup are maintained on niord.shsu.edu [192.92.115.8] in the directory info-tex. Another reason the TeX resources should be important is that so many of the literate programming tools rely on either plain TeX or LaTeX as their text formatter. (La)TeX software systems exist for most computing platforms. These systems can be found on CTAN and other major archive sites. Use archie to find them or simply ftp to one of the CTAN sites and browse. - ---------------------------------------------------------------------- - Virtual Coursework -------------------- Marcus Speh plans an introductory course on Literate Programming on the Internet, part of the first semester of "Global Network Academy" [GNA], a non-profit corporation incorporated in the state of Texas, affilated with the Usenet University project. The texts/sample programs for this class will be made available via the World-Wide Web. A special room on GNA Virtual Campus will be staffed by a consultant in one to two hour shifts. Students with questions can telnet to the virtual campus and ask questions of the staff there. If you are interested in registering for the course either as a student or as a consultant, please contact marcus@x4u.desy.de. You will receive a standard reply message; no further action will be taken until June 94. Interested parties can check the hypertext notes for the completed C++ Course done in a similar fashion, at URL http://info.desy.de:80/pub/uu-gna/html/cc/index.html [Editor's note: Because of workload, Marcus requests that email inquiries be limited to a statement of interest for either a student or consultant position until June 1994.] = ====================================================================== * Are there any code examples? ------------------------------ Examples of web programs are included with the FWEB, CWEB, and noweb distributions. nuweb is written in itself. Cameron Smith converted the K&R calculator program into a literate program. It can be retrieved by anonymous ftp from: niord.shsu.edu [192.92.115.8] directory kr-cweb-sample as krcwsamp.zip or from LPA/Documentation Ross Williams has released a funnelweb example. You can retrieve this file from node ftp.adelaide.edu.au [129.127.40.3] as /pub/funnelweb/examples/except.* This file should be on CTAN as well. Lee Wittenberg has posted a few litprog examples. They are available via anonymous ftp from: bart.kean.edu:/pub/leew/samples.LP The Stanford GraphBase is a large collection of programs by Don Knuth for doing all kinds of computations and games with graphs; it is written in (Levy/Knuth) CWEB. More details in the distribution. It is available via anonymous ftp from: labrea.stanford.edu:/pub/sgb = ====================================================================== * Bibliographies ---------------- Nelson Beebe has collected an extensive bibliography treating literate programming. His work is available for anonymous ftp from ftp.math.utah.edu [128.110.198.2] in directory /pub/tex/bib as files: litprog.bib litprog.ltx litprog.twx. Although I have not verified this, LPA is an alternate source for these files. Note that they are updated frequently (Nelson says several times each week), so be sure to get a fresh copy before extensive use. Joachim Schrod indicates that these files may be updated daily and can be retrieved via anonymous ftp at LPA/documentation. = ====================================================================== * How to anonymously ftp ------------------------ Pretty much everything mentioned here is available by anonymous FTP. FAQ lists cross-posted to news.answers and rec.answers can be gotten from rtfm.mit.edu [18.181.0.24], under /pub/usenet/news.answers or under /pub/usenet/more.specific.group.name "anonymous FTP" is just a way for files to be stored where anyone can retrieve them over the Net. For example, to retrieve the latest version of the literate programming FAQ, do the following: > ftp rtfm.mit.edu /* connect to the site; message follows */ > anonymous /* type this when it asks for your name */ > /* type your address as the password */ > cd /pub/usenet /* go to the directory you want to be */ > cd comp.programming.literate /* one level down (no slash). */ > dir /* look at what's there */ > get literate-progamming-faq /* get the file; case-sensitive */ > quit /* stop this mysterious thing */ If your FTP program complains that it doesn't know where the site you want to use is, type the numerical address instead of the sitename: > ftp 18.181.0.24 /* connect with numerical address */ If you don't have ftp access, send e-mail to mail-server@rtfm.mit.edu with the single word "help" in the body of the message. Getting binary files (executables, or any compressed files) is only slightly more difficult. You need to set binary mode inside FTP before you transfer the file. > binary /* set binary transfer mode */ > ascii /* set back to text transfer mode */ FAQs and spoiler lists are generally ascii files; everything else is generally binary files. Some common extensions on binary files in archive sites are: .Z Compressed; extract with uncompress .tar.Z Compressed 'tape archive'; uncompress then untar or tar -xvf .gz or .z Gnu gzip; use gunzip (available from prep.gnu.ai.mit.edu) .sit (Mac) StufIt archive .zip Extract with Zip or Unzip .zoo Yet another archive/compress program .lhe (Amiga) ? .lzh Lha archive program. .arj (PC) Arj archive program. .exe (PC) Sometimes self-extracting archives-just execute them. .uue or .UUE Transfer as text file; use uudecode to convert to binary .hqx (Mac) BinHex format; transfer in text mode Generic help can be found in the FAQs of comp.binaries. for how to transfer, extract, and virus-check binary files. (At rtfm.mit.edu) If you can't FTP from your site, use one of the following ftp-by-mail servers: ftpmail@decwrl.dec.com ftpmail@src.doc.ic.ac.uk ftpmail@cs.uow.edu.au ftpmail@grasp.insa-lyon.fr For complete instructions, send a message reading "help" to the server. If you don't know exactly what you're looking for, or exactly where it is, there are programs and servers that can help you. For more info, send e-mail to mail-server@rtfm.mit.with with the body of the message reading send usenet/news.answers/finding-sources Thanks to Aliza R. Panitz (the "buglady") for this text. I copied it verbatim from her post on faq-maintainers with only minor modifications. = ====================================================================== * Acknowledgements ------------------ This document would not have happened without the help of many people. Among them are Marcus Speh, George Greenwade, Rob Beezer, Joachim Schrod, Piet van Oostrum, and Ross N. Williams. A special thanks to Aliza R. Panitz for the text describing how to execute an anonymous ftp for files of interest. Any omissions from these acknowledgements should be considered an act of stupidity on my part. Of course, the authors of literate programming tools mentioned above all play a vital role in the vitality of literate programming. Furthermore, participants in the comp.programming.literate newsgroup (and associated mailing list) all contributed in various fashions. Thank all of you. = ====================================================================== * End notes ----------- This document will continue to evolve. I'm planning on adding entries for additional literate programming tools and will expand the sections on examples as more examples become available. Tools I will include are WEB (the original pascal version) for starters. Others will be added as I find and document them. Omission of a particular tool should not be considered a snub in any sense--simply an error or oversight on my part. = End of File ========================================================== ================================================================================ Archive-Date: Tue, 20 Jun 1995 12:57:12 CDT Sender: owner-litprog@SHSU.edu Date: Tue, 20 Jun 95 20:57:20 +0200 From: apostolo@platon.ee.duth.gr Reply-To: LitProg@SHSU.edu, apostolo@PLATON.EE.DUTH.GR To: litprog@shsu.edu Subject: perlWEB The file that follows is a spider description of perl. It can be used with the SpiderWEB tool to generate PLWEAVE and PLTANGLE. I know there are two problems: (1) regular expressons must be enclosed in @= and @> (2) associative array expresions like $dirsep=$ENV{'dirsep'}; need some... glue in order to get pretty-printed: $ENV@+{@+'dirsep'@+}@+; If someone wants the MSDOS version (generated with Turbo C++ 4.0) he can contact me. Apostolos Syropoulos apostolo@platon.ee.duth.gr ------------------- perl.spider -------------------------------------------- # # File name : perl.spi[der] # To be used with the "spider" tool to generate WEAVE and TANGLE for the # perl (5) programming language. # # Copyright 1995 by Apostolos Syropoulos, # 366 28th October Str, GR-671 00 Xanthi, Greece-HELLAS # # To be used for research purposes only # language PERL extension pl # date Sat Jun 17 19:27:00 EET 1995 # at_sign @ # module definition lineseq use line # comment begin <"##"> end newline # macros begin \def\commentbegin{\#} %%% String relational operators \def\circled#1{{\ooalign{\hfil\raise.07ex\hbox{#1}\hfil\crcr\mathhexbox20D}}} \def\ole{\circled{$<$}} \def\oleq{\circled{$\leq$}} \def\oge{\circled{$>$}} \def\ogeq{\circled{$\geq$}} \def\oequiv{\circled{$\equiv$}} \def\one{\circled{$\ne$}} \def\cmp{\circled{$\Leftrightarrow$}} %%% Numerical relational operators \def\GG{\gg} \def\LL{\ll} \let\CMP=\Longleftrightarrow %%% Definition of ++ and -- operators \newbox\PPbox % symbol for ++ \setbox\PPbox=\hbox{\kern.5pt\raise 1pt\hbox{\sevenrm + \kern-1pt +}\kern.5pt} \def\PPsign{\copy\PPbox} \newbox\MMbox % symbol for -- \setbox\MMbox=\hbox{\kern.5pt\raise 1pt\hbox{\sevensy\char0 \kern-1pt\char0}\kern.5pt} \def\MMsign{\copy\MMbox} %%% Other operators \def\xor{$\underline \vee$} \def\?{$\mathrel?$} \def\lll{\mathrel\langle\!\langle\!\langle} \def\ggg{\mathrel\rangle\!\rangle\!\rangle} %%% Miscellaneous \newbox\bakkk \setbox\bakkk=\hbox to -5pt{} % backspace one em \def\baaack{\copy\bakkk} macros end # line begin <"#line"> end <""> # default translation <*> mathness yes # token identifier category math mathness yes token number category math mathness yes token newline category newline translation <> mathness maybe token pseudo_semi category ignore_scrap mathness no translation # token \ category backslash translation <"\\backslash"> mathness yes token # category sharp translation <"\\sharp"> mathness yes token @ category at_symbol token $_ category math translation <"\\$\\_\\"-space> mathness no token $. category math translation <"\\$\\&{.}"-space> mathness no token $ category dollar translation <"\\$"> mathness maybe token + category unorbinop token - category unorbinop token * category unorbinop translation <"{*}"> tangleto token ** category binop translation <"\\uparrow"> mathness yes token / category binop token ^ translation <"\\^"> category binop token < category binop token > category binop token >> category unorbinop translation <"\\GG"> mathness yes token << category unorbinop translation <"\\LL"> mathness yes token <<< category math translation <"\\lll"> mathness yes token >>> category math translation <"\\ggg"> mathness yes token . category binop translation <"\\oplus"> mathness yes token = category becomes translation <"\\leftarrow"> tangleto <"="-space> token ~ category binop translation <"\\TI"> token =~ category binop translation <"=\\TI"> token !~ category binop translation <"\\not\\TI"> token & category unorbinop translation <"\\amp"> token % translation <"\\%"> category unorbinop token ( category openpar token [ category openpar token ) category closepar token ] category closepar token { translation <"\\{"> category lbrace token } translation <"\\}"> category rbrace token ? category question translation <"\\?"> token , category comma token : category colon token | category binop translation <"\\mid"> mathness yes token .. category binop translation <"\\ldots"> mathness yes token ; category semi translation <";\\enspace"> mathness no token <=> translation <"\\CMP"> category binop mathness yes token != name not_eq translation <"\\I"> category binop token <= name lt_eq translation <"\\L"> category binop token >= name gt_eq translation <"\\G"> category binop token == name equals translation <"\\S"> category binop token && name and_and translation <"\\W"> category binop token || name or_or translation <"\\V"> category binop token ! translation <"\\neg"> category unop token -> translation <"\\MG"> category dereference token ++ name gt_gt category unop translation <"\\PPsign"> token -- name lt_lt category unop translation <"\\MMsign"> token ` category backtick token ' category quote token " category dquote # ilk if_like category if ilk elsif_like category elsif ilk continue_like category continue ilk else_like category else ilk while_like category while ilk for_like category for ilk goto_like category math ilk do_like category do ilk array_like category array ilk env_like category math ilk begin_like category begin ilk file_like category file ilk format_like category format ilk sub_like category sub ilk special category math ilk package_like category package ilk use_like category use ilk method_like category method ilk print_like category math reserved if ilk if_like reserved elsif ilk elsif_like reserved else ilk else_like reserved unless ilk if_like reserved continue ilk continue_like reserved for ilk for_like reserved foreach ilk while_like reserved while ilk while_like reserved until ilk while_like reserved goto ilk goto_like reserved last ilk goto_like reserved next ilk goto_like reserved redo ilk goto_like reserved return ilk goto_like reserved dump ilk goto_like reserved do ilk do_like reserved sub ilk sub_like reserved ARGV ilk array_like reserved EXPORT ilk array_like reserved EXPORT_OK ilk array_like reserved INC ilk array_like reserved ISA ilk array_like reserved ENV ilk array_like reserved INC ilk array_like reserved OVERLOAD ilk array_like reserved SIG ilk array_like reserved HOME ilk env_like reserved LOGDIR ilk env_like reserved PATH ilk env_like reserved PERL5LIB ilk env_like reserved PERL5DB ilk env_like reserved PERLLIB ilk env_like reserved BEGIN ilk begin_like reserved END ilk begin_like reserved STDIN ilk file_like reserved STDOUT ilk file_like reserved STDERR ilk file_like reserved DATA ilk file_like reserved format ilk format_like reserved __FILE__ ilk special reserved __LINE__ ilk special reserved __END__ ilk special reserved package ilk package_like reserved require ilk package_like reserved use ilk use_like reserved method ilk method_like ilk eq_like category binop translation <"\\oequiv"> reserved eq ilk eq_like ilk ne_like category binop translation <"\\one"> reserved ne ilk ne_like ilk lt_like category binop translation <"\\ole"> reserved lt ilk lt_like ilk gt_like category binop translation <"\\oge"> reserved gt ilk gt_like ilk le_like category binop translation <"\\oleq"> reserved le ilk le_like ilk ge_like category binop translation <"\\ogeq"> reserved ge ilk ge_like ilk cmp_like category binop translation <"\\cmp"> reserved cmp ilk cmp_like ilk x_like category binop translation <"\\otimes"> reserved x ilk x_like ilk and_like category binop translation <"\\W"> reserved and ilk and_like ilk or_like category binop translation <"\\V"> reserved or ilk or_like ilk not_like category unop translation <"\\not"> reserved not ilk not_like ilk xor_like category binop translation <"\\xor"> reserved xor ilk xor_like reserved print ilk print_like reserved printf ilk print_like reserved sprintf ilk print_like reserved eval ilk print_like reserved die ilk print_like reserved open ilk print_like reserved close ilk print_like reserved pack ilk print_like reserved unpack ilk print_like reserved chop ilk print_like reserved index ilk print_like reserved substr ilk print_like reserved join ilk print_like reserved pop ilk print_like reserved push ilk print_like reserved local ilk print_like reserved scalar ilk print_like reserved shift ilk print_like reserved splice ilk print_like reserved sort ilk print_like reserved split ilk print_like reserved unshift ilk print_like default mathness no translation <*> dollar (dollar|at_symbol|sharp|binop|semi|dquote|colon|unop|comma|question|openpar|closepar|backslash) --> dollar dollar math --> math dollar <"\\baaack"> array --> math at_symbol <"\\baaack"> array --> math (at_symbol|sharp) math --> math math colon --> label backslash (math|binop|unorbinop|unop) --> math backtick math backtick --> math dquote math dquote --> math quote math quote --> math (decl|line|loop|genloop|cond|whileloop|forloop|cont) --> lineseq label lineseq --> lineseq lineseq lineseq --> lineseq lbrace --> begin_block rbrace --> end_block begin_block lineseq end_block --> block label cond --> line label semi --> line label block --> line sub begin --> begin begin block --> line begin_block math end_block --> math (sideeff|math) semi --> line while <"\\"-space> math --> whilemath if <"\\"-space> math --> ifmath math <"\\"-space> (whilemath|ifmath) --> sideeff # whilemath block --> whileloop # ifmath block --> ifline else block --> elseblock elsif <"\\"-space> math block --> elsifblock elsifblock elsifblock --> elsifblock elsifblock elseblock --> elsifblock # # the if instruction # ifline elsifblock --> cond if block --> condbegin condbegin block elseblock --> cond # continue block --> cont # label <"\\"-space> whileloop cont --> loop label block cont --> genloop # # the for loop # for <"\\"-space> openpar --> forpar forpar semi --> forpar forpar math semi --> forpar forpar closepar --> forpar forpar block --> forloop # # declarations: format, # format math block --> decl format block --> decl # # sub[routine], # sub math semi --> decl sub math block --> decl # # package, # package semi --> decl package math semi --> decl # # use of, # use math math semi --> decl # # what is a mathematical expression? # colon <"\\baaack"> colon --> binop math comma <"\\"-space> math --> math math (binop|unorbinop) math --> math (unop|unorbinop) math --> math math unop --> math unorbinop math unorbinop --> math question math colon --> binop binop <"\\baaack"> (array|file) <"\\baaack"> binop --> math openpar binop --> openpar binop closepar --> closepar openpar math closepar --> math openpar closepar --> math math math --> math <"\\buildrel"> (binop|unorbinop) <"\\over{"> becomes <"}"> --> binop math becomes math --> math do block --> math do math --> math method math --> math math dereference math --> math # # special tokens # ? ignore_scrap --> #1 ignore_scrap ? --> #2 ? newline --> #1 newline ? --> #2 # # END ================================================================================ Archive-Date: Tue, 20 Jun 1995 15:29:44 CDT Sender: owner-litprog@SHSU.edu Date: Tue, 20 Jun 95 16:28:51 EDT From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET To: LitProg@SHSU.edu, kakima@ix.netcom.com Subject: Re: [Q] file organization Message-ID: Kiyoshi Akima writes: > The library I'm working on is small enough that I would like to > document the entire thing in one CWEB file. I know I can use the "@(" > control sequence to output to different files, but what should the main > file be? > > I'm thinking of having the unnamed code section go to the header file > and using @( to produce the several implementation files. Is this the > right way? It's too early in the lifetime of LP for any Right Way to have surfaces. We all argue about techniques, but I think we all realize that we're all still working in the dark. On the other hand, CWEB is set up to generate a .c file as the main file by default. so your technique is certainly something Knuth didn't really consider (of course, that in itself may be a Good Thing). > Does anybody have experience doing this type of thing? I sometimes use @( to mimic noweb's multiple-root-chunk facility, and don't even bother to have an unnamed chunk at all. My personal preference, when confronted with multiple outputs (more than just a .h and .c with the same name) is to name all the chunks to be extracted with their file names. In CWEB, this would mean no @c chunks, in noweb, no <<*>> chunk. I think CWEB produces a zero-length .c file, with perhaps, a warning message, but that's only a minor irritant. -- Lee P.S. WRT your (?) earlier post about multiple input files in CWEB 3.4 not working as documented, I think that the manual itself suggests that the method is not completely reliable. ------------------------------------------------------------------------ Lee Wittenberg | Everything was in the lap of the gods, Computer Science Department | and there was no telling what would Kean College of New Jersey | happen when they stood up. Union, NJ 07083 | | -- Richard Armour leew@pilot.njin.net | "It All Started With Europa" (1955) ------------------------------------------------------------------------ ================================================================================ Archive-Date: Tue, 20 Jun 1995 15:38:17 CDT Sender: owner-litprog@SHSU.edu Date: Tue, 20 Jun 95 16:35:51 EDT From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET To: LitProg@SHSU.edu, bay@daacdev1.stx.com Subject: Re: Dumb CWEB Question Message-ID: John Bay writes: > Why doesn't CWEB have true comments? > > The manual (for version 3.0) says of "@q" that "The control text that follows > will be totally ignored--it's a comment for readers of the CWEB file only." > > But that's not precisely true because the context of the "@q" control text is > restricted, so the text can't contain other control sequences, for instance. > > The motivation for this is that I would like to use Sccs revision control > with CWEB source files. But Sccs introduces control sequences of its own - > things like "@(#)" that cause CWEB to complain. Personaly, I prefer to have my version control info displayed in the woven web (I use RCS rather than SCCS, though). I use several macros that typeset the important parts and ignore the strange stuff. For the Log, though, which I don't want to appear, I simpy use the TeX comment character % in a text chunk. So you can always use % in a text chunk as if it were a "true" CWEB comment. E.g., @*Index. % % $Log$ % % ... expanded stuff from $Log$ ... -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Everything was in the lap of the gods, Computer Science Department | and there was no telling what would Kean College of New Jersey | happen when they stood up. Union, NJ 07083 | | -- Richard Armour leew@pilot.njin.net | "It All Started With Europa" (1955) ------------------------------------------------------------------------ ================================================================================ Archive-Date: Tue, 20 Jun 1995 16:00:34 CDT Sender: owner-litprog@SHSU.edu Date: Tue, 20 Jun 95 16:42:59 EDT From: Lee Wittenberg Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET To: LitProg@SHSU.edu, kdj@mindspring.com Subject: Re: [Q] Encapsulation in LP Message-ID: Kristopher Johnson writes: > I'm writing a fairly large program in C++, using CWEB for the first time. > I find myself doing stuff like this a lot: > > @ We need a class to represent something. > @@ += > class Foo { > public: @ > private: int privateMemberDataValue; > }; > > ... (dozens of pages later, far away from the discussion of class Foo) > > @ In function f(), we need to access a Foo instance's data. We'll > add a new accessor function to the Foo class. > @ += > int GetDataValue() { return privateMemberDataValue; } > > > In short, instead of declaring a class's data and functions all in one > place, I add stuff where I need it. > > I wonder whether this practice is good or bad. Here are my thoughts: > > It's bad: ... > > It's good: this is how the process of designing classes really works. > A class designer starts with a vague idea of which classes are needed, > and then refines the design iteratively. The CWEB file chronicles > the iterative process, and can explain why certain features have been > added to a class. Thus, although classes are intermingled throughout > the document, the associations between them are made clear. The > indexing and cross-referencing provided by CWEB make it easy for a > reader to find all declarations for a class, if that is desired. > > It depends: the goal of an author is to make the reader understand, > so authors must use their own judgments and refrain from relying on > simple rules. I find your "bad" arguments interesting, but I think the "good" arguments are really what LP is all about. A web doesn't necessarily represent the order of design (although I've had a great deal of success with "stream of consciousness" webs) -- see Bart Childs's recent post -- I think the technique you describe is easier for a reader to understand the various pieces of the design. It's not necessary, for example, to understand anything about the class constructors when you're interested in a specific member function. Your technique allows the writer (and, therefore, the reader) to concentrate on a small piece of the class at a time. IMO, this is the greatest strength of LP. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | Everything was in the lap of the gods, Computer Science Department | and there was no telling what would Kean College of New Jersey | happen when they stood up. Union, NJ 07083 | | -- Richard Armour leew@pilot.njin.net | "It All Started With Europa" (1955) ------------------------------------------------------------------------ ================================================================================ Archive-Date: Tue, 20 Jun 1995 17:08:46 CDT Sender: owner-litprog@SHSU.edu From: mckennaai@aol.com (McKenna AI) Subject: Chicago-based Multimedia Co Seeks Lingo Expert Date: 20 Jun 1995 15:50:57 -0400 Message-ID: <3s78r1$485@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, mckennaai@aol.com (McKenna AI) To: LitProg@SHSU.EDU ADVANCED LINGO PROGRAMMER/CROSS PLATFORM SPECIALIST Start Date: Immediately Qualifications * Outstanding programming experience with Lingo * Excellent cross-platform development experience * Experience with image manipulation programs or other authoring packages a plus Primary Responsibilities: * Support multimedia projects with sophisticated Lingo programming * Design architectures for new projects * Port products between Macintosh, Windows, and OS/2. * Build library of reusable Lingo code for use in products * If qualified, develop custom XObjects and DLLs for Director * Assist other Lingo programmers as needed Please contact McKenna at either McKenna AI@aol.com or mckenna@interaccess.com. Thank you! ================================================================================ Archive-Date: Tue, 20 Jun 1995 19:35:11 CDT Sender: owner-litprog@SHSU.edu Date: Wed, 21 Jun 1995 00:17:30 +0000 (GMT) From: "Stephen Boyan (510) 926-3291/fax 926-3604" Reply-To: LitProg@SHSU.edu, BOYANST@NCAL.KAIPERM.ORG Subject: Re: Dumb CWEB Question To: LitProg@shsu.edu > in all languages comments are restricted in what they can contain because of the need for comment-terminators In record-oriented languages like COBOL and old FORTRAN dialects, which were designed for the IBM mainframe, a record (or punched card) oriented machine, comments were indicated by placing a special code in a special column (say column 7). The comment could then contain anything EDCDIC could encode. This positional, or semi-positional, character of these languages makes parsing them interesting. Stephen Boyan boyanst@ncal.kaiperm.org ================================================================================ Archive-Date: Wed, 21 Jun 1995 03:03:09 CDT Sender: owner-litprog@SHSU.edu From: iec@netcom4.netcom.com (Interstate Electronics Corp) Subject: Re: HELP learning Visual Basic Message-ID: Reply-To: LitProg@SHSU.edu, mre@lpf.org (Mike Elliott) Date: Wed, 21 Jun 1995 06:45:58 GMT To: LitProg@SHSU.EDU asabove@aol.com (As Above) writes: > Urgent. I need guidance in learning Visual Basic Version 1.0 for MS DOS > professional edition. Microsoft could not help. Universities in town > cannot help. Computer schools in town charge too much. I have no prior > programming experience but have an urgent project requiring knowledge of > Visual Basi for DOS. Can anyone suggest a good teacher, book, or video to > learn? Please e-mail me. Thank you. Nothing to worry about. Just start writing code. Fortunately, software is so darned easy to write that ANYBODY can do it, with virtually NO TRAINING OR EXPERIENCE! If that weren't the case, almost all commercial software projects would be behind schedule and over budget! Seriously though -- you must begin coding right away, because there's going to be one hell of a lot of debugging to do afterward. Your choice of Visual Basic here (especially the "Professional" version) will meet your needs most effectively, as it has no tiresome type checking or encapsulation or other such lah-de-dah academic claptrap to get in your way. Keep 'em flying! -- -- ======================================================================== Mike Elliott mre@emerald.ccss.com mre@lpf.org ======================================================================== ================================================================================ Archive-Date: Wed, 21 Jun 1995 03:58:37 CDT Sender: owner-litprog@SHSU.edu From: jch@isode.com (John Haxby) Reply-To: LitProg@SHSU.edu, jch@ISODE.COM Subject: Re: [Q] Encapsulation in LP Date: 21 Jun 1995 08:36:36 GMT Message-ID: <3s8lmk$cdl@bsdi002.britain.eu.net> To: LitProg@SHSU.EDU In article , kdj@mindspring.com (Kristopher Johnson) writes: |> I'm writing a fairly large program in C++, using CWEB for the first time. |> I find myself doing stuff like this a lot: [snip] |> In short, instead of declaring a class's data and functions all in one |> place, I add stuff where I need it. |> |> I wonder whether this practice is good or bad. Here are my thoughts: I think its half way. If the specification of the class is spread all over the place then potential users of that class have a hard time in finding out what the class actually does. Similarly, is the representation (client instance data) is spread around all over the place, then implementors of the class have a hard time in finding out what data is stored and what the representation invariant is. I'd say that the external specification (public interface) needs to be kept together in one place and the internal specification (representation, representation invariant and private utility routine specifications) need to be kept in another. Everything else can, and probably should, be somewhere else -- that way, users and implementors of the class (extensions) get to find out what the class is, exactly, without being distracted by unnecessary detail. Of course, you're in trouble if you change the representation invariant to any significant degreee since you have to find the implementation of all the functions in the class and make sure that they work with and adhere to the new invariant, but that's nothing to do with LP, that's to do with getting the design more-or-less right to begin with. And luck. Interestingly, both CLU and Modula3 (to differing extents and Modula2 as well) have a tendancy to enforce this kind of approach anyway. The trouble with C++ is that you can't live with it, or live without it :-) -- John Haxby J.Haxby@isode.com ISODE Consortium +44 181 332 9091 These are my opinions and have nothing to do with my employer. ================================================================================ Archive-Date: Wed, 21 Jun 1995 06:15:44 CDT Sender: owner-litprog@SHSU.edu From: Michal Gomulinski Reply-To: LitProg@SHSU.edu, s146028@IA.PW.EDU.PL Subject: Re: [Q] file organization Date: 21 Jun 1995 10:36:42 GMT Message-ID: <3s8snq$o5m@gemini.coi.pw.edu.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: kakima@ix.netcom.com To: LitProg@SHSU.EDU kakima@ix.netcom.com (Kiyoshi Akima) wrote: >I'm using C++ and CWEB, but this question should be general enough. > >..... > >The library I'm working on is small enough that I would like to >document the entire thing in one CWEB file. I know I can use the "@(" >control sequence to output to different files, but what should the main >file be? > >I'm thinking of having the unnamed code section go to the header file >and using @( to produce the several implementation files. Is this the >right way? > Not long ago I finished writing a program in C++ in which I used FWEB. I developed competly different strategy of spliting code into header and code files. I used two types of web files: *.hw and *.w. The first one was literate header file and it was tangled into *.h file by ftangle and *.w was literate code file and was tangled into *.cc. The makefile I used was constructed to recompile parts of the program only if the real source (*.w, *.hw) was changed. To get woven output of my work I wrote another file, let's say "documentation.w" which contained the introductory part of the documentation, general information about program and several @i"..." statements which included all files, which actually contained the code. After this there was also a "REFERENCES" part. To get the documention I had something like this in the makefile: fweave documentation.w latex2e documentation latex2e documentation latex2e documentation xdvi documention I think that such oragnisation is quite good for C++ programs and libraries. Regards Michal Gomulinski (M.Gomulinski@elka.pw.edu.pl) ================================================================================ Archive-Date: Wed, 21 Jun 1995 21:44:27 CDT Sender: owner-litprog@SHSU.edu From: kdj@mindspring.com (Kristopher Johnson) Reply-To: LitProg@SHSU.edu, kdj@MINDSPRING.COM Subject: Re: [Q] Encapsulation in LP Date: Wed, 21 Jun 1995 20:26:43 -0400 Message-ID: To: LitProg@SHSU.EDU My original example was probably a little too extreme. A better description of what I'm doing is this: 1) Declare the "core" classes first, along with their primary data members and functions. By core classes, I mean those that represent the things that the application deals with; for example, in a word processing app, the core classes would be Paragraph, Style, Font, and so forth. 2) Declare and define I/O functions and any necessary related data members for all the classes. Since all the classes use the iostreams library, putting all the I/O stuff together makes sense. 3) Declare and define the classes for windows, panes, menu bars, etc., that will make up the user interface. Add any functions and members to the core classes that are necessary for communication/integration with the user interface classes. 4) ... and so on ... So, although declarations and definitions for the core classes are scattered throughout the program, all the I/O stuff is together, all the user interface stuff is together, etc. I like this approach. The core classes may not be well encapsulated, but similar functions are put together, so I don't think the reader will get lost. I think the organization by feature/functionality, rather than by class, actually helps. Comments? -- Kristopher Johnson kdj@mindspring.com ================================================================================ Archive-Date: Thu, 22 Jun 1995 03:45:57 CDT Sender: owner-litprog@SHSU.edu From: Nigel James Reply-To: LitProg@SHSU.edu, nnj@BODLEY.OX.AC.UK Subject: GFABasic Date: 22 Jun 1995 07:54:35 GMT Message-ID: <3sb7jr$amt@news.ox.ac.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.EDU Does anyone know of any sites/discussion groups regarding the Windows version of this language? ================================================================================ Archive-Date: Thu, 22 Jun 1995 09:35:54 CDT Sender: owner-litprog@SHSU.edu From: steven buglass Subject: MS Books Date: Thu, 22 Jun 1995 14:29:17 GMT Message-ID: <204040307wnr@bug1.demon.co.uk> Reply-To: LitProg@SHSU.edu, steven@bug1.demon.co.uk To: LitProg@SHSU.EDU Has anybody read: MS Visual Basic Workshop MS Code Complete Are they worth reading, will I get much out of them. Any comments, gratefully recieved -- steven buglass Life's to short to read all the new... ================================================================================ Archive-Date: Fri, 23 Jun 1995 19:05:17 CDT Sender: owner-litprog@SHSU.edu From: Paolo Ciccone Reply-To: LitProg@SHSU.edu, pciccone@BORLAND.COM Subject: Re: MS Books Date: 22 Jun 1995 18:32:31 GMT Message-ID: <3sccvv$5g1@druid.borland.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.EDU steven buglass wrote: >Has anybody read: > >MS Visual Basic Workshop >MS Code Complete > >Are they worth reading, will I get much out of them. No, they're not. --- These are my opinions and have nothing to do with my employer. ================================================================================ Archive-Date: Sun, 25 Jun 1995 18:26:13 CDT Sender: owner-litprog@SHSU.edu From: travis@clark.net (Eric Travis) Reply-To: LitProg@SHSU.edu, travis@CLARK.NET Subject: Re: comp.programming.literate FAQ Date: 25 Jun 1995 23:21:15 GMT Message-ID: <3skr1b$4na@clarknet.clark.net> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit To: LitProg@SHSU.EDU thompson@sun1.coe.ttu.edu wrote: : Archive-name: literate-programming-faq : Last-modified: 1995/06/09 : Version: 1.1.15 : Welcome to the Literate Programming Frequently Asked Questions List : ------------------------------------------------------------------- : This version was created Friday, 9 June 1995, and should considered : stale after 90 days. Information contained in this document is the best : available at preparation. The original file was dated October 15, 1993 : (just for historical purposes). : Disclaimer: "This FAQ is presented with no warranties or guarantees of : ANY KIND including correctness or fitness for any particular purpose. : The author of this document has attempted to verify correctness of the : data contained herein; however, slip-ups can and do happen. If you use : this data, you do so at your own risk." : Copyright 1993, 1994, 1995 by David B. Thompson. All rights reserved : worldwide. Permission is granted to copy this document for free : distribution so long as it remains intact and unmodified. For other : arrangements, contact the author/maintainer via email: : thompson@sun1.coe.ttu.edu. : What's New? : ----------- : + Updated ddw's email address (for nuweb.el). : + Updated noweb entry (thanks Norman! ;-). : = ====================================================================== : * Introduction or "What's this all about?" : ------------------------------------------ : This document is for new and experienced users of literate programming : tools. The purpose is to explain the concept of literate programming and : to provide a resource for locating files of interest to literate : programmers and those interested in literate programming. : The Literate Programming (LitProg) Frequently Asked Questions (FAQ) list : is maintained by Dave Thompson, who can be reached at: : thompson@sun1.coe.ttu.edu * Preferred mailing address for FAQ : related comments/questions. : wqdbt@ttacs1.ttu.edu * Forwarded to my pc. : Comment and constructive criticism is welcome. Direct flames to : /dev/null (or > nul if you're a msdos user! ;-) If you find an error, : please report it. I'm particularly interested in establishing the : locations of generally available literate programming tools. If you are : the author of such a tool and wish to have it included in this list, : please send email. : Please note this is a work-in-progress. It is *not* complete, and : probably will not be complete for some months. Nevertheless, the : information contained herein may be useful to some. Use it as it is : intended. : - ---------------------------------------------------------------------- : - Typography : ------------ : Major sections of the FAQ are divided by double lines (====). Minor : sections and other divisions are separated by single lines (----). : Major topics use a "* " as a leader. Minor topics use a "- " as a : leader. This should simplify searching for topics. : = ====================================================================== : Table of Contents: : ------------------ : * Introduction, or "What's this all about?" : - Typography : * How do I get the FAQ? : - Literate Programming FAQ : - FWEB FAQ : * Is there a newsgroup? (The comp.programming.literate newsgroup) : * What internet nodes are of interest to literate programmers? : * What is literate programming? : * How do I begin literate programming? : * What literate programming tools are available and where are they? : - APLWEB : - AWEB : - CLiP : - CWEB : - FunnelWeb : - FWEB : - IMPACT : - lit2x : - Literate Programmer's Workshop (LPW) : - MapleWEB : - MWEB (Schrod/Detig) : - MWEB (Sewell) : - noweb : - nuweb : - ProTeX : - RWEB : - SchemeWEB : - Spidery WEB : - WEB : - WinWordWEB : * Are there other tools I should know about? : - C2LaTeX : - c2cweb : - c2man : - cnoweb : - Fold2web : - FunnelWeb mode : - noweb.el : - nuweb.el : - TIE : - Web mode : * What other resources are available? : - World Wide Web : - TeX Resources : - Virtual Coursework : * Are there any code examples? : - Examples included with developer's tools : - Cameron Smith's KR-CWEB : - Stanford GraphBase : * Bibliographies. : * How to anonymously ftp. : * Acknowledgements. : * End notes. : = ====================================================================== : * How do I get the FAQ? : ----------------------- : - Literate Programming FAQ : -------------------------- : You have many ways to get a current copy of this FAQ. One is to use : anonymous ftp (if you don't know how, see a later section in this FAQ) : to connect to one of the Comprehensive TeX Arvchive Network (CTAN) sites : or the Literate Programming Archive and retrieve a copy of the file. : Open an ftp connection to one of the CTAN sites and retrieve the file: : help/LitProg-FAQ : (For more information on CTAN and the literate programming archive, see : the section below entitled "Internet Nodes of Interest to Literate : Programmers.") : An alternative is to use the fileserver at Sam Houston State University : (SHSU). Send a message to FILESERV@SHSU.EDU and include in your : message: : SENDME LITPROG.FAQ : The file server will forward a copy of the file to you via email. : - ---------------------------------------------------------------------- : - FWEB FAQ : ---------- : David Coker now maintains the FWEB FAQ. (We : all owe Marcus Speh a big THANK YOU for maintaining the FWEB FAQ for so : long!) The current version number is 1.30a. It can be retrieved in the : same way as this FAQ; either by anonymous ftp or through the SHSU file : server. On the SHSU server, the file name is FAQ.FWEB. Invoke your ftp : software, open a connection to NIORD.SHSU.EDU [192.92.115.8], attach to : the directory FAQ, and transfer the file FAQ.FWEB. : Alternatively, send a message to the file server, FILESERV@SHSU.EDU, and : include the following text in a one line message: : SENDME FAQ.FWEB : The file server will send the current version of the file via email. : The FWEB FAQ exists in various formats, including HyperText (see other : resources below). In Europe, the complete distribution can also be : obtained from ftp.desy.de [131.169.10.115] in directory : /pub/faq/web/fweb/. It is also available from the literate programming : archive (LPA) in the directory LPA/Documentation/faq/fweb (see the : references to LPA below for more information). : = ====================================================================== : * Is there a newsgroup? : ----------------------- : One of the most important resources is the literate programming : newsgroup, comp.programming.literate. You can read this newsgroup using : your standard reader. Altenatively, the newsgroup is gated to a mailing : list hosted by George Greenwade and Sam Houston State University. You : can subscribe by sending mail to the list-server, LISTSERV@SHSU.EDU, and : include in the message one line of text: : SUBSCRIBE LITPROG "your name in quotes" : The list is unmoderated; messages sent to litprog@shsu.edu are : automatically distributed to all subscribers and cross-posted to : comp.programming.literate. : Archives of the mailing list and newsgroup are maintained on : niord.shsu.edu [192.92.115.8] in the directory litprog. : = ====================================================================== : * What internet nodes are of interest to literate programmers? : -------------------------------------------------------------- : The principal nodes of interest to literate programmers are the Literate : Programming Archive (LPA hereafter) and the CTAN (Comprehensive TeX : Archive Network). : The Literate Programming Archive (LPA) is: : Node: ftp.th-darmstadt.de [130.83.55.75] : Directory: programming/literate-programming : Notes: Fastest response during off-U.S. [yep] business hours. : Participating hosts in the Comprehensive TeX Archive Network are: : ftp.dante.de (Deutschland) : -- anonymous ftp /tex-archive (/pub/tex /pub/archive) : -- gopher on node sun.dante.de : -- e-mail via ftpmail@dante.de : -- Administrator: : ftp.shsu.edu (Texas, USA) : -- anonymous ftp and gopher /tex-archive (/pub/tex /pub/archive) : -- NFS mountable from ftp.SHSU.edu:/pub/ftp/tex-archive : -- e-mail via ftpmail@ftp.SHSU.edu : -- World Wide Web access on www.SHSU.edu : -- Administrator: : ftp.tex.ac.uk (England) : -- anonymous ftp /tex-archive (/pub/tex /pub/archive) : -- gopher on node gopher.tex.ac.uk : -- NFS mountable from nfs.tex.ac.uk:/public/ctan/tex-archive : -- World Wide Web access on www.tex.ac.uk : -- Administrator: : A list of CTAN archive sites and their mirrors can be found on: : ftp.dante.de: /tex-archive/CTAN.sites : I presume that the other CTAN sites mirror this file, but have not checked. : As of my last check (September 1994), it contains: : "In order to reduce network load, it is recommended that you use the : Comprehensive TeX Archive Network (CTAN) host which is located in the : closest network proximity to your site." : : Known partial mirrors of the CTAN reside on (alphabetically): : dongpo.math.ncu.edu.tw (Taiwan) /tex-archive : ftp.adfa.oz.au (Australia) /pub/tex/ctan : ftp.muni.cz (The Czech Republic) /pub/tex/CTAN : ftp.cs.ruu.nl (The Netherlands) /pub/tex-archive : ftp.uu.net (Virginia, USA) /pub/text-processing/TeX : nic.switch.ch (Switzerland) /mirror/tex : Known mirrors of the CTAN reside on (alphabetically): : ftp.center.osaka-u.ac.jp (Japan) /CTAN : ftp.ccu.edu.tw (Taiwan) /pub/tex : ftp.cs.rmit.edu.au (Australia) /tex-archive : ftp.duke.edu (North Carolina, USA) /tex-archive : ftp.germany.eu.net (Deutschland) /pub/packages/TeX : ftp.gwdg.de (Deutschland) /pub/dante : ftp.jussieu.fr (France) /pub4/TeX/CTAN : ftp.loria.fr (France) /pub/unix/tex/ctan : ftp.mpi-sb.mpg.de (Deutschland) /pub4/tex/mirror/ftp.dante.de : ftp.uni-bielefeld.de (Deutschland) /pub/tex : ftp.uni-stuttgart.de (Deutschland) /tex-archive (/pub/tex) : ftpserver.nus.sg (Singapore) /pub/zi/TeX : src.doc.ic.ac.uk (England) /packages/tex/uk-tex : sunsite.unc.edu (North Carolina, USA) /pub/packages/TeX : wuarchive.wustl.edu (Missouri, USA) /packages/TeX : Other nodes and directories of interest include: : Node: niord.shsu.edu [192.92.115.8] : Directory: various (do some snooping!) : Notes: Has a gopher server. : Node: ftp.desy.de [131.169.10.115] : Directory: pub/web. Various documents, samples, and the FWEB FAQ. : Notes: Has a www server, http://info.desy.de:80/ : = ====================================================================== : * What is Literate Programming? : ------------------------------- : Literate programming is the combination of documentation and source : together in a fashion suited for reading by human beings. In fact, : literate programs should be enjoyable reading, even inviting! (Sorry : Bob, I couldn't resist!) In general, literate programs combine source : and documentation in a single file. Literate programming tools then : parse the file to produce either readable documentation or compilable : source. The WEB style of literate programming was created by D.E. Knuth : during the development of his TeX typsetting software. : All the original work revolves around a particular literate programming : tool called WEB. Knuth says: : The philosophy behind WEB is that an experienced system : programmer, who wants to provide the best possible : documentation of his or her software products, needs two : things simultaneously: a language like TeX for formatting, : and a language like C for programming. Neither type of : language can provide the best documentation by itself; but : when both are appropriately combined, we obtain a system : that is much more useful than either language separately. : The structure of a software program may be thought of as a : web that is made up of many interconnected pieces. To : document such a program we want to explain each individual : part of the web and how it relates to its neighbours. The : typographic tools provided by TeX give us an opportunity to : explain the local structure of each part by making that : structure visible, and the programming tools provided by : languages such as C or Fortran make it possible for us to : specify the algorithms formally and unambigously. By : combining the two, we can develop a style of programming : that maximizes our ability to perceive the structure of a : complex piece of software, and at the same time the : documented programs can be mechanically translated into a : working software system that matches the documentation. : Another author (Eric W. van Ammers) wrote me a short article treating : his opinions on literate programming. The text follows: : First observation on LP : About 90% of the disussion on this list is about problems with : applying some WEB-family member to a particular programming language or : a special documentation situation. This is ridiculous, I think. Let me : explain shortly why... : Lemma 1: : I have proposed for many years that programming has nothing to do : with programming langauges, i.e. a good programmer makes good programs : in any language (given some time to learn the syntax) and a bad : programmer will never make a good program, no matter the language he : uses (today many people share this view, fortunately). : Lemma 2: : Literate Programming has (in a certain way not yet completely understood) : to do with essential aspects of programming. : Conclusion 1: : A LP-tool should be independent of programming language. : Lemma 3: : It seems likely that the so called BOOK FORMAT PARADIGM [ref. 1] plays an : important role in making literate programs work. : Lemma 4: : There are very many documentation systems currently being used to produce : documents in the BOOK FORMAT. : Conclusion 2: : A LP-tool should be independent of the documentation system that the : program author whishes to use. : My remark some time ago that we should discuss the generic properties of : an LP-tool was based on the above observation. : References: : [1] Paul W. Oman and Curtus Cook. Typographical style is more than cosmetic. : CACM 33, 5, 506-520 (May 1990) : Second observation on LP : The idea of a literate program as a text book should be extendend : even further. I would like to see a literate program as an (in)formal : argument of the correctness of the program. : Thus a literate program should be like a textbook on mathematicics. : A mathematical textbook explains a theory in terms of lemma and : theorems. But the proofs are never formal in the sense that they are : obtaind by symbol manipulation of a proof checker. Rather the proofs are : by so called "informal rigour", i.e. by very precise and unambiguous : sentences in a natural language. : Eric W. van Ammers : Department of Computer Science : Wageningen Agricultural University : Dreijenplein 2 E-mail: ammers@rcl.wau.nl : 6703 HB Wageningen voice: +31 (0)8370 83356/84154 : The Netherlands fax: +31 (0)8370 84731 : Another author (Norman Ramsey) wrote me and asked that his opinions be included in : the FAQ. What follows are Norman's comments verbatim. : I see it's time for the ``how is literate programming different from : verbose commenting'' question. Perhaps David Thompson will get this : into the FAQ. Alert! What follows are my opinions. In no way do I : claim to speak for the (fractious) literate-programming community. : How is literate programming different from verbose commenting? : There are three distinguishing characteristics. In order of : importance, they are: : - flexible order of elaboration : - automatic support for browsing : - typeset documentation, especially diagrams and mathematics : Flexible order of elaboration means being able to divide your source : program into chunks and write the chunks in any order, independent of : the order required by the compiler. In principle, you can choose the : order best suited to explaining what you are doing. More subtly, this : discipline encourages the author of a literate program to take the : time to consider each fragment of the program in its proper sphere, : e.g., not to rush past the error checking to get to the ``good : parts.'' In its time and season, each part of the program is a good : part. (This is the party line; your mileage may vary.) : I find the reordering most useful for encapsulating tasks like input : validation, error checking, and printing output fit for humans --- all : tasks that tend to obscure ``real work'' when left inline. : Reordering is less important when using languages like Modula-3, which : has exceptions and permits declarations in any order, than when using : languages like C, which has no exceptions and requires declaration : before use. : Automatic support for browsing means getting a table of contents, : index, and cross-reference of your program. Cross-reference might be : printed, so that you could consult an index to look up the definition : of an identifier `foo'. With good tools, you might get a printed : mini-index on every page if you wanted. Or if you can use a hypertext : technology, cross-reference might be as simple as clicking on an : identifier to reach its definition. : Indexing is typically done automatically or `semi-automatically', the : latter meaning that identifier definitions are marked by hand. : Diligently done semi-automatic indexes seem to be best, because the : author can mark only the identifiers he or she considers important, : but automatic indexing can be almost as good and requires no work. : Some tools allow a mix of the two strategies. : Some people have applied literate-programming tools to large batches : of legacy code just to get the table of contents, index, and : cross-reference. : I don't use diagrams and mathematics very often, but I wouldn't want : to have to live without them. I have worked on one or two projects : where the ability to use mathematical formulae to document the program : was indispensible. I also wouldn't like to explain some of my : concurrent programs without diagrams. Actually I write almost all of : my literate programs using only sections headers, lists, and the : occasional table. : >Wouldn't it be easier to do one's literate programming using a wysiwyg : >word processor (e.g. Word for Windows) and indicate what is source : >code by putting it in a different font? : The data formats used in wysiwyg products are proprietary, and they : tend to be documented badly if at all. They are subject to change at : the whim of the manufacturer. (I'll go out on a limb and say there : are no significant wysiwyg tools in the public domain. I hope the : Andrew people will forgive me.) These conditions make it nearly : impossible to write tools, especially tools that provide automatic : indexing and cross-reference support. The CLiP people have a partial : solution that works for tools that can export text --- they plant tags : and delimiters throughout the document that enable the reordering : transformation (``tangling''). : People use TeX, roff, and HTML because free implementations of these : tools are widely available on a variety of platforms. TeX and HTML : are well documented, and TeX and roff are stable. TeX is the most : portable. I think I have just answered the FAQ ``how come all these : tools use TeX, anyway?'' :-) : Norman Ramsey : = ====================================================================== : * How do I begin literate programming? : -------------------------------------- : A recommended book is D.E. Knuth's collection of articles (1992) : "Literate Programming," Center for the Study of Language and : Information, Stanford University, ISBN 0-937073-80-6 (pbk). This book : gives insight into Knuth's thoughts as he developed the web system of : literate programming (and TeX for typesetting). It does not document : methods for literate programming. : A recommended book is Wayne Sewell's (1989) "Weaving a Program: Literate : Programming in WEB," Van Nostrand Reinhold, ISBN 0-442-31946-0 (pbk). : This book focuses on using Knuth's web system. : Some talk exists in the newsgroup/mailing list for a Usenet University : course in literate programming. I'm sure discussion of this topic will : be welcomed. If you are interested, please participate. : = ====================================================================== : * What literate programming tools are available and where are they? : ------------------------------------------------------------------- : A significant number of tools for literate programming are available. : Most have been ported from their original systems, so support multiple : computer platforms. If you are the developer of such a tool, and would : like to make the software freely available, please send me email and : I'll reply with a form (like those below) for you to fill in. (Or : short-circuit the process and kludge a form from below. :-) : - ---------------------------------------------------------------------- : - APLWEB : -------- : Developer: Christoph von Basum : Version: Unknown : Hardware: MSDOS : Languages: IBM APL2 and STSC APL : Formatter: Plain TeX : Availability: Anonymous ftp from: : LPA:/apl : watserv1.uwaterloo.ca:/languages/apl/aplweb : Readme: Unknown : Description: None available. : Support: Unknown : Note: The status of this particular package is unknown. : - ---------------------------------------------------------------------- : - AWEB : ------ : Developer: Unknown : Version: Unknown : Hardware: Unknown : Languages: Ada : Formatter: Unknown : Availability: Anonymous ftp from: : LPA:/ada/web : Readme: Unknown : Description: None available : Support: Not supported. : - ---------------------------------------------------------------------- : - CLiP : ------ : Developer: E.W. van Ammers and M.R. Kramer : Version: Unknown : Hardware: Vax/VMS, Unix, and MS-DOS : Languages: Any programming language. : Formatter: Any formatter (TeX, LaTeX, Troff, Runoff, etc) or any : wordprocessor including WYSIWYG systems (Word Perfect, : Win Word, Ami Pro, Word, etc.) : Availability: Anonymous ftp from: : sun01.info.wau.nl:/CLIP/ms_dos MS-DOS version : sun01.info.wau.nl:/CLIP/vax_vms VAX/VMS version : CTAN:/web/clip : LPA:/machines/ms-dos : LPA:/machines/vax : Readme: With bundle above : Description: : CLiP does not use explicite commands to perform the extraction : process. Rather it recognizes pseudostatemens written as comments in : the programming language in question. CLiP distinguishes : pseudostatments from ordinary comments because the former comply with : a a particular style. This style can be adjusted to suit virtually any : programming language. The CLiP approach to LP makes the system : extremely versatile. It is independent of programming language and : text processing environment. We designed CLiP to be compatible with : hypertext systems as well but we have not yet experimented with this : form of documentation. : Features: : + CLiP imposes virtually no limitations on the text-processing system : used to produce the documentation. If the text-processor supports : these items you can : + structure the documentation according to your own taste. : + include drawings, pictures, tables etc. : + disclose your documentatio my means of X-ref tables, Indexes, : Table of contents, Table of tables, Table of figures, etc. : + typeset the documented code. : + Extracts any number of modules from a maximum of 64 source files. : + No pretty-printing. Code from the source files is copied "as is" to : the module. : + Appearance of code segments in the documentation matches those of : the modules to ease the identification of code segements. : + Supports partially specified data types. : + Comprehensive user manual (preliminary version) and technical : description. : - No automatic generation of a X-ref table for program identifiers. : Support: Bugs, problems and assistance by e-mail: : ammers@rcl.wau.nl : - ---------------------------------------------------------------------- : - CWEB : ------ : Developer: Silvio Levy and D.E. Knuth : Version: 3.0 : Hardware: Unix systems (dos and amiga ports available) : Languages: C and C++ : Formatter: Plain TeX and LaTeX. : Availability: Anonymous ftp from: : labrea.stanford.edu:/pub/cweb : LPA:/c.c++ : CTAN:/web/c_cpp/cweb : DOS version in CTAN:/web/c_cpp/cwb30p8c : DOS version in LPA:/machines/ms-dos : Amiga version CTAN:/web/c_cpp/AmigaCWEB : Mac port of CTANGLE in LPA:/machines/mac : LaTeX support in LPA:/c.c++ : Readme: Bundled with above : Description: No description provided. : Support: Bugs to levy@math.berkeley.edu : Note: A fork of CWEB 3.x was developed by Marc van Leeuwen : which implements several changes to CWEB. It is : available for anonymous ftp from ftp.cwi.nl:pub/cweb. The principle : changes are: : - Scans include files for typedef definitions : - Grammar and formatting rules are well separated, allowing for : run-time selection of a rule set (via command line option) : - New manual. : - ---------------------------------------------------------------------- : - FunnelWeb : ----------- : Developer: Ross N. Williams: ross@guest.adelaide.edu.au : Version: Unknown : Hardware: MSDOS, Mac, VMS, Sun. Other ports reported. : Languages: No restrictions. : Formatter: Plain TeX for printing. Otherwise, no restrictions. : Availability: Anonymous ftp from: : CTAN:/web/funnelweb : LPA:/independent : ftp.adelaide.edu.au:/pub/funnelweb : Readme: With bundle above. : Description: : FunnelWeb is a production-quality literate-programming tool that : emphasises simplicity and reliability. Everything about FunnelWeb, : from the simplicity of its language to the comprehensive tutorial in : the user's manual, has been designed to make this as simple, as : practical, and as usable a tool as possible. : Features: : + Provides a simple macro preprocessor facility. : + Can produce typeset documentation. : + Runs on Sun, VMS VAX, Macintosh, PC, and others. : + Portable C source code distributed under GNU licence. : + Comprehensive user's manual including tutorial. : + Programming-language independent. : + Can generate multiple output files. : + Allows complete control over the output text. : + Regression test suite with over 200 tests. : + Fully worked example (in /pub/funnelweb/examples). : - Requires TeX to produce typeset documentation. : - Typesets program code using TT font only. : Support: No formal support available. Mailing list maintained with : about 50 subscribers. Informal assistance available from : mailing list. : - ---------------------------------------------------------------------- : - FWEB : ------ : Developer: John A. Krommes : Version: 1.30a (1.40 for the experienced, patient, and brave) : Hardware: Unix, VMS, and DOS platforms (anything with ANSI C) : Languages: C, C++, Fortran-77, Fortran-90, Ratfor, TeX; also, a : language-independent mode. : Formatter: Plain TeX and LaTeX. : Availability: Anonymous ftp from: : ftp.pppl.gov:/pub/fweb : CTAN:/web/fweb : LPA:/fweb : DOS version in LPA:/machines/ms-dos : Readme: In bundle with above. : Description: : It also has a well-developed user's manual and its own FAQ (see : above). Beginning with 1.40, documentation is maintained in gnu : texinfo format. It runs on most platforms: VMS, PC, UNIX, and pretty : much anything that the GNU C compiler (GCC) is supported for. : Features: : + Processes multiple languages during a single run (so one can mix C : and Fortran, for example). : + Language-independent mode (v1.40). : + Ability to turn off pretty-printing (v1.40). : + Built-in Ratfor translator. : + Built-in macro preprocessor (closely follows ANSI C, with : extensions). : + A style file that allows the user to adjust many parameters and : behavior patterns of FWEB. : + Various operator-overloading features that provide additional : pretty-printing capabilities to languages such as C++ and : Fortran-90. : + Numerous miscellaneous features and command-line options. : Support: Bug reports and suggestions to krommes@princeton.edu : - ---------------------------------------------------------------------- : - IMPACT : -------- : Developer: Timothy Larkin, from Levy/Knuth CWEB 3.1 : Version: 1.0 : Hardware: Macintosh; requires AppleEvents. : Languages: C, C++ : Formatter: TeX : Availability: CTAN archives : Readme: A short readme file is included in the SEA archive. : Description: : IMPACT implements CTangle from the Levy/Knuth CWEB 3.1. It operates as : a foreground program, tangling files selected from the Mac File : Picker. Or it can operate in the background, tangling files in : response to odoc events sent by other applications, such as editors. : Support: : I welcome any reports of bugs. The product will be updated as new : versions of the CWEB appear. Other features may be added as users : suggest them. : - ---------------------------------------------------------------------- : - lit2x : ------- : Developer: Unknown : Version: Unknown : Hardware: Unknown : Languages: Unknown : Formatter: Unknown : Availability: Anonymous ftp from: : LPA:/independent : Readme: Unknown : Description: None available : Support: Unknown : - ---------------------------------------------------------------------- : - Literate Programmer's Workshop (LPW) : -------------------------------------- : Developer: Norbert Lindenberg : Version: 1.1 : Hardware: Apple Macintosh : Languages: C++, Object Pascal & others : Formatter: self-contained WYSIWYG system : Availability: Anonymous ftp from: : LPA:/machines/mac : CTAN:/web/lpw : ftp.apple.com:/pub/literate.prog : Readme: With bundle above. Also comes with 38-page manual. : Description: : The Literate Programming Workshop is an environment for the integrated : development of program source text and documentation in combined : documents. It consists of a WYSIWYG word processor based on a style : sheet approach, a mechanism to extract parts of the text in a : document, and a project management system that handles multi-document : projects. The system is designed to be used in conjunction with the : Macintosh Programmer's Workshop: it prepares raw source text for the : MPW compilers, accepts MPW error messages, and shows them in the : context of the original documents. Automatic indexing and hypertext : features allow for easy access to both source text and documentation. : LPW is shareware. : Support: Bugs, problems, and questions to lpw@aol.com. : - ---------------------------------------------------------------------- : - MapleWEB : ---------- : Developer: Unknown : Version: Unknown : Hardware: Unknown : Languages: Maple : Formatter: Unknown : Availability: Anonymous ftp from: : LPA:/maple : Readme: Unknown : Description: None : Support: Unknown : - ---------------------------------------------------------------------- : - MWEB (Schrod/Detig) : --------------------- : Developer: Joachim Schrod : Version: Unknown : Hardware: Unknown : Languages: Modula-2 : Formatter: Unknown : Availability: Anonymous ftp from: : LPA:/modula-2 : Readme: Unknown : Description: None : Support: Not supported. : - ---------------------------------------------------------------------- : - MWEB (Sewell) : --------------- : Developer: Sewell : Version: Unknown : Hardware: Unknown : Languages: Modula-2 : Formatter: Unknown : Availability: Anonymous ftp from: : LPA:/modula-2 : Readme: Unknown : Description: None : Support: Not supported. : - ---------------------------------------------------------------------- : - noweb : ------- : Developer: Norman Ramsey : Version: 2.7a : Hardware: Unix and DOS platforms. : Languages: All programming languages. : Automatic indexing for C, Icon, Standard ML, TeX, Yacc : Formatter: Plain TeX, LaTeX, and HTML (Mosaic/Netscape) formatters. : Availability: Anonymous ftp from: : CTAN:/web/noweb : LPA:/independent : Last recourse, use bellcore.com:/pub/norman : Readme: With bundle above, or see ``Literate Programming : Simplified,'' IEEE Software, September 1994, pp97-105. : Description: : noweb is designed to meet the needs of literate programmers while : retaining the simplest possible input format. Its primary : advantages are simplicity, extensibility, and language-independence. : noweb uses 5 control sequences to WEB's 27. The simple noweb manual is : only 2 pages; documenting the full power of noweave and notangle : requires another 3 pages. noweb works ``out of the box'' with any : programming language, and a simple back end for a new text formatter : can be written in about 50 lines of awk. The primary sacrifice : relative to WEB is the loss of prettyprinting. : noweb supports indexing and identifier cross-reference, including : hypertext ``hot links'' courtesy of Mosaic or Netscape. noweb : includes a simple, efficient LaTeX-to-HTML converter, so you can use : hypertext browsers on your legacy documents. noweb can also process : nuweb programs, so you can use noweb to convert a standard nuweb : program to HTML with one command. : Support: email to the author : - ---------------------------------------------------------------------- : - nuweb : ------- : Developer: Preston Briggs: preston@cs.rice.edu : Version: 0.87 : Hardware: Unix systems: Sparcs, RS/6000s, HPs; (!) MSDOS and Amiga. : Languages: Any programming language or combination of programming : languages. : Formatter: Latex : Availability: Anonymous ftp from: : Unix: CTAN:/web/nuweb : DOS: CTAN:/web/nuweb-pc : LPA:/independent : Amiga: CTAN:/web/nuweb/nuweb_ami : Amiga: wuarchive.wustl.edu/pub/aminet : Readme: Send mail to preston@cs.rice.edu : Description: : A single program that takes a web file written in a combination of : latex and any programming language(s) and produces a latex file that : can be pretty printed and a set of files containing code for : compilation/interpretation by the appropriate language processors. : Strengths include speed, simplicity, multiple languages, nice indices : and cross-references, latex. Doesn't require any special macros or : macro files. : Drawbacks: latex-dependent, no code pretty printing, harder to make : indices than cweb. : More good stuff: nice support for make, doesn't reformat source files, : so they're easy to debug. Lots of control without too much effort. : That is, it doesn't do too much! : Future directions... Very little change planned, except perhaps : refinements in the indexing software. : Support: Hack it yourself or send e-mail to preston@cs.rice.edu : - ---------------------------------------------------------------------- : - ProTeX : -------- : Developer: Eitan Gurari : Version: ProTeX 1.1, AlProTeX 1.4 : Hardware: Any platform with (La)TeX : Languages: Any language : Formatter: TeX or LaTeX : Availability: Anonymous ftp from: : ftp.cis.ohio-state.edu : pub/tex/osu/gurari/ : LPA:/independent : Readme: With bundle above : Description: : + Easy to use : + Extensible : + Language independent : + Multiple output files : + Fast (single compilation provides output and dvi files) : + No installation is needed besides copying the files (written in TeX) : Introduction of main features and examples in pub/tex/osu/gurari/LitProg : Complete manual in Eitan M. Gurari, "TeX and LaTeX: Drawing and : Literate Programming", McGraw-Hill, 1994 : Support: gurari@cis.ohio-state.edu : - ---------------------------------------------------------------------- : - RWEB : ------ : Developer: Unknown : Version: Unknown : Hardware: Unknown : Languages: Unknown : Formatter: Unknown : Availability: Anonymous ftp from: : LPA:/reduce : Readme: Unknown : Description: Web generator in AWK. : Support: Unknown : - ---------------------------------------------------------------------- : - SchemeWEB : ----------- : Developer: John D. Ramsdell : Version: 2.1 : Hardware: Unix and DOS platforms : Languages: Any dialect of Lisp. : Formatter: LaTeX. : Availability: The Unix version is in the Scheme Repository and it is : available via anonymous ftp from: : cs.indiana.edu:/pub/scheme-repository/utl/schemeweb.sh : LPA:/lisp : CTAN:/tex-archive/web/schemeweb : The DOS version is part of the PCS/Geneva Scheme system : which is available via anonymous ftp from: : cui.unige.ch:/pub/pcs : LPA:/machines/ms-dos : Readme: In bundle with above. : Description: : SchemeWEB is a Unix filter that allows you to generate both Lisp and : LaTeX code from one source file. The generated LaTeX code formats : Lisp programs in typewriter font obeying the spacing in the source : file. Comments can include arbitrary LaTeX commands. SchemeWEB was : originally developed for the Scheme dialect of Lisp, but it can easily : be used with most other dialects. : Support: Bug reports to ramsdell@mitre.org. : - ---------------------------------------------------------------------- : - SpideryWEB : ------------ : Developer: Norman Ramsey : Version: Unknown : Hardware: Unix and DOS platforms : Languages: Most Algol-like languages, including C, Ada, Pascal, : Awk, and many others. : Formatter: Plain TeX and latex for text formatters. : Availability: Anonymous ftp from: : CTAN : LPA:/spiderweb : Readme: In distribution. : Description: : A system for building language-dependent WEBs. Spider is frozen; no : further development is planned. : Support: Bug reports to spider-bugs@oracorp.com. : - ---------------------------------------------------------------------- : - WEB : ----- : Developer: Donald Knuth : Version: Unknown : Hardware: Unknown : Languages: Pascal : Formatter: TeX (of course! ;-) : Availability: Anonymous ftp from: : LPA:/pascal : Readme: Unknown : Description: : This is the original software that started it all. The original TeX : processor was written in WEB. : Support: None known. : - ---------------------------------------------------------------------- : - WinWordWEB : ------------ : Developer: Lee Wittenberg : Version: Unknown : Hardware: Needs Microsoft Word for Windows, v.2.x, and, of course, : MS-Windows 3.x. : Languages: Any programming language. : Formatter: Word for Windows 2.x for text formatting and file : maintenance. : Availability: Anonymous ftp from: : bart.kean.edu:pub/leew : LPA:/machines/ms-dos : World-Wide Web (WWW) : Readme: WORDWEB.DOC in the downloadable package describes the : system. : Description: : WinWordWEB is a set of a Word for Windows macros (plus a paragraph : style) that provide a crude literate programming environment. The : ``look and feel'' of the system is based on Norman Ramsey's noweb, but : can easily be modified to suit individual tastes. : Support: : None. WinWordWEB was written as a prototype to see if a WYSIWYG : literate programming system was possible. It is intended as a jumping : off point for future work by others. However, the system is : surprisingly usable as it stands, and the author is interested in : hearing from users (satisfied and dissatisfied). : Anyone interested in actively supporting (and improving) the product : should contact the author via email. : = ====================================================================== : * Are there other tools I should know about? : -------------------------------------------- : First of all, I'll list some not-quite-literate-programming tools. : Some may consider these to be pretty-printers. Others may call them : literate programming tools. In any event, they don't seem to be quite : in the same category as the tools listed above, so I'll include them : here. : - C2LaTeX : --------- : Developer: John D. Ramsdell : Version: Unknown : Hardware: Unix : Languages: C : Formatter: LaTeX but it's easy to change the formatter. : Availability: Anonymous ftp from : omnigate.clarkson.edu:/pub/tex/tex-programs/c2latex. : Readme: Absent. Documentation is in the C source for c2latex. : Description: : C2latex provides simple support for literate programming in C. Given : a C source file in which the comments have been written in LaTeX, : c2latex converts the C source file into a LaTeX source file. It can : be used to produce typeset listings of C programs and/or documentation : associated with the program. : C2latex produces LaTeX source by implementing a small number of rules. : A C comment that starts at the beginning of a line is copied : unmodified into the LaTeX source file. Otherwise, non-blank lines are : surrounded by a pair of formatting commands (\begin{flushleft} and : \end{flushleft}), and the lines are separated by \\*. Each non-blank : line is formatted using LaTeX's \verb command, except comments within : the line are formatted in an \mbox. : Support: Send bug reports to ramsdell@mitre.org. : - ---------------------------------------------------------------------- : - c2cweb : -------- : Developer: Werner Lemberg : Version: 1.4 : Hardware: DOS, OS/2, Unix (gcc) - CWEB source included : Languages: C, C++ : Formatter: TeX : Availability: Anonymous ftp from : CTAN:/web/c_cpp/c2cweb : Readme: In distribution. : Description: : c2cweb will transform plain C or C++ code into a CWEB file to get a : pretty formatted output. A modified CWEAVE (which transforms the CWEB : file into a TeX file, see below) is included also. : Support: Werner Lemberg : - ---------------------------------------------------------------------- : - c2man : ------- : language: C, nroff, texinfo, latex, html : package: c2man : version: 2.0 patchlevel 33 : parts: documentation generator (C -> nroff -man, -> texinfo, ->latex, : -> html) : author: Graham Stoney : location: ftp from any comp.sources.misc archive, in volume42 : (the version in the comp.sources.reviewed archive is obsolete) : ftp /pub/Unix/Util/c2man-2.0.*.tar.gz from dnpap.et.tudelft.nl : Australia: ftp /usenet/comp.sources.misc/volume42/c2man-2.0/* : from archie.au : N.America: ftp /usenet/comp.sources.misc/volume42/c2man-2.0/* : from ftp.wustl.edu : Europe: ftp /News/comp.sources.misc/volume42/c2man-2.0/* : from ftp.irisa.fr : Japan: ftp /pub/NetNews/comp.sources.misc/volume42/c2man-2.0/* : from ftp.iij.ad.jp : Patches: ftp pub/netnews/sources.bugs/volume93/sep/c2man* from lth.se : description: c2man is an automatic documentation tool that extracts comments : from C source code to generate functional interface : documentation in the same format as sections 2 & 3 of the Unix : Programmer's Manual. It requires minimal effort from the : programmer by looking for comments in the usual places near the : objects they document, rather than imposing a rigid : function-comment syntax or requiring that the programmer learn : and use a typesetting language. Acceptable documentation can : often be generated from existing code with no modifications. : conformance: supports both K&R and ISO/ANSI C coding styles : features: + generates output in nroff -man, TeXinfo, LaTeX or HTML : format : + handles comments as part of the language grammar : + automagically documents enum parameter & return values : + handles C (/* */) and C++ (//) style comments : - doesn't handle C++ grammar (yet) : requires: yacc/byacc/bison, lex/flex, and nroff/groff/texinfo/LaTeX. : ports: Unix, OS/2, MSDOS, VMS. : portability: very high for unix, via Configure : status: actively developed; contributions by users are encouraged. : discussion: via a mailing list: send "subscribe c2man " (in the : message body) to listserv@research.canon.oz.au : help: from the author and other users on the mailing list: : c2man@research.canon.oz.au : announcements: patches appear first in comp.sources.bugs, and then in : comp.sources.misc. : updated: 1994/10/07 : - ---------------------------------------------------------------------- : - cnoweb : -------- : Developer: Jim Fox : Version: 1.4 (January 4, 1991) : Hardware: Anything with C and TeX. : Languages: C : Formatter: Plain TeX. : Availability: Anonymous ftp from: : CTAN : LPA:/c.c++ : Readme: Unknown, cnoweb.tex contains documentation. : Description: : cnoweb is as it's name describes: write C, not web. No tangling or : weaving is implemented. Documentation (between standard /* */ : delimiteres) is written in TeX. cnoweb provides typesetting of : documentation, an table of contents of routines, and pretty-printing : of C source. : Support: None known. : - ---------------------------------------------------------------------- : - Fold2Web : ---------- : Developer: Bernhard Lang : Version: V0.8 : Hardware: MSDOS : Languages: All (must allow comment lines) : Formatter: LaTeX : Availability: Anonymous ftp from: : kirk.ti1.tu-harburg.de (134.28.41.50) : /pub/fold2web/readme : /pub/fold2web/fold2web.zip : Readme: In distribution : Description: : The idea behind the Fold2Web tool is the following: A programmer can : write his program source with a folding editor and later map the : folded source files automatically to WEB-files. The generated WEB-files : can then be modified by inserting required documentations. : : The advantage by starting program developement with original sources is : to get short design cycles during the compile/debug steps. By using a : folding editor the global structuring information can be already : captured in folds during this developement phase. Fold information is : typically stored in comment lines and thus will not affect the : efficiency of the compile/debug design cycle. : : Some folding editors and a folding mode for the emacs are available : (e.g. see our FUE folding editor for MSDOS machines which is a modified : micro emacs. Pick it at kirk in directory /pub/fold2web). : : After reaching a stable version of a program source its time to convert : the source file to a WEB-file and do the program documentation. : Fold2Web is written to convert folded source text of any programming : language to nuweb files. The folded structure is kept by mapping folds : to scraps. Fold markers which differ between languages due to different : ways of specifying comments can be configured for each language. : : Good results can also achived when given but poor documented program : sources have to be modified. Such sources can be folded using a folding : editor to extract the global structures. This offers a global view to : the program structures and help to understand its functionality. : Furthermore the program code is not affected, only comment lines are : inserted. Once folded the program source can be automatically : translated to a WEB document using the above tool. : Support: email to lang@tu-harburg.d400.de : - ---------------------------------------------------------------------- : - Funnelweb Mode : ---------------- : Developer: Daniel Simmons : Version: Unknown : Availability: Litprog archives (was in email) : Anonymous ftp from: : ftp.imada.ou.dk : Description: : The other day I did a quick hack to nuweb.el as included with the nuweb : distribution so as to make a funnelweb-mode.el. I've only used it : briefly, and I'm sure that it can be improved quite a bit. I've been : thinking about adding support for folding on sections, a pull-down menu : to select macro definitions (like the recent functions posted to : gnu.emacs.sources for a C function definition pull-down menu) and some : kind of tags support for funnelweb. : Support: Unknown : - ---------------------------------------------------------------------- : - noweb.el : ---------- : Developer: Bruce Stephens : Version: Unknown. : Availability: LitProg archives (in an email message). : Description: : This is a very simple mode I just hacked up. There's a lot wrong with : it, but I thought others may be interested, even as it stands. It : *requires* text properties, and assumes those used in GNU Emacs 19.22; : it'll quite likely work with Lucid Emacs, but I haven't tried it. : I use it with auctex8.1 and cc-mode 3.229, both of which are loaded : separately (I think my emacs is dumped with them, in fact). : The idea is to have one mode (which calls itself c-mode, but actually : has LaTeX-mode keybindings) generally (this means that the code is : hilighted nicely), and have the code chunks use a different keymap. : Support: Email to bruce@liverpool.ac.uk : - ---------------------------------------------------------------------- : - nuweb.el : ---------- : Developer: Dominique de Waleffe : Version: 1.99 : Availability: Anonymous ftp from: : LPA : CTAN : Description: : Provides a major mode extending Auctex for editing nuweb files. Main : features (in 2.0): : - Edit scrap bodies in a separate buffer in a different mode : (selected using emacs defaults for files, specific indication : -*-mode-*-, or a buffer-local variable) : - Extends Auctex commands so that nuweb is called before LaTeX, : - Easy navigation on scrap definition and use points. : - Now creates an imenu (C-M-mouse1) with user index entries, macro : definition positions and file definition positions. : Support: Email to ddw@acm.org : - ---------------------------------------------------------------------- : - TIE : ----- : Developer: Unknown : Version: Unknown : Hardware: Unknown : Availability: Anonymous ftp from: : LPA:/Tools : Readme: Unknown : Description: : This software merges change files. : Support: Unknown : - ---------------------------------------------------------------------- : - Web mode : ---------- : Developer: Bart Childs : Version: Unknown : Tools supported: web, fweb, cweb, funnelweb : Availability: Anonymous ftp from : ftp.cs.tamu.edu:pub/tex-web/web/EMACS.web-mode : thrain.anu.edu.au:pub/web/EMACS.web-mode : Description: : This version works with versions 18 and 19 of Emacs to be best of my : knowledge. I have cleaned up a number of documentation items ... : In the same directory is wm_refcard.tex which is an edited version of : the famous one to include some web-mode commands. : The files limbo* are related to its use and notice that half them : have an uppercase L in them for LaTeX. The setup is based upon the : fact that we (I am not alone here) primarily use FWEB for C and Fortran : programming. : We are using version 1.40 of FWEB although John Krommes warns that it : is not mature and the manual is not yet updated. The info files are! : We are using LaTeX almost exclusively. That will likely change and we : will revert to version 1.30 if the final form of 1.40 cannot return : to the simple section numbers and avoid the HORRIBLE LATEX 0.1.7.2.4.6 : type section numbers. : Support: Unknown : = ====================================================================== : * What other resources are available? : ------------------------------------- : - World Wide Web : ---------------- : An untapped resource (by me anyway ;-) is the World Wide Web. Marcus : Speh has expended considerable effort in this regard. If you're : connected to WWW, then access: : http://info.desy.de:80/user/projects/LitProg.html : If you aren't connected to WWW, telnet to info.cern.ch and explore. : You can reach Marcus' literate programming pages by typing: : go http://info.desy.de:80/user/projects/LitProg.html : or use a WWW browser and access the URL : ftp://rtfm.mit.edu/pub/usenet/news-answers/www/resources/literate-programming : Help for people who have only Email and neither WWW nor telnet, can be : obtained by Email from TEST-LIST@INFO.CERN.CH by sending a message, : SEND , : for example, : SEND http://info.desy.de:80/user/projects/LitProg.html : to retrieve the LitProg library page. A help file can be retrieved by : sending a message to the list server above with the text : HELP : in the body of the message. Instructions will be returned by email. For : literate programming documents, you can try anonymous ftp to : rtfm.mit.edu and retrieve the official Usenet resource file : /pub/usenet/news.answers/www/resources/literate-programming : - ---------------------------------------------------------------------- : - TeX Resources : --------------- : Another resource of interest to literate programmers is the info-tex : mailing list. If you're using (La)TeX as your typsetting system and : have access to internet, then you should investigate this mailing list. : Mail list service is available through the SHSU list-server. To : subscribe, send a message to LISTSERV@SHSU.EDU, and include in the : message one line of text: : SUBSCRIBE INFO-TEX "your name in quotes" : The list is unmoderated; messages sent to info-tex@shsu.edu are : automatically distributed to all subscribers and cross-posted to : comp.text.tex. : Archives of the mailing list and newsgroup are maintained on : niord.shsu.edu [192.92.115.8] in the directory info-tex. : Another reason the TeX resources should be important is that so many of : the literate programming tools rely on either plain TeX or LaTeX as : their text formatter. (La)TeX software systems exist for most computing : platforms. These systems can be found on CTAN and other major archive : sites. Use archie to find them or simply ftp to one of the CTAN : sites and browse. : - ---------------------------------------------------------------------- : - Virtual Coursework : -------------------- : Marcus Speh plans an introductory course on Literate Programming on the : Internet, part of the first semester of "Global Network Academy" [GNA], : a non-profit corporation incorporated in the state of Texas, affilated : with the Usenet University project. The texts/sample programs for this : class will be made available via the World-Wide Web. A special room on GNA : Virtual Campus will be staffed by a consultant in one to two hour : shifts. Students with questions can telnet to the virtual campus and : ask questions of the staff there. If you are interested in : registering for the course either as a student or as a consultant, : please contact marcus@x4u.desy.de. You will receive a standard reply : message; no further action will be taken until June 94. Interested : parties can check the hypertext notes for the completed C++ Course done in : a similar fashion, at URL http://info.desy.de:80/pub/uu-gna/html/cc/index.html : [Editor's note: Because of workload, Marcus requests that email : inquiries be limited to a statement of interest for either a student or : consultant position until June 1994.] : = ====================================================================== : * Are there any code examples? : ------------------------------ : Examples of web programs are included with the FWEB, CWEB, and noweb : distributions. nuweb is written in itself. : Cameron Smith converted the K&R calculator program into a literate : program. It can be retrieved by anonymous ftp from: : niord.shsu.edu [192.92.115.8] directory kr-cweb-sample as : krcwsamp.zip : or from : LPA/Documentation : Ross Williams has released a funnelweb example. You can retrieve this : file from node ftp.adelaide.edu.au [129.127.40.3] as : /pub/funnelweb/examples/except.* : This file should be on CTAN as well. : Lee Wittenberg has posted a few litprog examples. They are available : via anonymous ftp from: : bart.kean.edu:/pub/leew/samples.LP : The Stanford GraphBase is a large collection of programs by Don Knuth for : doing all kinds of computations and games with graphs; it is written in : (Levy/Knuth) CWEB. More details in the distribution. It is available : via anonymous ftp from: : labrea.stanford.edu:/pub/sgb : = ====================================================================== : * Bibliographies : ---------------- : Nelson Beebe has collected an extensive bibliography treating literate : programming. His work is available for anonymous ftp from : ftp.math.utah.edu [128.110.198.2] in directory /pub/tex/bib as files: : litprog.bib : litprog.ltx : litprog.twx. : Although I have not verified this, LPA is an alternate source for these : files. Note that they are updated frequently (Nelson says several times : each week), so be sure to get a fresh copy before extensive use. : Joachim Schrod indicates that these files may be updated daily and can : be retrieved via anonymous ftp at LPA/documentation. : = ====================================================================== : * How to anonymously ftp : ------------------------ : Pretty much everything mentioned here is available by anonymous FTP. : FAQ lists cross-posted to news.answers and rec.answers can be gotten : from rtfm.mit.edu [18.181.0.24], under /pub/usenet/news.answers or under : /pub/usenet/more.specific.group.name : "anonymous FTP" is just a way for files to be stored where anyone : can retrieve them over the Net. For example, to retrieve the : latest version of the literate programming FAQ, do the following: : > ftp rtfm.mit.edu /* connect to the site; message follows */ : > anonymous /* type this when it asks for your name */ : > /* type your address as the password */ : > cd /pub/usenet /* go to the directory you want to be */ : > cd comp.programming.literate /* one level down (no slash). */ : > dir /* look at what's there */ : > get literate-progamming-faq /* get the file; case-sensitive */ : > quit /* stop this mysterious thing */ : If your FTP program complains that it doesn't know where the site you : want to use is, type the numerical address instead of the sitename: : > ftp 18.181.0.24 /* connect with numerical address */ : If you don't have ftp access, send e-mail to mail-server@rtfm.mit.edu : with the single word "help" in the body of the message. : Getting binary files (executables, or any compressed files) is only : slightly more difficult. You need to set binary mode inside FTP before : you transfer the file. : > binary /* set binary transfer mode */ : > ascii /* set back to text transfer mode */ : FAQs and spoiler lists are generally ascii files; everything else is : generally binary files. : Some common extensions on binary files in archive sites are: : .Z Compressed; extract with uncompress : .tar.Z Compressed 'tape archive'; uncompress then untar or tar -xvf : .gz or .z Gnu gzip; use gunzip (available from prep.gnu.ai.mit.edu) : .sit (Mac) StufIt archive : .zip Extract with Zip or Unzip : .zoo Yet another archive/compress program : .lhe (Amiga) ? : .lzh Lha archive program. : .arj (PC) Arj archive program. : .exe (PC) Sometimes self-extracting archives-just execute them. : .uue or .UUE Transfer as text file; use uudecode to convert to binary : .hqx (Mac) BinHex format; transfer in text mode : Generic help can be found in the FAQs of comp.binaries. : for how to transfer, extract, and virus-check binary files. (At : rtfm.mit.edu) : If you can't FTP from your site, use one of the following ftp-by-mail : servers: : ftpmail@decwrl.dec.com : ftpmail@src.doc.ic.ac.uk : ftpmail@cs.uow.edu.au : ftpmail@grasp.insa-lyon.fr : For complete instructions, send a message reading "help" to the server. : If you don't know exactly what you're looking for, or exactly where it : is, there are programs and servers that can help you. For more info, : send e-mail to mail-server@rtfm.mit.with with the body of the : message reading send usenet/news.answers/finding-sources : Thanks to Aliza R. Panitz (the "buglady") for this text. I copied it : verbatim from her post on faq-maintainers with only minor modifications. : = ====================================================================== : * Acknowledgements : ------------------ : This document would not have happened without the help of many people. : Among them are Marcus Speh, George Greenwade, Rob Beezer, Joachim : Schrod, Piet van Oostrum, and Ross N. Williams. A special thanks to : Aliza R. Panitz for the text describing how to execute an anonymous ftp : for files of interest. : Any omissions from these acknowledgements should be considered an act of : stupidity on my part. Of course, the authors of literate programming : tools mentioned above all play a vital role in the vitality of literate : programming. Furthermore, participants in the comp.programming.literate : newsgroup (and associated mailing list) all contributed in various : fashions. Thank all of you. : = ====================================================================== : * End notes : ----------- : This document will continue to evolve. I'm planning on adding entries : for additional literate programming tools and will expand the sections : on examples as more examples become available. Tools I will include are : WEB (the original pascal version) for starters. Others will be added as : I find and document them. Omission of a particular tool should not be : considered a snub in any sense--simply an error or oversight on my part. : = End of File ========================================================== ================================================================================ Archive-Date: Mon, 26 Jun 1995 07:15:59 CDT Sender: owner-litprog@SHSU.edu From: fission99@aol.com (Fission99) Subject: Re: Multimedia Newsletter Date: 26 Jun 1995 08:10:09 -0400 Message-ID: <3sm831$qkr@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, fission99@aol.com (Fission99) To: LitProg@SHSU.EDU That would be a nice edition. I might be able to contribute some comments on mTropolis. ================================================================================ Archive-Date: Mon, 26 Jun 1995 11:37:11 CDT Sender: owner-litprog@SHSU.edu From: carlg@world.std.com (Carl E Gundel) Reply-To: LitProg@SHSU.edu, carlg@WORLD.STD.COM Subject: Re: GFABasic Message-ID: Date: Mon, 26 Jun 1995 15:51:49 GMT To: LitProg@SHSU.EDU Nigel James (nnj@bodley.ox.ac.uk) wrote: : Does anyone know of any sites/discussion groups regarding the Windows version of : this language? There's alt.lang.gfa-basic !! Carl Gundel, author of Liberty BASIC ================================================================================ Archive-Date: Mon, 26 Jun 1995 20:32:46 CDT Sender: owner-litprog@SHSU.edu Date: Mon, 26 Jun 1995 19:24:29 -0400 From: CHUCK.GIBBONS@sprint.sprint.com Reply-To: LitProg@SHSU.edu, CHUCK.GIBBONS@SPRINT.SPRINT.COM Message-ID: To: LitProg@SHSU.edu Subject: help with archives Help please -- My attempts to get LISTSERV to send a monthly archive failed because my internet gateway objects to the large ( > 100K ) mail message. The latest copy of the FAQ I have says > Archives of the mailing list and newsgroup are maintained on > niord.shsu.edu [192.92.115.8] in the directory litprog. but when I attempt FTP mail I get > ---> RETR litprog.1995-03 > 550 %RMS-E-PRV, insufficient privilege or file protection violation > Failure on 'RETR litprog.1995-03' command > failed to get litprog.1995-03 Is there another way/location to access the archives. I only have e-mail access so LISTSERV or ftp mail are the only choices (I know). reply to me directly. Thanks -- Chuck ---- Charles J. Gibbons chuck.gibbons@sprint.sprint.com 9134 B Riggs Lane 1200 Main KC, MO 64105 Overland Park, KS 66212 mailstop: MOKCMT1301 Home: 913/649-8175 Work: 816/854-3802 Fax: 816/854-4428 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ================================================================================ Archive-Date: Mon, 26 Jun 1995 20:39:17 CDT Sender: owner-litprog@SHSU.edu Date: Mon, 26 Jun 1995 19:24:29 -0400 From: CHUCK.GIBBONS@sprint.sprint.com Reply-To: LitProg@SHSU.edu, CHUCK.GIBBONS@SPRINT.SPRINT.COM Message-ID: To: LitProg@SHSU.edu Subject: help with archives Help please -- My attempts to get LISTSERV to send a monthly archive failed because my internet gateway objects to the large ( > 100K ) mail message. The latest copy of the FAQ I have says > Archives of the mailing list and newsgroup are maintained on > niord.shsu.edu [192.92.115.8] in the directory litprog. but when I attempt FTP mail I get > ---> RETR litprog.1995-03 > 550 %RMS-E-PRV, insufficient privilege or file protection violation > Failure on 'RETR litprog.1995-03' command > failed to get litprog.1995-03 Is there another way/location to access the archives. I only have e-mail access so LISTSERV or ftp mail are the only choices (I know). reply to me directly. Thanks -- Chuck ---- Charles J. Gibbons chuck.gibbons@sprint.sprint.com 9134 B Riggs Lane 1200 Main KC, MO 64105 Overland Park, KS 66212 mailstop: MOKCMT1301 Home: 913/649-8175 Work: 816/854-3802 Fax: 816/854-4428 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ================================================================================ Archive-Date: Tue, 27 Jun 1995 22:05:03 CDT Sender: owner-litprog@SHSU.edu From: charles@metronet.com (Charles B. Abdouch) Reply-To: LitProg@SHSU.edu, charles@METRONET.COM Subject: HELP: Need RedBook Spec. Date: 26 Jun 1995 20:58:56 GMT Message-ID: <3sn72g$mt0@feenix.metronet.com> MIME-Version: 1.0 To: LitProg@SHSU.EDU I'm trying to find the Red Book spec. for a CD-Rom project. This spec. has the MSF type recoding support. I'm writing a CD-Rom device driver and have the High-Sierra Group (HSG) recording support working but want to support the RedBook spec as well. I suspect that this spec can be FTP'd but don't know were to start. Thank You for any help in this area. Charles B. Abdouch charles@metronet.com (214) 630-6600 work ================================================================================ Archive-Date: Wed, 28 Jun 1995 00:18:37 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: Q: FWEB --- HTML and verbatim Date: 25 Jun 1995 17:40:31 GMT Message-ID: <3sk72f$9as@athos.cc.bellcore.com> CC: Sven Utcke To: LitProg@SHSU.EDU In article , Sven Utcke wrote: > What is the way to go if one needs both an online (html?) as well > as a printed version, and if both versions will need to contain > images and formulas? I know of no literate-programming tool that solves this problem. HTML is a disaster for images and formulas, and all the answers are hacks. > LaTeX2html won't do Indeed not. I bet it's going to require some serious work on someone's part before progress is made here. Suggest you ask comp.text.tex and comp.text.sgml. >2) verbatim Language (@Lv) in FWEB > While most of my current work is written in C, some of it needs to > be done in a verbatim kind of language where formating is important > (and FWEB shouldn't add any additional information, please). > However, I can't get this to work at all. noweb and nuweb handle verbatim text just fine. with noweb, you could use the Oikonomou prettyprinters to format the C code. mixing C and verbatim in one file would require some adapation, but it's an afternoon hack... Norman -- ``They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.'' --- B. Franklin Norman Ramsey I support the Phil Zimmermann Legal Defense Fund. norman@bellcore.com (zldf@clark.net http://www.netresponse.com/zldf) ================================================================================ Archive-Date: Wed, 28 Jun 1995 00:19:17 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: Journal Request Date: 25 Jun 1995 17:40:32 GMT Message-ID: <3sk72g$9at@athos.cc.bellcore.com> CC: To: LitProg@SHSU.EDU In article <1995Jun19.191702.194787@ua1ix.ua.edu>, Randy K. Smith wrote: >Basile STARYNKEVITCH referenced an article >by Norman Ramsey titled "Literate Programming >should be a model for Software Engineering >and Programming Languages" dated March 1995. > >Can someone provide a pointer to the journal >for this article?? This was a position paper for an ICSE '95 workshop. No proceedings were published. Anybody who really wants to see this particular bit of fluff should send me some email. Norman -- ``They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.'' --- B. Franklin Norman Ramsey I support the Phil Zimmermann Legal Defense Fund. norman@bellcore.com (zldf@clark.net http://www.netresponse.com/zldf) ================================================================================ Archive-Date: Wed, 28 Jun 1995 00:19:18 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: noweb autodefs.c file? Date: 25 Jun 1995 17:40:36 GMT Message-ID: <3sk72k$9au@athos.cc.bellcore.com> CC: stephen To: LitProg@SHSU.EDU In article <3rmngd$nrm@mailer.york.ac.uk>, stephen wrote: >I would like to get noweb to automagically index my identifiers for >nice (not so) simple ansi C. It seems the method is through the use >of autodefs.{lang} files but I have failed to find one for C. If you use LIBSRC=icon during the installation, you get noweave -autodefs c automatically. There's no need to go grubbing around in the implementation. If you don't have Icon, the noweb home page points to it, including binaries for popular targets. On the other hand, if you don't have Icon, and if the thought of installing one more programming language makes you gag, you could grub around in the implementation and write the definitions stuff in awk or perl. (Hint: it will be faster and easier to install Icon.) If I ever get funding for noweb 3, Icon will go away (at least as far as noweb is concerned). Of course, it will be replaced by something even more weird and wonderful... Norman -- ``They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.'' --- B. Franklin Norman Ramsey I support the Phil Zimmermann Legal Defense Fund. norman@bellcore.com (zldf@clark.net http://www.netresponse.com/zldf) ================================================================================ Archive-Date: Wed, 28 Jun 1995 19:57:41 CDT Sender: owner-litprog@SHSU.edu From: tonynoh@aol.com (Tony n OH) Subject: LZEXPAND.DLL Date: 27 Jun 1995 03:28:49 -0400 Message-ID: <3sobvh$h70@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, tonynoh@aol.com (Tony n OH) To: LitProg@SHSU.EDU Does anyone know the sentex for the lzexpand.dll that comes with windows. If you know what they are could you email me at tonynoh.aol.com also if you know of any good books on using dlls. Thanks Tony ================================================================================ Archive-Date: Wed, 28 Jun 1995 22:01:57 CDT Sender: owner-litprog@SHSU.edu From: kasper@iesd.auc.dk (Kasper Osterbye) Reply-To: LitProg@SHSU.edu, kasper@IESD.AUC.DK Subject: Workshop on literate programming Date: 27 Jun 1995 09:51:48 GMT Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.EDU Hi, No this is not a CFP on such a workshop, an enquiry if such a wokshop was ever organized, and if not, why. -- Kasper -- Kasper Osterbye Internet: kasper@iesd.auc.dk Aalborg University FAX: +45 98 15 81 29 Fredrik Bajers vej 7E, 9220 Aalborg Phone: (W) +45 98 15 85 22 DENMARK. (H) +45 98 11 09 25 ================================================================================ Archive-Date: Thu, 29 Jun 1995 19:08:25 CDT Sender: owner-litprog@SHSU.edu From: s2858839@techst02.technion.ac.il (Erez and Hadas) Subject: Net Organizing Problem. Reply-To: LitProg@SHSU.edu, s2858839@techunix.technion.ac.il (Erez and Hadas) Date: Sun, 25 Jun 1995 16:58:11 GMT Message-ID: To: LitProg@SHSU.EDU Hello every body ! O.K. hear's my problem. I'm working in a company that's making P.O.S. (Point Of Sale) systems based on a PC IBM computer. the P.O.S. stations are connected to a server by NOVEL net system what we are trying to do is to transform each of the P.O.S. station to a disk drive on the server. so when the server wants to send file to a P.O.S. it will only need to copy that file to respective drive instead of doing the send receive long and hard process. at the end we look for a system that P.O.S. station 1 is defined as drive F:, P.O.S. station 2 is defied as drive G: and so on, and if we wont to move a file from one P.O.S. to another we will only have to "copy f: g:" and the file will be transferred. do you know of an existing driver that can do the job? is there a way to do it with NOVEL net ? thanks Erez -- Erez Boym Dive Master ,NiTrox ,,///,, , 71 Alonim st' *Welcome to the religion * o:: ':// K' Tivon 36000 Israel *of DIVING ! * >::---------\\ s2858839@techst02.technion.ac.il ''\\\\\" ' ================================================================================ Archive-Date: Thu, 29 Jun 1995 22:48:14 CDT Sender: owner-litprog@SHSU.edu From: jacob@dannug.dk Reply-To: LitProg@SHSU.edu, jacob@DANNUG.DK Subject: Re: Q: FWEB --- HTML and verbatim Date: 28 Jun 1995 22:04:00 GMT Message-ID: <3ssjkg$u0@jnext.dannug.dk> To: LitProg@SHSU.EDU norman@flaubert.bellcore.com (Norman Ramsey) wrote: > In article , > Sven Utcke wrote: > > What is the way to go if one needs both an online (html?) as well > > as a printed version, and if both versions will need to contain > > images and formulas? > I know of no literate-programming tool that solves this problem. > HTML is a disaster for images and formulas, and all the answers are > hacks. There's a new system called HyperTeX (special version of DVI previewer) which allows hypertext links in the DVI file; no new TeX needed! The little I've seen of it looks really good. Needless to say, the formulas are beautifully typeset. BTW, The HyperTeX system is not intended for online access via WWW. Jacob -- Jacob Nielsen jacob@dannug.dk