Obtaining coroutines with continuations
Computer Languages
Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
Pthreads programming
Functional reactive programming from first principles
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Design of a separable transition-diagram compiler
Communications of the ACM
Developing a stage lighting system from scratch
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Coroutines
Predicate Dispatching: A Unified Theory of Dispatch
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Reflective Middleware Solutions for Context-Aware Applications
REFLECTION '01 Proceedings of the Third International Conference on Metalevel Architectures and Separation of Crosscutting Concerns
Reactive Programming in Standard ML
ICCL '98 Proceedings of the 1998 International Conference on Computer Languages
PPDP '04 Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming
Adaptive middleware for context-aware applications in smart-homes
MPAC '04 Proceedings of the 2nd workshop on Middleware for pervasive and ad-hoc computing
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Composable memory transactions
Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming
Simula Begin
Language constructs for context-oriented programming: an overview of ContextL
DLS '05 Proceedings of the 2005 symposium on Dynamic languages
Highly dynamic behaviour adaptability through prototypes with subjective multimethods
Proceedings of the 2007 symposium on Dynamic languages
Essentials of Programming Languages, 3rd Edition
Essentials of Programming Languages, 3rd Edition
DLS '08 Proceedings of the 2008 symposium on Dynamic languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
Expressive and modular predicate dispatch for Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Towards context-aware propagators: language constructs for context-aware adaptation dependencies
International Workshop on Context-Oriented Programming
Revised6 report on the algorithmic language scheme
Journal of Functional Programming
Flapjax: a programming language for Ajax applications
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Predicated generic functions: enabling context-dependent method dispatch
SC'10 Proceedings of the 9th international conference on Software composition
EventCJ: a context-oriented programming language with declarative event-based context transition
Proceedings of the tenth international conference on Aspect-oriented software development
Worlds: controlling the scope of side effects
Proceedings of the 25th European conference on Object-oriented programming
Embedding dynamic dataflow in a call-by-value language
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Context-oriented programming: A software engineering perspective
Journal of Systems and Software
Bringing Scheme programming to the iPhone—Experience
Software—Practice & Experience
Proceedings of the 3rd international workshop on Free composition
Runtime support for type-safe and context-based behavior adaptation
Frontiers of Computer Science: Selected Publications from Chinese Universities
Hi-index | 0.00 |
Context-aware applications provide end-users with enhanced experiences by continuously sensing their environment and adapting their behaviour to match the current context of use. However, developing true context-aware applications remains notoriously difficult due to the unpredictable nature of context changes. A context change may occur at any moment during a procedure execution, which may require an ongoing execution to be promptly interrupted in order to prevent the procedure from running in a wrong context. Currently, developers have to manually constrain a procedure execution to a particular context and take care of saving and restoring the execution state between context changes. Such manual approaches are error-prone and may lead to incorrect application behaviour. This paper presents a novel programming language model called interruptible context-dependent executions, where a procedure execution is always constrained to happen only under a specified context. In this model, a procedure execution can be seamlessly interrupted or resumed depending on the context. Additionally, the procedure execution state is automatically preserved between interruptions. We present the Flute language that supports interruptible context-dependent executions.