IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
Modern concurrency abstractions for C#
ACM Transactions on Programming Languages and Systems (TOPLAS)
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Implementing protocols via declarative event patterns
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
An adaptive object model with dynamic role binding
Proceedings of the 27th international conference on Software engineering
Adding trace matching with free variables to AspectJ
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Language constructs for context-oriented programming: an overview of ContextL
DLS '05 Proceedings of the 2005 symposium on Dynamic languages
Declarative, formal, and extensible syntax definition for aspectJ
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
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
Declarative definition of contexts with polymorphic events
International Workshop on Context-Oriented Programming
Towards safe and flexible object adaptation
International Workshop on Context-Oriented Programming
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
EventJava: An Extension of Java for Event Correlation
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Programming language support to context-aware adaptation: a case-study with Erlang
Proceedings of the 2010 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems
The spoofax language workbench: rules for declarative specification of languages and IDEs
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Event-specific software composition in context-oriented programming
SC'10 Proceedings of the 9th international conference on Software composition
Context oriented programming in highly concurrent systems
Proceedings of the 2nd International Workshop on Context-Oriented Programming
Designing event-based context transition in context-oriented programming
Proceedings of the 2nd International Workshop on Context-Oriented Programming
Efficient layer activation for switching context-dependent behavior
JMLC'06 Proceedings of the 7th joint conference on Modular Programming Languages
Transactions on Aspect-Oriented Software Development I
A fine-grained join point model for more reusable aspects
APLAS'06 Proceedings of the 4th Asian conference on Programming Languages and Systems
ContextFJ: a minimal core calculus for context-oriented programming
Proceedings of the 10th international workshop on Foundations of aspect-oriented languages
Proceedings of the 3rd International Workshop on Context-Oriented Programming
JavaCtx: seamless toolchain integration for context-oriented programming
Proceedings of the 3rd International Workshop on Context-Oriented Programming
Context-oriented programming for mobile devices: JCop on Android
Proceedings of the 3rd International Workshop on Context-Oriented Programming
Dynamic adaptation through event reconfiguration
OTM'11 Proceedings of the 2011th Confederated international conference on On the move to meaningful internet systems
ContextErlang: introducing context-oriented programming in the actor model
Proceedings of the 11th annual international conference on Aspect-oriented Software Development
Compositional verification of events and aspects
Proceedings of the 11th annual international conference on Aspect-oriented Software Development Companion
Context-oriented programming: A software engineering perspective
Journal of Systems and Software
Uniting global and local context behavior with context Petri nets
Proceedings of the International Workshop on Context-Oriented Programming
Bridging real-world contexts and units of behavioral variations by composite layers
Proceedings of the International Workshop on Context-Oriented Programming
Interruptible context-dependent executions: a fresh look at programming context-aware applications
Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software
Formalising security in ubiquitous and cloud scenarios
CISIM'12 Proceedings of the 11th IFIP TC 8 international conference on Computer Information Systems and Industrial Management
Proceedings of the 3rd international workshop on Free composition
The crosscutting impact of the AOSD Brazilian research community
Journal of Systems and Software
Method slots: supporting methods, events, and advices by a single language construct
Proceedings of the 12th annual international conference on Aspect-oriented software development
A core calculus of composite layers
Proceedings of the 12th workshop on Foundations of aspect-oriented languages
Enriching context-oriented programming with structured context representation
ICPCA/SWS'12 Proceedings of the 2012 international conference on Pervasive Computing and the Networked World
Archface4COP: architectural interface for context-oriented programming
Proceedings of the 5th International Workshop on Context-Oriented Programming
A unified context activation mechanism
Proceedings of the 5th International Workshop on Context-Oriented Programming
An Analysis of Language-Level Support for Self-Adaptive Software
ACM Transactions on Autonomous and Adaptive Systems (TAAS)
Proceedings of the Eighth International Workshop on Variability Modelling of Software-Intensive Systems
Runtime support for type-safe and context-based behavior adaptation
Frontiers of Computer Science: Selected Publications from Chinese Universities
Hi-index | 0.00 |
This paper proposes EventCJ, a context-oriented programming (COP) language that can modularly control layer activation based on user-defined events. In addition to defining context-specific behaviors by using existing COP constructs, the EventCJ programmer declares events to specify when and on which instance layer switching should happen, and layer transition rules to specify which layers should be activated/deactivated upon events. These constructs enable controlling layer activation on a per-instance basis, separately from a base program. We also demonstrate an approach to verify safety properties of layer transitions by using a model checker. With these advantages, EventCJ enables more modular descriptions of context-aware programs, especially when layer switching is triggered in many places of a program, or by activities external to the base program. We implemented a prototype EventCJ compiler with Eclipse IDE support.