comp.lang.ada
 help / color / mirror / Atom feed
From: dewar@gnat.com (Robert Dewar)
Subject: Re: gnat: time-slicing
Date: 20 Jul 2002 04:47:54 -0700
Date: 2002-07-20T11:47:54+00:00	[thread overview]
Message-ID: <5ee5b646.0207200347.2c61f610@posting.google.com> (raw)
In-Reply-To: yecy9c7th59.fsf@king.cts.com

Keith Thompson <kst@cts.com> wrote in message news:<yecy9c7th59.fsf@king.cts.com>...
> Robert A Duff <bobduff@shell01.TheWorld.com> writes:
> [...]
> > Note that "erroneous" is an Ada technical term.  It doesn't mean exactly
> > the same thing as it does in plain English (unfortunately).  Look it up
> > in the RM, if you like.
> 
> That's one thing the C standard got right and the Ada standard got
> wrong.  C's term for the same thing is "undefined behavior", which
> means pretty much what is says in plain English; the standard defines
> it more precisely, but the definition doesn't conflict with common
> usage.  Ada's term "erroneous" is misleading because the word already
> has a perfectly good meaning that's much less specific than the
> meaning the Ada standard assigns to it.

To me undefined behavior is also a very vague term if we don't think
of
it as a technical term. Undeefined behavior can reasonably be thought
of
as encompassing four things in Ada:

  1. erroneous execution
  2. implementation defined behavior (and hence undefined in the
standard)
  3. implementation dependent behavior
  4. execution that is a bounded error (defined but still considered
wrong)

I actually like the use of the term erroneous as opposed to undefined,
but
in any case, the point is that both the terms undefined in C and
erroneous
in Ada are technical terms. In both cases you will get into trouble if
you
think of them as meaning just what they mean in English.

If you read a language standard, you must be prepared to acquire the
technical
terms that are used and understand them precisely. If you find that
too much
of a burden, then language standards are not for you. Now of course a
text book
or a tutorial is free to use any language it pleases. There is
certainly no
reason why every programmer should need to know precise technical
terms of
the standard, and it is unrealistic to think they will.

One of the rules we try to follow in GNAT error messages is NOT to
rely on the
precise meaning of technical terms. For example, everyone who reas the
standard
carefully knows that the term "package" does not include "generic
package". There are many statements in the RM that depend crucially on
this fact. But we
try to avoid a GNAT error message that uses the word "package" in this
formal
sense, since informally a generic package is a kind of package in
ordinary
english.

Similarly, what everyone calls a package specification, package spec
for short,
is in fact NOT a package specification at all in the RM, but rather a
package
declaration, and there are RM statements that depend on this
distinction, but
we try to avoid depending on this in error messages

(actually internally in the GNAT sources, and externally to some
extent, we
have defined package spec, which is a term that does not appear in the
RM,
to mean package declaration :-)



  parent reply	other threads:[~2002-07-20 11:47 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-07-15 11:25 gnat: time-slicing Jan Prazak
2002-07-15  8:44 ` Dale Stanbrough
2002-07-15 19:10   ` Jan Prazak
2002-07-15 17:16     ` David C. Hoos
2002-07-15 23:30       ` Jan Prazak
2002-07-16  0:54         ` Jan Prazak
2002-07-16 10:46         ` Lutz Donnerhacke
2002-07-16 11:57           ` Aaro Koskinen
2002-07-16 12:57           ` SteveD
2002-07-16 15:18           ` Florian Weimer
2002-07-16 13:29     ` Marin David Condic
2002-07-17 19:29       ` Jan Prazak
2002-07-15 13:07 ` time-slicing David C. Hoos
2002-07-15 14:56   ` time-slicing Ian Broster
2002-07-15 19:10   ` time-slicing Jan Prazak
2002-07-15 19:10   ` time-slicing Jan Prazak
2002-07-15 19:05     ` time-slicing Anders Gidenstam
2002-07-15 23:30       ` time-slicing Jan Prazak
2002-07-15 20:33         ` time-slicing Darren New
2002-07-16 16:30         ` time-slicing Pascal Obry
2002-07-16 23:05           ` time-slicing Jan Prazak
2002-07-16 21:33     ` time-slicing Robert Dewar
2002-07-15 21:03 ` gnat: time-slicing tmoran
2002-07-16 13:04   ` Jan Prazak
2002-07-16 21:29 ` Robert Dewar
2002-07-17 19:29   ` Jan Prazak
2002-07-17 16:44     ` Pascal Obry
2002-07-17 21:38       ` Jan Prazak
2002-07-17 19:21         ` Randy Brukardt
2002-07-17 22:44           ` Jan Prazak
2002-07-17 19:57             ` Marin David Condic
2002-07-18 18:38               ` Larry Kilgallen
2002-07-20 11:52                 ` Robert Dewar
2002-07-17 19:43         ` Pascal Obry
2002-07-18 18:55           ` Jan Prazak
2002-07-18 17:01             ` Pascal Obry
2002-07-18 17:03             ` Pascal Obry
2002-07-18 22:38         ` chris.danx
2002-07-18  2:50     ` R. Tim Coslet
2002-07-18 12:54       ` SteveD
2002-07-20 11:56       ` Robert Dewar
2002-07-18 12:02     ` Frank J. Lhota
2002-07-19  2:33 ` Robert A Duff
2002-07-19 13:32   ` Jan Prazak
2002-07-19 23:46   ` Keith Thompson
2002-07-20  0:36     ` Robert A Duff
2002-07-20  4:25       ` Darren New
2002-07-20 11:47     ` Robert Dewar [this message]
2002-07-21 10:58       ` Keith Thompson
2002-07-31 22:28       ` Robert A Duff
2002-08-01 19:28   ` Erroneous execution? (was Re: gnat: time-slicing) Ben Brosgol
2002-08-01 22:03     ` Robert A Duff
2002-08-02  3:59       ` Ben Brosgol
2002-08-13 22:30         ` Robert A Duff
2002-08-02  4:17       ` Robert Dewar
2002-07-19  3:17 ` time-slicing SteveD
2002-07-19 13:32   ` time-slicing Jan Prazak
2002-07-19 12:41     ` time-slicing SteveD
  -- strict thread matches above, loose matches on Subject: below --
2002-07-18  4:44 gnat: time-slicing Grein, Christoph
2002-07-18 18:55 ` Jan Prazak
2002-07-18 16:35   ` Sergey Koshcheyev
2002-07-19  1:37   ` Robert A Duff
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox