Previous | Table of Contents | Next |
A type is an identifiable entity with an associated predicate (a single-argument mathematical function with a boolean result)
defined over entities. An entity satisfies a type if the predicate is true for that entity. An entity that satisfies a type
is called a member of the type.
Types are used in signatures to restrict a possible parameter or to characterize a possible result.
The extension of a type is the set of entities that satisfy the type at any particular time.
An object type is a type whose members are object references. In other words, an object type is satisfied only by object references.
Constraints on the data types in this model are shown in this section.
1.2.4.1 Basic types
• 16-bit, 32-bit, and 64-bit signed and unsigned 2’s complement integers.
• Single-precision (32-bit), double-precision (64-bit), and double-extended (a mantissa of at least 64 bits, a sign bit and an exponent of at least 15 bits) IEEE floating point numbers.
• Fixed-point decimal numbers of up to 31 significant digits.
• Characters, as defined in ISO Latin-1 (8859.1) and other single- or multi-byte character sets.
• A boolean type taking the values TRUE and FALSE.
• An 8-bit opaque detectable, guaranteed to not undergo any conversion during transfer between systems.
• Enumerated types consisting of ordered sequences of identifiers.
• A string type, which consists of a variable-length array of characters; the length of the string is a non-negative integer, and is available at run-time. The length may have a maximum bound defined.
• A wide character string type, which consist of a variable-length array of (fixed width) wide characters; the length of the wide string is a non-negative integer, and is available at run-time. The length may have a maximum bound defined.
• A container type “any,? which can represent any possible basic or constructed type.
• Wide characters that may represent characters from any wide character set.
• Wide character strings, which consist of a length, available at runtime, and a variable-length array of (fixed width) wide characters.
1.2.4.2 Constructed types
• A record type (called struct), which consists of an ordered set of (name,value) pairs.
• A discriminated union type, which consists of a discriminator (whose exact value is always available) followed by an instance of a type appropriate to the discriminator value.
• A sequence type, which consists of a variable-length array of a single type; the length of the sequence is available at run-time.
• An array type, which consists of a fixed-shape multidimensional array of a single type.
• An interface type, which specifies the set of operations that an instance of that type must support.
• A value type, which specifies state as well as a set of operations that an instance of that type must support.
Entities in a request are restricted to values that satisfy these type constraints. The legal
entities are shown in . No particular representation for entities is defined.
Object Reference Value Type Abstract Interface
Entity
Basic Value
Constructed Values
Figure 1-1 Legal Values