ACM Home Page
Please provide us with feedback. Feedback
Slicing class hierarchies in C++
Full text PdfPdf (2.08 MB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications table of contents
San Jose, California, United States
Pages: 179 - 197  
Year of Publication: 1996
ISBN:0-89791-788-X
Also published in ...
Authors
Frank Tip  IBM T.J. Watson Research Center, P.O. Box 704, Yorktown Heights, NY
Jong-Deok Choi  IBM T.J. Watson Research Center, P.O. Box 704, Yorktown Heights, NY
John Field  IBM T.J. Watson Research Center, P.O. Box 704, Yorktown Heights, NY
G. Ramalingam  IBM T.J. Watson Research Center, P.O. Box 704, Yorktown Heights, NY
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 1,   Downloads (12 Months): 51,   Citation Count: 20
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/236337.236355
What is a DOI?

ABSTRACT

This paper describes an algorithm for slicing class hierarchies in C++ programs. Given a C++ class hierarchy (a collection of C++ classes and inheritance relations among them) and a program P that uses the hierarchy, the algorithm eliminates from the hierarchy those data members, member functions, classes, and inheritance relations that are unnecessary for ensuring that the semantics of P is maintained.Class slicing is especially useful when the program P is generated from a larger program P' by a statement slicing algorithm. Such an algorithm eliminates statements that are irrelevant to a set of slicing criteria---program points of particular interest. There has been considerable previous work on statement slicing, and it will not be the concern of this paper. However, the combination of statement slicing and class slicing for C++ has two principal applications: First, class slicing can enhance statement slicing's utility in program debugging and understanding applications, by eliminating both executable and declarative program components irrelevant to the slicing criteria. Second, the combination of the two slicing algorithms can be used to decrease the space requirements of programs that do not use all the components of a class hierarchy. Such a situation is particularly common in programs that use class libraries.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
ACCREDITED STANDARDS COMMITTEE X3, I. P. S. Working paper for draft proposed international standard for information systems---programming language C++. Draft of 26 september 1995.
 
2
AGESEN, O. Constraint-based type inference and parametric polymorphism. Proceedings of the First International Static Analysis Symposium (SAS'94) (September 1994), 78--I00. Springer-Verlag LNCS vol. 864.
 
3
4
5
6
7
 
8
BACON, D. F., WEGMAN, M., AND ZADECK, F. K. Rapid type inference for C++. Tech. Rep. RC 1234, IBM Thomas J. Watson Research Center, 1995.
 
9
10
 
11
CARINI, P. R., HIND, M., AND SRINIVASAN, H. Flowsensitive type analysis for C++. Tech. Rep. RC 20267, IBM T.J. Watson Research Center, 1995.
12
 
13
DEAN, j., AND CHAMBERS, C. Optimization of objectoriented programs using static class hierarchy analysis. Tech. Rep. 94-12-01, Department of Computer Science, University of Washington at Seattle, December 1994.
 
14
 
15
ERNST, M. Practical fine-grained static slicing of optimized code. Tech. Rep. MSR-TR-94-14, Microsoft Research, Redmond, WA, 1994.
16
17
18
 
19
KRISHNASWAM~, A. Program slicing: An application of object-oriented program dependency graphs. Technical report TR94-108, Dept. of Computer Science, Clemson University, 1994.
 
20
 
21
LIVADAS, P. E., AND CROLL, S. Program slicing. Report serc-tr-6 l-f, Computer Sciences Department, University of Florida, 1992.
22
 
23
PANDE, H. D., AND RYOER, B. G. Static type determination and aliasing for C++. Report LCSR-TR-250-A, Rutgers University, October 1995.
24
25
26
 
27
SAKKINEN, M. A critique of the inheritance principles of C++. Computing Systems 5, I (1992), 69--I I0.
28
 
29
TIP, F. A survey of program slicing techniques. Journal of Programming Languages 3, 3 (1995), 121-189.
 
30

CITED BY  20

Collaborative Colleagues:
Frank Tip: colleagues
Jong-Deok Choi: colleagues
John Field: colleagues
G. Ramalingam: colleagues