A type defines the kinds and ranges of values that constants, variables,
procedures, and functions may contain. Types also define the size of,
as well as the operations on such identifiers.
TMT Pascal comes with a powerful set of predefined types and it is possible
to define new types for constants and variables.
There are five basic type groups that are available under TMT Pascal.
Each group contains types with similar properties. They are the following:
Scalar types consist of an ordered set of values. Scalar types include all
ordinal types as well as real types. Characters are also of scalar type.
Ordinal types are a subset of scalar types. Ordinal types include boolean,
char, enumeration, and integer. Reals are not ordinal types.
Procedure types contain the address in memory of a procedure or function.
Pointer types store the address of a location in memory. Pointer types can
be used to address dynamic variables.
Structured types are types that contain several components. Each component
can be accessed separately or the entire structure can be treated as a whole.
Examples of structured types include strings, arrays, records, sets, files,