5th International Workshop on Context-Oriented Programming
ECMFA/ECOOP/ECSA Montpellier, France
July 2, 2013
-
9:15-9:30 Opening
-
9:30-10:30 Keynote Talk
-
Erik Ernst: Contexts as an organizational device
Abstract: Context-oriented programming has often been considered as a way to control potentially global modifications of the behavior of a software system that makes it adapt to the environment. This talk revisits the conceptual foundations of the concept of contexts, and argues that its metric nature provides a valuable foundation for maintaining predictability and understandability during dynamic processes. Contexts thus serve to structure complex and dynamic software systems and our understanding of them, in addition to being related in obvious ways to our physical environment. A crucial activity in connection with context dependency is the dynamic alteration of the system behavior in response to contextual changes. We argue that that this kind of dynamics may be easier to understand and manage, when the metric nature of contexts is taken into account. However, environmental dynamics also create serious difficulties in relation to transitional behaviors, and calls for a much more declarative program execution semantics than what is currently available.
Biography: Erik Ernst is an associate professor at Aarhus University, Denmark, who is working with programming language design, implementation, and formalization, with a particular interest in expressive type systems and abstraction mechanisms including family polymorphism, virtual classes, dependent types, and deep mixin composition.
-
-
10:30-11:00 (break)
-
11:00-12:15 Session 1
-
Naoyasu Ubayashi, Ai Di and Yasutaka Kamei: Archface4COP: Architectural Interface for Context-Oriented Programming
-
Doug Kimelman, David Ungar, Harold Ossher, Sam Adams and John Richards: Enterprise Context – A Rich Source of Requirements for Context-Oriented Programming
-
Shigeru Chiba: What should be contexts in COP? (short talk)
In this talk, I would like to discuss what should be contexts in context-oriented programming (COP). Program behavior in COP changes depending on program states called contexts. For example, in ContextJ, method implementations are switched by with blocks specifying the current context. Since with blocks are independent of the definitions of actual contexts and they simply specify which implementations are effective, ContextJ does not directly answer a naive question, what is a context? The design of that language is neutral with respect to that question. I hope this discussion helps us reason about the essence and benefits of COP and compare COP with other similar paradigms.
-
-
12:15-14:00 Lunch
-
14:00-15:30 Session 2
-
Tetsuo Kamina, Tomoyuki Aotani and Hidehiko Masuhara: A Unified Context Activation Mechanism
-
Robert Hirschfeld, Hidehiko Masuhara and Atsushi Igarashi: L – Context-oriented Programming With Only Layers
-
Tim Felgentreff: A Tool Building Example: Layers as Source Code Packages (demo)
Interactive development in self-supporting systems like Smalltalk or the Lively Kernel allows for an explorative and direct development workflow. Due to the immediate and direct feedback loops, changes to core behaviour can lead to accidentally breaking the programming tools themselves. We have previously proposed DevLayers as a way to isolate such fundamental changes during development. However, in agile software development we also like to continuously deliver new features to customers. To deploy new features in a controlled manner, we have packaged layers as separate packages to roll out new features incrementally.
-
-
15:30-16:00 (break)
-
16:00-17:00 Open discussion