From: robert_dewar@my-dejanews.com
Subject: Re: Uninitialized Variables
Date: 1999/01/25
Date: 1999-01-25T00:00:00+00:00 [thread overview]
Message-ID: <78iljo$7q7$1@nnrp1.dejanews.com> (raw)
In-Reply-To: rracine.7.000B4B63@draper.com
In article <rracine.7.000B4B63@draper.com>,
rracine@draper.com (Roger Racine) wrote:
> One of the few areas where Ada programs exhibit
non-deterministic behavior
> (i.e. different behavior for different runs) is when
variables are not set
> before their use.
>
> I am curious as to why the language designers did not
> think this was sufficiently common enough of an error to
> protect against it. I understand that having an initial
> value takes more memory and more CPU, but so do
> constraint checks.
You miss the philosophical and design objections to junk
initial values. These arguments are familiar so I won't
repeat them in detail here!
> And there could always have been a pragma to allow
> uninitialized variables (akin to pragma SUPPRESS).
Ada 95 of course has a pragma, but it has the opposite
sense, you use pragma Normalize_Scalars if you want
initializations. The intention of this pragma is precisely
to avoid non-determinism. Why is it not enough for you?
> Does anyone know why there is not at least a required
> link-time warning message for variables possibly used
> before being set?
First, a full analysis at link time of all possible static
flows through a program would be a very heavy burden to
place on a compiler. It is far out of reach of what could
be done in existing implementation frameworks, and I would
have significant efficiency concerns.
Second, requiring warning messages is a big bogus in
anyway. Such requirements are not testable, and not
well-defined. I think it reasonable to let the marketplace
determine the need for warnings.
It is certainly useful for a compiler to do a reasonable
job of detecting obvious cases (try using -gnatwu with
GNAT 3.11p).
Robert Dewar
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own
next prev parent reply other threads:[~1999-01-25 0:00 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
1999-01-25 0:00 Uninitialized Variables Roger Racine
1999-01-25 0:00 ` robert_dewar [this message]
1999-01-25 0:00 ` Tucker Taft
-- strict thread matches above, loose matches on Subject: below --
2006-03-13 19:58 private types ada_student
2006-03-17 4:33 ` Justin Gombos
2006-03-17 5:17 ` Brian May
2006-03-18 1:17 ` Randy Brukardt
2006-03-18 8:39 ` Uninitialized variables (was: Re: private types) Dirk Craeynest
2006-03-18 14:06 ` Gautier
2006-03-18 14:36 ` Uninitialized variables Jeffrey Creem
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox