| M68K Ada Technical Summary: For mission-critical applications on Motorola M68000 family computers | ||
|---|---|---|
| Prev | Chapter 3. Language-Related Issues | Next |
Declarations and types are supported as specified in the Ada standard except for tagged types (See RM Section 3.9).
When the compile time options -Wuninitialized -O are used, the compiler will flag variables that may be uninitialized.
Enumeration types are supported as defined in the Ada 95 Reference Manual. Additional code and read-only data are generated to support the attributes 'Image, 'Pos and 'Val.
The size of enumeration objects is the minimum required to accommodate all the values, and including any representations given in a representation clause. The compiler will select a size of 8, 16 or 32 bits as appropriate.
Enumeration types may be packed to reduce wasted space in arrays of enumeration objects.
M68K Ada provides five predefined Integer types:
the type Short_Short_Integer
the type Short_Integer
the type Integer
the type Long_Integer
the type Long_Long_Integer
Table 3-1 gives the values of the attributes Size, First and Last for these types.
Table 3-1. Attributes of the Predefined Integer Types
| Type name | Size | First | Last |
|---|---|---|---|
| Short_Short_Integer | 8 | -27 | 27-1 |
| Short_Integer | 16 | -215 | 215-1 |
| Integer | 32 | -231 | 231-1 |
| Long_Integer | 32 | -231 | 231-1 |
| Long_Long_Integer | 64 | -263 | 263-1 |
User-Defined Types. For a user-defined integer type, the compiler automatically selects the smallest compatible predefined integer type as the base type. For example, given the following type definition:
the compiler will use Short_Short_Integer as the base type, and My_Integer'Size will be 8 bits.
Modular Types. M68K Ada supports modular types up to 64 bits in size. Like the integer types, these are represented in 8, 16, 32 or 64 bits as appropriate. The following declarations are legal:
type word_8 is mod 256; type word_16 is mod 65536; type word_32 is mod 2**32; type word_64 is mod 2**64;
The standard Ada 95 operators for modular types are supported.
M68K Ada provides four predefined floating-point types:
the type Short_Float
the type Float
the type Long_Float
the type Long_Long_Float
The types Short_Float and Float are represented by the 32-bit single precision IEEE format; the types Long_Float and Long_Long_Float are represented by the 64-bit IEEE format. Note that the IEEE 80-bit extended precision format is not supported by M68K Ada.
Table 3-2 gives the values of the attributes for the predefined floating-point types.