[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Clause 10, Expression Evaluation



On Fri, 13 Jul 2007 02:59:59 +0900, Jason Riedy <ejr@xxxxxxxxxxxxxxx> wrote:

And Guillaume Melquiond writes:
In some languages, they are called polymorphic functions.

And Malcolm Cohen writes:
Bah humbug.  Not in any sensible language they're not.

And that example demonstrates one reason why I stopped working on
this.

I think you've rather taken my snark the wrong way.

There are too many vocal camps that swear their terminology is
the *only* reasonable one.

Eh?  I wrote a rather obviously tongue-in-cheek snark and suddenly
I am being dogmatic?

I must admit I thought "Bah Humbug" was a heavy clue here...

(Sigh.  I thought, from the rest of my message, it was obvious I
was snarking about being treated like a computer science sophomore
who didn't know what generic meant when in fact it ought to have
been obvious that I did know what I was talking about.)

And anyway, this particular snark is not so unreasonable, since the
term "polymorphic functions" is *mostly* used for runtime polymorphism
not compile-time genericity, i.e. virtual functions not overloading.
Yes, there is some overlap, especially in some languages.

 There's no way a standard will be
accepted if it chooses one of the terminologies over the others
or even if it invents its own.

Sorry, but that's just completely wrong.

Virtually all successful standards choose exactly one terminlogy
or invent their own.  Maybe you are intending to say that there
never have been and never will be any successful standard, but
I beg to differ!

FWIW, there even exist terminology standards to address this very issue.
IME mostly ignored by programming language standards which, quite
naturally, prefer to continue to use the same terminology instead of
changing.

And in ISO standards at least there is an (optional) element for terms
and definitions in each standard.  I'm not so familiar with the IEEE
guidelines etc.

The language interface needs to be at the level of formal semantics.

That's an interesting claim.  I am not convinced however.
Many useful standards have not been at that level;
and just because a standard is at that level doesn't stop it from
being useless (or shall we say, "less widely used").
In fact I'm hard-pressed to see a strong correlation between
formal semantics use and usefulness/acceptability of a standard.

Getting that provably correct, clearly expressed, and
widely acceptable requires more time than is (or was) available.

Right.  Formal semantics is just like programming.

If it's "easy" to do the formal semantics, there is no argument
from me that it is valuable.  If it's "hard", as you say it takes
a lot of time, is error-prone, and possibly worse it can make the
resultant standard impenetrable to most.

It's all possible, and many parts are "too easy" to be considered
research from the language side.

From the language standardisation viewpoint, "research" == "BAD".
If something is not already at least largely well-understood,
attempting to standardise it is not a good idea.

Standardisation is best when it's for things we know how to do.

(Maybe this is a complaint about the difficulty of academics getting
funding for standards work: that certainly is an issue, but adding
research topics to the list of things to be standardised is not, IMO,
the answer.  I don't know what the answer is, though!)

It's not time yet to standardize the language interface, alas.

I think 754R doesn't need to standardise the "language interface"
(if I understand what you mean).  Traditionally this kind of thing
has been done by language "bindings".  However, doing a *good*
language binding requires expertise both from the language side
and from the "other" side (in this case 754R).  That expertise
usually needs to be at the language standards committee level, not
just Joe Bloggs who has done a bit of programming (or even a lot).

Even for 754R to attempt to say what a language needs to do to have
a "blessed" binding is going a bit far IMO.  Different languages have
different needs.  As for attempting to define expression semantics;
well, if 754R does that then only those languages which are already
a good fit are likely to get bindings.  We've already seen different
languages have fundamentally different goals and different approaches.
This isn't a "one size fits all", and trying to come up with a super-
flexible framework to fit all just seems like unnecessary effort.

A little more research&implementation, then the hard part:
political buy-in from some well-respected folks in language and
hardware communities.

Political buy-in is not necessarily harder; where 754R goals conflict
with language goals that is a *technical* issue, not a political one.

Cheers,
--
Malcolm Cohen, Nihon Numerical Algorithms Group KK, Tokyo, Japan.

754 | revision | FAQ | references | list archive