Towards Modular Reasoning for Context-Oriented Programs
Context-oriented programming (COP) is an approach to modularity for applications whose behavior may vary depending on the status of the environment in which they execute and the software’s own state. Languages supporting COP provide partial methods to modularly define behavioral variations of methods specific to a context, layers to group the partial methods and layer activation mechanisms to dynamically compose layers. Because the behavior of these partial methods often differs from that of the base methods they override, reasoning about context-oriented programs seems to require a case analysis based on partial methods and context information from the entire program, which is not scalable. In this paper we explain a new language feature, layer interfaces, which allows modular specification and verification of context-oriented programs. We demonstrate these techniques by using examples.
Tue 19 JulDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
16:00 - 18:30 | |||
16:00 30mDemonstration | Tool Demonstration: The VeriFast Verification System for Java and C FTfJP Bart Jacobs iMinds - Distrinet, KU Leuven | ||
16:30 30mTalk | Partial Solutions to VerifyThis 2016 Challenges 2 and 3 Using VeriFast FTfJP Bart Jacobs iMinds - Distrinet, KU Leuven | ||
17:00 30mTalk | Coupling Catch Clauses with Local Declarations FTfJP | ||
17:30 30mTalk | Towards Modular Reasoning for Context-Oriented Programs FTfJP | ||
18:00 30mTalk | Permission and Authority Revisited: Towards a Formalization FTfJP Sophia Drossopoulou Imperial College London, James Noble Victoria University of Wellington, Mark Miller Google Inc., Toby Murray University of Melbourne |