On the Interaction of Object-Oriented Design Patterns and Programming Languages

05/31/2019
by   Gerald Baumgartner, et al.
0

Design patterns are distilled from many real systems to catalog common programming practice. However, some object-oriented design patterns are distorted or overly complicated because of the lack of supporting programming language constructs or mechanisms. For this paper, we have analyzed several published design patterns looking for idiomatic ways of working around constraints of the implementation language. From this analysis, we lay a groundwork of general-purpose language constructs and mechanisms that, if provided by a statically typed, object-oriented language, would better support the implementation of design patterns and, transitively, benefit the construction of many real systems. In particular, our catalog of language constructs includes subtyping separate from inheritance, lexically scoped closure objects independent of classes, and multimethod dispatch. The proposed constructs and mechanisms are not radically new, but rather are adopted from a variety of languages and programming language research and combined in a new, orthogonal manner. We argue that by describing design patterns in terms of the proposed constructs and mechanisms, pattern descriptions become simpler and, therefore, accessible to a larger number of language communities. Constructs and mechanisms lacking in a particular language can be implemented using paradigmatic idioms.

READ FULL TEXT
research
12/17/2021

Reducing Programs to Objects

C++, Java, C#, Python, Ruby, JavaScript are the most powerful object-ori...
research
07/25/2017

Design and Implementation of a Reversible Object-Oriented Programming Language

High-level reversible programming languages are few and far between and ...
research
12/19/2017

Object-Orientation in Graph-Based Design Grammars

The ongoing digital transformation in industry applies to all product li...
research
10/04/2019

Trading off Complexity for Expressiveness in Programming Languages: Visions and Preliminary Experiences

When programming resource-scarce embedded smart devices, the designer of...
research
10/30/2020

Advanced Join Patterns for the Actor Model based on CEP Techniques

Context: Actor-based programming languages offer many essential features...
research
06/06/2023

GarmentCode: Programming Parametric Sewing Patterns

Garment modeling is an essential task of the global apparel industry and...
research
11/23/2022

Data-Codata Symmetry and its Interaction with Evaluation Order

Data types and codata types are, as the names suggest, often seen as dua...

Please sign up or login with your details

Forgot password? Click here to reset