Composite Type
Formal Definition
A composite
type object is one having multiple elements. There are two classes of
composite types: array types and record types.
Syntax:
composite_type_definition ::= array_type_definition | record_type_definition
Description
An object of a composite type is a collection of other objects,
called elements. The elements can be of any scalar,
composite or access
type. It is not allowed to use file types as elements of a composite type.
The difference between arrays
and records lies in that
all elements of an array must
be of the same type. For example, each array
element can be a voltage value. On the other hand, each element of a record
can be of a different type (Voltage1,
current1, resistance1,Voltage2,&ldots;). Each element of
an array is referred to by
its array name and position (index). On the other hand, the record
elements (called fields) are referred to through their
individual names (together with the name of entire record), or
through an aggregate.
See array and record
for details.
Examples
Example 1
type T_MonthlyIncome is
array (1 to 12) of Integer;
type T_PersonalData is
record
FirstName : String (1 to 6);
LastName : String (1 to 10);
IDNumber : String (1 to 5);
Incomes : T_MonthlyIncome;
TaxPaid : Boolean;
end record;
The two types above illustrate two classes of composite type. The
first one defines a 12-position array of integer values, while the
second one is a record with five fields. First four fields are of
composite types, while the very last one is of a scalar type.
Example 2
Signal Year97Inc : T_MonthlyIncome;
Signal SomeEmployee : T_PersonalData;
. . .
Year97Inc(12) <= 5500;
SomeEmployee.FirstName <= "Gordon";
The signals are declared to be of the types declared in Example
1. Note the way elements of the composite types are accessed:
in case of arrays through the position index, while in record through
the field name (preceded by a dot).
|