An apparatus for enabling an object-oriented application to access in an object-oriented manner a procedural operating system having a native procedural interface is disclosed. The apparatus includes a computer and a memory component in the computer. A code library is stored in the memory component. The code library includes computer program logic implementing an object-oriented class library. The object-oriented class library comprises related object-oriented classes for enabling the application to access in an object-oriented manner services provided by the operating system. The object-oriented classes include methods for accessing the operating system services using procedural function calls compatible with the native procedural interface of the operating system. The computer processes object-oriented statements contained in the application and defined by the class library by executing methods from the class library corresponding to the object-oriented statements. |
Citations|
| US4456954 | Jun 15, 1981 | Jun 26, 1984 | International Business Machines Corporation | Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations | | US4530052 | Oct 14, 1982 | Jul 16, 1985 | Honeywell Information Systems Inc. | Apparatus and method for a data processing unit sharing a plurality of operating systems | | US4722048 | Apr 3, 1985 | Jan 26, 1988 | Honeywell Bull Inc. | Microcomputer system with independent operating systems | | US4821220 | Jul 25, 1986 | Apr 11, 1989 | Tektronix, Inc. | System for animating program operation and displaying time-based relationships | | US4885717 | Sep 25, 1986 | Dec 5, 1989 | Tektronix, Inc. | System for graphically representing operation of object-oriented programs | | US4891630 | Apr 22, 1988 | Jan 2, 1990 | | Computer vision system with improved object orientation technique | | US4926322 | Aug 3, 1987 | May 15, 1990 | Compag Computer Corporation | Software emulation of bank-switched memory using a virtual DOS monitor and paged memory management | | US4953080 | Apr 25, 1988 | Aug 28, 1990 | Hewlett-Packard Company | Object management facility for maintaining data in a computer system | | US4974159 | Sep 13, 1988 | Nov 27, 1990 | Microsoft Corporation | Method of transferring control in a multitasking computer system | | US5041992 | Oct 24, 1988 | Aug 20, 1991 | University of Pittsburgh | Interactive method of developing software interfaces | | US5050090 | Mar 30, 1989 | Sep 17, 1991 | R. J. Reynolds Tobacco Company | Object placement method and apparatus | | US5060276 | May 31, 1989 | Oct 22, 1991 | AT&T Bell Laboratories | Technique for object orientation detection using a feed-forward neural network | | US5075848 | Dec 22, 1989 | Dec 24, 1991 | Intel Corporation | Object lifetime control in an object-oriented memory protection mechanism | | US5093914 | Dec 15, 1989 | Mar 3, 1992 | AT&T Bell Laboratories | Method of controlling the execution of object-oriented programs | | US5119475 | Aug 29, 1991 | Jun 2, 1992 | Schlumberger Technology Corporation | Object-oriented framework for menu definition | | US5125091 | Jun 8, 1989 | Jun 23, 1992 | Hazox Corporation | Object oriented control of real-time processing | | US5133075 | Dec 19, 1988 | Jul 21, 1992 | Hewlett-Packard Company | Method of monitoring changes in attribute values of object in an object-oriented database | | US5136705 | Jun 10, 1991 | Aug 4, 1992 | Tektronix, Inc. | Method of generating instruction sequences for controlling data flow processes | | US5136711 | Oct 17, 1990 | Aug 4, 1992 | AST Research | System for multiple access hard disk partitioning | | US5151987 | Oct 23, 1990 | Sep 29, 1992 | International Business Machines Corporation | Recovery objects in an object oriented computing environment | | US5179703 | Apr 23, 1990 | Jan 12, 1993 | International Business Machines Corporation | Dynamically adaptive environment for computer programs | | US5181162 | Dec 6, 1989 | Jan 19, 1993 | Eastman Kodak Company | Document management and production system | | US5237669 | Jul 15, 1991 | Aug 17, 1993 | Quarterdeck Office Systems, Inc. | Memory management method | | US5247681 | Dec 18, 1990 | Sep 21, 1993 | International Business Machines Corporation | Dynamic link libraries system and method | | US5274821 | Aug 27, 1992 | Dec 28, 1993 | International Business Machines Corporation | Communication between prolog and an external process | | US5280610 | Aug 14, 1990 | Jan 18, 1994 | Digital Equipment Corporation | Methods and apparatus for implementing data bases to provide object-oriented invocation of applications | | US5287507 | Mar 27, 1992 | Feb 15, 1994 | Sun Microsystems, Inc. | Method and apparatus for portable object handles that use local caches | | US5293385 | Dec 27, 1991 | Mar 8, 1994 | International Business Machines Corporation | Method and means for using sound to indicate flow of control during computer program execution | | US5297284 | Apr 9, 1991 | Mar 22, 1994 | Microsoft Corporation | Method and system for implementing virtual functions and virtual base classes and setting a this pointer for an object-oriented programming language | | US5313636 | Aug 5, 1993 | May 17, 1994 | Intellicorp, Inc. | Mosaic objects and method for optimizing object representation performance in an object-oriented representation system | | US5315703 | Dec 23, 1992 | May 24, 1994 | Taligent, Inc. | Object-oriented notification framework system | | US5315709 | Dec 3, 1990 | May 24, 1994 | Bachman Information Systems, Inc. | Method and apparatus for transforming objects in data models | | US5317741 | May 10, 1991 | May 31, 1994 | Siemens Corporate Research, Inc. | Computer method for identifying a misclassified software object in a cluster of internally similar software objects | | US5321841 | Jan 29, 1993 | Jun 14, 1994 | Digital Equipment Corporation | System for determining the rights of object access for a server process by combining them with the rights of the client process | | US5325481 | Apr 12, 1991 | Jun 28, 1994 | Hewlett-Packard Company | Method for creating dynamic user panels in an iconic programming system | | US5325522 | Apr 10, 1991 | Jun 28, 1994 | United States Data Corporation | Apparatus and method for communicating between devices trough use of a real time data base | | US5325524 | Apr 6, 1992 | Jun 28, 1994 | Digital Equipment Corporation | Locating mobile objects in a distributed computer system | | US5325533 | Jun 28, 1993 | Jun 28, 1994 | Taligent, Inc. | Engineering system for modeling computer programs | | US5327562 | May 6, 1992 | Jul 5, 1994 | Microsoft Corporation | Method for implementing virtual function tables in a compiler for an object-oriented programming language | | US5339422 | Mar 7, 1991 | Aug 16, 1994 | Digital Equipment Corporation | System and method for jacketing cross-domain calls in a multi-code execution and debugging system within a multi-architecture environment | | US5339430 | Jul 1, 1992 | Aug 16, 1994 | Telefonaktiebolaget L M Ericsson | System for dynamic run-time binding of software modules in a computer system | | US5339438 | Dec 10, 1993 | Aug 16, 1994 | International Business Machines Corporation | Version independence for object oriented programs | | US5341478 | Nov 3, 1993 | Aug 23, 1994 | Digital Equipment Corporation | Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment | | US5361350 | Dec 12, 1991 | Nov 1, 1994 | International Business Machines Corporation | Object oriented method management system and software for managing class method names in a computer system | | US5361358 | Aug 7, 1992 | Nov 1, 1994 | International Business Machines Corporation | System and method for installing program code for operation from multiple bootable operating systems | | US5369766 | Mar 25, 1993 | Nov 29, 1994 | Taligent, Inc. | Object-oriented loader system with support for different load formats | | US5379432 | Jul 19, 1993 | Jan 3, 1995 | Taligent, Inc. | Object-oriented interface for a procedural operating system | | US5404529 | Jul 19, 1993 | Apr 4, 1995 | Taligent, Inc. | Object-oriented interprocess communication system interface for a procedural operating system | | US5446902 | Jul 14, 1993 | Aug 29, 1995 | Sun Microsystems, Inc. | Method for implementing computer applications in an object oriented manner using a traditional non-object oriented programming language | | US5475845 | Sep 28, 1994 | Dec 12, 1995 | Taligent, Inc. | Wrapper system for interfacing an object-oriented application to a procedural operating system | | US5555418 | Jan 30, 1995 | Sep 10, 1996 | | System for changing software during computer operation | | US5752034 | Sep 13, 1994 | May 12, 1998 | Texas Instruments Incorporated | Apparatus and method for providing an event detection notification service via an in-line wrapper sentry for a programming language | | US5901313 | Sep 2, 1997 | May 4, 1999 | AST Research, Inc. | Application management system |
Referenced by|
| US6427229 | Oct 22, 1998 | Jul 30, 2002 | International Business Machines Corporation | Object oriented mechanism and method for maintaining elements on a flexibly constrained collection that may use any suitable object as a key | | US6633864 | Apr 29, 1999 | Oct 14, 2003 | International Business Machines Corporation | Method and apparatus for multi-threaded based search of documents | | US6725456 | Nov 29, 1999 | Apr 20, 2004 | Lucent Technologies Inc. | Methods and apparatus for ensuring quality of service in an operating system | | US6836885 | Sep 21, 1999 | Dec 28, 2004 | Wyse Technology Inc. | Method and apparatus for display of windowing application programs on a terminal | | US6954922 | Apr 29, 1998 | Oct 11, 2005 | Sun Microsystems, Inc. | Method apparatus and article of manufacture for time profiling multi-threaded programs | | US7028298 | Sep 10, 1999 | Apr 11, 2006 | Sun Microsystems, Inc. | Apparatus and methods for managing resource usage | | US7047524 | Dec 30, 2000 | May 16, 2006 | Hyperformix | Object oriented ADN and method of converting a non-object oriented computer language to an object oriented computer language | | US7634728 | Dec 28, 2002 | Dec 15, 2009 | International Business Machines Corporation | System and method for providing a runtime environment for active web based document resources | | US7720672 | Sep 21, 1999 | May 18, 2010 | Wyse Technology Inc. | Method and apparatus for display of windowing application programs on a terminal | | US8079021 | Apr 19, 2006 | Dec 13, 2011 | WYSE Technology Inc. | Method and apparatus for display of windowing application programs on a terminal | | US8174503 | May 17, 2008 | May 8, 2012 | David H. Cain | Touch-based authentication of a mobile device through user generated pattern creation |
Claims1. A computer system, comprising: - computer hardware for performing native system services;
- a procedural operating system, having a native interface, for controlling the computer hardware to perform the native system services;
- object oriented methods requiring native system services;
- procedural program logic code, responsive to invocations of the object-oriented methods during runtime, for causing the procedural operating system to control the computer hardware to perform the required native system services;
- executable program memory associated with the computer hardware for runtime execution of the procedural operating system, invocations of the object-oriented methods and related portions of the procedural program logic code;
- means for making determinations during runtime execution if object-oriented methods to be invoked are present in the executable program memory; and
- a runtime loader, responsive to the determinations, to selectively load required object-oriented methods into the executable program memory during runtime before invocation of the object-oriented methods.
2. The computer system of claim 1, wherein the procedural program logic code further comprises: - procedural program logic code portions specific to each object-oriented method to issue one or more procedural function calls compatible with the native interface to control the native system services performed by the hardware environment to correspond to the native system services required by the object-oriented method.
3. The computer system of claim 1, wherein the runtime loader further comprises: - means for selectively loading related portions of the procedural program logic code into the executable program memory upon runtime loading of the selected object-oriented methods.
4. The computer system of claim 3, wherein the procedural operating system further comprises: - an operating system based on Windows or Unix.
5. The computer system of claim 3 wherein the computer hardware further comprises: - a Unix or Apple or IBM compatible computer environment.
6. The computer system of claim 3 wherein the procedural program logic code further comprises: - means for causing the procedural operating system to provide one or more of the following native system services:
- thread services, task services, virtual memory services, inter-process communication (IPC) services, synchronization services, scheduling services, fault services, processor and processor set services, port services, security services, file system services and graphical user interface (GUI) services.
7. A method for operating a computer system, comprising the steps of: - executing a procedural operating system on computer hardware, the procedural operating system including a native interface, responsive to procedural function calls, for providing native system services;
- issuing calls during runtime, compatible with the native interface, to provide the native system services in response to invocations of object-oriented methods requiring such native system services;
- determining during runtime if object-oriented methods to be invoked during runtime execution are present in executable program memory associated with the computer hardware; and
- selectively loading the object-oriented methods into the executable program memory during runtime before invocation thereof, if not yet loaded.
8. The method of claim 7, wherein the step of selectively loading the object-oriented methods further comprises the step of: - loading related portions of a procedural program logic code for issuing the calls, compatible with the native interface, to provide the native system services in response to invocations of the selectively loaded object-oriented methods.
9. The method of claim 8, wherein the step of executing a procedural operating system on computer hardware further comprises the step of: - executing a procedural operating system, based on Windows or Unix, in a Unix or IBM compatible computer environment.
10. The method of claim 7, wherein the step of issuing calls, compatible with the native interface, to provide the native system services in response to invocations of object-oriented methods requiring such native system services, further comprises the step of: - adapting the native services provided by the procedural operating system to be compatible with the native system services required by the associated object-oriented method.
11. The method of claim 10 wherein the step of issuing calls compatible with the native interface further comprises the step of: - providing one or more of the following native system services:
- thread services, task services, virtual memory services, inter-process communication (IPC) services, synchronization services, scheduling services, fault services, processor and processor set services, port services, security services, file system services and graphical user interface (GUI) services.
12. A method for operating a computer system, comprising the steps of: - executing a procedural operating system, based on Windows or Unix operating systems, on a Unix or IBM compatible computer hardware environment;
- providing an object-oriented interface, executing on the computer hardware environment, and responsive to object-oriented programming, for instantiating objects from object-oriented classes, encapsulating data for exclusive use with each object, and invoking object-oriented methods in the objects for operating on the encapsulated data;
- providing procedural programming logic code, responsive during runtime to selected ones of said invoked object-oriented methods requiring native system services, for issuing procedural calls, compatible with a native interface of the procedural operating system, to cause the hardware environment to provide the native system services in response to the object-oriented methods; and
- loading the methods during runtime before invocation thereof;
- whereby a choice of which system implementation to use can be deferred to run-time.
13. The method of claim 12 wherein the step of providing procedural programming logic code for issuing procedural calls further comprises the step of: - issuing procedural function calls to the operating system in response to invocations of selected object-oriented methods for causing the procedural operating system to control the computer hardware environment to provide one or more of the following native system services:
- thread services, task services, virtual memory services, inter-process communication (IPC) services, synchronization services, scheduling services, fault services, processor and processor set services, port services, security services, file system services and graphical user interface (GUI) services.
14. The method of claim 13, wherein the step of issuing procedural function calls to the operating system in response to invocations of selected object-oriented methods further comprises the step of: - providing procedural logic code, responsive to the invocation of each object-oriented method requiring the performance of native system services, to execute predetermined procedural code to control the native system services performed by the hardware environment to correspond to the native system services required by the object-oriented method.
15. The method of claim 13, wherein the step of issuing procedural function calls to the operating system in response to invocations of selected object-oriented methods further comprises the step of: - providing procedural logic code, responsive to the invocation of each object-oriented method requiring the performance of native system services, to issue, monitor and adapt one or more procedural function calls to control the native system services performed to correspond to the native system services required by the object-oriented method.
16. A method for operating a computer system including a memory, comprising the steps of: - storing in the memory a library of procedural program logic code;
- said library including first procedural program logic code which is responsive to invocations of object-oriented methods, for causing a procedural operating system to control the computer system to perform first type native system services;
- said library including second procedural program logic code which is responsive to invocations of object-oriented methods, for causing a procedural operating system to control the computer system to perform second type native system services different from said first type;
- executing a procedural operating system in the memory, the procedural operating system including a native interface responsive to procedural function calls, for providing native system services;
- running an object-oriented program in a task address space of the memory, the program including an object-oriented method requiring the second type native system services;
- determining during runtime whether said second type procedural program logic code is available in said task address space; and
- loading said second type procedural program logic code into said task address space during runtime.
17. A method for operating a computer system including an executable program memory, comprising the steps of: - storing in the computer system a library of procedural program logic code;
- said library including first procedural program logic code which is responsive to invocations of object-oriented methods, for causing a procedural operating system to control the computer system to perform first type native system services;
- said library including second procedural program logic code which is responsive to invocations of object-oriented methods, for causing a procedural operating system to control the computer system to perform second type native system services different from said first type;
- executing a procedural operating system in the executable program memory, the procedural operating system including a native interface responsive to procedural function calls, for providing native system services;
- running an object-oriented program in the executable program memory, the program including an object-oriented method requiring the second type native system services;
- determining during runtime whether said second type procedural program logic code is available in the executable program memory; and
- loading said second type procedural program logic code into the executable program memory during runtime.
18. A method for operating a computer system including an executable program memory, comprising the steps of: - storing in the computer system a library of procedural program logic code which is responsive to invocations of object-oriented methods, for causing a procedural operating system to control the computer system to perform native system services;
- executing a procedural operating system in the executable program memory, the procedural operating system including a native interface responsive to procedural function calls, for providing native system services;
- running an object-oriented program in the executable program memory, the program including an object-oriented method requiring native system services;
- determining during runtime whether procedural program logic code is available in the executable program memory to provide said required native system services; and
- loading procedural program logic code from said library into the executable program memory during runtime to provide said required native system services.
19. A method for operating a computer system including an executable program memory, comprising the steps of: - storing in the computer system a library of procedural program logic code which is responsive to invocations of object-oriented methods, for causing a procedural operating system to control the computer system to perform native system services;
- executing a procedural operating system in the computer system, the procedural operating system including a native interface responsive to procedural function calls, for providing native system services;
- running an object-oriented program in the executable program memory, the program including an object-oriented method requiring native system services;
- determining during runtime whether procedural program logic code is available in the executable program memory to provide said required native system services; and
- loading procedural program logic code from said library into the executable program memory during runtime to provide said required native system services.
20. A computer system including an executable program memory, comprising: - a library of procedural program logic code in the computer system which is responsive to invocations of object-oriented methods, for causing a procedural operating system to control the computer system to perform native system services;
- a procedural operating system in the computer system, the procedural operating system including a native interface responsive to procedural function calls, for providing native system services;
- an object-oriented program in the executable program memory, the program including an object-oriented method requiring native system services;
- a processor in the computer system for determining during runtime whether procedural program logic code is available in the executable program memory to provide said required native system services; and
- said processor loading procedural program logic code from said library into the executable program memory during runtime to provide said required native system services.
21. A method for operating a computer system including an executable program memory, comprising the steps of: - storing in the computer system a library of procedural program logic code which is responsive to invocations of object-oriented methods, for causing a procedural operating system to control the computer system to perform native system services;
- executing a procedural operating system in the computer system, the procedural operating system including a native interface responsive to procedural function calls, for providing native system services;
- running an object-oriented program in the executable program memory, the program including an object-oriented method requiring native system services;
- determining during runtime whether procedural program logic code is available in the executable program memory to provide said required native system services;
- loading procedural program logic code from said library into the executable program memory during runtime to provide said required native system services;
- invoking said object-oriented method of said object-oriented program during runtime; and
- responding with said loaded procedural program logic code to said invoking step to cause said procedural operating system to control the computer system to perform said required native system services.
22. A computer system including an executable program memory, comprising: - a library of procedural program logic code in the computer system which is responsive to invocations of object-oriented methods, for causing a procedural operating system to control the computer system to perform native system services;
- a procedural operating system in the computer system, the procedural operating system including a native interface responsive to procedural function calls, for providing native system services;
- an object-oriented program in the executable program memory, the program including an object-oriented method requiring native system services;
- a processor in the computer system for determining during runtime whether procedural program logic code is available in the executable program memory to provide said required native system services;
- said processor loading procedural program logic code from said library into the executable program memory during runtime to provide said required native system services;
- said processor invoking said object-oriented method of said object-oriented program during runtime; and
- said loaded procedural program logic code responding to said invoking to cause said procedural operating system to control the computer system to perform said required native system services.
|