The auxiliary unit declarations UNIT-DECL* in a
RESULT-UNIT are for (non-parametrized) units that are required,
but not specified, by the enclosing architectural specification; this
allows compositions which express partial architectural specifications
that depend on external units as specified in the declarations.
A RESULT-UNIT determines how the units declared in the enclosing
architectural specification are to be composed, using a UNIT-TERM
built from applications UNIT-APPL. A unit reduct
UNIT-REDUCT allows parts of the resulting unit to be hidden or
renamed. Taking the UNIT-TYPE of each UNIT-NAME from its
declaration, and taking any reducts into account, the UNIT-TERM
must be well-typed: the signature of each argument UNIT-TERM must
match that of the corresponding argument specification, and the
compatibility of the arguments must be ensured (by checking that
common symbols originate from the same unit declaration).
RESULT-UNIT ::= result-unit UNIT-DECL* UNIT-TERM
UNIT-TERM ::= UNIT-APPL | UNIT-REDUCT
UNIT-APPL ::= unit-appl UNIT-NAME UNIT-TERM*
UNIT-REDUCT ::= unit-reduct SIG-MORPH UNIT-TERM
CoFI Document: LanguageSummary --DRAFT, Version 0.96-- 30 April 1997.
Comments to cofi-language@brics.dk