Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #4081
| 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> |
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 | Next — Previous in thread | Next in thread | Find similar
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