Implicit parameters: dynamic scoping with static types
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Featherweight Java: a minimal core calculus for Java and GJ
ACM Transactions on Programming Languages and Systems (TOPLAS)
Types and programming languages
Types and programming languages
A Syntactic Theory of Dynamic Binding
Higher-Order and Symbolic Computation
Objective-C Pocket Reference
Language constructs for context-oriented programming: an overview of ContextL
DLS '05 Proceedings of the 2005 symposium on Dynamic languages
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
ACM Transactions on Computational Logic (TOCL)
The Clojure programming language
DLS '08 Proceedings of the 2008 symposium on Dynamic languages
Delegation-based semantics for modularizing crosscutting concerns
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
How should context-escaping closures proceed?
International Workshop on Context-Oriented Programming
How should context-escaping closures proceed?
International Workshop on Context-Oriented Programming
A graph-based operational semantics for context-oriented programming
Proceedings of the 2nd International Workshop on Context-Oriented Programming
Proceedings of the 3rd International Workshop on Context-Oriented Programming
Types for coordinating secure behavioural variations
COORDINATION'12 Proceedings of the 14th international conference on Coordination Models and Languages
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
Hi-index | 0.00 |
Context-oriented programming (COP) is a new programming approach whereby the context in which expressions evaluate can be adapted as a program runs. COP provides a degree of flexibility beyond object-oriented programming, while arguably retaining more modularity and structure than aspect-oriented programming. Although many languages exploring the context-oriented approach exist, to our knowledge no formal type-sound dynamic semantics of these languages exists. We address this shortcoming by providing a concise syntax-based formal semantics for context-oriented programming with layers, as witnessed by ContextL, ContextJ*, and other languages. Our language is based on Featherweight Java extended with layers and scoped layer activation and deactivation. As layers may introduce methods not appearing in classes, we also give a static type system that ensures that no program gets stuck (i.e., there exists a binding for each dispatched method call).