Object type system for a run-time environment using...

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

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C706S013000

Reexamination Certificate

active

06782532

ABSTRACT:

FIELD OF THE INVENTION
The present invention relates to computer systems and more particularly to implementing a run-time environment.
BACKGROUND OF THE INVENTION
A dynamic run-time environment for a language such as JAVA™ is responsible for managing memory for objects that are created and destroyed during the execution of a program. An object is an entity that encapsulates data and, in some languages, operations associated with the object. Since the encapsulated data is stored in memory, objects are associated with particular regions of memory that are allocated and deallocated by the dynamic run-time environment.
In general, all implementations of a language run-time environment are built upon a low-level substrate that provides proto-language services. These services may include memory management, method dispatching, operating system (or other encapsulating environment) services, and outcall mechanisms. Typically, the low-level substrate and a schema of the system classes belonging to the run-time environment are hand written in a systems programming language such as C or C++ as well as assembly language subroutines. Conventional techniques for implementing the low-level substrate services, however, suffer from several disadvantages, depending on the implementation language being used.
For example, if the low-level substrate is written in the C programming language and assembly language, the resulting code tends to be difficult to design and maintain in comparison with object-oriented programming languages. Use of an objected-oriented language like the C++ programming language, however, also suffers from disadvantages. In particular, C++ member functions (methods) are difficult to interface with generic C environmental code due to compiler name-mangling, and sometimes involve run-time overhead in method dispatching (i.e. invoking virtual member functions requires an indirection through a virtual table). Furthermore, C++ is less portable than C.
Therefore, there exists a need for a way to implement low-level substrate services that is portable, efficient, and compatible with generic environmental code while attaining benefits associated with object-oriented programming.
SUMMARY OF THE INVENTION
This and other needs are addressed by the present invention, in which a static, object-oriented meta-object system is provided for implementing a run-time environment. In particular, code is generated by the meta-object system that is compatible with a high-order systems programming language such as C. Since the meta-object system is object-oriented, the benefits of ease of design and maintenance associated with object-oriented programming are attained. Since meta-object system is static, each invoked method can be identified at compile-time, leading to efficient method dispatching. Finally, the meta-object system methods are translated into “generic functions” in a portable systems programming language such as C, thereby facilitating linkage with environmental code.
A generic function is a function that dispatches on the types of one or more of its arguments. For example, a generic function foo (A, B) could dispatch on either the arguments A, B, or both. A generic function that dispatches on only one argument provides the semantics of a normal method call, but unlike C++ methods, generic functions can dispatch on a plurality of arguments.
Accordingly, one aspect of the invention pertains to a method and software for implementing a run-time environment, comprising the computer-implemented steps of: defining an object-oriented type system for a plurality of objects being associated with respective operations; accessing a description of a generic function specifying an operation to be invoked based on an argument; and generating high-order language instructions for receiving an object as the argument and invoking a corresponding operation based on a type of the object.
Another aspect of the invention involves a method and software for implementing a run-time environment with a meta-object system in which an object-oriented type system is defined, comprising the computer-implemented steps of: accessing a description of a generic function specifying an operation to be dispatched based on more than one argument; and generating high-order language instructions for more than one object as the arguments and dispatching a corresponding operation based on the types of the objects.
Still other objects and advantages of the present invention will become readily apparent from the following detailed description, simply by way of illustration of the best mode contemplated of carrying out the invention. As will be realized, the invention is capable of other and different embodiments, and its several details are capable of modifications in various obvious respects, all without departing from the invention. Accordingly, the drawing and description are to be regarded as illustrative in nature, and not as restrictive.


REFERENCES:
patent: 5093914 (1992-03-01), Coplien et al.
patent: 5689703 (1997-11-01), Atkinson et al.
patent: 5768505 (1998-06-01), Gilchrist et al.
patent: 5873097 (1999-02-01), Harris et al.
patent: 5987247 (1999-11-01), Lau
patent: 6016495 (2000-01-01), McKeehan et al.
patent: H1837 (2000-02-01), Fletcher et al.
patent: 6052670 (2000-04-01), Johnson
patent: 6061690 (2000-05-01), Nori et al.
patent: 6081832 (2000-06-01), Gilchrist et al.
patent: 6101502 (2000-08-01), Heubner et al.
patent: 6105056 (2000-08-01), Gilchrist et al.
patent: 6134540 (2000-10-01), Carey et al.
patent: 6199068 (2001-03-01), Carpenter
patent: 6205471 (2001-03-01), Gilchrist et al.
patent: 6236994 (2001-05-01), Swartz et al.
patent: 6266708 (2001-07-01), Austvold et al.
patent: 6308225 (2001-10-01), Schofield
patent: 6339820 (2002-01-01), Baentsch et al.
patent: 6427231 (2002-07-01), Burke et al.
“Dictionary of Object Technology”, Donald G. Firesmith et al, published Sep. 22, 1995, pp. 55, 184-186, 314-315, 330-335.*
Object-Oriented Analysis and Design with Applications, Grady Booch, published Sep. 10, 1993, pp. 473-489.*
“The Design and Evolution of C++”, Bjarne Stroustrup, published Mar. 9, 1994, pp. 1-14, 223-255, 305-336.*
“Software Systems Construction With Examples in ADA”, Bo Sanden, Prentice Hall, 1994, pp. 104-109.*
GOODS Generic Object Oriented Database, www.ispras, no publish date.*
“Client/ Server Programming With JAVA and CORBA” Second Edition Robert Orfali et al., pp. 63-75, published Jan. 30, 1997.

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

Object type system for a run-time environment using... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Object type system for a run-time environment using..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Object type system for a run-time environment using... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3324518

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