An Algebraic Framework for Higher-Order Modules

This paper presents a new framework for dealing with higher-order parameterization allowing the use of arbitrary fitting morphisms for parameter passing. In particular, we define a category of higher-order parameterized or module specifications and, then, following the approach started in the ASL specification language, we define a typed λ-calculus, as a formalism for dealing with these specifications, where arbitrary fitting morphisms are allowed. In addition, the approach presented is quite general since all the work is independent of the kind of basic specifications considered and, also, of the kind of operations used for building basic specifications, provided that some conditions hold. In this sense we are not especially bound to any set of basic specification-building operations. We call our parameterized units modules to make clear the distinction between the basic specification level that is not fixed a pri- ori and the parameterized units level that is studied in the paper. The kind of calculus presented can be seen as a variation/extension of the simply typed λ-calculus, which means that we do not allow dependent types. This would have been interesting, but it is not possible with the semantics proposed. The main result of the paper shows the adequacy of β-reduction with respect to the semantics given.

[1]  Joseph A. Goguen,et al.  Introducing Institutions , 1983, Logic of Programs.

[2]  Egidio Astesiano,et al.  Algebraic Foundations of Systems Specification , 1999, IFIP State-of-the-Art Reports.

[3]  Donald Sannella,et al.  Structuring Specifications in-the-Large and in-the-Small: Higher-Order Functions, Dependent Types and Inheritance in SPECTRAL , 1991, TAPSOFT, Vol.2.

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

[5]  Hartmut Ehrig,et al.  Parameter Passing in Algebraic Specification Languages , 1984, Theor. Comput. Sci..

[6]  Hans-Dieter Ehrich On the Theory of Specification, Implementation, and Parametrization of Abstract Data Types , 1982, JACM.

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

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

[9]  Hartmut Ehrig,et al.  Compositionality and compatibility of parameterization and parameter passing in specification languages , 1995, Mathematical Structures in Computer Science.

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

[11]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Specification 1 , 1985, EATCS Monographs on Theoretical Computer Science.