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


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

Re: Java puzzler

From Lew <noone@lewscanon.com>
Newsgroups comp.lang.java.programmer
Subject Re: Java puzzler
Date 2011-05-14 13:00 -0400
Organization albasani.net
Message-ID <iqmcf5$e0r$1@news.albasani.net> (permalink)
References (8 earlier) <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> <JPOdnT6m8f6SBlPQnZ2dnUVZ_r-dnZ2d@earthlink.com>

Show all headers | View raw


On 05/14/2011 11:09 AM, Patricia Shanahan wrote:
> 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.

But that means without exceptions on these primitive operations.  His points 
had to do with what the semantics would be if the JLS specified to trap for 
those conditions.  Yes, it answers the question of what the optimizer should 
do (blow up anyway), but it doesn't answer the question of how Java would get 
around the loss of today's ability to evaluate 'byte c = (b + b) - b;'.

You are giving evidence for why the language probably is the way it is.

> 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.

And add problems currently solved by today's approach, while solving problems 
inherent in today's approach.

-- 
Lew
Honi soit qui mal y pense.
http://upload.wikimedia.org/wikipedia/commons/c/cf/Friz.jpg

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