CASL
The Common Algebraic Specification Language
Summary

by The CoFI Task Group on Language Design

9 September 1997

N.B. A formatting mistake originally caused all the changed bits of the abstract syntax to be almost illegible in the versions formatted for printing! This has now been eliminated.

This document is available by FTP in various formats. It was converted to HTML using Hyperlatex 2.2.

Abstract

This Summary is the basis for the Design Proposal [LD97b] for CASL, the Common Algebraic Specification Language, prepared by the Language Design Task Group of CoFI, the Common Framework Initiative. It gives the abstract syntax, and informally describes its intended semantics. It is accompanied by the Rationale for CoFI [CoF97], the Rationale for the Proposed Design of CASL [LD97c], a draft of the Formal Semantics of CASL [Sem97c], and proposals for Concrete Syntax, with Examples of how CASL specifications might look [KB97][VBC97][Mos97a].

Version 0.97 of the CASL Design Proposal was submitted for approval to the sponsoring IFIP Working Group on Foundations of System Specification, WG 1.3. It received tentative approval, together with a referees' report recommending the reconsideration of some elements of the design [IFI97]; a response has already been made [LD97a].

The present version of this Summary shows just which bits of CASL are currently subject to reconsideration or revision, in view of the referees' comments and the recommendations made by the CoFI Semantics Task Group [Sem97c]. Changes that were made since the previous version are highlighted in the same way as this sentence. Points where further discussion is required are highlighted like this sentence.

All comments on this Summary should be sent to the CoFI Language Design mailing list(cofi-language@brics.dk).

Deadline for comments to be considered at the Amsterdam Meeting of the Language Design Task Group:

12 noon on Tuesday, 23 September 1997.

The language CASL is central to CoFI: it is a reasonably expressive algebraic language for specifying requirements and design for conventional software. From CASL, simpler CoFI languages (e.g., for interfacing with existing tools) are to be obtained by restriction, and CASL is to be incorporated in more advanced CoFI languages (e.g., for specifying reactive systems). CASL strikes a balance between simplicity and expressiveness. The main features of its design are as follows:

Many-sorted basic specifications in CASL denote classes of many-sorted partial first-order structures: algebras where the functions are partial or total, and where also predicates are allowed. Axioms are first-order formulae built from definedness assertions and both strong and existential equations. Sort generation constraints can be stated. Datatype declarations are provided for concise specification of sorts together with some constructors and (optional) selectors. Subsorted basic specifications provide moreover a simple treatment of subsorts, interpreting subsort inclusion as embedding.

Structured specifications allow translation, reduction, union, and extension of specifications. Extensions may be required to be conservative and/or free; initiality constraints are a special case. A simple form of generic specifications is provided, together with instantiation involving parameter-fitting translations.

Architectural specifications express that the specified software is to be composed from separately-developed, reusable units with clear interfaces.

Finally, libraries allow the (distributed) storage and retrieval of named specifications.

Contents

  • About this document
  • Contributors
  • Structure
  • Part I: Basic Specifications
  • 1 Basic Concepts
  • 1.1 Signatures
  • 1.2 Models
  • 1.3 Sentences
  • 1.4 Satisfaction
  • 2 Basic Constructs
  • 2.1 Signature Declarations
  • 2.1.1 Sorts
  • 2.1.2 Constants and Functions
  • 2.1.3 Predicates
  • 2.1.4 Datatype Declarations
  • 2.2 Variable Declarations
  • 2.3 Axioms and Terms
  • 2.3.1 Quantifiers
  • 2.3.2 Logical Connectives
  • 2.3.3 Atomic Formulae and Terms
  • 2.4 Sort Generation
  • 3 Subsorting Concepts
  • 3.1 Signatures
  • 3.2 Models
  • 3.3 Subsorted Sentences
  • 4 Subsorting Constructs
  • 4.1 Subsort Declarations
  • 4.2 Axioms and Terms
  • 4.3 Datatype Declarations
  • 4.4 Subsort Definitions
  • Part II: Structured Specifications
  • 5 Structuring Concepts
  • 6 Structuring Constructs
  • 6.1 Structured Specifications
  • 6.1.1 Translations and Reductions
  • 6.1.2 Unions and Extensions
  • 6.2 Named and Generic Specifications
  • Part III: Architectural Specifications
  • 7 Architectural Concepts
  • 8 Architectural Constructs
  • 8.1 Unit Declarations and Definitions
  • 8.2 Unit Compositions
  • Part IV: Specification Libraries
  • 9 Library Concepts
  • 10 Library Constructs
  • 10.1 Libraries
  • 10.2 Distributed Libraries and Downloading
  • Appendices:
  • Appendix A: Abstract Syntax
  • Collected Grammar
  • Identifiers
  • Basic Specifications
  • Basic Specifications with Subsorts
  • Structured Specifications
  • Named and Generic Specifications
  • Architectural and Unit Specifications
  • Specification Libraries
  • Compacted Grammar
  • Specification Libraries
  • Structured Specifications
  • Basic Specifications
  • Generic Specifications
  • Architectural and Unit Specifications
  • Identifiers
  • Appendix B: Bibliography
  • References
  • Appendix C: Changes from the Proposed Design v0.97
  • Appendix D: Points for Discussion
  • Index
  • Footnotes

  • CoFI Document: CASL/Summary --Version 0.98-- 9 September 1997.
    Comments to cofi-language@brics.dk