class hierarchy specialization
Class libraries are generally designed with an emphasis on versatility and extensibility. Applications that use a library typically exercise only part of the library's functionality. As a result, objects created by the application may contain unused members. We present an algorithm that specializes a class hierarchy with respect to its usage in a program P . That is, the algorithm analyzes the member access patterns for P 's variables, and creates distinct classes for variables that access different members. Class hierarchy specialization reduces object size, and is hence primarily a space optimization. However, execution time may also be reduced through reduced object creation/destruction time, and caching/paging effects.
class hierarchies specialization libraries extensibility applications use exercise functional object algorithm access pattern variability size space optimality timing caches paging effect