Class hierarchy specialization
- 9 October 1997
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 32 (10) , 271-285
- https://doi.org/10.1145/263700.263748
Abstract
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.Keywords
This publication has 14 references indexed in Scilit:
- A member lookup algorithm for C++Published by Association for Computing Machinery (ACM) ,1997
- LackwitPublished by Association for Computing Machinery (ACM) ,1997
- Fast and accurate flow-insensitive points-to analysisPublished by Association for Computing Machinery (ACM) ,1997
- Simple and effective analysis of statically-typed object-oriented programsACM SIGPLAN Notices, 1996
- Automatic inheritance hierarchy restructuring and method refactoringACM SIGPLAN Notices, 1996
- Points-to analysis in almost linear timePublished by Association for Computing Machinery (ACM) ,1996
- Reducing indirect function call overhead in C++ programsPublished by Association for Computing Machinery (ACM) ,1994
- Creating abstract superclasses by refactoringPublished by Association for Computing Machinery (ACM) ,1993
- Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effectsPublished by Association for Computing Machinery (ACM) ,1993
- Unreachable procedures in object-oriented programmingACM Letters on Programming Languages and Systems, 1992