Go up to Top
Go forward to 2 Guide
1 Background
The algebraic approach to software specification originated in the
early 1970's. Since then, dozens of algebraic specification languages
have been developed--all of them supporting the basic idea of using
axioms to specify algebras, but differing in design choices concerning
syntax (concrete and abstract) and semantics. The lack of a
common framework for algebraic specification and development
has discouraged industrial acceptance of the algebraic method,
hindered its dissemination, and limited tool applicability.
Why not agree on a common framework? This was the provocative
question asked at a WADT meeting in Santa Margherita, 1994. At least
the main concepts to be incorporated were thought to be
clear--although it was realized that it might not be so easy to agree
on a common language to express these concepts.
The following aims and scope were formulated at the start of the
Common Framework Initiative, CoFI, in September 1995
[13]:
The aims of CoFI are to provide a common framework:
- by a collaborative effort
- for algebraic specification and development
- attractive to researchers as well as for use in industry
- providing a common specification language
with uniform, user-friendly syntax and straightforward semantics
- able to subsume many previous frameworks
- with good documentation and tool support
- free--but protected (cf. GNU)
The scope of CoFI is:
- specification of functional requirements
- formal development and verification of software
- relation of specifications to informal requirements
and implemented code
- prototyping, theorem-proving
- libraries, reuse, evolution
- tool interoperability
The specification language developed by CoFI is called CASL: the
Common Algebraic Specification Language. Its main features are:
- a critical selection of known constructs
- expressive, simple, pragmatic
- for specifying requirements and design for conventional
software packages
- restrictions to sublanguages
- extensions to higher-order, state-based, concurrent, ...
The CASL design effort started in September 1995. An initial design
was proposed in May 1997 (with a language summary, abstract syntax,
formal semantics, but no agreed concrete syntax) and tentatively
approved by IFIP WG1.3. Apart from a few details, the design was
finalized in April 1998, with a complete draft language summary
available, including concrete syntax. CASL version 1.0 was released
in October 1998; the formal semantics given for the proposed design
has now been updated to reflect the changes.
CoFI
Document: CASL/GuidedTour -- Version: 1 -- July 1999.
Comments to pdmosses@brics.dk
Go up to Top
Go forward to 2 Guide