A Language for Configuring Multi-Level Specifications

G Hill, Steven Vickers

Research output: Contribution to journalArticlepeer-review

190 Downloads (Pure)


This paper shows how systems can be built from their component parts with specified sharing. Its principle contribution is a modular language for configuring systems. A configuration is a description in the new language of how a system is constructed hierarchically from specifications of its component parts. Category theory has been used to represent the composition of specifications that share a component part by constructing colimits of diagrams. We reformulated this application of category theory to view both configured specifications and their diagrams as algebraic presentations of presheaves. The framework of presheaves leads naturally to a configuration language that expresses structuring from instances of specifications, and also incorporates a new notion of instance reduction to extract the component instances from a particular configuration. The language now expresses the hierarchical structuring of multi-level configured specifications. The syntax is simple because it is independent of any specification language; structuring a diagram to represent a configuration is simple because there is no need to calculate a colimit; and combining specifications is simple because structuring is by configuration morphisms with no need to flatten either specifications or their diagrams to calculate colimits.
Original languageEnglish
Pages (from-to)146-166
Number of pages21
JournalTheoretical Computer Science
Issue number2
Publication statusPublished - 21 Feb 2006


  • configuration specification languages
  • formal languages
  • software engineering
  • formal semantics


Dive into the research topics of 'A Language for Configuring Multi-Level Specifications'. Together they form a unique fingerprint.

Cite this