Contents Index Previous Next
F.1 Machine_Radix Attribute Definition Clause
Static Semantics
1
{specifiable (of Machine_Radix
for decimal first subtypes) [partial]} {Machine_Radix
clause} Machine_Radix may be specified for a
decimal first subtype (see
3.5.9) via an
attribute_definition_clause;
the expression of such a clause shall be static, and its value shall be 2 or
10. A value of 2 implies a binary base range; a value of 10 implies a decimal
base range.
1.a
Ramification: In the absence
of a Machine_Radix clause, the choice of 2 versus 10 for S'Machine_Radix
is not specified.
Implementation Advice
2
Packed decimal should be used as the internal
representation for objects of subtype S when S'Machine_Radix = 10.
2.a
Discussion: The intent
of a decimal Machine_Radix attribute definition clause is to allow the
programmer to declare an Ada decimal data object whose representation
matches a particular COBOL implementation's representation of packed
decimal items. The Ada object may then be passed to an interfaced COBOL
program that takes a packed decimal data item as a parameter, assuming
that convention COBOL has been specified for the Ada object's type in
a pragma Convention.
2.b
Additionally, the Ada compiler
may choose to generate arithmetic instructions that exploit the packed
decimal representation.
Examples
3
Example of Machine_Radix
attribute definition clause:
4
type Money is delta 0.01 digits 15;
for Money'Machine_Radix use 10;
Contents Index Previous Next Legal