Incremental programming with extensible decisions

  • Authors:
  • Doug Orleans

  • Affiliations:
  • Northeastern University, Boston, Massachusetts

  • Venue:
  • AOSD '02 Proceedings of the 1st international conference on Aspect-oriented software development
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

Languages that support incremental programming, that is, the construction of new program components by specifying how they differ from existing components, allow for clean separation of concerns. Object-oriented languages support incremental programming with inheritance and dynamic dispatch features: whenever a message is sent, a decision occurs, but the branches of the decision can be specified in separate components. Aspect-oriented programming and predicate dispatching both introduce language mechanisms that improve on this support by allowing an extensible decision to depend on information about the message send other than just the dynamic type of the receiver or arguments. A small prototype language is presented that unifies the best features of these mechanisms, providing uniform support for incremental programming whether concerns are crosscutting or not. The language is demonstrated with a running example, a small data structure library that is incrementally extended with optimizations and new operations.