The only class of programs for which the question of default binding for +/- matters is the class where the programmer isn't likely to bother with this theorem. In this case, the programmer has declared (by omission) that they don't care whether the program is right or not.
In light of which, our obligation is merely to choose a reasonable balance between efficiency and approximate correctness.
Agreed, sort of. "don't care" is too strong -- clearly they don't care as much, but they still care quite a lot! And we need to separate "approximate correctness" into consistency preservation (safety) vs progress (liveness) issues. In the absence of a separately stated specification, both can still be only approximate, but they're very different. The correctness issue for most programs will fall into this messy category, and a language for building robust systems should support this category well.
So what's a reasonable balance? I propose that, for this category, consistency preservation is typically strictly more important than either liveness or efficiency. Of liveness and efficiency, I have no strong opinion about which is typically more important. I would have no problem with a reasonable balance that gave efficiency higher priority than liveness. (Or vice versa.) Fortunately, once consistency preservation has been dealt with, efficiency vs liveness are rarely in conflict. (I can't even think of an example.)
-- Text by me above is hereby placed in the public domain
Cheers,
--MarkM_______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
