comp.lang.ada
 help / color / mirror / Atom feed
From: ms8k#@andrew.cmu.edu.UUCP
To: outnews#ext.nn.comp.lang.ada@andrew.cmu.edu
Subject: Re: language problem
Date: Wed, 1-Apr-87 18:58:50 EST	[thread overview]
Date: Wed Apr  1 18:58:50 1987
Message-ID: <MS.V3.18.ms8k.80021103.harrisburg.ibm032.535.0@andrew.cmu.edu> (raw)



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.

Verdix Ada v1.5 is completely bogus. Don't be amazed by problems like this.
Another example is

    type BYTE is range 0 .. 255;
    for BYTE'SIZE use 8;

Verdix compiler says that the size is too small.

    type BYTE is new POSITIVE range 0 .. 255;
    for BYTE'SIZE use 8;

same thing! 0 as a POSITIVE does not disturb it. The bit sign is still there.

    type BYTE is range -128 .. 127
    for BYTE'SIZE use 8;

is ok (at last), but is not really what was wanted. Another solution may be
an enumaration of 256 items, a little painful. 

____________________________________________________________
Marc A. Scheurer

Arpanet, Bitnet: ms8k@andrew.cmu.edu
UUCP           : seismo!andrew.cmu.edu!ms8k
____________________________________________________________



 

             reply	other threads:[~1987-04-01 23:58 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1987-04-01 23:58 ms8k# [this message]
1987-04-03  0:52 ` language problem deller
  -- strict thread matches above, loose matches on Subject: below --
1987-04-08 18:08 drw
1987-04-07  5:53 drw
1987-04-08  1:11 ` keith
1987-04-03 10:35 ms8k#
     [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-03-26 17:30 amiram
1987-04-01 15:05 ` joe
1987-04-01 20:12   ` cjh
replies disabled

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