HASCASL: Towards Integrated Specification and Development of Functional Programs

The development of programs in modern functional languages such as Haskell calls for a wide-spectrum specification formalism that supports the type system of such languages, in particular higher order types, type constructors, and parametric polymorphism, and that contains a functional language as an executable subset in order to facilitate rapid prototyping.We lay out the design of HasCasl, a higher order extension of the algebraic specification language Casl that is geared towards precisely this purpose. Its semantics is tuned to allow program development by specification refinement, while at the same time staying close to the set-theoretic semantics of first order Casl. The number of primitive concepts in the logic has been kept as small as possible; we demonstrate how various extensions to the logic, in particular general recursion, can be formulated within the language itself.

[1]  Val Tannen,et al.  Lambda Calculus with Constrained Types (Extended Abstract) , 1985, Logic of Programs.

[2]  Franz Regensburger,et al.  HOLCF: Higher Order Logic of Computable Functions , 1995, TPHOLs.

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

[4]  S. Lane Categories for the Working Mathematician , 1971 .

[5]  Egidio Astesiano,et al.  Free Objects and Equational Deduction for Partial Conditional Specifications , 1995, Theor. Comput. Sci..

[6]  Markus Wenzel,et al.  Type Classes and Overloading in Higher-Order Logic , 1997, TPHOLs.

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

[8]  Radu Grosu,et al.  The Semantics of SPECTRUM , 1993, HOA.

[9]  Axel Poigné,et al.  On Specifications, Theories, and Models with Higher Types , 1986, Inf. Control..

[10]  Horst Herrlich,et al.  Abstract and concrete categories , 1990 .

[11]  Pierre-Louis Curien,et al.  Sequential Algorithms on Concrete Data Structures , 1982, Theor. Comput. Sci..

[12]  Joseph A. Goguen,et al.  A categorical manifesto , 1989, Mathematical Structures in Computer Science.

[13]  Eugenio Moggi,et al.  Categories of Partial Morphisms and the lambdap - Calculus , 1985, CTCS.

[14]  Glynn Winskel,et al.  The formal semantics of programming languages - an introduction , 1993, Foundation of computing series.

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

[16]  J. Hyland First steps in synthetic domain theory , 1991 .

[17]  Peter D. Mosses CoFI: The Common Framework Initiative for Algebraic Specification , 1996, Bull. EATCS.

[18]  Thierry Coquand,et al.  An Analysis of Girard's Paradox , 1986, LICS.

[19]  Lutz Schröder Classifying categories for partial equational logic , 2002, CTCS.

[20]  David Aspinall,et al.  Type systems for modular programs and specifications , 1997 .

[21]  Anne Elisabeth Haxthausen,et al.  CASL - The CoFI Algebraic Specification Language (Tentative Design, version 0.95) - Language Summary, with annotations concerning the semantics of constructs , 1997 .

[22]  Anne Elisabeth Haxthausen,et al.  Subsorted Partial Higher-Order Locig as an Extension of CASL , 1999, WADT.

[23]  E. Moggi The partial lambda calculus , 1988 .

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

[25]  Leon Henkin,et al.  The completeness of the first-order functional calculus , 1949, Journal of Symbolic Logic.

[26]  J. Lambek,et al.  Introduction to higher order categorical logic , 1986 .

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