comp.lang.ada
 help / color / mirror / Atom feed
From: "Samuel T. Harris" <sam_harris@hso.link.com>
Subject: Re: Boolean Representation
Date: 1998/09/24
Date: 1998-09-24T00:00:00+00:00	[thread overview]
Message-ID: <360A8CCB.2D358953@hso.link.com> (raw)
In-Reply-To: 6udriu$hfi$1@nnrp1.dejanews.com

dewarr@my-dejanews.com wrote:
> 
> In article <6udkcj$87j$1@nnrp1.dejanews.com>,
>   matthew_snyder@my-dejanews.com wrote:
> > Is it safe to make the assumption that a boolean value of FALSE will always
> > be represented as a 0 and a value of TRUE will always be represented as a 1?
> > Will an unchecked conversion from a boolean to an integer always yield the
> > same results with different compilers?
> 
> Whether true or false, this is junky coding, just use
> Boolean'Pos (val) to get 0 or 1 in a for sure portable
> manner. Remember that to use an unchecked conversion for
> Boolean, you would have to use a 1-bit integer, anything
> else most definitely gives an implementation defined result.
> 

Good advice. In general I also am not concerned with the
internal representations of enumeration literals. I'm
usually concerned only with their order and the fact that
each has a unique ordinal within its type.

However, I have had occasion to be concerned with the
actual internal representation. This is where enumeration
representation clauses come in handy. Specifically, I have
had to represent a memory-mapped device with an Ada record.
One of the fields was a 16-bit flag array. A packed array
of booleans fit nicely. However, to insure the boolean
literals FALSE and TRUE have the appropriate internal
numbers, I used a derived type of boolean to which I applied
the appropriate representation clause. I know that this
might sound a bit paranoid but I tend to favor ultra-correctness
over any reliance on common compiler implementations.

-- 
Samuel T. Harris, Principal Engineer
Raytheon Training Incorporated
"If you can make it, We can fake it!"




  reply	other threads:[~1998-09-24  0:00 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1998-09-24  0:00 Boolean Representation matthew_snyder
1998-09-24  0:00 ` dewarr
1998-09-24  0:00   ` Samuel T. Harris [this message]
1998-09-25  0:00     ` dewarr
1998-09-27  0:00       ` Samuel T. Harris
1998-09-28  0:00         ` dewar
1998-09-24  0:00   ` matthew_snyder
1998-09-24  0:00     ` Tom Moran
1998-09-25  0:00       ` dewarr
1998-09-25  0:00         ` Tom Moran
1998-09-24  0:00     ` dennison
1998-09-25  0:00     ` dewarr
1998-09-25  0:00     ` Robert I. Eachus
1998-09-24  0:00 ` dennison
1998-09-24  0:00   ` Keith Thompson
1998-09-25  0:00     ` dennison
1998-09-25  0:00       ` Keith Thompson
1998-09-26  0:00         ` Tucker Taft
1998-09-26  0:00           ` Keith Thompson
1998-09-27  0:00             ` null pointer representation (was: Boolean Representation) Arthur Evans Jr
1998-09-27  0:00               ` Keith Thompson
1998-09-28  0:00               ` dewarr
1998-09-28  0:00                 ` Lieven Marchand
1998-09-28  0:00                 ` Keith Thompson
1998-09-28  0:00                   ` dewarr
1998-09-30  0:00                     ` Keith Thompson
1998-10-02  0:00                       ` Robert I. Eachus
1998-09-27  0:00             ` Boolean Representation dewarr
1998-09-27  0:00           ` dewarr
  -- strict thread matches above, loose matches on Subject: below --
1998-09-24  0:00 matthew_snyder
1998-09-25  0:00 ` Tucker Taft
1998-09-25  0:00   ` dewarr
1998-09-25  0:00   ` dewarr
replies disabled

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