comp.lang.ada
 help / color / mirror / Atom feed
From: cjh@petsd.UUCP
Subject: Re: language problem
Date: Wed, 1-Apr-87 15:12:44 EST	[thread overview]
Date: Wed Apr  1 15:12:44 1987
Message-ID: <998@petsd.UUCP> (raw)
In-Reply-To: 997@petsd.UUCP

[]
In article <997@petsd.UUCP> joe@petsd.UUCP (Joseph M. Orost) writes:
>In article <8703261730.AA28726@taurus> amiram@TAURUS.BITNET.UUCP writes:
>>A colleague of mine, Yossi Veler of AITECH has come up with the following
>>program in Ada, which seems to create a serious problem.
>>
>>procedure boolsub is
>>   subtype bool is boolean range true..true;
>>   type arr is array(1..10) of bool;
>>   a : arr := (1..10 => true); -- this seems like the only legal value
>>begin
>>   a := not a;
>>-- Here a(1)=a(2)=...=a(10)= FALSE !!!! No exception occurs etc.
>>   a := (1..10 => false);
>>-- This does cause an exception
>>end boolsub;
>>
>>The program seems legal : we inspected the LRM and also the implementers
>>guide, and we ran it on both the DDC and VERDIX compilers. It seems that
>>a combination of innocent features in Ada produces a result that seems to
>>contradict with the basic philosophy of the language, that is an object
>>posseses a value which is not in the appropriate type.
>
>Our compiler (C3Ada R00-01.02/Beta) correctly raises CONSTRAINT_ERROR on the
>statement "a := not a;".
>
Why is this statement illegal?  Well... what is the type of the
expression "not a" ?  It can't be "arr" because its components do not
satisfy the subrange constraint.  And there isn't any available type
with boolean components.  The type "arr" may look like a subtype of
"ARRAY(1..10) of boolean", but it isn't.  On arrays, subtype
constraints affect the bounds of indexes, not the values of
components.

Regards,
Chris

--
Full-Name:  Christopher J. Henrich
UUCP:       ...!hjuxa!petsd!cjh
US Mail:    MS 313; Concurrent Computer Corporation;
            106 Apple St; Tinton Falls, NJ 07724
Phone:      (201) 758-7288
Concurrent Computer Corporation is a Perkin-Elmer company.

  reply	other threads:[~1987-04-01 20:12 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1987-03-26 17:30 language problem amiram
1987-04-01 15:05 ` joe
1987-04-01 20:12   ` cjh [this message]
  -- strict thread matches above, loose matches on Subject: below --
1987-04-01 23:58 ms8k#
1987-04-03  0:52 ` deller
     [not found] <12291366595.33.BRYAN@Sierra.Stanford.EDU>
1987-04-02 20:22 ` ROSENBLUM
1987-04-03 14:49   ` dday
1987-04-06 13:26     ` eric
1987-04-03 10:35 ms8k#
1987-04-07  5:53 drw
1987-04-08  1:11 ` keith
1987-04-08 18:08 drw
replies disabled

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