Go backward to Unit Declarations
Go up to Architectural Constructs

Unit Compositions

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
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. 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.
CoFI Tentative Document: LanguageSummary --Version 0.95-- March 6, 1997.
Comments to cofi-language@brics.dk