[log in to unmask] wrote:
[snip, discussion of existing practice]
>
>> mil-spec
> Can another example of "standardizing existing practice" since Fortran 77's
> time be cited?
>
Sure, lots of them, in a sort of way. The problem is that
"existing practice" varied from vendor to vendor (and even
release to release of a vendor's compiler, although that
wasn't always intentional ;{ ). X3J3 often tried to
take a middle ground and implement an intersection of
implementations of a feature. Or to implement the
"functionality" without choosing a particular vendor's
spelling of the feature; especially since many of the
small details varied from vendor to vendor. It's
sometimes less confusing to say "red vegetable", than choose
between tomato or tomato. (That sounds better if you
say it out loud ;} )
1) longer source lines, lower case characters, longer
variable names, more lines in a continued statement,
underscores.
2) BOZ constants
3) Async and non-advancing I/O
4) Namelist I/O, and allowing multiple namelists to
concatenate.
5) Pointers. Perhaps the classic example of (possibly
badly) implementing the "functionality" without choosing
between existing word or byte based existing practices.
6) Array syntax (from IBM, Burroughs, and TI; plus a herd
of parallel machines being developed in Boston ;) )
7) The IEEE module approach was designed to directly
support the existing practice (on some machines) of
levels of support (and performance).
7.5) The IEEE enablers, like allowing divide by zero
8) DO-END (OK, that's part of the mil-spec stuff, but
nobody has mentioned it yet)
9) FLUSH
10) The C interop stuff
Lots of stuff that was mostly driven by the desire to
standardize existing practice in a portable way. Not
all of those were done well, and not all of them really
matched the existing practice as closely as might be
desired. But they were attempts at doing it.
Dick Hendrickson
|