Determining the actual class of an object at run time

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Patent

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

717 4, 707103, G06F 945

Patent

active

061382698

ABSTRACT:
A dynamic down cast or cross cast is performed at run time within an object-oriented programming language such as C++. The compiler generates data structures during a compile; at run time a routine in the language support library accesses the generated data structures in order to perform the dynamic cast. Class structure information is provided in a size that varies linearly as the total number of classes in the class hierarchy. Cryptographic hashing of class names is used to provide uniqueness. The dynamic cast addresses complications in C++ due to "virtual" and "nonvirtual" inheritance. A run time type identification (RTTI) data structure is created at compile time. An offset within an object description is calculated for each sub-object of the object. Those virtual base classes that are duplicates are skipped producing a data structure that may be searched linearly as the number of classes in the hierarchy. An identifier for each sub-object is stored in the data structure along with its offset. Each virtual table also stores the offset of its corresponding sub-object. A cast operation is performed at run time using the RTTI data structure. The static type object pointer is used to access the object through a particular sub-object. The virtual table associated with the sub-object is used to access the RTTI data structure. The data structure is searched for the target type, and the offset associated with the target type is combined with the offset from the virtual table to adjust the object pointer to cast it to the target type.

REFERENCES:
patent: 5187790 (1993-02-01), East et al.
patent: 5297284 (1994-03-01), Jones et al.
patent: 5307490 (1994-04-01), Davidson et al.
patent: 5421012 (1995-05-01), Khoyi et al.
patent: 5437025 (1995-07-01), Bale et al.
patent: 5437027 (1995-07-01), Bannon et al.
patent: 5481721 (1996-01-01), Serlet et al.
patent: 5497463 (1996-03-01), Stein et al.
patent: 5511197 (1996-04-01), Hill et al.
patent: 5566302 (1996-10-01), Khalidi et al.
patent: 5583988 (1996-12-01), Crank et al.
patent: 5617569 (1997-04-01), Gray et al.
patent: 5793965 (1998-08-01), Vanderbilt et al.
patent: 5872973 (1999-02-01), Mitchell et al.
patent: 5960197 (1999-09-01), Segnan
Amitabh Dave, Mohlalefi Sefika and Roy H. Campbell, "Proxies, Application Interfaces, and Distributed Systems," Jan. 1, 1992, Proceedings 2nd International Workshop Object Orientation in Operating Systems, 0-8186-305-9, IEEE, pp. 212-220.
Andrew Birrell, Greg Nelson, Susan Owicki and Edward Wobber, "Network Objects," Dec. 27, 1993, 8283 Operating Systems Review (SIGOPS), No. 5, New York, US pp. 217-230.
Anonymous, "Distributed Object Activation and Communication Protocols," Jul. 1994, IBM Technical Disclosure Bulleting, vol. 37, No. 7, pp. 539-542.
Bob Hathaway, "Comp. Object. FAQ," Nov. 5, 1993, Internet site at www.ihlas.net
ew.sub.- documents/object.sub.- faq.txt, pp. 1-50.
Fernandez, "Simple and effective linnk-time optimization of Modula -3 programs", SIGPLAN'95, ACM, 1995, pp. 103-115.
Hummel et al., A language for conveying the aliasing properties of dynamic, pointer-based data structures, IEEE, 1994, pp. 208-216.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Determining the actual class of an object at run time does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Determining the actual class of an object at run time, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Determining the actual class of an object at run time will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-1976180

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.