In order to satisfy the changing needs of customers and clients, software systems have to be adapted during their whole lifetime. One frequently occurring task is adding a new function to the interface of a (sub-) sys...
详细信息
ISBN:
(纸本)1402073747
In order to satisfy the changing needs of customers and clients, software systems have to be adapted during their whole lifetime. One frequently occurring task is adding a new function to the interface of a (sub-) system. To implement the new functionality, not only the interface has to be extended but several other classes of the (sub-) system. Performing this task manually is tedious and error-prone. In this paper a method is described that simplifies implementing extensions of the above kind. The basic idea is using adaptive programming (AP), so that new functionality can be described with the help of paths in the class structure and source code transformations.
We describe an efficient compiler and run-time system for NEXTGEN, a compatible extension of the Java programming language supporting run-time generic types designed by Cartwright and Steele. The resulting system is c...
详细信息
ISBN:
(纸本)1402073747
We describe an efficient compiler and run-time system for NEXTGEN, a compatible extension of the Java programming language supporting run-time generic types designed by Cartwright and Steele. The resulting system is comparable in performance with both standard Java and the GJ extension of Java, which does not support run-time generic types. Our implementation of NEXTGEN consists of a compiler extending the GJ compiler and a special class loader that constructs type instantiation classes on demand. The compiler relies on the implementation strategy proposed by Cartwright and Steele with one major exception: to support polymorphic recursion in the definition of generic classes, the compiler generates templates for instantiation classes which are constructed on demand by the class loader. We include an extensive set of benchmarks, specifically developed to stress the use of generic types. The benchmarks a show that the additional code required to support run-time generic types has little overhead compared with ordinary Java and GJ.
暂无评论