Re: The joy of FORTRAN

Liste des GroupesRevenir à col misc 
Sujet : Re: The joy of FORTRAN
De : cross (at) *nospam* spitfire.i.gajendra.net (Dan Cross)
Groupes : alt.folklore.computers comp.os.linux.misc
Date : 05. Mar 2025, 03:59:05
Autres entêtes
Organisation : PANIX Public Access Internet and UNIX, NYC
Message-ID : <vq8elp$q3f$1@reader1.panix.com>
References : 1 2 3 4
User-Agent : trn 4.0-test77 (Sep 1, 2010)
In article <vq7lan$1h28q$1@paganini.bofh.team>,
Waldek Hebisch <antispam@fricas.org> wrote:
In alt.folklore.computers Dan Cross <cross@spitfire.i.gajendra.net> wrote:
In article <vB5xP.126521$eNx6.22176@fx14.iad>,
Charlie Gibbs  <cgibbs@kltpzyxm.invalid> wrote:
[snip]
Oh, and anyone who modifies code without updating the
corresponding comments to reflect the change deserves
some sort of nasty punishment.  Maybe we can make them
maintain any other programs whose comments have become
outdated and misleading.
 
John Ousterhout recently published the contents of a written
"debate" he had with Robert C Martin that went into this at some
length.  With the caveat that I think Martin is a charlatan,
folks here might find it interesting and relevant.
 
https://github.com/johnousterhout/aposd-vs-clean-code/blob/main/README.md
>
I read large part of this tekst.  I fully agree with John's
critique of decomposed PrimeGenerator.  Personally I find
the Knuth-based pre-decomposed version the clearest one:
- it is obviously correct once one gets loop invariants
- it is compact enough that loop invariants can be easily guessed.
>
I was able to understand this version in few minutes.  Reference
to Knuth helped, because first (decomposed) version looked like
a monster which raised serious doubts about correctness and
efficiency, Knuth name assured me that this may be worth looking at.
I have some interest in generating primes and it is possible that
I saw this method before.  Certainly I did not remember it.

In fact, the problems with Martin's version were even worse than
what John pointed out; a few I found, others I saw on reddit or
hacker news.

Briefly, Martin's program fails to check its input and will
throw an exception due to an out-of-bounds array access for n<1.
It will also do that for n<2, which means that his version
cannot be used to return a list that contains only the first
prime.  Furthermore, in his relentless drive to decompose into
arbitrarily smaller functions, he scatters state around a class,
but he stores it in static class members, meaning that his
implementation is not thread safe.  Also, he stores the squares
of primes into an array eagerly, as he finds each prime; but
once primes exceed 2^16, this will overflow the value in his
prime multiples array.  In the original algorithm (acutally due
to Dijkstra, not Knuth), they were only added to the prime
multiples array when necessary.

So more remarks: testing divisibility only by numbers smaller or
equal to square root of candidate is standard obvious trick.
I it not clear how long it would take me to invent such thing,
but I saw it long ago and once I saw it it was obvious.
>
I correctness of John's version is more tricky: we should
increase number of primes used for testing once candidate
becoms equal to square of next prime.  John uses different
looking condition and gives no justification that it is
equivalent to the correct one.
>
Part of the comment
>
:       // ..........................(all elements after this are greater
:       // than our current candidate, so they don't need to be considered).
>
is misleading: those elements are greater then _square root_ of
the candidate.

Yes.  John's version had some problems; not as many as Martin's
version, but then again John is actually competent, while Martin
is a charlatan and a blowhard.

Concerning comments I am mostly on Martin's side.  More precisly,
interfaces should be precisely specified.  In some cases (like
math problems) code implements "well known" functions and then
there is not much to say (but things like limitations on arguments
and precision should be spelled out).  In other cases one needs
to define appropriate terms and give more detail.  OTOH
implementation in many cases needs no comments.  In other case
one may want rather extensive description of method/algrorithm/
data structures.  IMO extensive description if best provided
in a separate document.  In case of standard algorithms one
can simply add reference to the literature.  If something is
non-standard (new), then there should be a document describing
it.  My point is that comment is not good place to put such
extensive description (for example there are typographic
restrictions) and, once person is familiar with the problem
large block of comments is only a distraction.  Also, I have
much more faith in estabished texbook or paper in peer reviewed
journal, then in comments which frequently say a lot about
lack of understanding of person writnig the comment and only
a little about actual problem.  There are cases when comments
are worthwile, but they are relatively infrequent.  In particular
in modern times we have a lot of trivial code and when we
come to something nontrivial it is frequencly so complex that
one can not reasonably explain it in a comment.

I came with a version that I liked somewhat better, and sent it
along with a rather lengthy email to John's mailing list.  No
one has responded, however, so I fear it was not well received.

- Dan C.


Date Sujet#  Auteur
29 Sep 24 * Re: The joy of FORTRAN1568186282@ud0s4.net
29 Sep 24 `* Re: The joy of FORTRAN1567Lawrence D'Oliveiro
29 Sep 24  +* Re: The joy of FORTRAN1505rbowman
30 Sep 24  i+- Re: The joy of FORTRAN1Lawrence D'Oliveiro
30 Sep 24  i+* Re: The joy of FORTRAN685186282@ud0s4.net
30 Sep 24  ii`* Re: The joy of FORTRAN684rbowman
30 Sep 24  ii +* Re: The joy of FORTRAN2Lawrence D'Oliveiro
30 Sep 24  ii i`- Re: The joy of FORTRAN1rbowman
30 Sep 24  ii +* Re: The joy of FORTRAN574The Natural Philosopher
30 Sep 24  ii i+* Re: The joy of FORTRAN571Peter Flass
1 Oct 24  ii ii`* Re: The joy of FORTRAN570Stefan Ram
2 Oct 24  ii ii +* Re: The joy of FORTRAN2186282@ud0s4.net
3 Oct 24  ii ii i`- Re: The joy of FORTRAN1moi
25 Feb 25  ii ii `* Re: The joy of FORTRAN567vjp2.at
25 Feb 25  ii ii  +* Re: The joy of FORTRAN378Lawrence D'Oliveiro
25 Feb 25  ii ii  i`* Re: The joy of FORTRAN377Peter Flass
25 Feb 25  ii ii  i +* Re: The joy of FORTRAN369John Ames
25 Feb 25  ii ii  i i+* Re: The joy of FORTRAN236John Ames
25 Feb 25  ii ii  i ii+* Re: The joy of FORTRAN225Peter Flass
26 Feb 25  ii ii  i iii`* Re: The joy of FORTRAN224Lawrence D'Oliveiro
26 Feb 25  ii ii  i iii +* Re: The joy of FORTRAN219John Ames
26 Feb 25  ii ii  i iii i`* Re: The joy of FORTRAN218Lawrence D'Oliveiro
26 Feb 25  ii ii  i iii i +- Re: The joy of FORTRAN1John Ames
27 Feb 25  ii ii  i iii i `* Re: The joy of FORTRAN216Rich Alderson
27 Feb 25  ii ii  i iii i  +* Re: The joy of FORTRAN2Lawrence D'Oliveiro
28 Feb 25  ii ii  i iii i  i`- Re: The joy of FORTRAN1Rich Alderson
27 Feb 25  ii ii  i iii i  `* Re: The joy of FORTRAN213John Ames
27 Feb 25  ii ii  i iii i   +* Re: the end of 18 bits, The joy of FORTRAN6John Levine
27 Feb 25  ii ii  i iii i   i+- Re: the end of 18 bits, The joy of FORTRAN1Lawrence D'Oliveiro
28 Feb 25  ii ii  i iii i   i+* Re: the end of 18 bits, The joy of FORTRAN2John Levine
28 Feb 25  ii ii  i iii i   ii`- Re: the end of 18 bits, The joy of FORTRAN1John Levine
28 Feb 25  ii ii  i iii i   i`* Re: the end of 18 bits, The joy of FORTRAN2Chris Ahlstrom
1 Mar 25  ii ii  i iii i   i `- Re: the end of 18 bits, The joy of FORTRAN1c186282
7 Mar 25  ii ii  i iii i   `* Re: The joy of FORTRAN206Alfred Falk
7 Mar 25  ii ii  i iii i    `* Re: The joy of FORTRAN205Dan Cross
7 Mar 25  ii ii  i iii i     +- Re: The joy of FORTRAN1Lynn Wheeler
7 Mar 25  ii ii  i iii i     `* Re: The joy of FORTRAN203rbowman
8 Mar 25  ii ii  i iii i      +* Re: The joy of FORTRAN3Dan Cross
8 Mar 25  ii ii  i iii i      i`* Re: The joy of FORTRAN2ted@loft.tnolan.com (Ted Nolan
8 Mar 25  ii ii  i iii i      i `- Re: The joy of FORTRAN1rbowman
8 Mar 25  ii ii  i iii i      `* Re: The joy of FORTRAN199c186282
8 Mar 25  ii ii  i iii i       `* Re: The joy of FORTRAN198rbowman
8 Mar 25  ii ii  i iii i        +* Re: The joy of FORTRAN75rbowman
8 Mar 25  ii ii  i iii i        i`* Re: The joy of FORTRAN74The Natural Philosopher
9 Mar 25  ii ii  i iii i        i `* Re: The joy of FORTRAN73c186282
9 Mar 25  ii ii  i iii i        i  `* Re: The joy of FORTRAN72rbowman
9 Mar 25  ii ii  i iii i        i   +* Re: The joy of FORTRAN67c186282
9 Mar 25  ii ii  i iii i        i   i+* Re: The joy of FORTRAN16rbowman
10 Mar 25  ii ii  i iii i        i   ii`* Re: The joy of FORTRAN15c186282
10 Mar 25  ii ii  i iii i        i   ii `* Re: The joy of FORTRAN14rbowman
10 Mar 25  ii ii  i iii i        i   ii  +* Re: The joy of FORTRAN7Sn!pe
10 Mar 25  ii ii  i iii i        i   ii  i+* Re: The joy of FORTRAN5rbowman
10 Mar 25  ii ii  i iii i        i   ii  ii+* Re: The joy of FORTRAN3Sn!pe
10 Mar 25  ii ii  i iii i        i   ii  iii`* Re: The joy of FORTRAN2rbowman
12 Mar 25  ii ii  i iii i        i   ii  iii `- Re: The joy of FORTRAN1c186282
12 Mar 25  ii ii  i iii i        i   ii  ii`- Re: The joy of FORTRAN1c186282
12 Mar 25  ii ii  i iii i        i   ii  i`- Re: The joy of FORTRAN1c186282
11 Mar 25  ii ii  i iii i        i   ii  `* Re: The joy of FORTRAN6c186282
11 Mar 25  ii ii  i iii i        i   ii   +- Re: The joy of FORTRAN1The Natural Philosopher
11 Mar 25  ii ii  i iii i        i   ii   `* Re: The joy of FORTRAN4rbowman
13 Mar 25  ii ii  i iii i        i   ii    `* Re: The joy of FORTRAN3c186282
13 Mar 25  ii ii  i iii i        i   ii     `* Re: The joy of FORTRAN2rbowman
13 Mar 25  ii ii  i iii i        i   ii      `- Re: The joy of FORTRAN1c186282
10 Mar 25  ii ii  i iii i        i   i`* Re: The joy of FORTRAN50Rich Alderson
10 Mar 25  ii ii  i iii i        i   i +* Re: The joy of FORTRAN10c186282
10 Mar 25  ii ii  i iii i        i   i i+* Re: The joy of FORTRAN8rbowman
10 Mar 25  ii ii  i iii i        i   i ii+- Re: The joy of FORTRAN1rbowman
12 Mar 25  ii ii  i iii i        i   i ii`* Re: The joy of FORTRAN6c186282
12 Mar 25  ii ii  i iii i        i   i ii +* Re: The joy of FORTRAN2John Ames
12 Mar 25  ii ii  i iii i        i   i ii i`- Re: The joy of FORTRAN1rbowman
12 Mar 25  ii ii  i iii i        i   i ii `* Re: The joy of FORTRAN3rbowman
12 Mar 25  ii ii  i iii i        i   i ii  `* Re: The joy of FORTRAN2Dan Cross
13 Mar 25  ii ii  i iii i        i   i ii   `- Re: The joy of FORTRAN1c186282
10 Mar 25  ii ii  i iii i        i   i i`- Re: The joy of FORTRAN1ted@loft.tnolan.com (Ted Nolan
10 Mar 25  ii ii  i iii i        i   i +* Re: The joy of FORTRAN33rbowman
10 Mar 25  ii ii  i iii i        i   i i`* Re: The joy of FORTRAN32The Natural Philosopher
10 Mar 25  ii ii  i iii i        i   i i +* Re: The joy of FORTRAN16rbowman
11 Mar 25  ii ii  i iii i        i   i i i+* Re: The joy of FORTRAN13The Natural Philosopher
11 Mar 25  ii ii  i iii i        i   i i ii+* Re: The joy of FORTRAN3rbowman
11 Mar 25  ii ii  i iii i        i   i i iii`* Re: The joy of FORTRAN2The Natural Philosopher
11 Mar 25  ii ii  i iii i        i   i i iii `- Re: The joy of FORTRAN1David LaRue
11 Mar 25  ii ii  i iii i        i   i i ii+- Re: The joy of FORTRAN1The Natural Philosopher
11 Mar 25  ii ii  i iii i        i   i i ii+- Re: The joy of FORTRAN1Lawrence D'Oliveiro
11 Mar 25  ii ii  i iii i        i   i i ii+* Re: The joy of FORTRAN4rbowman
12 Mar 25  ii ii  i iii i        i   i i iii+- Re: The joy of FORTRAN1c186282
12 Mar 25  ii ii  i iii i        i   i i iii`* Re: The joy of FORTRAN2The Natural Philosopher
12 Mar 25  ii ii  i iii i        i   i i iii `- Re: The joy of FORTRAN1The Natural Philosopher
13 Mar 25  ii ii  i iii i        i   i i ii`* Re: The joy of FORTRAN3c186282
13 Mar 25  ii ii  i iii i        i   i i ii `* Re: The joy of FORTRAN2The Natural Philosopher
14 Mar 25  ii ii  i iii i        i   i i ii  `- Re: The joy of FORTRAN1c186282
12 Mar 25  ii ii  i iii i        i   i i i`* Re: The joy of FORTRAN2c186282
12 Mar 25  ii ii  i iii i        i   i i i `- Re: The joy of FORTRAN1The Natural Philosopher
12 Mar 25  ii ii  i iii i        i   i i `* Re: The joy of FORTRAN15c186282
12 Mar 25  ii ii  i iii i        i   i i  `* Re: The joy of FORTRAN14The Natural Philosopher
12 Mar 25  ii ii  i iii i        i   i i   +- Re: The joy of FORTRAN1The Natural Philosopher
13 Mar 25  ii ii  i iii i        i   i i   `* Re: The joy of FORTRAN12rbowman
13 Mar 25  ii ii  i iii i        i   i i    +- Re: The joy of FORTRAN1rbowman
13 Mar 25  ii ii  i iii i        i   i i    +- Re: The joy of FORTRAN1rbowman
14 Mar 25  ii ii  i iii i        i   i i    +* Re: The joy of FORTRAN6Don_from_AZ
14 Mar 25  ii ii  i iii i        i   i i    i+* Re: The joy of FORTRAN2ted@loft.tnolan.com (Ted Nolan
14 Mar 25  ii ii  i iii i        i   i i    ii`- Re: The joy of FORTRAN1c186282
14 Mar 25  ii ii  i iii i        i   i i    i+* Re: The joy of FORTRAN2Lawrence D'Oliveiro
14 Mar 25  ii ii  i iii i        i   i i    i`- Re: The joy of FORTRAN1c186282
15 Mar 25  ii ii  i iii i        i   i i    `* Re: The joy of FORTRAN3Peter Flass
10 Mar 25  ii ii  i iii i        i   i `* Re: The joy of FORTRAN6Don_from_AZ
9 Mar 25  ii ii  i iii i        i   `* Re: The joy of FORTRAN4Kerr-Mudd, John
8 Mar 25  ii ii  i iii i        +* Re: The joy of FORTRAN27Dan Espen
9 Mar 25  ii ii  i iii i        +* Re: The joy of FORTRAN9c186282
9 Mar 25  ii ii  i iii i        `* Re: The joy of FORTRAN86c186282
26 Feb 25  ii ii  i iii +* Re: The joy of FORTRAN3rbowman
27 Feb 25  ii ii  i iii `- Re: The joy of FORTRAN1Rich Alderson
25 Feb 25  ii ii  i ii+- Re: The joy of FORTRAN1Peter Flass
26 Feb 25  ii ii  i ii+* Re: The joy of FORTRAN7Rich
26 Feb 25  ii ii  i ii`* Re: The joy of old small computers, which sort of ran FORTRAN2John Levine
25 Feb 25  ii ii  i i+* Re: The joy of FORTRAN101Peter Flass
26 Feb 25  ii ii  i i+* Re: The joy of FORTRAN27John Levine
26 Feb 25  ii ii  i i+* Re: The joy of FORTRAN3c186282
28 Feb 25  ii ii  i i`- Re: The joy of FORTRAN1c186282
25 Feb 25  ii ii  i +* Re: The joy of FORTRAN4Bob Eager
25 Feb 25  ii ii  i `* Re: The joy of FORTRAN3Lawrence D'Oliveiro
26 Feb 25  ii ii  `* Re: The joy of FORTRAN188c186282
1 Oct 24  ii i`* Re: The joy of FORTRAN2rbowman
30 Sep 24  ii +* OT ; Re: The joy of FORTRAN100Bobbie Sellers
30 Sep 24  ii `* Re: The joy of FORTRAN7Peter Flass
30 Sep 24  i`* Re: The joy of FORTRAN818The Natural Philosopher
30 Sep 24  `* Re: The joy of FORTRAN61186282@ud0s4.net

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal