comp.lang.ada
 help / color / mirror / Atom feed
* Fortran's Equivalence
@ 1997-03-25  0:00 Viqar Abbasi
  1997-03-26  0:00 ` Robert Dewar
                   ` (5 more replies)
  0 siblings, 6 replies; 40+ messages in thread
From: Viqar Abbasi @ 1997-03-25  0:00 UTC (permalink / raw)



Hi all...

Can anyone tell me the "standard" way to implement Fortran's 
"EQUIVALENCE" in ADA?  Okay, okay, I realize that this is not really 
something that should be used in Fortran (or ADA) anyway.  Still, I need 
to do something as follows:

I have a BIT_PATTERN : System.Unsigned_32.  The first 4 bits represent 
an integer A, the next 17 represent another record B, the last eleven 
represent an integer C.  Ada gives something beautiful, in the "use at" 
clause, which lets me define a record to superimpose onto the bit 
pattern.  The big problem with this approach is that it isn't 
guaranteed by the LRM, and I need my application to be portable to 
other Ada implementations.  The Ada Quality and Style Guide, Clause 
5.9.4, also tells us that we should not use the "use at" clause to do 
such things.  I am using the GNAT compiler, 3.07 on the SGI.  The final 
system will be delivered for a VAX.

I have started doing my mapping via "Unchecked Conversions".  This seems 
to be going well, as long as I take care of the VAX/SGI bit-pattern 
differences.  Would using Unchecked_Conversions, when the sizes are 
always the same, be considered 100% portable, and will work under any 
ADA implementation?

Furthermore, are any of you aware of a better way to map variables on 
top of each other?  Please consider in any reply that I have extremely 
tight speed requirements as well.

Thank you kindly,
Viqar




^ permalink raw reply	[flat|nested] 40+ messages in thread

end of thread, other threads:[~1997-04-16  0:00 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1997-03-25  0:00 Fortran's Equivalence Viqar Abbasi
1997-03-26  0:00 ` Robert Dewar
1997-03-26  0:00   ` Robert A Duff
1997-03-29  0:00   ` Matthew Heaney
1997-03-29  0:00     ` Robert Dewar
1997-04-02  0:00       ` JP Thornley
1997-03-26  0:00 ` FORTRAN's Equivalence Nick Roberts
1997-03-26  0:00 ` Fortran's Equivalence Michael F Brenner
1997-03-26  0:00   ` Larry Kilgallen
1997-03-28  0:00   ` Oliver Kellogg
1997-03-29  0:00   ` Matthew Heaney
1997-03-29  0:00     ` Robert Dewar
1997-03-29  0:00     ` Robert Dewar
1997-04-01  0:00       ` Keith Thompson
1997-04-01  0:00         ` Robert Dewar
1997-04-01  0:00           ` Robert A Duff
1997-04-01  0:00             ` Robert Dewar
1997-04-04  0:00           ` Keith Thompson
1997-04-04  0:00             ` Robert Dewar
1997-04-07  0:00               ` Keith Thompson
1997-04-07  0:00               ` Charles H. Sampson
1997-04-07  0:00               ` Viqar Abbasi
1997-04-08  0:00                 ` Charles H. Sampson
1997-04-08  0:00                   ` Matthew Heaney
1997-04-09  0:00                     ` Stephen Leake
1997-04-09  0:00                       ` Robert Dewar
1997-04-10  0:00                         ` Simon Wright
1997-04-10  0:00                           ` Robert Dewar
1997-04-08  0:00                   ` Robert Dewar
     [not found]                     ` <1997Apr15.163103.27481@nosc.mil>
1997-04-16  0:00                       ` Robert Dewar
1997-04-04  0:00             ` Keith Thompson
1997-04-04  0:00               ` Robert Dewar
1997-04-08  0:00                 ` Keith Thompson
1997-04-07  0:00             ` Charles H. Sampson
1997-03-26  0:00 ` Tom Moran
1997-03-28  0:00 ` Charles H. Sampson
1997-03-29  0:00   ` Matthew Heaney
1997-04-01  0:00     ` Charles H. Sampson
1997-03-29  0:00 ` Matthew Heaney
1997-03-29  0:00   ` Robert Dewar

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