From: bobduff@world.std.com (Robert A Duff)
Subject: Re: Portability of Arithmetic (was: Java vs Ada 95)
Date: 1996/10/18
Date: 1996-10-18T00:00:00+00:00 [thread overview]
Message-ID: <DzH9FD.G3D@world.std.com> (raw)
In-Reply-To: 1996Oct18.074034.1@eisner
In article <1996Oct18.074034.1@eisner>,
Larry Kilgallen <kilgallen@eisner.decus.org> wrote:
>I thought the claim was made that those "bad" (I hope that is not a
>reserved word) Java results would be the same from machine to machine.
>That at least raises the hope that bugs which did not bite you on
>machine A will also not bite you on machine B. If that hope is
>fulfilled, then it would seem that Java arithmetic is portable.
>
>I am not saying Java arithmetic is "good", since the first person to
>provide subtly different input on any platform might get undesired
>behaviour. But to the extent that the undesired behaviour is uniform
>across all platforms, Java arithmetic is "portable".
That's exactly what I've been trying to say. Thanks for saying it more
clearly than I have.
I'm the the one that claimed that Java arithmetic is portable even in
the presence of overflow. Several people have questioned that, so I
looked it up in "The Java Language Specification". In section 15.17.2,
page 358, it says, "If an integer addition overflows, then the result is
the low-order bits of the mathematical sum as represented in some
sufficiently large two's complement format." Subtraction is defined so
a-b is the same as a+(-b). Unary minus is defined in 15.14.4 so -x
equals (~x)+1, where ~ is the bit-wise complement operator. 15.16.1
talks about multiplication, and says something similar about overflows.
I didn't bother to look up all the operators.
So, an overflow in Java always produces the same answer. It is *not*
equivalent to pragma Suppress(Overflow_Check) in Ada.
So in general, the ranges supported are portable, and the behavior of
the operators is portable. Neither of these is true for Ada. In Ada,
you *can* write portable arithmetic in practise, if you stick to 32-bits
or less, and are careful about overflows in intermediate results. You
can also accidentally write non-portable arithmetic. In Java, you can't
make that mistake.
Whether this is an advantage of Java is open to debate, of course -- the
portability comes at some substantial run-time cost on machines with
strange word sizes.
In fact, Java is more portable than Ada in a *lot* of ways. I'm about
2/3 of the way through the Java book, and the only non-portabilities
I've noticed are (1) getting Out_Of_Memory_Error and (2) the behavior of
multiple threads reading and writing shared variables.
- Bob
next prev parent reply other threads:[~1996-10-18 0:00 UTC|newest]
Thread overview: 250+ messages / expand[flat|nested] mbox.gz Atom feed top
1996-10-08 0:00 Once again, Ada absent from DoD SBIR solicitation Gregory Aharonian
1996-10-08 0:00 ` Gandalf
1996-10-09 0:00 ` Bill Nielsen
1996-10-09 0:00 ` Stanley R. Allen
1996-10-09 0:00 ` C++ Standardization (was: Once again, Ada absent from DoD SBIR solicitation) David Shochat
1996-10-10 0:00 ` Robert Dewar
1996-10-10 0:00 ` David Shochat
1996-10-20 0:00 ` Richard Riehle
1996-10-20 0:00 ` nasser
1996-10-21 0:00 ` Shayne Flint
1996-10-21 0:00 ` Robert A Duff
1996-10-21 0:00 ` Robert Dewar
1996-10-22 0:00 ` Ken Garlington
1996-10-22 0:00 ` Shayne Flint
1996-10-22 0:00 ` Robert A Duff
1996-10-22 0:00 ` Rush Kester
1996-10-11 0:00 ` Ed Falis
1996-10-11 0:00 ` Robert Dewar
1996-10-12 0:00 ` Kevin D. Heatwole
1996-10-12 0:00 ` Robert Dewar
1996-10-13 0:00 ` Larry Kilgallen
1996-10-13 0:00 ` Ed Falis
1996-10-11 0:00 ` Dave Wood
1996-10-11 0:00 ` Dave Wood
1996-10-17 0:00 ` Garbage Collection in Ada Thomas Kendelbacher
1996-10-10 0:00 ` Once again, Ada absent from DoD SBIR solicitation Mitch Gart
1996-10-10 0:00 ` Java vs Ada 95 (Was Re: Once again, Ada absent from DoD SBIR solicitation) Brian Rogoff
1996-10-10 0:00 ` Dave
1996-10-11 0:00 ` Robert Dewar
1996-10-12 0:00 ` davedave
1996-10-12 0:00 ` Robert Dewar
1996-10-13 0:00 ` Larry Kilgallen
1996-10-11 0:00 ` Tucker Taft
1996-10-14 0:00 ` Brian Rogoff
1996-10-15 0:00 ` Mitch Gart
1996-10-15 0:00 ` Larry Kilgallen
1996-10-15 0:00 ` Mark A Biggar
1996-10-16 0:00 ` Brian Rogoff
1996-10-28 0:00 ` Kenneth Almquist
1996-10-29 0:00 ` Invoking parental methods (was: Java vs Ada 95) Larry Kilgallen
1996-10-31 0:00 ` Kenneth Almquist
1996-10-31 0:00 ` Larry Kilgallen
1996-11-05 0:00 ` Mitch Gart
1996-11-05 0:00 ` Tucker Taft
1996-11-05 0:00 ` Larry Kilgallen
1996-11-06 0:00 ` Robert A Duff
1996-11-06 0:00 ` Larry Kilgallen
1996-11-06 0:00 ` Robert I. Eachus
1996-11-07 0:00 ` David Wheeler
1996-11-06 0:00 ` Mitch Gart
1996-11-08 0:00 ` Jon S Anthony
1996-11-08 0:00 ` Robert I. Eachus
1996-11-05 0:00 ` Larry Kilgallen
1996-11-09 0:00 ` Joel VanLaven
1996-10-15 0:00 ` Java vs Ada 95 (Was Re: Once again, Ada absent from DoD SBIR solicitation) Mike Stark
1996-10-15 0:00 ` Robert Dewar
1996-10-16 0:00 ` Mike Stark
1996-10-17 0:00 ` Robert A Duff
1996-10-17 0:00 ` Why no Propagates? Matthew Heaney
1996-10-18 0:00 ` Norman H. Cohen
1996-10-18 0:00 ` Robert Dewar
1996-10-18 0:00 ` Robert Dewar
1996-10-18 0:00 ` Robert A Duff
1996-10-15 0:00 ` Java vs Ada 95 (Was Re: Once again, Ada absent from DoD SBIR solicitation) Robert A Duff
1996-10-15 0:00 ` Portability of Arithmetic (was: Java vs Ada 95) Larry Kilgallen
1996-10-16 0:00 ` Robert A Duff
1996-10-16 0:00 ` Robert Dewar
1996-10-17 0:00 ` Robert A Duff
1996-10-17 0:00 ` Robert Dewar
1996-10-18 0:00 ` Larry Kilgallen
1996-10-18 0:00 ` Robert A Duff [this message]
1996-10-18 0:00 ` Norman H. Cohen
1996-10-18 0:00 ` Robert Dewar
1996-10-18 0:00 ` Brian R. Hanson
1996-10-19 0:00 ` Robert Dewar
1996-10-19 0:00 ` Larry Kilgallen
1996-10-22 0:00 ` Once again, Ada absent from DoD SBIR solicitation Dale Stanbrough
1996-10-27 0:00 ` Robert Dewar
1996-10-21 0:00 ` Portability of Arithmetic (was: Java vs Ada 95) Norman H. Cohen
1996-10-21 0:00 ` Robert Dewar
1996-10-21 0:00 ` Norman H. Cohen
1996-10-21 0:00 ` Robert Dewar
1996-10-22 0:00 ` Larry Kilgallen
1996-10-23 0:00 ` Robert Dewar
1996-10-23 0:00 ` Larry Kilgallen
1996-10-23 0:00 ` Norman H. Cohen
1996-10-21 0:00 ` Lance Kibblewhite
1996-10-17 0:00 ` Larry Kilgallen
1996-10-18 0:00 ` Robert A Duff
1996-10-17 0:00 ` Stephen Leake
1996-10-17 0:00 ` Robert A Duff
1996-10-17 0:00 ` Robert Dewar
1996-10-17 0:00 ` Larry Kilgallen
1996-10-18 0:00 ` Robert A Duff
1996-10-15 0:00 ` Java vs Ada 95 (Was Re: Once again, Ada absent from DoD SBIR solicitation) Robert Dewar
1996-10-17 0:00 ` Alan Brain
1996-10-17 0:00 ` Robert Dewar
1996-10-17 0:00 ` Robert A Duff
1996-10-18 0:00 ` Keith Thompson
1996-10-20 0:00 ` Alan Brain
1996-10-24 0:00 ` Robert I. Eachus
1996-10-16 0:00 ` Brian Rogoff
1996-10-16 0:00 ` Robert Dewar
1996-10-17 0:00 ` Robert A Duff
1996-10-17 0:00 ` Robert Dewar
1996-11-22 0:00 ` Van Snyder
1996-11-25 0:00 ` Java vs Ada vs Inferno, floating point arithmetic Anssi Porttikivi
1996-10-16 0:00 ` Java vs Ada 95 (Was Re: Once again, Ada absent from DoD SBIR solicitation) Jon S Anthony
1996-10-16 0:00 ` Brian Rogoff
1996-10-11 0:00 ` Stephen Leake
1996-10-11 0:00 ` Dave
1996-10-11 0:00 ` Robert Dewar
1996-10-12 0:00 ` Dave
1996-10-12 0:00 ` Robert Dewar
1996-10-14 0:00 ` Keith Thompson
1996-10-18 0:00 ` Why no Propagates? Michel Gauthier
1996-10-22 0:00 ` Richard A. O'Keefe
1996-10-23 0:00 ` Michel Gauthier
1996-10-11 0:00 ` Java vs Ada 95 (Was Re: Once again, Ada absent from DoD SBIR solicitation) Mitch Gart
1996-10-11 0:00 ` Jon S Anthony
1996-10-11 0:00 ` Jon S Anthony
1996-10-12 0:00 ` Robert Dewar
1996-10-14 0:00 ` Mitch Gart
1996-10-14 0:00 ` Brian R. Hanson
1996-10-14 0:00 ` Keith Thompson
1996-10-15 0:00 ` Dale Stanbrough
1996-10-15 0:00 ` Brian R. Hanson
1996-10-20 0:00 ` nasser
1996-10-12 0:00 ` davedave
1996-10-12 0:00 ` Robert Dewar
1996-10-16 0:00 ` Jon S Anthony
1996-10-16 0:00 ` Jon S Anthony
1996-10-14 0:00 ` Jon S Anthony
1996-10-14 0:00 ` Brian Rogoff
1996-10-14 0:00 ` Jon S Anthony
1996-10-14 0:00 ` Robert Dewar
1996-10-15 0:00 ` Robert A Duff
1996-10-15 0:00 ` Larry Kilgallen
1996-10-16 0:00 ` Lars Farm
1996-10-16 0:00 ` Robert Dewar
1996-10-17 0:00 ` Why no Free? Matthew Heaney
1996-10-18 0:00 ` Robert Dewar
1996-10-18 0:00 ` Robert A Duff
1996-10-18 0:00 ` John Herro
1996-10-19 0:00 ` John Herro
1996-10-14 0:00 ` Java vs Ada 95 (Was Re: Once again, Ada absent from DoD SBIR solicitation) Jon S Anthony
1996-10-14 0:00 ` Jon S Anthony
1996-10-15 0:00 ` Robert I. Eachus
1996-10-15 0:00 ` Robert Dewar
1996-10-15 0:00 ` Brian Rogoff
1996-10-15 0:00 ` Robert I. Eachus
1996-10-16 0:00 ` Jon S Anthony
1996-10-16 0:00 ` Jon S Anthony
1996-10-16 0:00 ` Jon S Anthony
1996-10-18 0:00 ` Keith Thompson
1996-10-16 0:00 ` Jon S Anthony
1996-10-17 0:00 ` Robert Dewar
1996-10-17 0:00 ` Robert Dewar
1996-10-16 0:00 ` Samuel T. Harris
1996-10-16 0:00 ` Jon S Anthony
1996-10-18 0:00 ` Jon S Anthony
1996-10-18 0:00 ` Jon S Anthony
1996-10-18 0:00 ` Jon S Anthony
1996-10-29 0:00 ` Kenneth Almquist
1996-10-29 0:00 ` Robert Dewar
1996-10-31 0:00 ` Kenneth Almquist
1996-10-29 0:00 ` Robert I. Eachus
1996-10-29 0:00 ` Jon S Anthony
1996-10-30 0:00 ` Stephen Leake
1996-10-31 0:00 ` Lars Farm
1996-10-31 0:00 ` Kenneth Almquist
1996-10-31 0:00 ` Jon S Anthony
1996-11-01 0:00 ` Robert I. Eachus
1996-11-01 0:00 ` Robert A Duff
[not found] ` <55gkch$gg6@fozzie.sun3.iaf.nl>
1996-11-03 0:00 ` Robert A Duff
1996-11-03 0:00 ` Robert Dewar
1996-11-04 0:00 ` Larry Kilgallen
1996-11-04 0:00 ` Robert Dewar
1996-11-05 0:00 ` Fast locking (Was Re: Java vs Ada 95) Geert Bosch
1996-11-06 0:00 ` Larry Kilgallen
1996-11-06 0:00 ` Geert Bosch
1996-11-07 0:00 ` Larry Kilgallen
1996-11-07 0:00 ` Robert Dewar
1996-11-11 0:00 ` Norman H. Cohen
1996-11-08 0:00 ` Geert Bosch
1996-11-06 0:00 ` Robert Dewar
1996-11-02 0:00 ` Java vs Ada 95 (Was Re: Once again, Ada absent from DoD SBIR solicitation) Robert Dewar
1996-11-04 0:00 ` Robert I. Eachus
1996-11-05 0:00 ` Larry Kilgallen
1996-11-14 0:00 ` Robert Dewar
1996-11-16 0:00 ` Geert Bosch
1996-11-17 0:00 ` Robert Dewar
1996-11-17 0:00 ` Robert A Duff
1996-11-18 0:00 ` Robert Dewar
1996-11-19 0:00 ` Robert A Duff
1996-11-18 0:00 ` Geert Bosch
1996-11-22 0:00 ` Robert Dewar
1996-11-18 0:00 ` Norman H. Cohen
1996-11-16 0:00 ` Robert A Duff
1996-11-16 0:00 ` Robert Dewar
1996-11-17 0:00 ` Unbounded strings (Was: Java vs Ada 95 (Was Re: Once again, Ada absent from DoD SBIR solicitation)) Robert A Duff
1996-11-18 0:00 ` Robert Dewar
1996-11-19 0:00 ` Joel VanLaven
1996-11-23 0:00 ` Robert Dewar
1996-11-19 0:00 ` Robert A Duff
1996-11-23 0:00 ` Robert Dewar
1996-11-24 0:00 ` Robert A Duff
1996-11-25 0:00 ` Norman H. Cohen
1996-11-27 0:00 ` Robert Dewar
1996-11-21 0:00 ` Robert I. Eachus
1996-11-24 0:00 ` Robert Dewar
1996-11-24 0:00 ` Fergus Henderson
1996-11-24 0:00 ` Robert Dewar
1996-11-25 0:00 ` Kevin D. Heatwole
1996-11-25 0:00 ` Robert A Duff
1996-11-26 0:00 ` Kevin D. Heatwole
1996-11-26 0:00 ` Robert A Duff
1996-11-26 0:00 ` Larry Kilgallen
1996-11-27 0:00 ` Robert Dewar
1996-11-27 0:00 ` Norman H. Cohen
1996-11-29 0:00 ` Robert A Duff
1996-11-29 0:00 ` Fergus Henderson
1996-11-26 0:00 ` Geert Bosch
1996-11-26 0:00 ` Robert Dewar
1996-11-25 0:00 ` Robert I. Eachus
1996-11-20 0:00 ` Jon S Anthony
1996-11-24 0:00 ` Robert Dewar
1996-11-06 0:00 ` Java vs Ada 95 (Was Re: Once again, Ada absent from DoD SBIR solicitation) Robert I. Eachus
1996-10-10 0:00 ` Once again, Ada absent from DoD SBIR solicitation Mike Stark
1996-10-10 0:00 ` Stanley R. Allen
1996-10-11 0:00 ` Mitch Gart
1996-10-11 0:00 ` Robert Dewar
1996-10-14 0:00 ` Mitch Gart
1996-10-14 0:00 ` Ken Garlington
1996-10-11 0:00 ` Ken Garlington
1996-10-14 0:00 ` Norman H. Cohen
1996-10-14 0:00 ` Bevin R. Brett
1996-10-11 0:00 ` Ada and the DoD HLA (was: Once again, Ada absent from DoD SBIR solicitation) John Cosby
1996-10-13 0:00 ` Java vs Ada 95 (Was " Hannes Haug
1996-11-03 0:00 ` Hannes Haug
1996-11-06 0:00 ` Fast locking (Was Re: Java vs Ada 95) Hannes Haug
1996-11-06 0:00 ` Hannes Haug
1996-10-11 0:00 ` Once again, Ada absent from DoD SBIR solicitation Matthew M. Lih
1996-10-18 0:00 ` Rush Kester
1996-10-21 0:00 ` C++ Standardization (was: Once again, Ada absent from DoD SBIR solicitation) David Emery
1996-10-10 0:00 ` Jon S Anthony
1996-10-11 0:00 ` Jon S Anthony
1996-10-22 0:00 ` Tarjei Jensen
1996-10-22 0:00 ` C++ Standardization (was: Once again, Ian Ward
1996-11-01 0:00 ` Java vs Ada 95 (Was Re: Once again, Ada absent from DoD SBIR solicitation) Jon S Anthony
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox