Next: References
Up: Semantic Spaces for Specifications
Previous: 2.4 A Semantic Space
Most work on integrating formal specifications into the software
life-cycle relies on using one language for writing specifications
(e.g., Larch or ) and another language for writing
implementations (e.g., Ada or C++) [KH96]. We have
concentrated on a single integrated language (RESOLVE) because it is
difficult to pursue an agenda that includes formal verification unless
the semantics of specifications and implementations are defined
together. Perhaps our ideas about the semantics of specifications can
suggest new ways for those who work with separate specification and
implementation languages to integrate their semantic spaces. An
integrated semantic treatment seems essential in order to avoid
pitfalls in reasoning about software systems which several authors
have exposed [Coo78,EHMO91,Lea91,EHO94,LW94,SWO97].
Our ideas about templates also might encourage the software engineering formal methods community to consider templates more seriously. While RSRG (like [Gog84]) has concluded that templates are inevitably at the very heart of component-based systems [Gib97] and templates have appeared in more and more modern programming languages, most of the formal methods community has hardly mentioned them. We should note that the centrality of templates also seems clear to some, but not all, of the functional representation community in AI.
RESOLVE is unusual in that it is a combination
specification-and-implementation language with modern features such as
templates, some forms of inheritance, etc. The semantic spaces
developed to date for RESOLVE component varieties do not directly
follow the approach suggested here. They are based on the ACTI formal
model of software subsystems [Edw95], which has heavily
influenced this paper. In particular the ACTI semantic space for
templates (``concrete templates'', tantamount to )suggests our proposed view of templates, and the ACTI semantic space
for ``abstract templates'' suggests our proposed view of specification
templates mentioned at the end of Section 2.4.
David S. Gibson and Bruce W. Weide