Table of Contents

Elaboration of a declaration

Elaborating a declaration corresponds to generating the declared construct. The syntactic rules (above all those concerning the validity range) do not allow a construct to be used before the corresponding declaration has been elaborated.

Subprogram declaration and bodies

A subprogram-declaration is elaborated by elaborating the corresponding interface- parameter list. By doing so the subtype of every interface element and thus also the subtype of every formal parameter in the subprogram is determined.

The elaboration of the subprogram body allows the subprogram to be used in following (not in previous!) subprogram calls.

Elaboration of a Subprogram

Type declaration

Elaboration of a Type

The system at first elaborates the type definition and afterwards generates the type. With a constrained array declaration, however, at first the equally valued unconstrained array type is elaborated (i.e. the elements` subtypes are elaborated) and then the subtype which corresponds to the unconstrained array type is elaborated.

The elaboration of an enumeration type generates the corresponding type. With integer-, floating point- or physical type definitions the corresponding subtypes are determined. With physical type definitions the units are generated as well.

One data set (Record construction) is elaborated by elaborating the individual elements` declarations in the given sequence (similar to array type)

The elaboration of an element declaration consists of determining the subtype. The elaboration of an index declaration is equal to that of the corresponding subtype.

Subtype declaration

Here the subtype is determined and generated. If the subtype is unconstrained it is similar to the base type. Otherwise at first the limitation is elaborated and afterwards compatibility towards the base type is checked.

Elaboration of a Subtype

A limitation to the value range is elaborated by calculating this value range. In doing so the value limits and the counting direction of the range are defined. A limitation in size is elaborated by calculating the corresponding expression.

Object declaration

Here one has to distinguish between file-objects and other objects. With file-objects at first the subtype is determined and then generated. The logical file name is determined and the corresponding physical file is linked to the new object.

The following procedure is valid for all other types of objects (except for port- and generic-delcarations):

During initialisation it is checked whether the subtype belongs to the object`s subtype.

With a array object which is signified by an object-declaration the first step is to transform the subtype until the object is a constant whose subtype is a type of an unconstrained array.

An error occurs if the name of one of the object`s subtypes is used before the corresponding declaration has been elaborated.

If a file elaborated which declaration contains no file open information, then first FILE_OPEN is called.

Alias declaration

The subtype associated with the alias is determined and generated. After that an alternative name is generated.

The creation of an alias for an array object involves a check that the subtype associated with the alias includes a matching element for each element of the named object

Elaboration of an Alias

Attribute declaration

A template is generated with which it is possible to define attributes for the individual elements.

Elaboration of an Attribute

Component declaration

The system generates a template for generating the component`s instants.

Elaboration of a specification

Here additional information is assigned to a previously declared program part.

Attribute specification

Elaboration proceeds as follows:

The assignment described at 4. comprises a test to check whether the value belongs to the attribute`s subtype.

With a constrained array type`s attribute at first the subtype has to undergo an implicit type conversion similar to a statement of assignment. Such a conversion is not necessary for unconstrained array types.

Configuration specification

Elaboration proceeds as follows:

The procedure described here comprises a test to make sure that the entity declaration and the corresponding architecture implied by the binding indications exist within the specified library.

Elaboration of a Configuration

Disconnection specification

This includes the following steps:

Elaboration of a Disconnection