Data processing: software development – installation – and managem – Software program development tool – Translation of code
Reexamination Certificate
1999-04-07
2001-10-09
Powell, Mark R. (Department: 2122)
Data processing: software development, installation, and managem
Software program development tool
Translation of code
C717S152000
Reexamination Certificate
active
06301700
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention generally relates to object oriented programming (OOP) systems, and, more particularly, to OOP systems supporting the C++ programming language.
2. Background Description
The C++ programming language provides a number of features such as classes, inheritance, multiple inheritance, and virtual inheritance. These object oriented features have several advantages. Most importantly they enable the creation of class libraries that can be reused in several different applications. However, such code reuse comes at a price. To enable reusability, object oriented programming encourages the use of classes that incorporate a high degree of functionality. Programs that use such classes, however, may pay a penalty for functions they do not use. One of the resulting penalties is that of increased code size resulting from linking unused functions. The prior art has focused on addressing this penalty. An example of such prior art is A. Srivastava, “Unreachable procedures in object oriented programing”, ACM Letters on Programming Languages and Systems, 1(4), pp. 355-364, December 1992.
Other prior art has focused on determining unused code at the statement level. In particular, program slicing techniques have been developed for isolating computational threads in programs. A program slice is generally defined as the set of statements that either contribute to, or are affected by, the values computed at some designated point of interest in the program. A more detailed description of program slicing may be found in F. Tip, “A Survey of Program Slicing Techniques”, Journal of Programing Languages 3, 3 (1995), pp. 121-189. The combination of a program point and a set of variables of interest at that point is referred to as the slicing criterion. In particular, previous work on program slicing has focused on eliminating from a program those executable statements that are unnecessary with respect to the given slicing criterion.
However, a less obvious penalty of the use of class libraries in object oriented programming is that objects may contain unnecessary data members and subobjects. Larger objects can not only increase the space requirements of the program, but also decrease its execution speed, due to the extra time required for object construction and destruction, and the effects of paging and caching. The presence of unused or unnecessary data members and inheritance relations in a program has another disadvantage as well. It makes it unnecessarily more difficult for programmers to understand the code.
SUMMARY OF THE INVENTION
The problems presented above and the related problems of the prior art are solved by the present invention, method and apparatus for slicing class hierarchies. The present invention computes a slice of a given class hierarchy of a program P by eliminating from the hierarchy those data members, member functions, classes, and inheritance relations that are unnecessary for ensuring that the semantics of P is maintained. The invention may be used in optimization by reducing the space and time requirements of a program. In the alternative, the invention may be used in program understanding and debugging. The invention is preferably used subsequent to program slicing.
REFERENCES:
patent: 5161216 (1992-11-01), Reps et al.
patent: 5652899 (1997-07-01), Mays et al.
patent: 5778232 (1998-07-01), Caldwell et al.
patent: 5838979 (1998-11-01), Hart et al.
patent: 5854925 (1998-12-01), Shimomura
patent: 5983020 (1999-11-01), Sweeney et al.
Zhao et al.; “Static Slicing of Concurrent Object-Oriented Programs”. IEEE[online], 1996 International Computer Software and Applications Conference, pp. 312-320, Aug. 1996.*
Larsen et al.; “Slicing Object-Oriented Software”. IEEE[online], 1996 International Conference on Software Engineering, pp. 495-505, Mar. 1996.*
Tip et al.; “Slicing Class Hierarchies in C++”. IEEE[online], 1996 Conference on Object Oriented Programming Systems Languages and Applications, pp. 179-197, Oct. 1996.*
Chen et al., “Omega-an integrated environment for C++program maintenance”. IEEE [online], 1996 International Conference on Software Maintenance, pp. 114-123, Nov. 1996.*
Huang et al., “Business rule extraction from legacy code”. IEEE[online], Proceedings of the 20th International Computer Software and Applications Conference, pp. 162-167, Aug. 1996.*
Tan et al.; “Slicing functional components from data-intensive business programs”. IEEE[online], Proceedings of the 20th International Computer Software and Applications Conference, pp. 384-388, Aug. 1996.*
Lucia et al.; “Understanding functino behaviors through program slicing”. IEEE[online], 1996 Workshop on Program Comprehension, pp. 9-18, Mar. 1996.*
Cimitile et al.; “Identifying reusable functions using specification driven program slicing: a case study”. IEEE[online], 1995 International Conference on Software Maintenance, pp. 124-133, Oct. 1995.*
Ball et al.; “Visualizing Program Slices”. IEEE[online], Proceedings of the 1994 Symposium on Visual Languages, pp. 288-295, Oct. 1994.*
Lucas et al.; “Managing software evolution through reuse contracts”. IEEE[online], EUROMICRO 1997, pp. 165-168, Mar. 1997.*
Jiang et al.; “Program Slicing for C-The Problems in Implementation”. IEEE[online], 1991 Conference on Software Maintenance, pp. 182-190, Oct. 1991.*
Harrold et al.; “Separate computation of alias information for reuse”. IEEE[online], IEEE Transactions on Software Engineering, pp. 442-460, Jul. 1996.*
Ott et al.; “Effects of Software Changes on module cohesion”. IEEE[online], 1992 Conference on Software Maintenance, pp. 345-353, Nov. 1992.
Choi Jong-Deok
Field John H.
Ramalingam Ganesan
Tip Frank
Booker Kelvin
International Business Machines - Corporation
Powell Mark R.
LandOfFree
Method and apparatus for slicing class hierarchies does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method and apparatus for slicing class hierarchies, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for slicing class hierarchies will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2614109