Highly dynamic behaviour adaptability through prototypes with subjective multimethods

With the advent of ambient intelligence and advances in mobile hardware technology, the next generation of software systems will require the ability to gracefully and dynamically adapt to changes in their surrounding environment. Contemporary languages provide no dedicated support to this end, thus requiring software developers to achieve this run-time adaptability through the use of specific design patterns and architectural solutions. As a consequence, all possible variability points of mobile systems need to be anticipated up front. Instead, we aim at solving the problem at the language level. We propose a new programming language called Ambience that provides dedicated language mechanisms to manage changing contexts and deal with run-time adaptation of mobile applications to those contexts. The language abstractions we propose are based on a prototype-based programming model that features multimethods and subjective object behaviour. We illustrate and motivate our approach by means of two running examples that were implemented in our language.

[1]  Harold Ossher,et al.  Subject-oriented programming: a critique of pure objects , 1993, OOPSLA '93.

[2]  Randall B. Smith,et al.  A Simple and Unifying Approach to Subjective Objects , 1996, Theory Pract. Object Syst..

[3]  Simon A. Dobson,et al.  More Principled Design of Pervasive Computing Systems , 2004, EHCI/DS-VIS.

[4]  Adele Goldberg,et al.  SmallTalk 80: The Language , 1989 .

[5]  Robert Hirschfeld,et al.  Layered design approach for context-aware systems , 2007, VaMoS.

[6]  Gary T. Leavens,et al.  MultiJava: Design rationale, compiler implementation, and applications , 2006, TOPL.

[7]  A. Ghiroldi,et al.  Ambient Intelligence-from vision to reality , 2003 .

[8]  Craig Chambers,et al.  Object-Oriented Multi-Methods in Cecil , 1992, ECOOP.

[9]  Henry Lieberman,et al.  Using prototypical objects to implement shared behavior in object-oriented systems , 1986, OOPLSA '86.

[10]  Robert Hirschfeld,et al.  Language constructs for context-oriented programming: an overview of ContextL , 2005, DLS '05.

[11]  Antero Taivalsaari,et al.  Prototype-based programming : concepts, languages, and applications , 1999 .

[12]  Jonathan Aldrich,et al.  Prototypes with Multiple Dispatch: An Expressive and Dynamic Object Model , 2005, ECOOP.

[13]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[14]  Ralph E. Johnson,et al.  Efficient Multimethods in a Single Dispatch Language , 2005, ECOOP.

[15]  Jessie Dedecker,et al.  Ambient-Oriented Programming : Language Support to Program the Disappearing Computer , 2006 .

[16]  A. Taivalsaari,et al.  Prototype-Based Object-Oriented Programming: Concepts, Languages, and Applications , 2001 .

[17]  Randall B. Smith,et al.  Self: The power of simplicity , 1987, OOPSLA 1987.

[18]  Jessie Dedecker,et al.  Actors for Mobile Ad-Hoc Networks , 2004, EUC.

[19]  Daniel G. Bobrow,et al.  Common lisp object system specification , 1988, SIGP.