Using prototypical objects to implement shared behavior in object-oriented systems
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Environments as first class objects
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Efficient method dispatch in PCL
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Common LISP: the language (2nd ed.)
Common LISP: the language (2nd ed.)
A monotonic superclass linearization for Dylan
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A simple and unifying approach to subjective objects
Theory and Practice of Object Systems - Special issue on subjectivity in object-oriented systems
IEEE Transactions on Software Engineering
Efficient multiple and predicated dispatching
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Dynamic and selective combination of extensions in component-based applications
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Exploration environments: concept and empirical evaluation
GROUP '01 Proceedings of the 2001 International ACM SIGGROUP Conference on Supporting Group Work
The Java developers almanac 1.4
The Java developers almanac 1.4
Interfaces with default implementations in Java
PPPJ '02/IRE '02 Proceedings of the inaugural conference on the Principles and Practice of programming, 2002 and Proceedings of the second workshop on Intermediate representation engineering for virtual machines, 2002
Conquering aspects with Caesar
Proceedings of the 2nd international conference on Aspect-oriented software development
Model-view-controller and object teams: a perfect match of paradigms
Proceedings of the 2nd international conference on Aspect-oriented software development
Type-Safe Delegation for Run-Time Component Adaptation
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Dynamically Composable Collaborations with Delegation Layers
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
ECOOP '00 Proceedings of the Workshops, Panels, and Posters on Object-Oriented Technology
AspectS - Aspect-Oriented Programming with Squeak
NODe '02 Revised Papers from the International Conference NetObjectDays on Objects, Components, Architectures, Services, and Applications for a Networked World
A Survey of Context-Aware Mobile Computing Research
A Survey of Context-Aware Mobile Computing Research
Proceedings of the 3rd ACM international workshop on Data engineering for wireless and mobile access
Dynamically scoped functions as the essence of AOP
ACM SIGPLAN Notices
Virtual machine support for dynamic join points
Proceedings of the 3rd international conference on Aspect-oriented software development
Java Reflection in Action (In Action series)
Java Reflection in Action (In Action series)
Measuring the dynamic behaviour of AspectJ programs
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Vertical profiling: understanding the behavior of object-priented applications
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
MultiJava: Design rationale, compiler implementation, and applications
ACM Transactions on Programming Languages and Systems (TOPLAS)
Language constructs for context-oriented programming: an overview of ContextL
DLS '05 Proceedings of the 2005 symposium on Dynamic languages
Efficient control flow quantification
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Prototypes with multiple dispatch: an expressive and dynamic object model
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Efficient control flow quantification
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Integrating aspect-orientation and structural annotations to support adaptive middleware
MAI '07 Proceedings of the 1st workshop on Middleware-application interaction: in conjunction with Euro-Sys 2007
Reflective layer activation in ContextL
Proceedings of the 2007 ACM symposium on Applied computing
Context-oriented programming: beyond layers
ICDL '07 Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007
Expressive scoping of dynamically-deployed aspects
Proceedings of the 7th international conference on Aspect-oriented software development
Delegation-based semantics for modularizing crosscutting concerns
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Code generation to support static and dynamic composition of software product lines
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
An Introduction to Context-Oriented Programming with ContextS
Generative and Transformational Techniques in Software Engineering II
Context-oriented programming in ContextL: state of the art
Celebrating the 50th Anniversary of Lisp
FEATUREHOUSE: Language-independent, automated software composition
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Improving the development of context-dependent Java applications with ContextJ
International Workshop on Context-Oriented Programming
A comparison of context-oriented programming languages
International Workshop on Context-Oriented Programming
Context-aware service engineering: A survey
Journal of Systems and Software
Superimposition: a language-independent approach to software composition
SC'08 Proceedings of the 7th international conference on Software composition
Event-specific software composition in context-oriented programming
SC'10 Proceedings of the 9th international conference on Software composition
Polymorphic bytecode instrumentation
Proceedings of the tenth international conference on Aspect-oriented software development
EventCJ: a context-oriented programming language with declarative event-based context transition
Proceedings of the tenth international conference on Aspect-oriented software development
An open implementation for context-oriented layer composition in ContextJS
Science of Computer Programming
Context-oriented programming for mobile devices: JCop on Android
Proceedings of the 3rd International Workshop on Context-Oriented Programming
An Analysis of Language-Level Support for Self-Adaptive Software
ACM Transactions on Autonomous and Adaptive Systems (TAAS)
Hi-index | 0.00 |
Today’s programming platforms do not provide sufficient constructs that allow a program’s behavior to depend on the context in which it is executing. This paper presents the design and implementation of programming language extensions that explicitly support our vision of Context-oriented Programming. In this model, programs can be partitioned into layers that can be dynamically activated and deactivated depending on their execution context. Layers are sets of partial program definitions that can be composed in any order. Context-oriented Programming encourages rich, dynamic modifications of program behavior at runtime, requiring an efficient implementation. We present a dynamic representation of layers that yields competitive performance characteristics for both layer activation/deactivation and overall program execution. We illustrate the performance of our implementation by providing an alternative solution for one of the prominent examples of aspect-oriented programming.