Language constructs for context-oriented programming: an overview of ContextL

  • Authors:
  • Pascal Costanza;Robert Hirschfeld

  • Affiliations:
  • Vrije Universiteit Brussel, Brussels, Belgium;DoCoMo Communications Laboratories Europe, Munich, Germany

  • Venue:
  • DLS '05 Proceedings of the 2005 symposium on Dynamic languages
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

ContextL is an extension to the Common Lisp Object System that allows for Context-oriented Programming. It provides means to associate partial class and method definitions with layers and to activate and deactivate such layers in the control flow of a running program. When a layer is activated, the partial definitions become part of the program until this layer is deactivated. This has the effect that the behavior of a program can be modified according to the context of its use without the need to mention such context dependencies in the affected base program. We illustrate these ideas by providing different UI views on the same object while, at the same time, keeping the conceptual simplicity of object-oriented programming that objects know by themselves how to behave, in our case how to display themselves. These seemingly contradictory goals can be achieved by separating class definitions into distinct layers instead of factoring out the display code into different classes.