An implementation-oriented semantics for module composition

This paper describes an approach to module composition by executing \module expressions" to build systems out of component modules. This approach extends the structural description capabilities of existing Architecture Description Languages (ADLs) to facilitate the manipulation of architectural components in a manner that results in either new components or complete instantiations of parameterized architectures. The paper also gives a novel semantics intended to aid with the implementation this approach. The semantics is based on set theory, and uses the technical notions of tuple set, partial signature, and institution, avoiding more diicult mathematics such as abstract algebra and category theory. Language features include information hiding, both vertical and horizontal composition, and views for binding modules to interfaces. Vertical composition refers to the hierarchical structuring of a system into layers, while horizontal composition refers to the structure of a given layer. Modules may involve information hiding, and views may involve behavioral satisfaction of a theory by a module. Finally, this paper includes a number of \Laws of Software Composition" that show how the various module composition operations are related.

[1]  José Meseguer,et al.  Universal Realization, Persistent Interconnection and Implementation of Abstract Modules , 1982, ICALP.

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

[3]  Stefano Ceri,et al.  Toward megaprogramming , 1992, CACM.

[4]  Joseph A. Goguen,et al.  Requirements engineering: social and technical issues , 1994 .

[5]  David Lorge Parnas,et al.  Information Distribution Aspects of Design Methodology , 1971, IFIP Congress.

[6]  Petros S. Stefaneas,et al.  Logical support for modularisation , 1993 .

[7]  Donald Sannella Semantics, implementation and pragmatics of Clear, a program specification language , 1982 .

[8]  Will Tracz,et al.  LILEANNA: a parameterized programming language , 1993, [1993] Proceedings Advances in Software Reuse.

[9]  Joseph A. Goguen,et al.  Proof of correctness of object representations , 1994 .

[10]  J. Goguen,et al.  Extended abstract of a hidden agenda , 1996 .

[11]  José Meseguer,et al.  Unifying Functional, Object-Oriented and Relational Programming with Logical Semantics , 1987, Research Directions in Object-Oriented Programming.

[12]  D. Luckham,et al.  ANNA: towards a language for annotating Ada programs , 1980, SIGPLAN.

[13]  Joseph A. Goguen,et al.  HYPERPROGRAMMING: A Formal Approach to Software Environments , 1990 .

[14]  C LuckhamDavid,et al.  Specification and Analysis of System Architecture Using Rapide , 1995 .

[15]  Rod M. Burstall,et al.  Programming with Modules as Typed Functional Programming , 1984, FGCS.

[16]  Joseph A. Goguen,et al.  Algebraic semantics of imperative programs , 1996, Foundations of computing series.

[17]  Olaf Owe,et al.  ANNA A Language for Annotating Ada Programs , 1987, Lecture Notes in Computer Science.

[18]  J. Goguen Higher-order functions considered unnecessary for higher-order programming , 1990 .

[19]  Joseph A. Goguen,et al.  Requirements engineering as the reconciliation of social and technical issues , 1994 .

[20]  Joseph A. Goguen,et al.  Formality and Informality in Requirements Engineering , 1996, ICRE.

[21]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[22]  Karl J. Lieberherr,et al.  Minimizing Dependency on Class Structures with Adaptive Programs , 1993, ISOTAS.

[23]  Henry Ledgard,et al.  Reference Manual for the ADA® Programming Language , 1983, Springer New York.

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

[25]  Joseph A. Goguen,et al.  Putting Theories Together to Make Specifications , 1977, IJCAI.

[26]  Joseph A. Goguen,et al.  Principles of parameterized programming , 1989 .

[27]  Joseph A. Goguen,et al.  Towards an Algebraic Semantics for the Object Paradigm , 1992, COMPASS/ADT.