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 (by checking that common symbols originate from the same unit declaration).

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 Document: LanguageSummary --DRAFT, Version 0.96-- 30 April 1997.
Comments to cofi-language@brics.dk