A program storage device, readably by a machine, tangibly embodying instructions to perform method steps for constructing a call graph whereby for each method M, a set of types S.sub.M of objects that may occur in method M is determined for each field F, a set of types S.sub.F of objects is determined that may be stored in field F, the method comprising: determining the allocation sites inside the body of method M; determining the set of directly called methods M' inside the body of method M; and determining the set of virtually called methods M'' inside the body of method M.
CROSS REFERENCE TO RELATED APPLICATIONS
This is non-provisional patent application is based on the provisional patent application Ser. No. 60/233,591 to Frank Tip et al, for "Scalable Propagation-Based Call Graph Construction Algorithms" filed Sep. 18, 2000, which is commonly assigned herewith to International Business Machines Corporation, and is hereby incorporated herein in its entirety by reference.
An optimizing apparatus includes a data item extraction unit, a layout unit, an unused data item extraction unit, a merge determination unit, and a data item merge unit. The data item extraction unit extracts data items from a program. The layout unit lays out the extracted data item in memory. The unused data item extraction unit extracts defined but unused data items from the extracted data items. The merge determination unit determines based on the layout result whether or not a plurality of unused data items forming a data item having a hierarchical structure can be merged into a new data item. The data item merge unit merges the plurality of data items into a data item based on the determination result.
A process and system are provided for representing object interactions, by means of a sequence diagram or the like, wherein the object interactions are recovered from source code written in Java or other object-oriented programming language. Initially, a Method Information Parser determines the respective methods declared inside the source code and extracts their names. A Method Detail Parser then extracts the method calls to other objects within a method, to resolve each complex method call into multiple lines of single method calls. Information derived from the multiple lines of single method calls is then used to generate the sequence diagram.
Methods and apparatus for identifying a type of a software object are disclosed. The methods and apparatus encode data associated with the software object based at least in part on the type of the software object and compare the encoded data with a value associated with a target object type to identify the type of the software object.