ContextJ: Context-oriented Programming with Java

Malte Appeltauer, Robert Hirschfeld, Michael Haupt, Hidehiko Masuhara
2011 Information and Media Technologies  
Context-oriented programming (COP) allows for the modularization of context-dependent behavioral variations. So far, COP has been implemented for dynamically-typed languages such as Lisp, Smalltalk, Python, and Ruby relying on reflection mechanisms, and for the statically-typed programming language Java based on a library and a pre-processor. ContextJ is our COP implementation for Java. It properly integrates COP's layer concept into the Java type system. ContextJ is compiler-based. As
more » ... by a benchmark and a case study, it provides both better performance and higher-level abstraction mechanisms than its Java-based predecessors. In this paper, we present the ContextJ language and explain its constructs and semantics. Further, we give an overview of the implementation of our compiler and discuss run-time benchmarks.
doi:10.11185/imt.6.399 fatcat:khkvzubqizhibkstea7eyppd2y