|
Castrillon, Jeronimo
|
COP '23: "Towards Virtual Machine Support ..."
Towards Virtual Machine Support for Contextual Role-Oriented Programming Languages
Lars Schütze and Jeronimo Castrillon
(TU Dresden, Germany)
Adaptive software becomes more and more important as computing is increasingly context-dependent. Runtime adaptability can be achieved by dynamically selecting and applying context-specific code. Role-oriented programming has been proposed as a paradigm to enable runtime adaptive software by design. Roles change the objects’ behavior at runtime, thus adapting the software to a given context. Most approaches focus on optimizing language implementations neglecting the fact that the generated code is a verbose description of contextual roles in an object-oriented paradigm, which incurs an overhead. This paper takes a novel approach to reduce the semantic gap. We propose ObjectTeams/Truffle, to the best of our knowledge, the first virtual machine that optimizes the dispatch of contextual roles. We evaluate the implementation with a benchmark for role-oriented programming languages achieving a speedup of up to 2.49× over the reference implementation ObjectTeams/Java and 1.2× over an optimized version ObjectTeams/Java using Dispatch Plans.
@InProceedings{COP23p1,
author = {Lars Schütze and Jeronimo Castrillon},
title = {Towards Virtual Machine Support for Contextual Role-Oriented Programming Languages},
booktitle = {Proc.\ COP},
publisher = {ACM},
pages = {1--8},
doi = {10.1145/3605154.3605851},
year = {2023},
}
Publisher's Version
|
|
Kamina, Tetsuo
|
COP '23: "Temporal Layers: Reactive ..."
Temporal Layers: Reactive Activation Scope of First-Class Layer Instances
Tetsuo Kamina
(Oita University, Japan)
Context-Oriented Programming (COP) is an approach to improve modularity of context-dependent behaviors. Most COP languages modularize context-dependent behaviors using layers, which are rarely instantiated explicitly. Using the existing layer mechanism, it is difficult to express a context like "a situation where several objects are selected in a GUI window." To tackle this problem, we propose a new type of layers, which we call temporal layers. A temporal layer is different from existing layers in that it is used by creating its instance, and the extent of its activation is its lifetime. The scope of its activation can be defined by declaratively specifying the exclusion condition in the layer's enclosing partial classes. This scope can be dynamically and reactively changing. Using a temporal layer, we show a case study of contextual timetraveling, which demonstrates the effectiveness of our proposal.
@InProceedings{COP23p9,
author = {Tetsuo Kamina},
title = {Temporal Layers: Reactive Activation Scope of First-Class Layer Instances},
booktitle = {Proc.\ COP},
publisher = {ACM},
pages = {9--14},
doi = {10.1145/3605154.3605852},
year = {2023},
}
Publisher's Version
|
|
Schütze, Lars
|
COP '23: "Towards Virtual Machine Support ..."
Towards Virtual Machine Support for Contextual Role-Oriented Programming Languages
Lars Schütze and Jeronimo Castrillon
(TU Dresden, Germany)
Adaptive software becomes more and more important as computing is increasingly context-dependent. Runtime adaptability can be achieved by dynamically selecting and applying context-specific code. Role-oriented programming has been proposed as a paradigm to enable runtime adaptive software by design. Roles change the objects’ behavior at runtime, thus adapting the software to a given context. Most approaches focus on optimizing language implementations neglecting the fact that the generated code is a verbose description of contextual roles in an object-oriented paradigm, which incurs an overhead. This paper takes a novel approach to reduce the semantic gap. We propose ObjectTeams/Truffle, to the best of our knowledge, the first virtual machine that optimizes the dispatch of contextual roles. We evaluate the implementation with a benchmark for role-oriented programming languages achieving a speedup of up to 2.49× over the reference implementation ObjectTeams/Java and 1.2× over an optimized version ObjectTeams/Java using Dispatch Plans.
@InProceedings{COP23p1,
author = {Lars Schütze and Jeronimo Castrillon},
title = {Towards Virtual Machine Support for Contextual Role-Oriented Programming Languages},
booktitle = {Proc.\ COP},
publisher = {ACM},
pages = {1--8},
doi = {10.1145/3605154.3605851},
year = {2023},
}
Publisher's Version
|