Groups | Search | Server Info | Login | Register


Groups > comp.programming.literate > #98

Re: "hello, world" Literate Programming example in Noweb

From Wolfgang Agnes <wagnes@jemoni.to>
Newsgroups comp.programming.literate
Subject Re: "hello, world" Literate Programming example in Noweb
Date 2024-11-01 23:11 -0600
Organization A noiseless patient Spider
Message-ID <87froazhac.fsf@jemoni.to> (permalink)
References <slrnvi7bag.hge.metaed@newjersey.metaed.com> <87ttcqzxy9.fsf@jemoni.to> <slrnviahks.hge.metaed@newjersey.metaed.com>

Show all headers | View raw


Edward McGuire <metaed@metaed.com> writes:

> On 2024-11-01, Wolfgang Agnes <wagnes@jemoni.to> wrote:
>> Welcome to the literate programming world.
>
> Thank you, especially for the really thoughtful response. This kind of
> constructive reply is exactly what I wanted.

You're so welcome.  Glad I could be of some help.

>> perhaps the first chunk should be /hello main body/ because that is precisely
>> what we expect from a hello-world.
>
> I agree. Part of what's fun about this design process is, instead of starting
> literally at the top and sectioning down, or at the bottom and chunking up, you
> can start at the middle, then both section down and chunk up. Knuth discovered
> this was true for him also, and mentions it in the "Literate Programming" paper.

Nice.  That's also why I like it so much.  I had never noticed how the
compiler order is such a prison.  Knuth liberated us from that.  It
makes a lot of difference.  It brought a pretty good deal of the joy of
programming back to me.  (Lisp brought another half of that joy.)

> The tutorial should be reordered to demonstrate that.

Okay.

>> by calling your chunks as holons, you're eclipsing the name ``chunk'' which
>> seems to be the [standard] one.  Something to think about.
>> [...]
>> I see you explain the NOWEB terminology.  I wonder if Knuth was the one
>> who started with the term /chunk/ as well.  If so, then I'd advise
>> against /holon/.
>
> My choice of _holon_ reflects my intention that the tutorial be, or become, less
> about a particular tool, and more about what literate programming _is_, while
> still showing a working example.

Interesting.  I agree with that.  I should've also said that I really
enjoyed the term, though if everyone *were* using a single one---say,
``chunk''---, I'd stick to it, but you showed that's not the case.

> Knuth uses neither _chunk_ nor _holon_. In the "Literate Programming" paper, he
> acknowledges de Marneffe's Holon Programming Language as the primary influence
> on the design of WEB, but does not follow de Marneffe's terminology. In the WEB
> manual he uses _module_, and in CWEB he uses _section_. Ramsey (noweb) uses
> _chunk_. Briggs (nuweb) uses _scrap_ and _macro_. In short, there is no
> agreed-on term.

Thanks very much for all the references!

> The term _holon_ captures good design better than the others. It describes a
> relatively independent "organic" or "granular" unit of code, whose form and
> purpose is easily graspable by the reader, and whose boundaries easily allow for
> sectioning down and chunking up, validation, testing, refactoring, etc. And
> that's what a good literate programmer aims for.

Totally agree.  Maybe we all should use ``holon'' from now on.

>> More often than not, users don't have NOWEB installed, so they wouldn't
>> be able to do anything with your program but read it.
>
> I need to add an appendix, that shows how a person could easily get Noweb
> running and actually execute the tutorial code.

That's a nice idea.  NOWEB is such a stable software, your tutorial
would likely last a good deal of time.

Back to comp.programming.literate | PreviousPrevious in thread | Find similar


Thread

"hello, world" Literate Programming example in Noweb Edward McGuire <metaed@metaed.com> - 2024-10-31 16:17 -0600
  Re: "hello, world" Literate Programming example in Noweb Wolfgang Agnes <wagnes@jemoni.to> - 2024-11-01 17:28 -0600
    Re: "hello, world" Literate Programming example in Noweb Edward McGuire <metaed@metaed.com> - 2024-11-01 21:23 -0600
      Re: "hello, world" Literate Programming example in Noweb Wolfgang Agnes <wagnes@jemoni.to> - 2024-11-01 23:11 -0600

csiph-web