Beyond Procedure Calls as Component Glue: Connectors Deserve Metaclass Status

Authors:
Marcel Weiher, Marcel Taeumel, Robert Hirschfeld
Published:
In Onward! '24: 2024 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software. October 17, 2024.
Abstract:

We present the architecture-oriented programming language Objective-S, which goes beyond procedure calls for expressing inter-component connectors (so-called glue code) in order to directly express a wide range of architectural patterns directly in the implementation. Previous approaches for encoding architecture require either indirection, maintaining separate architectural descriptions, or both. Expressing the architecture directly in the implementation instead of indirectly avoids the problems associated with creating and maintaining duplicate representations. Objective-S introduces syntactic elements that let us express many architectural connections directly using a simple surface syntax. These surface elements are supported by a metaobject protocol of polymorphic connectors. The key insight of our approach is that while so-called general-purpose programming languages do lack the ability to express most architectural concerns directly, as shown by previous research, this is not an inherent limitation. With Objective-S, we take connectors that already exist in implementation languages, such as data access or procedure calls and make them polymorphic using a metaobject protocol. This metaobject protocol enables polymorphic connection using glue code at the metaobject level that is both generic and mostly hidden from the surface language.

BibTeX:
@inproceedings{weiher2024,
  title = {{Beyond Procedure Calls as Component Glue: Connectors Deserve Metaclass Status}},
  author = {Marcel Weiher and Marcel Taeumel and Robert Hirschfeld},
  booktitle = {Onward! '24: 2024 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software},
  year = 2024,
  doi = {10.1145/3689492.3690052},
}