CASL is an expressive language for the algebraic specification of software requirements, design, and architecture. It has been developed by an open collaborative effort called CoFI (Common Framework Initiative for algebraic specification and development). This paper presents CASL for users of the ASF+SDF framework.
CASL is intended as the main language of a coherent family of languages.
Vital for the support for CoFI in the algebraic specification community is the coverage of concepts of many existing specification languages. How could this be achieved, without creating a complicated monster of a language? And how to avoid interminable conflicts with those needing a simpler language for use with prototyping and verification tools?
By providing not merely a single CASL language but a coherent language family, CoFI will allow the conflicting demands to be resolved, accommodating advanced as well as simpler languages. At the same time, this family is to be given structure by being organized largely as restrictions and extensions of CASL.
Restrictions of CASL are to correspond to languages used with existing tools for rapid prototyping, verification, term rewriting, etc. Extensions to CASL are to support various programming paradigms, e.g., object-oriented, higher-order, reactive. Apart from such languages, the common framework is also to provide an associated development methodology, training materials, tool support, libraries, a reference manual, formal semantics, and conversion from existing frameworks.
CASL is required to be competitive in expressiveness with various existing languages.
The choice of concepts and constructs for CASL was a matter of finding a suitable balance point between advanced and simpler languages, taking into account its intended applicability: for specifying the functional requirements and design of conventional software packages as abstract data types.
The design of CASL is based on a critical selection of the concepts and constructs found in existing algebraic specification frameworks. The main novelty of CASL lies in its particular combination of concepts and constructs, rather than in the latter per se. Almost all CASL features may be found (in some form or other) in one or more of the main existing algebraic specification frameworks.
The CASL design has been tentatively approved by IFIP WG 1.3.
The design proposal for CASL [LD97b] was submitted to IFIP Working Group 1.3 (Foundations of System Specification) in May 1997. The proposal provided the abstract syntax of the proposed language, together with an informal summary of the intended well-formedness conditions and semantics [LD97e]; the choice of concrete syntax had not been finalized. Accompanying documents gave the rationale for CoFI [CoF97] and for the CASL design [LD97c], and a draft formal semantics for CASL [Sem97].
The design was tentatively approved at the IFIP WG 1.3 meeting in Tarquinia, June 1997, subject to reconsideration of some particular points [LD97a] and the development of a satisfactory concrete syntax. The abstract syntax and informal summary are currently being finalized [LD97d], after which the formal semantics will be adjusted accordingly. Tools and methodology for CASL are being developed. The concrete syntax of CASL has still not been finalized--that used in the present paper is tentative, and subject to change!
CoFI is open to contributions and influence from all those working with algebraic specifications.
The design of CASL has been developed by a varying Language Design task group, coordinated by Bernd Krieg-Brückner, comprising between 10 and 20 active participants representing a broad range of algebraic specification approaches (the CoFI Rationale [CoF97] lists the names of all contributors to CoFI). Numerous study notes have been written on various aspects of language design, and discussed at working and plenary language design meetings. The study notes and various drafts of the design summary were made available electronically and discussed on the associated mailing list (cofi-language@brics.dk).
The openness of the design effort should have removed any suspicion of undue bias towards constructs favoured by some particular `school' of algebraic specification. It is hoped that CASL incorporates just those features for which there is a wide consensus regarding their appropriateness, and that the common framework will indeed be able to subsume many existing frameworks and be seen as an attractive basis for future development and research--with high potential for strong collaboration.
So much for the background of CASL.
Readers of this paper are assumed to be familiar with the ASF+SDF language and system.
For an introduction to ASF+SDF, see [vDHK96].