Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #4074

Re: Java puzzler

Date 2011-05-14 08:09 -0700
From Patricia Shanahan <pats@acm.org>
Newsgroups comp.lang.java.programmer
Subject Re: Java puzzler
References (7 earlier) <iqhjks$798$1@dont-email.me> <AcCdnflMosQt-lHQnZ2dnUVZ_t2dnZ2d@earthlink.com> <iqhumi$750$1@dont-email.me> <jY-dnS9ZV4RyG1HQnZ2dnUVZ_tadnZ2d@earthlink.com> <alpine.DEB.2.00.1105140954470.12373@urchin.earth.li>
Message-ID <JPOdnT6m8f6SBlPQnZ2dnUVZ_r-dnZ2d@earthlink.com> (permalink)

Show all headers | View raw


On 5/14/2011 2:18 AM, Tom Anderson wrote:
> On Thu, 12 May 2011, Patricia Shanahan wrote:
>
>> On 5/12/2011 5:40 PM, markspace wrote:
>>> On 5/12/2011 4:05 PM, Patricia Shanahan wrote:
...
>> The original proposal was to make all arithmetic detect overflow, and
>> that would remove the existing ability to do unsigned arithmetic by
>> ignoring overflow.
>
> The semantics of which, i've realised, is an utter can of worms. Does this:
>
> byte b = 100;
> byte c = (b + b) - b;
>
> Throw an exception? A interpreter which evaluates
> expression-by-expression would blow up when it came to the b + b. An
> optimising compiler can pretty easily optimise that expression out of
> existence altogether, but in doing so, it eliminates any opportunity to
> detect an overflow. If you require the exception, you close the door to
> a lot of optimisations.
...

These issues already exist in Java, and there are established rules for
dealing with them. Optimizers are required to make it look as though
expressions were evaluated exactly the way the JLS defines, regardless
of whether that is how the expression was actually evaluated.

Consider:

double d = Double.MAX_VALUE;
double e = (d + d) - d;

The correct result is Double.POSITIVE_INFINITY, not Double.MAX_VALUE.

In effect, adding integer overflow exceptions would extend the
non-associativity and non-commutativity properties of floating point
arithmetic to integers.

Patricia

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Re: Java puzzler Gábor Bakos <aborgabor@gmail.com> - 2011-05-11 01:44 -0700
  Re: Java puzzler Patricia Shanahan <pats@acm.org> - 2011-05-11 05:24 -0700
    Re: Java puzzler Tom Anderson <twic@urchin.earth.li> - 2011-05-11 21:57 +0100
      Re: Java puzzler Patricia Shanahan <pats@acm.org> - 2011-05-11 16:07 -0700
        Re: Java puzzler Tom Anderson <twic@urchin.earth.li> - 2011-05-12 21:38 +0100
          Re: Java puzzler Patricia Shanahan <pats@acm.org> - 2011-05-12 13:45 -0700
            Re: Java puzzler Nancy 3 <n3@gmai1.c0m> - 2011-05-12 16:56 -0400
              Re: Java puzzler markspace <-@.> - 2011-05-12 14:32 -0700
                Re: Java puzzler Patricia Shanahan <pats@acm.org> - 2011-05-12 16:05 -0700
                Re: Java puzzler markspace <-@.> - 2011-05-12 17:40 -0700
                Re: Java puzzler Patricia Shanahan <pats@acm.org> - 2011-05-12 18:18 -0700
                Re: Java puzzler markspace <-@.> - 2011-05-12 19:26 -0700
                Re: Java puzzler Tom Anderson <twic@urchin.earth.li> - 2011-05-14 10:18 +0100
                Re: Java puzzler Patricia Shanahan <pats@acm.org> - 2011-05-14 08:09 -0700
                Re: Java puzzler Lew <noone@lewscanon.com> - 2011-05-14 13:00 -0400
                Re: Java puzzler Joshua Cranmer <Pidgeot18@verizon.invalid> - 2011-05-14 15:08 -0400
                Re: Java puzzler Patricia Shanahan <pats@acm.org> - 2011-05-14 13:25 -0700
                Re: Java puzzler markspace <-@.> - 2011-05-14 08:46 -0700
                Re: Java puzzler Spock <spock@starfleet.ufp> - 2011-05-14 19:33 -0400
                Re: Java puzzler Tom Anderson <twic@urchin.earth.li> - 2011-05-15 00:41 +0100
                Re: Java puzzler markspace <-@.> - 2011-05-14 18:35 -0700
                Re: Java puzzler Joshua Cranmer <Pidgeot18@verizon.invalid> - 2011-05-14 23:43 -0400
                Re: Java puzzler Tom Anderson <twic@urchin.earth.li> - 2011-05-15 11:16 +0100
                Re: Java puzzler markspace <-@.> - 2011-05-15 05:40 -0700
                Re: Java puzzler Tom Anderson <twic@urchin.earth.li> - 2011-05-15 15:23 +0100
                Re: Java puzzler markspace <-@.> - 2011-05-15 08:09 -0700
                Re: Java puzzler Patricia Shanahan <pats@acm.org> - 2011-05-15 07:37 -0700
                Re: Java puzzler markspace <-@.> - 2011-05-15 08:00 -0700
                Re: Java puzzler Patricia Shanahan <pats@acm.org> - 2011-05-15 08:16 -0700
                Re: Java puzzler Patricia Shanahan <pats@acm.org> - 2011-05-15 07:35 -0700
                Re: Java puzzler markspace <-@.> - 2011-05-15 08:11 -0700
                Re: Java puzzler Patricia Shanahan <pats@acm.org> - 2011-05-15 08:15 -0700
                Re: Java puzzler Lew <noone@lewscanon.com> - 2011-05-15 13:11 -0400
                Re: Java puzzler Nancy 3 <n3@gmai1.c0m> - 2011-05-12 20:47 -0400
                Re: Java puzzler Patricia Shanahan <pats@acm.org> - 2011-05-12 18:00 -0700
                Re: Java puzzler markspace <-@.> - 2011-05-12 18:01 -0700
                Re: Java puzzler Nancy 3 <n3@gmai1.c0m> - 2011-05-12 21:22 -0400
                Re: Java puzzler Patricia Shanahan <pats@acm.org> - 2011-05-12 18:32 -0700
                Re: Java puzzler Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-05-12 22:34 -0400
              Re: Java puzzler Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-05-12 22:27 -0400
      Re: Java puzzler "John B. Matthews" <nospam@nospam.invalid> - 2011-05-12 00:28 -0400
      Re: Java puzzler Joshua Cranmer <Pidgeot18@verizon.invalid> - 2011-05-12 10:33 -0400
  Re: Java puzzler Lew <noone@lewscanon.com> - 2011-05-11 09:12 -0400
  Re: Java puzzler Lew <noone@lewscanon.com> - 2011-05-11 09:13 -0400
  Re: Java puzzler markspace <-@.> - 2011-05-11 08:00 -0700

csiph-web