Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Unreachable procedures in object-oriented programming
ACM Letters on Programming Languages and Systems (LOPLAS)
Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
Creating abstract superclasses by refactoring
CSC '93 Proceedings of the 1993 ACM conference on Computer science
Object-oriented type systems
Reducing indirect function call overhead in C++ programs
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
An algebraic semantics of subobjects
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Slicing class hierarchies in C++
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Automatic inheritance hierarchy restructuring and method refactoring
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Simple and effective analysis of statically-typed object-oriented programs
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Fast static analysis of C++ virtual function calls
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Points-to analysis in almost linear time
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Lackwit: a program understanding tool based on type inference
ICSE '97 Proceedings of the 19th international conference on Software engineering
A member lookup algorithm for C++
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Fast and accurate flow-insensitive points-to analysis
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The Java Language Specification
The Java Language Specification
Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Eliminating Virtual Function Calls in C++ Programs
ECCOP '96 Proceedings of the 10th European Conference on Object-Oriented Programming
Program slices: formal, psychological, and practical investigations of an automatic program abstraction method
A study of dead data members in C++ applications
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Reengineering class hierarchies using concept analysis
SIGSOFT '98/FSE-6 Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering
The Jalapeño dynamic optimizing compiler for Java
JAVA '99 Proceedings of the ACM 1999 conference on Java Grande
Space and time-efficient memory layout for multiple inheritance
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Practical experience with an application extractor for Java
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Java bytecode compression for low-end embedded systems
ACM Transactions on Programming Languages and Systems (TOPLAS)
Understanding class hierarchies using concept analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Extracting library-based object-oriented applications
SIGSOFT '00/FSE-8 Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
Techniques for obtaining high performance in Java programs
ACM Computing Surveys (CSUR)
On the syllogistic structure of object-oriented programming
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Practical extraction techniques for Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Space- and Time-Efficient Implementation of the Java Object Model
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
ECOOP '02 Proceedings of the Workshops and Posters on Object-Oriented Technology
Extracting Java library subsets for deployment on embedded systems
Science of Computer Programming - Software maintenance and reengineering (CSMR 99)
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
IBM Systems Journal
Dynamic Class Hierarchy Mutation
Proceedings of the International Symposium on Code Generation and Optimization
Utilizing field usage patterns for Java heap space optimization
CASCON '06 Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research
MASPEGHI 2004 mechanisms for specialization, generalization and inheritance
ECOOP'04 Proceedings of the 2004 international conference on Object-Oriented Technology
Hi-index | 0.00 |
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.