Efficient Implementation of Adaptive Software

  • Palsberg J
  • Xiao C
  • Lieberherr K
  • 1


    Mendeley users who have this article in their library.
  • N/A


    Citations of this article.


Adaptive programs compute with objects, just like object-oriented programs. Each task to be accomplished is specified by a so-called propagation pattern which traverses the receiver object. The object traversal is a recursive descent via the instance variables where information is collected or propagated along the way. A propagation pattern consists of (1) a name for the task, (2) a succinct specification of the parts of the receiver object that should be traversed, and (3) code fragments to be executed when specific object types are encountered. The propagation patterns need to be complemented by a class graph which defines the detailed object structure. The separation of structure and behavior yields a degree of flexibility and understandability not present in traditional object-oriented languages. For example, the class graph can be changed without changing the adaptive program at all. We present an efficient implementation of adaptive programs. Given an adaptive program and a class graph, we generate an efficient object-oriented program, for example, in C ++ . Moreover, we prove the correctness of the core of this translation. A key assumption in the theorem is that the traversal specifications are consistent with the class graph. We prove the soundness of a proof system for conservatively checking consistency, and we show how to implement it efficiently.

Author-supplied keywords

  • Adaptive software
  • Categories and Subject Descriptors
  • D2m [Software Engineering]
  • D32 [Programming Languages]
  • D34 [Programming Languages]
  • Languages Additional Key Words and Phrases
  • Miscellaneous—reusable software
  • Processors—compilers General Terms
  • correctness proof
  • object traversal

Get free article suggestions today

Mendeley saves you time finding and organizing research

Sign up here
Already have an account ?Sign in

Find this document

There are no full text links


  • Jens Palsberg

  • Cun Xiao

  • Karl Lieberherr

Cite this document

Choose a citation style from the tabs below

Save time finding and organizing research with Mendeley

Sign up for free