
3rd RFD: comp.programming.literate
[Nothing has changed, except for adding comp.lang.oberon]
3rd Request for Discussion: comp.programming.literate
-----------------------------------------------------
Proposed name: comp.programming.literate
Proposed moderation status: unmoderated
Proposed Charter: A forum for the discussion of issues related
to literate programming.
(1) To share ideas, questions, experiences, and knowledge about the
reading and writing of literate programs.
(2) To discuss the merits of the currently existing literate
programming tools.
(3) To discuss the design of new literate programming tools.
Background: What is Literate Programming?
In an article published in _The Computer Journal_ 27 (1984), 97-111,
Donald E. Knuth proposed a "literate" programming style:
I believe that the time is ripe for significantly better
documentation of programs, and that we can best achieve this by
considering programs to be works of literature. Hence, my title:
"Literate Programming."
Let us change our traditional attitude to the construction of
programs: Instead of imagining that our main task is to instruct
a *computer* what to do, let us concentrate rather on explaining
to *human beings* what we want a computer to do.
The practitioner of literate programming can be regarded as an
essayist, whose main concern is with exposition and excellence of
style. Such an author, with thesaurus in hand, chooses the names
of variables carefully and explains what each variable means. He
or she strives for a program that is comprehensible because its
concepts have been introduced in an order that is best for human
understanding, using a mixture of formal and informal methods that
reinforce each other.
A literate programming system can be characterized by the following
properties:
- The compilable program and the publishable documentation should be
generated *automatically* from a *single* document.
- The program can be presented in the order that is best for human
understanding, regardless of any requirements of the programming
language.
- The program should be automatically indexed and cross-referenced.
Knuth's original system, called WEB, generated Pascal code and a TeX
documentation. Most tools relating to the TeX system have been written
using WEB, and the TeX and Metafont programs have been published in book
form.
Today, there are Literate Programming systems for a wide range of
programming languages and documentation systems. Specialized Literate
Programming tools have been written for Ada, Awk, C, C++, fortran,
Modula-2, Modula-3, Pascal and Scheme, and generic tools exist that
can generate almost any programming language (including Perl and sh).
Documentation systems supported include TeX, Troff, and Word for
Windows.
Existing Resources
are currently more than 300 subscribers and an average of about 80
messages (corresponding to about 150K of traffic) per month in the
first 6 months of this year.
If a newsgroup is created, mechanisms are already in place to support
a mirrored gateway between it and the existing mailing list. For
reference purposes, the newsgroup will be fully archived by the host
sponsoring the mailing list.
Discussion
Discussion should be confined to news.groups. Please do not post
responses to any other groups. Discussions may also be e-mailed to
Assuming there is a consensus that the group comp.programming.literate should
be created, voting will start 21 days from the first posting date of this
request (Around August 20th). Voting instructions will be published in a Call
for Votes to the same newsgroups that see this Request for Discussion. Both
this Request for Discussion and the Call for Votes will be crossposted to the
Matthias
--
"For a successful technology, reality must take precedence over public
relations, for Nature cannot be fooled." - Richard P. Feynman