(j3.2006) (SC22WG5.5168) [ukfortran] [ Draft corrigendum 3]

Van Snyder Van.Snyder
Mon Dec 23 14:56:04 EST 2013


On Sun, 2013-12-22 at 10:29 -0600, Bill Long wrote:
> I would not be opposed to moving most of 5.4 into the obsolescent 
> column. 

I would rather not see any more stuff moved to the obsolescent column.
Do it in textbooks or offline tools.

I don't think I'm alone in using well-tested codes that are forty years
old.  I try to get rid of unreferenced identifiers, which are sometimes
signals of mistakes.  So it's unhelpful to see a few dozen warnings
whizzing by on my screen.  I pause the "make" and scroll back and say
"Oh, yeah, that's my Newton solver from 1974, complaining that computed
GO TO and arithmetic IF are obsolescent."

The argument is that computed GO TO ought to be replaced by SELECT CASE.
Well, the code is a coroutine.  When it suspends, it's supposed to
resume after the suspend.  The suspend point is frequently inside a loop
or an IF construct, or another SELECT CASE construct.  You can't get
back to it with a SELECT CASE construct without enormous reorganization
of the code.  The code has been used for nearly forty years.  It works
well.  We haven't discovered any bugs in it for at least thirty years.
I'm afraid to make a massive reorganization of it, for fear that it will
be ten years before we discover the bugs thereby introduced.

In the 1970's and 1980's, Caine, Farber and Gordon were selling a
structured Fortran preprocessor called S-Fortran.  When Fortran 90 was
finally available, there wasn't much use for it (or Ratfor or SFtran or
any of the others).  But... they also sold a product called the
Structuring Engine, that would turn "spaghetti code" into S-Fortran.
Unfortunately, that went away also.

Are there still any structuring engines available?





More information about the J3 mailing list