From: dewar@cs.nyu.edu (Robert Dewar)
Subject: Re: next "big" language?? (disagree)
Date: 1996/06/26
Date: 1996-06-26T00:00:00+00:00 [thread overview]
Message-ID: <dewar.835839441@schonberg> (raw)
In-Reply-To: DtKsIz.Dp6@thomsoft.com
Brian says (regarding the possible interpretations of Assert):
I'm not sure I see the complete distinction. Wouldn't it be possible
for a compiler to eliminate any divide-by-zero check from the
following code sequence:
if not (X /= 0) then
raise Assert_Error;
end if;
Q := 30 / X;
The divide is unreachable when X = 0. Now this admittedly does
cause a change in the generated code when an assertion is used.
I'm trying to understand the "assertions should not affect things"
camp.
It's delicate, but let's extend the example:
Q := 30 / X;
assert X /= 0;
Q := 30 / X;
roughtly the three points of view are:
1. the assert has no effect on the code, so the semantics is exactly
equivalent to what you would get by leaving out the assert, but
the assert can be checked at run time. In this model it would be
wrong for the compiler to leave out the second divide by zero
check. Warning: this model is hard to define formally.
2. The assert is equivalent to an if. In this case the compiler can
omit the second divide by zero check. This is what GNAT does, and
is easy to define formally, since it is just an equivalent to the
code that Brian quotes.
3. The assert does not correspond to executable code, but is an assertion
that the compiler can use as an assumption in compiling code (in Ada
terms you can almost think of this as saying that the semantics of the
assert is that the execution is erroneous if the condition is false).
In this interpretation the *first* of the divide by zero checks in the
above example can be omitted.
If this is not completely clear, that's not surprising, this is a messy
area to be absolutely sure of what the other guy is talking about :-)
next prev parent reply other threads:[~1996-06-26 0:00 UTC|newest]
Thread overview: 100+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <4p0fdd$4ml@news.atlantic.net>
1996-06-04 0:00 ` next "big" language?? (disagree) Peter Hermann
1996-06-04 0:00 ` The Amorphous Mass
1996-06-04 0:00 ` Peter Hermann
1996-06-04 0:00 ` The Amorphous Mass
1996-06-05 0:00 ` Michael David WINIKOFF
1996-06-07 0:00 ` Robert Dewar
1996-06-04 0:00 ` Robert Dewar
1996-06-06 0:00 ` Ken Garlington
1996-06-12 0:00 ` Help making ada pretty CSC Trusted Systems Group
1996-06-14 0:00 ` Sandy McPherson
1996-06-19 0:00 ` Ruediger Berlich
1996-06-05 0:00 ` next "big" language?? (disagree) Ian Ward
1996-06-05 0:00 ` The Amorphous Mass
1996-06-08 0:00 ` Robert Dewar
1996-06-08 0:00 ` Robert Dewar
1996-06-08 0:00 ` The Amorphous Mass
1996-06-09 0:00 ` Robert Dewar
1996-06-05 0:00 ` ++ robin
1996-06-05 0:00 ` Ian Ward
1996-06-05 0:00 ` Ian Ward
1996-06-06 0:00 ` Richard Riehle
1996-06-07 0:00 ` Richard Riehle
1996-06-08 0:00 ` O'Connor
1996-06-07 0:00 ` Robert Dewar
1996-06-10 0:00 ` Richard Riehle
1996-06-11 0:00 ` ++ robin
1996-06-11 0:00 ` James_Rogers
1996-06-11 0:00 ` Kevin J. Weise
1996-06-11 0:00 ` David Weller
1996-06-11 0:00 ` Chris Warack <sys mgr>
1996-06-11 0:00 ` ++ robin
1996-06-11 0:00 ` Ian Ward
1996-06-12 0:00 ` ++ robin
1996-06-12 0:00 ` Ian Ward
1996-06-11 0:00 ` Jon S Anthony
[not found] ` <4p60nk$imd@euas20.eua.ericsson.se>
[not found] ` <4p8lmq$oq7@goanna.cs.rmit.edu.au>
1996-06-11 0:00 ` ++ robin
1996-06-11 0:00 ` A. Grant
1996-06-12 0:00 ` ++ robin
1996-06-12 0:00 ` A. Grant
1996-06-14 0:00 ` Richard A. O'Keefe
1996-06-12 0:00 ` Robert Dewar
1996-06-17 0:00 ` A. Grant
1996-06-18 0:00 ` Robert Dewar
1996-06-24 0:00 ` Robert I. Eachus
1996-06-26 0:00 ` Norman H. Cohen
1996-06-19 0:00 ` Jon S Anthony
1996-06-20 0:00 ` Robert Dewar
1996-06-24 0:00 ` Keith Thompson
1996-06-25 0:00 ` Simon Read
1996-06-25 0:00 ` Robert A Duff
1996-06-24 0:00 ` Dale Stanbrough
1996-06-24 0:00 ` Assertions (was: Re: next "big" language?? (disagree)) Robert A Duff
1996-06-24 0:00 ` Robert Dewar
1996-06-25 0:00 ` Robert A Duff
1996-06-28 0:00 ` Robert Dewar
1996-06-24 0:00 ` Assertions (a different intent?) Gary McKee
[not found] ` <4qrljg$15l8@watnews1.watson.ibm.com>
1996-06-28 0:00 ` Assertions (was: Re: next "big" language?? (disagree)) Robert Dewar
1996-06-24 0:00 ` next "big" language?? (disagree) Lars Duening
1996-06-24 0:00 ` hopkinc
1996-06-24 0:00 ` Robert Dewar
1996-06-24 0:00 ` Adam Beneschan
1996-06-26 0:00 ` Marc C. Brooks
1996-06-26 0:00 ` Marc C. Brooks
[not found] ` <4qsbm7$r1s@Starbase.NeoSoft.COM>
1996-06-28 0:00 ` "Assert"? "Assume"? (was: next "big" language?? (disagree)) Alexander Bunkenburg
1996-06-28 0:00 ` Ian Collier
1996-07-01 0:00 ` Cameron Laird
1996-06-24 0:00 ` next "big" language?? (disagree) Adam Beneschan
1996-06-25 0:00 ` Darin Johnson
1996-06-26 0:00 ` A. Grant
1996-06-26 0:00 ` Dale Stanbrough
1996-06-25 0:00 ` Brian Nettleton @pulsar
1996-06-26 0:00 ` Robert Dewar [this message]
1996-06-28 0:00 ` Fergus Henderson
1996-06-28 0:00 ` Robert Dewar
1996-06-30 0:00 ` Fergus Henderson
1996-06-30 0:00 ` Robert Dewar
1996-06-12 0:00 ` Richard A. O'Keefe
1996-06-12 0:00 ` ++ robin
1996-06-12 0:00 ` Richard A. O'Keefe
1996-06-13 0:00 ` ++ robin
1996-06-13 0:00 ` ++ robin
1996-06-12 0:00 ` Jon S Anthony
1996-06-14 0:00 ` Jon S Anthony
1996-06-15 0:00 ` Jon S Anthony
1996-06-18 0:00 ` Adam Beneschan
1996-06-18 0:00 ` Jon S Anthony
1996-06-28 0:00 ` Assertions (an heretic view) Michel Gauthier
1996-06-28 0:00 ` Robert Dewar
1996-06-28 0:00 ` Robert A Duff
1996-06-06 0:00 ` next "big" language?? (disagree) Dale Pontius
1996-06-11 0:00 ` Jon S Anthony
1996-06-12 0:00 ` Help making ada pretty Pedro de las Heras
1996-06-18 0:00 ` next "big" language?? (disagree) ++ robin
1996-06-07 0:00 Ian Ward
1996-06-08 0:00 ` O'Connor
1996-06-10 0:00 ` Matt Kennel
1996-06-11 0:00 ` Robb Nebbe
1996-06-11 0:00 ` Ian Ward
1996-06-12 0:00 ` Norman H. Cohen
1996-06-09 0:00 ` Robert Dewar
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox