[net.lang] "flaw" charts & the Sins of Programming

mac@uvacs.UUCP (09/15/83)

I find Gries's use of "Flaw Chart" annoyingly cute.  The fact that someone
could take it seriously shows how clumsily the joke was handled.

As far as the title the book fails to advance Knuth's "Art" of programming
to a "Science".  He does give good guidance for doing detail coding, but
coming up with the basic structure of a program (e.g. loop, subroutine,
conditional) seems as much of a black art as ever.  Incidentally, I found
the brief section on program layout the first that I've agreed with.

Worth reading, but I found Dijkstra's book better.  It was less ambitious,
if not humble.

By the way, I found all these (DO p->s [] p->s ...  OD) loops inside-out.
The most important property of a loop for these folks is the termination
condition, which is left unstated!  Instead, whenever there's nothing
further to do the loop stops.  The only way to strengthen the postcondition
is to loosen the looping conditions.  This leads to the OD notion that
robust programs are those that don't terminate.

Better to have explicit termination conditions.  Having several of them is
also useful.  Think of tail-recursion.  See Hehner's article "DO Considered
OD" in Acta Inf. many years ago, and Parnas's article in the latest CACM

				A. Colvin