Object oriented framework for specifying the format of compiler output with a template facility.
Abstract The format of an output file from a compiler is altered using two new objects, a template definition file for specifying the desired formats for the sections of the output file and a template facility for formatting output from the compiler according to the template definition file. The desired formats are specified by patterned sets of symbol names in the template definition file. A symbol table which is maintained by the template facility stores a set of symbol values corresponding to the symbol names. The template facility outputs the section by placing symbol values from the symbol table in the output file according to the positions of the corresponding symbol names in the patterned sets of symbol names.
System for producing language neutral objects and generating an interface between the objects and multiple computer languages.
Abstract A method, system and program for redefining language dependent object definitions as a neutral set of information from which object support for any language, including support between languages, is disclosed. The information is parsed and compiled to generate a bindings file which is input along with method information to the target language compiler to create an object file. The object file is thereafter link edited to create executable programs. Target languages include C, Fortran, C++, COBOL or any other compiled language whether or not the particular language has object programming support. Messages are displayed on a display to aid a user.
Template based facility for formatting compiler output.
Abstract The format of an output file from a compiler is altered using two new objects, a template definition file for specifying the desired formats for the sections of the output file and a template facility for formatting output from the compiler according to the template definition file. The desired formats are specified by patterned sets of symbol names in the template definition file. A symbol table which is maintained by the template facility stores a set of symbol values corresponding to the symbol names. The template facility outputs the section by placing symbol values from the symbol table in the output file according to the positions of the corresponding symbol names in the patterned sets of symbol names.
System and method for parent class shadowing in a statically linked object.
Abstract A method, system and program for supporting a dynamic bind between a derived class and its parent class. A processor provides for the registration of class objects and dynamic binding of derived class objects to their parent class objects based on the registration mechanism. The SOM object model removes static references to class objects by having all the parent class information available at runtime through the parent class object. Thus, when the derived class implementation needs information about the size of the parent class state data structure, the addresses of the parent class method procedures, or access to the parent class method procedure table the appropriate information is retrieved from the parent class object.
System and method for dynamically invoking object methods from an application designed for static method invocation.
Abstract A method, system and program for allowing an application designed to use static method calls to manipulate objects whose methods are only available through dynamic calls without modifying the binary image of the application. A SOM compiler generates class definitions and generates a redispatch stub for each method defined in a class. A redispatch stub is a short sequence of instructions with an identical calling sequence as its corresponding method. This gives the class’ dispatch enough information to determine the correct method procedure in a dynamic manner. The dispatch function employs the redispatch stub to call the appropriate method procedure and return any return value to the calling application via the redispatch stub. Redispatch stubs allows a class with a definition that can vary at runtime to be used by an application that was designed for statically defined classes.
Object oriented method management system and software for managing class method names in a computer system.
Abstract A method, system and program for effectively managing class method names by collecting representations of all of the names and additional supporting information in a single data structure. Management is accomplished by the operation of an algorithm in the memory of a processor which employs two mechanisms. First, the class method procedure tables are initialized by class specific procedures. This allows applications to access the methods without requiring externalization of the method means. The information provided by the specific procedures is retained by the class object and is accessible via class methods whenever the information is required. Second, any additional supporting information for methods, in particular the offset in the method procedure table for each method, is recorded in a single externally named data structure. The combination of the two mechanisms eliminates the requirement of external names on a per method basis.
Directory based computer environment.
Abstract The present invention is a method, system and process for automatically customizing a computer environment based on the current active computer disk directory. Detection of the current active disk directory and any change of disk directory by a user triggers a search for a file that initiates the computer environment. Upon detection of the file, the system reconfigures the operating system to meet the user’s requirements based on the disk directory.
Version independence for object oriented programs.
Abstract A method, system and program for isolating the executable binary form of computer applications that use object definition libraries from changes in the implementation or specification of object definitions in the library. These objects include adding new methods to an object definition; moving the point of definition for one of the class methods to the class parent class; changing private instance data associated with an object definition; inserting a new parent class definition between the class and its parent class when it has one; and changing the implementation of one of the class methods without changing the methods interface. The objects are achieved by removing offset and size values from the application binary image and putting them in data structures that are initialized at runtime.
Compiler merging new and preexisting modules while preserving function order.
Abstract A compiler which merges two output files into a third output file. First, the compiler generates a new output file by compiling an input file. Next, the compiler searches for an existing output file for a substantially similar purpose as the new output file, i.e. the preexisting implementation file. The code modules from the new and existing output files are then interleaved to preserve the sequence of related code modules.
Object oriented framework for creating new emitters for a compiler.
Abstract An emitter framework including several classes of support objects and a generic emitter class that can be subclassed to produce a new emitter for a compiler. The input to the framework is a first intermediate data structure called an abstract syntax graph which is produced by a parser within the compiler from an interface definition file. The new emitter converts the first intermediate data structure to the desired output file. The first intermediate data structure and a set of entry classes which correspond to elements in the interface definition file are input to an object graph builder. The object graph builder translates the first intermediate data structure to a second intermediate data structure called the object graph by creating instances from the set of entry classes. Typically, a new instance of a user-defined subclass of the emitter class is created by subclassing, the new emitter object instance translates the second intermediate data structure to the desired output…
Data management system and method for intercepting and changing database instructions between a database back end and an applications front end.
Abstract A database method and system use one or more virtual driver interceptors (106) to intercept information and/or queries provided between a database backend system (112) and an end user front end system (102). The interceptors (106) can dynamically alter information or queries that are intercepted in transit between the backend (106) and the applications (102). The effect of altering this information dynamically between the back end and front end is that the system (100) has more functionality, greater flexibility, and/or enhanced performance without the need the change, at great expense and cost, all of the software and/or hardware within the backend (112), standard drivers (110), APIs (104), and applications (102). For example, the changing of instructions via the virtual driver (106) allows for dynamic data versioning, caching, fault tolerance, data backup, statistical data monitoring, load balancing, space planning, data conversion, enhanced security, and/or the like without…
Database caching system and method of operation.
Abstract A method and apparatus (10) is used to allow data within a database system to be cached in local cache memory (30) without requiring significant changes to surrounding software and systems, such as applications (12), native drivers (18-22) and database backends (24-28). To do so, a virtual driver (16) is coupled between the backend systems (24-28) and one or more applications (12). When the driver (16) receives a query from the application (12), the driver (16) processes the query to determine if the query is to be processed using cached data from local cache (30), backend data from databases (24-28), or a combination thereof. If cached data is needed, the driver (16) will usually alter or modify the query and/or information associated therewith to ensure that the cached data is properly accessed and used instead of the backend database information. Caching in this manner is likely to ensure one or more of significant improvements in data transfer performance and/or a reduction…