|
Module composition and system design for the object paradigm
Joseph A Goguen and
Adolfo Socorro
January 1995, 18 pages
This paper argues that a powerful module composition facility can
enhance the ability of object oriented languages to reuse and compose
designs, specifications and code. In addition, several flexible ways
to produce prototypes can be supported, including symbolic execution of
designs, composing prototype versions of components, and using
"built-in" modules. Much of this power comes from having module
expressions, theories and views as first class citizens; some comes
from providing both vertical and horizontal composition, and from
distinguishing between sorts for values, classes for objects, modules
for code, and theories as types for modules. New features introduced
in this paper include dynamic binding with views, vertical wrappers,
support for abstract classes and private class inheritance, and the
dynamic integration of components from different libraries. Although
we illustrate these features using the
FOOPS
language, they could be added to many other languages, and some
comparison with other languages is given.
|