This article presents a strategy to convert any Ada type to and from a byte stream, for the purpose of communication or storage of values in a heterogeneous environment:• different Ada compilers,• different hardware platforms with different "endian-ness,"• different versions of the same compiler,• or even different programming languages.These operations are sometimes called 'marshalling' and 'unmarshalling' (RM95 E.4(9) 1 ).The strategy is systematically supported by a tool built on top of the Ada Semantic Interface Specification (ASIS) 2 , which builds or updates the conversion routines based on the type definitions.The strategy presented is similar to the Ada 95 mechanism of stream and stream-oriented attributes, however the tool applies to both Ada 83 and Ada 95 with only slight differences in the aspect of the source code generated.
/lp/association-for-computing-machinery/ada-type-interchange-moving-data-between-platforms-TsXqJN9g7U