Learn More
Context-oriented programming (COP) extensions have been implemented for several languages. Each concrete language design and implementation comes with different variations of the features of the COP paradigm. In this paper, we provide a comparison of eleven COP implementations, discuss their designs, and evaluate their performance.
Context-oriented programming (COP) introduces dedicated abstractions for the modularization and dynamic composition of cross-cutting context-specific functionality. While existing COP languages offer constructs for control-flow specific composition, they do not yet consider the explicit representation of event-specific context-dependent behavior, for which(More)
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(More)
Context-oriented programming languages ease the design and implementation of context-dependent applications. ContextJ is a context-oriented extension to the Java programming language. In this paper, we assess the applicability of ContextJ language abstractions for the development of a graphical user interface-based application. We present a text editor that(More)
Logic meta-programming in Prolog is a powerful way to express program analysis and transformation. However, its use can be difficult and error-prone because it requires programmers to know the meta-level representation of the analysed language and to think and express their analyses in terms of this low-level representation. In addition, the(More)
Ubiquitous mobile applications often require dynamic context information for user-specific computation. However , state-of-the-art platforms, frameworks, and programming languages used for developing such applications do not directly support context-dependent behavior with first class entities. Instead, context-aware functionality is tangled with the(More)
Program behavior that relies on contextual information, such as physical location or network accessibility, is common in today's applications , yet its representation at the source code level is not sufficiently supported by programming languages. With context-oriented programming (COP), context-dependent behavior can be explicitly modularized and(More)
This paper describes an implementation study in which we use the upcoming INVOKEDYNAMIC bytecode instruction---to be supported by the standard Java virtual machine starting with the release of Java 7---to implement layered method dispatch. We compare the resulting implementation approach with that of the existing JCop compiler, and present preliminary(More)