Résumé | There is an increased need for applications that can dynamically
adjust their behavior to the context of use. Three years ago, we
have introduced Context-oriented Programming (COP) by developing
a number of extensions to languages such as Common Lisp,
Smalltalk and Java. In COP, programs consist of partial class and
method definitions that can be selected and composed at runtime
as needed. Employing potentially crosscutting runtime adaptations
to class and method definitions, COP encourages continually
adjusting behavior of programs according to their context.
Since then, we have carried out a number of successful
application and language experiments which show that the basic
building blocks of COP remain stable. Among others, we have
implemented multiple context-dependent views, coordination of
screen updates, context-dependent discerning of phone calls, and
selecting context-dependent billing schemes. We have also taken
first steps towards the design and requirements engineering
stages for context-aware applications. Furthermore, our ideas
have been picked up in large-scale industrial settings.
This talk introduces the basic language constructs for COP, shows
some non-trivial examples, discusses the impact of COP so far,
and sketches some promising next steps in the field of COP.
Pascal Costanza has a Ph.D. degree from the University of Bonn,
Germany, and works as a research assistant at the Software
Languages Lab of the Vrije Universiteit Brussel, Belgium. His
past involvements include specification and implementation of the
languages Gilgul and Lava, and the design and application of the
JMangler framework for load-time transformation of Java class
files. He has also implemented ContextL, the first programming
language extension for Context-oriented Programming based on
CLOS, and aspect-oriented extensions for CLOS. |