## Morphisms and Semantics for Higher Order Parameterized Programming (2002)

Citations: | 1 - 0 self |

### BibTeX

@MISC{Lin02morphismsand,

author = {Kai Lin and Joseph Goguen},

title = {Morphisms and Semantics for Higher Order Parameterized Programming},

year = {2002}

}

### OpenURL

### Abstract

Parameterized programming is extended to higher order modules, by extending views, which fit actual parameters to formal parameters in a flexible way, to morphisms, with higher order module expressions to compose modules into systems. A category theoretic semantics is outlined, and examples in BOBJ show the power of morphisms.

### Citations

515 |
Institutions: Abstract model theory for specification and programming
- Goguen, Burstall
- 1992
(Show Context)
Citation Context ...iews, and colimit for module composition, based on ideas from an early category theoretic general systems theory [8]. This semantics works over any logical system, using the formalism of institutions =-=[13]-=-. Other languages in uenced by parameterized programming include Ada, ML, C++, and Modula, none of which has views, so that actual parameter syntax must contain formal parameter syntax; only ML has hi... |

126 |
Parameterized programming
- Goguen
- 1984
(Show Context)
Citation Context ...roduction Modularization is key to controlling the complexity of large systems, by composing them from parts, so as to ease program construction and maintenance. First order parameterized programming =-=[10, 11-=-] signicantly enhances thesexibility and reusability of modularization, by providing parameterized modules and views, tosexiblyst syntax of formal parameters to actual parameters, including defaults w... |

87 |
Initiality, induction and computability
- Meseguer, Goguen
- 1985
(Show Context)
Citation Context ...ils, including proofs, some denitions, and further examples; see the full technical report [19]. Parts of the paper assume familiarity with basics of category theory and algebraic specication (e.g. [1=-=7, 21]-=-). 2 Examples This section introduces parameterized programming through examples, beginning with thesrst order case, and then higher order examples. Example 1 The simplest non-trivial module has only ... |

86 | A type system for higher-order modules
- Dreyer, Crary, et al.
- 2003
(Show Context)
Citation Context ... used for parameterization. There is also a type theoretic literature on higher order modules, largely associated with ML, but because this approach is remote from ours, we do not survey it here; see =-=[6-=-] and its references. Space precludes many details, including proofs, some denitions, and further examples; see the full technical report [19]. Parts of the paper assume familiarity with basics of cat... |

76 |
Types as theories
- Goguen
- 1991
(Show Context)
Citation Context ...out object. 2 Intuitively, pushouts combine two objects, identifying parts of one with parts of another; this gives an elegant semantics for instantiating parameterized modules. (For more detail, see =-=[12-=-]; all this actually works for any logical system, via the formalism of institutions [13]. For example, the institution for Lileanna [23, 15] has Anna for specications and Ada programs for models.) Fo... |

60 | A semantics for higher-order functors
- MacQueen, Tofte
- 1994
(Show Context)
Citation Context ...tiplicity of semantics given for ML higher order \functors," as well as ML's awkward treatment of functor sharing. An early operational semantics for higher order ML modules due to MacQueen and T=-=ofte [20] is e-=-xpressed with rules of deduction, using higher order parameterized signatures and \stamps" (i.e., compile-time generated unique identi ers) to handle sharing. As in ML, it requires actual paramet... |

50 | Circular coinductive rewriting
- Goguen, Lin, et al.
- 2000
(Show Context)
Citation Context ...arameters, including defaults when there is an obvious choice. Here we generalize views to morphisms, which are used for both instantiating and rening higher order modules. Our examples use the BOBJ [=-=1-=-4] extension of the OBJ3 specication and functional programming language [16] to higher order parameterized programming, but the approach is not limited to specication and functional languages, as sho... |

43 |
lileanna: a parameterized programming language
- Tracz
- 1993
(Show Context)
Citation Context ...BJ3 specication and functional programming language [16] to higher order parameterized programming, but the approach is not limited to specication and functional languages, as shown by the Lileanna [2=-=3, 15]-=- extension of Ada. Although Lileanna modules aresrst order, the same techniques can implement higher order module systems for compiled functional and imperative languages. Module bodies are translated... |

34 | An implementation-oriented semantics for module composition
- Goguen, Tracz
- 2000
(Show Context)
Citation Context ...BJ3 specication and functional programming language [16] to higher order parameterized programming, but the approach is not limited to specication and functional languages, as shown by the Lileanna [2=-=3, 15]-=- extension of Ada. Although Lileanna modules aresrst order, the same techniques can implement higher order module systems for compiled functional and imperative languages. Module bodies are translated... |

24 |
Mathematical representation of hierarchically organized systems
- Goguen
- 1971
(Show Context)
Citation Context ...cs follows that of Clear [1], using a category of theories, with theory morphisms for views, and colimit for module composition, based on ideas from an early category theoretic general systems theory =-=[8]-=-. This semantics works over any logical system, using the formalism of institutions [13]. Other languages in uenced by parameterized programming include Ada, ML, C++, and Modula, none of which has vie... |

23 |
Abstract errors for abstract data types
- Goguen
- 1977
(Show Context)
Citation Context ...equations, though the transformations are still rather complex. OBJ began around 1974 as a notation for algebraic specication, and was soon implemented as a term rewriting interpreter. Early designs [=-=9-=-] had asrst order module system like that of Clear [1], later formalized as parameterized programmings[10], which added default views and simplied syntax. Parameterized programming wassrst fully imple... |

18 |
The Categorial Analysis of Logic
- Topoi
(Show Context)
Citation Context ...ils, including proofs, some denitions, and further examples; see the full technical report [19]. Parts of the paper assume familiarity with basics of category theory and algebraic specication (e.g. [1=-=7, 21]-=-). 2 Examples This section introduces parameterized programming through examples, beginning with thesrst order case, and then higher order examples. Example 1 The simplest non-trivial module has only ... |

10 |
Suggestions for using and organizing libraries in software development
- Goguen
- 1985
(Show Context)
Citation Context ...roduction Modularization is key to controlling the complexity of large systems, by composing them from parts, so as to ease program construction and maintenance. First order parameterized programming =-=[10, 11-=-] signicantly enhances thesexibility and reusability of modularization, by providing parameterized modules and views, tosexiblyst syntax of formal parameters to actual parameters, including defaults w... |

10 |
A kernel language for algebraic speci and implementation
- Sannella, Wirsing
- 1983
(Show Context)
Citation Context ...nti ers) to handle sharing. As in ML, it requires actual parameter signatures to contain formal parameter signatures, which is a special case of default viewing. Cengarle [2] extends the ASL approach =-=[22]-=- to higher order modules, with module denotations sets of models, functions between sets of models, etc., expressing parameterization with simply typed lambda calculus. Since this cannot distinguish l... |

8 |
Putting theories together to make speci
- Burstall, Goguen
- 1045
(Show Context)
Citation Context ...r complex. OBJ began around 1974 as a notation for algebraic specication, and was soon implemented as a term rewriting interpreter. Early designs [9] had asrst order module system like that of Clear [=-=1-=-], later formalized as parameterized programmings[10], which added default views and simplied syntax. Parameterized programming wassrst fully implemented in OBJ3 [16], extending earlier versions of OB... |

3 |
Maude: Speci and programming in rewriting logic. Theoretical Computer Science
- Clavel, Duran, et al.
- 2001
(Show Context)
Citation Context ...nd simplied syntax. Parameterized programming wassrst fully implemented in OBJ3 [16], extending earlier versions of OBJ, and it appears in all members of the OBJ family, including CafeOBJ [5], Maude [=-=3]-=-, BOBJ [14], and the European languages casl [4] and acttwo. Semantics follows that of Clear [1], using a category of theories, with theory morphisms for views, and colimit for module composition, bas... |

3 |
the Larch Prover, version 3.1
- Garland
- 1995
(Show Context)
Citation Context ...rics do not even allow instantiated parameterized modules as actual parameters. C++ has higher order parameterized templates, but these are little more than macro expansions with type checking. Larch =-=[7]-=- has a parameter passing mechanism that can simulate some uses ofsrst order views, but does not have views as reusablesrst class citizens. Recent SML/NJ releases of ML include higher order parameteriz... |

2 |
Semantics and implementation of higher order parameterized programming
- Lin, Goguen
- 2002
(Show Context)
Citation Context ...pproach is remote from ours, we do not survey it here; see [6] and its references. Space precludes many details, including proofs, some denitions, and further examples; see the full technical report [=-=19-=-]. Parts of the paper assume familiarity with basics of category theory and algebraic specication (e.g. [17, 21]). 2 Examples This section introduces parameterized programming through examples, beginn... |

1 |
A calculus of higher order parameterization for algebraic speci
- Cengarle, Wirsing
- 1995
(Show Context)
Citation Context ...ile-time generated unique identi ers) to handle sharing. As in ML, it requires actual parameter signatures to contain formal parameter signatures, which is a special case of default viewing. Cengarle =-=[2]-=- extends the ASL approach [22] to higher order modules, with module denotations sets of models, functions between sets of models, etc., expressing parameterization with simply typed lambda calculus. S... |

1 |
An algebraic framework for higher-order modules
- Jiminenez, Orejas
- 1999
(Show Context)
Citation Context ...sions; in addition, the signatures of actual and formal parameters are required to be equal. This strong restriction and much of the complexity in [2] can be avoided with views. Jiminenez and Orejas [=-=18] wor-=-k over a category having \multiple pushouts," and use a lambda calculus formalism inspired by ASL to dene higher order modules and views over this category; multiple pushouts are used for instant... |