CASL User Manual

and concrete syntax of CASL are defined formally. The next part of the Reference Manual is a formal definition of the syntax of CASL. Abstract syntax is given, where each phrase is written in a way that directly indicates its components, thus making evident its internal structure. In essence, the use of each construct of the language is explicitly labeled here. This is convenient for formal manipulation and analysis, but is not so readable. Therefore, the so-called concrete syntax of CASL (as used for instance in the examples throughout this book) is given as well, retaining a direct correspondence with the abstract syntax. This offers to the user of CASL a convenient and readable way of writing down CASL specifications, in a way that makes clear the formal structure of the phrases and constructs used to build them. As usual, the syntax is given as a context-free grammar, using a variant of the BNF notation, relying on well-established theory to give its formal meaning, and on a variety of tools and techniques available for syntactic analysis of languages presented in such a style. CASL has a complete formal semantics. The ultimate definition of the meaning of CASL specifications is provided by the semantics of CASL in the Reference Manual. The semantics first defines mathematical entities that formally model the intended meaning of various concepts underlying CASL, as already hinted at in Chap. 2, and further introduced and discussed throughout the summary. The key concepts here are that of CASL signature, model and formula, together with the satisfaction relation between models and formulas over a common signature. In fact, these are variants of the standard algebraic and logical notions, thus linking work on CASL to well-established mathematical theories and ideas.

[1]  Joseph A. Goguen,et al.  The Semantics of CLEAR, A Specification Language , 1979, Abstract Software Specifications.

[2]  Stephen J. Garland,et al.  Larch: Languages and Tools for Formal Specification , 1993, Texts and Monographs in Computer Science.

[3]  Jan A. Bergstra,et al.  The algebraic specification formalism ASF , 1989 .

[4]  Donald Sannella,et al.  The Definition of Extended ML: A Gentle Introduction , 1997, Theor. Comput. Sci..

[5]  Till Mossakowski CASL: From Semantics to Tools , 2000, TACAS.

[6]  Dieter Hutter,et al.  The Development Graph Manager MAYA , 2002, AMAST.

[7]  Martin Wirsing,et al.  Algebraic Specification , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[8]  Donald Sannella,et al.  Architectural Specifications in CASL , 1998, AMAST.

[9]  Lawrence Charles Paulson,et al.  Isabelle: A Generic Theorem Prover , 1994 .

[10]  Till Mossakowski Relating CASL with other specification languages: the institution level , 2002, Theor. Comput. Sci..

[11]  Hartmut Ehrig,et al.  Algebraic Specification Techniques and Tools for Software Development: The Act Approach , 1993, AMAST Series in Computing.

[12]  Joseph A. Goguen,et al.  Institutions: abstract model theory for specification and programming , 1992, JACM.

[13]  Arie van Deursen,et al.  Language Prototyping: An Algebraic Specification Approach , 1996, AMAST Series in Computing.

[14]  Grigore Rosu,et al.  Rule-Based Analysis of Dimensional Safety , 2003, RTA.

[15]  Martin Wirsing,et al.  Structured Algebraic Specifications: A Kernel Language , 1986, Theor. Comput. Sci..

[16]  Till Mossakowski,et al.  Integrating HOL-CASL into the Development Graph Manager MAYA , 2002, FroCoS.

[17]  Michel Bidoit,et al.  How to Make Algebraic Specifications More Understandable: An Experiment with the PLUSS Specification Language , 1989, Sci. Comput. Program..

[18]  Peter D. Mosses,et al.  CASL: the Common Algebraic Specification Language , 2002, Theor. Comput. Sci..

[19]  Arie van Deursen,et al.  The ASF+SDF Meta-environment: A Component-Based Language Development Environment , 2001 .

[20]  Donald Sannella,et al.  Essential concepts of algebraic specification and program development , 1997, Formal Aspects of Computing.

[21]  Hans-Dieter Ehrich,et al.  Specification of abstract data types , 1996 .

[22]  Michel Bidoit Development of modular specifications by stepwise refinements using the PLUSS specification language , 1992 .