Re: Include language bindings? Re: Draft Standard Text, V02.1
Good argument. There certainly are more dangers of incorrect interpretations for intervals than for floating point.
George
On Mar 15, 2010, at 11:34 AM, Dan Zuras Intervals wrote:
>> Date: Mon, 15 Mar 2010 10:07:10 -0500
>> From: "R. Baker Kearfott" <rbk@xxxxxxxxxxxxx>
>> To: Rudnei Cunha <rudnei.cunha@xxxxxxxxx>
>> CC: "Corliss, George" <george.corliss@xxxxxxxxxxxxx>,
>> John Pryce <j.d.pryce@xxxxxxxxxxxx>,
>> stds-1788 <stds-1788@xxxxxxxxxxxxxxxxx>
>> Subject: Re: Include language bindings? Re: Draft Standard Text, V02.1
>>
>> That's a good question.
>>
>> Looking at IEEE 754-1985, one sees that it was a decade or more
>> after the hardware standard was in use before there were language
>> bindings. Can including language bindings help the process?
>>
>> Baker
>>
>
> Emphatically yes.
>
> It was more than 2 decades that 754 lived without
> standard language bindings & during that time a lot
> of compilers found 'imaginative' ways to interpret
> the meaning of the seemingly most obvious things,
> like '+' & '*'.
>
> Some of those interpretations were just 'different'.
>
> Some were flat out wrong.
>
> But the main problem became that the programmer
> could not know what operations the source text was
> going to map onto from:
>
> - one manufacturer to another,
> - one machine to another within a manufacturer,
> - one version of the compiler to another on a given
> machine,
> - one optimization level to another within a given
> compiler,
> - one position within the source to another within
> a given optimization level,
> - one spelling of a variable to another at the same
> position, & even (in later years)
> - one execution of a loop to another on a parallel
> machine (in any of several different ways both
> deterministic & non-deterministic).
>
> In all cases the compiler claimed 'license' to use
> these variations due to the lack of language bindings
> in 754-1985.
>
> In almost all cases they bragged about the 'innovation'
> on the grounds that it made some benchmark faster. In
> the remaining cases they denied that they happened or
> that the variation could cause any problem the user
> might notice in spite of them having BEEN noticed.
>
> These problems ranged from mildly irritating to so bad
> as to exclude certain algorithims from being used on
> grounds they could not be known to work every time in
> such a context.
>
> These variations could be argued to be 'improvements'
> to 754-1985.
>
> But the unpredictable nature of them would be death to
> a standard which seeks universal acceptance of the
> correctness of its results such as 1788.
>
> So 754-2007 included standard language bindings.
> Unfortunately, the previous 2 decades of imaginative
> improvements made by the various compilers in the world
> prevented us from making them mandatory or even default.
> The best we could do after all that time was to offer
> them as an option to programmers who wanted it.
>
> 1788 must not make that mistake.
>
> By its very nature the programmer must KNOW what is
> being done with the source as it is written.
>
> This does not preclude the various clever algebraic
> optimizations that have been proposed. Indeed, such
> things should be available to the programmer. But the
> programmer must know that they are being done & WHAT is
> being done. This implies the programmer must ask for
> them.
>
> Therefore, 1788 must (IMHO):
> - specify standard language bindings,
> - make those bindings default,
> - specify standard optimizations, &
> - make them available to the programmer in standard ways.
>
> The various manufacturers & compiler writers can STILL
> innovate in ways that do not violate the basic standard
> & offer those innovations to differentiate them from their
> competitors. So innovation is not stifled & commerce can
> proceed apace.
>
> But not at the cost of transparency & correctness.
>
> Never that for 1788.
>
>
> OK, I've shot my bolt. :-)
> Enough grousing from the 754 camp.
> Carry on folks.
> Yours,
>
> Dan
Dr. George F. Corliss
Electrical and Computer Engineering
Marquette University
P.O. Box 1881
1515 W. Wisconsin Ave
Milwaukee WI 53201-1881 USA
414-288-6599; GasDay: 288-4400; Fax 288-5579
George.Corliss@xxxxxxxxxxxxx
www.eng.mu.edu/corlissg