In order to simplify the software internal to the functions being called, the tagged parameters are translated into a format native to the machine architecture and compiler being used before execution of the function begins. The instructions inside the function access the parameters as if they were passed from a native caller.
This format translation has two tasks. The first is to translate the scalar parameters into the convention of the local machine architecture. The parameters will be placed into registers and/or on a temporary stack provided to the function for internal dynamic variable storage. The second is to resolve the shared memory IDs into physical addresses in the local address space of the executing processor.
A C version of this format translator is available for
compilation, although there are parts which are impossible to express
in a high level language which must be added in assembler.