Friday, October 10, 2008
Pascal Costanza will speak at Lisp50
Pascal Costanza has a Ph.D. degree from the University of Bonn, Germany, and works as a research assistant at the Programming Technology 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. He is furthermore the initiator and lead of Closer, an open source project that provides a compatibility layer for the CLOS MOP across multiple Common Lisp implementations.
ContextL: Adding support for Context-oriented Programming to Common Lisp
There is an increased need for applications that can dynamically adjust their behavior to the context of use. Three years ago, we have introduced ContextL as an extension to Common Lisp, our first language extension that explicitly supports Context-oriented Programming (COP). 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.
On the one hand, this talk introduces the basic language constructs for COP, shows some non-trivial examples, and some promising next steps in the field of COP currently being undertaken in several research groups. On the other hand, this talk will also illustrate how much easier it is to implement non-trivial language extensions, such as ContextL, in Lisp than in other languages, not only as a basis for a research platform, but also for frameworks that are used in large-scale industrial settings.