Endian-Safe Record Representation Clauses for Ada Programs. Mike Mardis Space Systems Development Department Naval Research Laboratory Washington, D C m a r d i s @ s s d d . n r l . n a v y . rail Portability of an Ada program cannot be achieved without careful attention to detail. While the portability characteristics of the Ada programming language have always been good, there are common language features which can severely limit portability. The second iteration of the language, Ada95, has alleviated many of the first-generation problems and limitations. Unfortunately, Ada's semantic dependence on the target system's "endian" persists. This dependence exists primarily in the record representation clause. The memory organization of a computer system is either "little-endian" or "big-endian." These terms refer to the order of storage units in memory for data objects whose size exceeds the system's storage unit. Most computer systems have byte-addressable memory architectures, so the most common storage unit is a byte (8 bits). The endian of a system also affects the bit numbering convention within data objects. Specifically, little-endian means least significant first and bigendian means most significant first. Little-endian systems place the least-significant storage unit first at
/lp/association-for-computing-machinery/endian-safe-record-representation-clauses-for-ada-programs-gNxaISxKdj