×

Supporting incremental and experimental software evolution by runtime method transformations. (English) Zbl 1072.68522

Summary: Transformations of object-oriented methods are a prevalent object-oriented programming technique, but in many languages they are not supported at runtime. Therefore it can be hard to apply method transformations for incremental or experimental software evolution, or other problems that require runtime software behavior adaptation. The goal of the work presented in this paper is to provide a better conceptual and technical support for runtime method transformations. A non-intrusive model for method transformations and a set of runtime method transformation primitives are presented. We also present a pattern language for implementing dynamic method abstractions and combining them with languages that do not support dynamic methods natively. As a case study we introduce a runtime transformation framework for the dynamic configuration and composition language Frag, its connection to Java, and an end user programming example.

MSC:

68N19 Other programming paradigms (object-oriented, sequential, concurrent, automatic, etc.)

Software:

CLOS; Frag; AspectS; Python
Full Text: DOI