Scoping changes in self-supporting development environments using context-oriented programming

  • Authors:
  • Jens Lincke;Robert Hirschfeld

  • Affiliations:
  • Hasso-Plattner-Institut, Universität Potsdam, Germany;Hasso-Plattner-Institut, Universität Potsdam, Germany

  • Venue:
  • Proceedings of the International Workshop on Context-Oriented Programming
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Interactive development in self-supporting systems like Smalltalk or the Lively Kernel allows for an explorative and direct development workflow. Because of the immediate and direct feedback loops, changes to core behavior can lead to accidentally breaking the programming tools themselves. By separating the tools from the objects they work on, this fatal self referentiality can be avoided, but at the expense of interactive development. In this paper we show how context-oriented programming (COP) can be used to separate tools from the objects under development. Instead of directly modifying meta-structures, changes should go into layers on top of these structures. Since layers can be scoped at run-time, changes do not affect the programming tools. We demonstrate this approach by showing examples of adapting core behavior in our self-supporting development environment Webwerkstatt with Context JS, our COP extension for JavaScript.