Journal of information processing · 2011 · 89 citations · 17 references
ComputingComputer ScienceCompilersProgramming LanguagesSystems ProgrammingAbstract Syntax TreesApplication Programming InterfacesCompiler ConstructionProgramming Language DesignType CheckingType SystemsAbstract SemanticsAbstractionAbstraction Mechanisms
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 confirmed 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.
17
Concurrent object-oriented programming
Gul Agha · Communications of the ACM · 1990 · 610 citations · Full text
Robert Hirschfeld, Pascal Costanza, Oscar Nierstrasz · The Journal of Object Technology · 2008 · 457 citations · Full text
The jastadd extensible java compiler
Torbjörn Ekman, Görel Hedin · 2007 · 292 citations
Language constructs for context-oriented programming
Pascal Costanza, Robert Hirschfeld · 2005 · 210 citations