Platform-independent Form (e.g., Abstract Code) Patents (Class 717/147)
  • Patent number: 7246346
    Abstract: The present invention is directed at a virtual machine environment operating on portable devices with limited resources. The virtual machine environment includes a method for compiling an intermediate language into native code wherein the native code is stored in a directly addressable and executable storage medium, such as flash memory. A portion of the native code is written to a cache resident in volatile memory during compiling. The cache is written to the directly addressable and executable storage medium. The cache may be sized in relation to a block size associated with the directly addressable and executable storage medium. A metadata map is maintained and associates a physical address at which the native code is stored in the storage medium with the method. The native code is persisted by storing the metadata map in the storage medium and associating the metadata map with the method.
    Type: Grant
    Filed: September 17, 2002
    Date of Patent: July 17, 2007
    Assignee: Microsoft Corporation
    Inventors: Seth M. Demsey, Brian J. Smith, Scott M. Corbin, Michael D. Smith, W. Michael Zintel
  • Patent number: 7243338
    Abstract: Techniques for representing core files generated by a computer operating system upon crash of a computer program in a generic format are disclosed. A generic representation of the core file can be generated and analyzed to help in determining errors in code that occurred which the operating system is unable to handle. The generic representation of core files can be represented in a platform-independent format, for example, generic representation of core files may be represented in an extensible data format.
    Type: Grant
    Filed: May 21, 2003
    Date of Patent: July 10, 2007
    Assignee: Oracle International Corporation
    Inventors: Ajay Sethi, Sameer Shisodia, Mahantesh Hosmath, Ritesh Motlani, Ramesh Bhattiprolu, Kirk Bradley, John Pullokkaran, Sunil Kumar, Gopalaswamy Ramesh
  • Patent number: 7228533
    Abstract: Techniques for generation of Java macro instructions suitable for use in Java computing environments are disclosed. As such, the techniques can be implemented in a Java virtual machine to efficiently execute Java instructions. As will be appreciated, a Java macro instruction can be substituted for two or more Java Bytecode instructions. This, in turn, reduces the number of Java instructions that are executed by the interpreter. As a result, the performance of virtual machines, especially those operating with limited resources, is improved. A Java macro instruction can be generated for conventional Java instruction sequences or sequences of Java instruction that are provided in a reduced set of instruction. In any case, sequences that are frequently encountered can be replaced by a Java macro instruction. These sequences are typically encountered when Java objects are instantiated, during programming loops, and when a local variables are assigned a value.
    Type: Grant
    Filed: August 24, 2001
    Date of Patent: June 5, 2007
    Assignee: Sun Microsystems, Inc.
    Inventor: Stepan Sokolov
  • Patent number: 7228532
    Abstract: One embodiment of the present invention provides a system that facilitates code verification and garbage collection in a platform-independent virtual machine. The system operates by first receiving a code module written in a platform-independent language. Next, the system examines the code module to locate calls to program methods within the code module. The system then transforms the code module so that all operands remaining on the evaluation stack only relate to the called method when the method is called, thereby simplifying verification and garbage collection of the code module.
    Type: Grant
    Filed: June 24, 2003
    Date of Patent: June 5, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Nicholas Shaylor, Douglas N. Simon
  • Patent number: 7216338
    Abstract: To perform conformance checking of a software implementation with a (possibly non-deterministic) specification, a software implementation and a software specification are applied to produce a CT enabled implementation. Nondeterministic choices of the software specification result in assigning a corresponding choice of the CT enabled implementation to a variable. The CT enabled implementation includes a test that the variable then comprises one of the nondeterministic choices of the software specification. To perform conformance testing where the software specification includes ordered steps, and calls to methods of other classes (mandatory calls), a software object is produced and organized such that each step of the software specification has a corresponding code section in the software object.
    Type: Grant
    Filed: February 20, 2002
    Date of Patent: May 8, 2007
    Assignee: Microsoft Corporation
    Inventors: Michael Barnett, Wolfram Schulte
  • Patent number: 7210132
    Abstract: Interoperability of a first framework or platform (e.g., COM) and a second different framework or platform (e.g., .NET) is provided via an attribute mechanism. The attribute mechanism is provided in a non-COM based platform (e.g., .NET) to expose classes to COM. In this manner, a compiler (e.g., the .NET compiler) creates class and events interfaces and adds attributes to the class and interfaces as appropriate for correct interoperability and marshaling. By adding this attribute mechanism to a class in .NET, the .NET compiler is able to use the class declarations (such as public methods, properties, and events) to automatically generate a class interface and an events interface, including appropriate dispatch IDs and GUIDs. Validation is performed on the class being mapped to provide an indication, such as an error message or warning, to the user that the underlying framework marshaling layer cannot marshal certain data types as desired or expected.
    Type: Grant
    Filed: May 30, 2002
    Date of Patent: April 24, 2007
    Assignee: Microsoft Corporation
    Inventors: John J. Rivard, Sam Spencer
  • Patent number: 7200840
    Abstract: In the present invention, global information is passed from a first execution environment to a second execution environment, wherein both the first and second processor units comprise separate memories. The global variable is transferred through the invocation of a memory flow controller by a stub function. The global descriptor has a plurality of field indicia that allow a binder to link separate object files bound to the first and second execution environments.
    Type: Grant
    Filed: October 24, 2002
    Date of Patent: April 3, 2007
    Assignee: International Business Machines Corporation
    Inventors: Michael Karl Gschwind, Kathryn M. O'Brien, John Kevin O'Brien, Valentina Salapura
  • Patent number: 7188339
    Abstract: A computer-implemented method for compiling ASL (ACPI Source Language) code into AML (ACPI machine language) code. The method includes accessing an ASL program. A preprocessor is executed to process the ASL program and to insert support for at least one non-native programming construct. The ASL program is then processed using an ASL compiler to compile the ASL program into a resulting AML program.
    Type: Grant
    Filed: October 24, 2003
    Date of Patent: March 6, 2007
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Shiraz Ali Qureshi
  • Patent number: 7185325
    Abstract: A method for extending a first application class includes integrating a first data buffer within the first application class for holding extended properties, and utilizing a rule based engine to determine the values to associate with one or more of the extended properties of the first application class.
    Type: Grant
    Filed: August 23, 2002
    Date of Patent: February 27, 2007
    Assignee: Brooks Automation
    Inventor: William O. Boyle
  • Patent number: 7143398
    Abstract: An application infa operating system (AIOS) is provided. The AIOS provides an operating platform for integrating, embedding, managing and controlling an application program, wherein a main function thereof is to integrate different application programs which are developed from different information companies and different program designers via different developing languages and tools (e.g., C, C++, database, or Java, etc.) for mutually conversing and swapping data at different space-times through the integration of the present invention, so as to benefit an update, an upgrade and an integration of the application programs, shorten a developing time of integrating a new and a old systems, and save a cost of developing a system for improving a re-use rate of the application programs.
    Type: Grant
    Filed: March 13, 2003
    Date of Patent: November 28, 2006
    Inventors: Che-An Chang, Tze-Hao Chang, Jar-Chang Jang, Shu-Wei Chang
  • Patent number: 7137108
    Abstract: A method, computer program product and data processing system for identifying non-externalized strings that are not hard-coded. In one embodiment, a method comprises the step of scanning a code, e.g., Java, line by line until a pair of string delimiters is identified. Once a pair of string delimiters is identified, the method further comprises the step of determining whether the string within the pair of string delimiters identified is a path name to a resource file, e.g., resource bundle. If the string is a path name to the resource file, then the string is a non-externalized string that is not hard-coded. If the string is not a path name to the resource file, then the string may be identified as a possible hard-coded string.
    Type: Grant
    Filed: October 26, 2000
    Date of Patent: November 14, 2006
    Assignee: International Business Machines Corporation
    Inventors: David Bruce Kumhyr, Dae-Suk Chung
  • Patent number: 7124398
    Abstract: A rapid GUI refacing system can include one or more display grids, each display grid mapping sections in a legacy application with selected GUI elements in a refaced GUI. The system also can include one or more smart masters, each smart master specifying an arrangement of content and presentation elements in the refaced GUI. The system yet further can include a GUI transformation template generator configured to generate GUI transformation templates from individual combinations of individual ones of the display grids and individual ones of the smart masters. Finally, the system can include a GUI refacing service configured both to select individual matching ones of the generated GUI transformation templates, and also to transform content in the sections in the legacy application into the refaced GUI using the mapped GUI elements according to transformation instructions contained in the selected individual matching ones of the generated GUI transformation templates.
    Type: Grant
    Filed: April 10, 2002
    Date of Patent: October 17, 2006
    Assignee: International Business Machines Corporation
    Inventors: Lily Chen, Min-Hong Lee, Yih-Shin Tan
  • Patent number: 7120898
    Abstract: As described herein, an intermediate representation of a source code file may be used to explicitly express exception handling control flow prior to generating object code for the source code. As further described herein, a single uniform set of instructions of the intermediate representation may be used for expressing multiple different exception handling mechanisms related to multiple different programming languages. The intermediate form of the exception handling instructions may be generated by translating an intermediate language representation of the source code file. Representations of the source code in multiple different intermediate languages may be translated to a single uniform set of instructions of the intermediate representation. The intermediate form of the exception handling instructions may then be used by software development tools for such tasks as code generation, code optimization, code analysis etc.
    Type: Grant
    Filed: June 26, 2003
    Date of Patent: October 10, 2006
    Assignee: Microsoft Corporation
    Inventors: Vinod K. Grover, Akella V. S. Sastry
  • Patent number: 7076772
    Abstract: To meet the current trend in computer programming, a multi-programming-language compiler system is designed to include a compiler framework which creates a general environment in which to carry out compilation and language modules to encapsulate the details of various programming languages. Such a system makes it easy for tool vendors and end users to adapt to a world where computer programs are written in multiple languages. New language modules may be written that add support for new languages to the compiler framework. It may also be possible to extend existing language modules so that a variant on an existing language may be added to the compiler framework. Such a system may also be adapted to permit several different clients to access detailed language information from the compiler framework. These clients may include a standard command-line shell or a sophisticated multi-language integrated development environment.
    Type: Grant
    Filed: February 19, 2004
    Date of Patent: July 11, 2006
    Assignee: BEA Systems, Inc.
    Inventor: Kevin Zatloukal
  • Patent number: 7058934
    Abstract: Techniques for generation of Java macro instructions suitable for use in Java computing environments are disclosed. As such, the techniques can be implemented in a Java virtual machine to efficiently execute Java instructions. As will be appreciated, a Java macro instruction can be substituted for two or more Java Bytecode instructions. This, in turn, reduces the number of Java instructions that are executed by the interpreter. As a result, the performance of virtual machines, especially those operating with limited resources, is improved. A Java macro instruction can be generated for conventional Java instruction sequences or sequences of Java instruction that are provided in a reduced set of instruction. In any case, sequences that are frequently encountered can be replaced by a Java macro instruction. These sequences are typically encountered when Java objects are instantiated, during programming loops, and when a local variables are assigned a value.
    Type: Grant
    Filed: August 24, 2001
    Date of Patent: June 6, 2006
    Assignee: Sun Microsystems, Inc.
    Inventor: Stepan Sokolov
  • Patent number: 7039904
    Abstract: Techniques for generation of Java macro instructions suitable for use in Java computing environments are disclosed. As such, the techniques can be implemented in a Java virtual machine to efficiently execute Java instructions. As will be appreciated, a Java macro instruction can be substituted for two or more Java Bytecode instructions. This, in turn, reduces the number of Java instructions that are executed by the interpreter. As a result, the performance of virtual machines, especially those operating with limited resources, is improved. A Java macro instruction can be generated for conventional Java instruction sequences or sequences of Java instruction that are provided in a reduced set of instruction. In any case, sequences that are frequently encountered can be replaced by a Java macro instruction. These sequences are typically encountered when Java objects are instantiated, during programming loops, and when a local variables are assigned a value.
    Type: Grant
    Filed: August 24, 2001
    Date of Patent: May 2, 2006
    Assignee: Sun Microsystems, Inc.
    Inventor: Stepan Sokolov
  • Patent number: 6978278
    Abstract: The caching of heterogeneous bean sets has been improved from requiring each bean to have its own cache instance to caching the beans in a single cache. The beans can be identified by generating a unique identifier that is a combination of the bean's primary key and a self-reference identifier of the bean manager associated with that bean. The average size of a bean set associated with a bean manager can be specified such that the cache allocates memory for that set based on the average size. A callback interface can also be used to shift knowledge of a bean life cycle back to the bean manager. This description is not intended to be a complete description of, or limit the scope of, the invention. Other features, aspects, and objects of the invention can be obtained from a review of the specification, the figures, and the claims.
    Type: Grant
    Filed: January 10, 2003
    Date of Patent: December 20, 2005
    Assignee: BEA Systems, Inc.
    Inventor: Seth White
  • Patent number: 6963427
    Abstract: A supervising server (2) is connected to a communication network. The communication network includes a plurality of clients (3) and facsimile servers (1). The supervising server (2) has recipient information such as facsimile numbers of recipients, and the clients (3) can refer to the recipient information under predetermined constraint. All the information about recipients is administered by the supervising server (2). The facsimile servers and clients communicate with each other via the supervising server.
    Type: Grant
    Filed: October 5, 2000
    Date of Patent: November 8, 2005
    Assignee: Murata Kikai Kabushiki Kaisha
    Inventor: Yoshifumi Tanimoto
  • Patent number: 6952820
    Abstract: The invention concerns a data compaction method and system for an intermediate program. The method consists in searching the program (1000) for identical sequences (Si) and counting Ni number of occurrences of each sequence (Si), a comparison test (1001) to find the superiority of a function f(Ni) to a reference value enables to generate (1003) a specific instruction of a specific code (Ci) with which the sequence (Si) is associated, replacing (1004) each occurrence in the sequence (Si) by the specific code (Ci) in the intermediate program to create a compacted intermediate program (FCC) with which an executing file (FEX) is associated. The invention is applicable to multiple application portable objects such as microprocessor cards, onboard systems of the like.
    Type: Grant
    Filed: November 4, 1999
    Date of Patent: October 4, 2005
    Assignees: Bull CP8, INRIA-Institut National de la Recherche en Informatique et en Automatique
    Inventors: Ulrik Pagh Schultz, Gilles Muller, Charles Consel, Lars Clausen, Christian Goire
  • Patent number: 6944861
    Abstract: When a program transmission apparatus divides a program into a plurality of partial programs before transmission, a program reception execution apparatus executes a partial program when the partial program has already been received, and, when the execution needs to proceed to from a present partial program to a next partial program, executes the other partial program when the next partial program has been received.
    Type: Grant
    Filed: April 16, 2003
    Date of Patent: September 13, 2005
    Assignee: Matsushita Electric Industrial Co., Ltd.
    Inventors: Shinji Inoue, Masahiro Oashi, Yuki Kusumi, Tatsuya Shimoji, Ikuo Minakata, Masayuki Kozuka, Yoshihiro Mimura, Yoshiyuki Miyabe, Kazuo Okamura, Takashi Kakiuchi, Junichi Hirai, Naoya Takao, Toshiya Mori
  • Patent number: 6934892
    Abstract: On the occasion of returning an error code to an application program to be executed under different execution environments of a computing system, it is requested to fully utilize a system of the existing instruction set to improve the ROM efficiency in the implementation of its common code and to eliminate useless insertion of instruction. For this purpose, in the present invention, a common error code to be returned, from the program to be used to be independent on different OS, to the execution program corresponding to the application program is determined as a value in the range of numerical value to be set with the instruction set of CPU and the defined instruction to load immediate value and thereby the common error code is held within the instruction code of the instruction to load immediate value. Particularly, a value of common error code is determined within the range where the MSB of the setting part of the instruction to load immediate value becomes zero (0).
    Type: Grant
    Filed: February 15, 2002
    Date of Patent: August 23, 2005
    Assignee: Hitachi, Ltd.
    Inventors: Satoshi Misaka, Kazuo Aisaka
  • Patent number: 6865733
    Abstract: A system and method are disclosed for a host platform interface (HPI), which defines a common set of functions implementing the native methods of Component Peer classes within the Java AWT. This allows the diverse native method implementations currently used in different versions of the AWT to be combined into a single body of source code, greatly improving code maintainability. Since the same source code defines a Component Peer class for each supported platform, changes or bug fixes need only be made in one body of code.
    Type: Grant
    Filed: June 21, 2001
    Date of Patent: March 8, 2005
    Assignee: International Business Machines Corp.
    Inventor: Scott J. Broussard
  • Patent number: 6842905
    Abstract: A software wrapper for interfacing to pre-existing software code is provided. The software wrapper is capable of inheriting from a first application program interface (API) and a second API. For calls to the first API, the software wrapper delegates to a pre-existing enumeration of objects. The wrapper creates a vector identifying elements of the enumeration. Iterators provided by the wrapper maintain positional cursors for calls to the second API. A comparison is made between each of the positional cursors and the vector. If a positional cursor exceeds the size of the vector, additional elements are extracted from the enumeration, placed in the vector, and returned on the second API. Otherwise, if the positional cursor is smaller than the vector size, the wrapper delegates directly to the vector. The first API can be a java-based enumeration API and the second API can be a java-based collection API.
    Type: Grant
    Filed: March 29, 2001
    Date of Patent: January 11, 2005
    Assignee: International Business Machines Corporation
    Inventors: James I. Knutson, Gregory L. Truty, James L. Van Oosten
  • Patent number: 6826749
    Abstract: A Java accelerator includes a hardware unit associated with the CPU portion, the hardware unit converting stack-based instructions, such as Java bytecodes, into register-based instructions such as the instructions which are native to the CPU. A thread lifetime unit in the hardware unit is used to maintain a count of the number of bytecodes to be executed while an active thread is loaded into the system. Once this count reaches zero or below, the operation of a/the thread in the system is stopped and the Java Virtual Machine loaded into the CPU portion in order to implement its thread manager. Additionally, a single step unit in the hardware unit allows the production of debugger indications after each stack-based instruction.
    Type: Grant
    Filed: May 25, 2001
    Date of Patent: November 30, 2004
    Assignee: Nazomi Communications, Inc.
    Inventors: Mukesh K. Patel, Udaykumar R. Raval, Harihar J. Vyas
  • Patent number: 6810518
    Abstract: The invention automatically executes, in a single execution medium, a number of programs written in source languages to which respective execution media are dedicated, without constraining a programmer to a single source language for a respective execution medium type. Each program is compiled into a program expressed in an intermediate language representing a minimum subset of the source languages. In a data processing means such as a smart card, an execution medium is dedicated to the intermediate language. The intermediate language program is loaded with a respective programming library adapting the respective source language to the intermediate language in order to execute the intermediate language program in the execution medium.
    Type: Grant
    Filed: June 2, 2000
    Date of Patent: October 26, 2004
    Assignee: Gemplus
    Inventors: Gilles Grimaud, Jean-Jacques Vandewalle
  • Patent number: 6802056
    Abstract: Each component binary in a heterogeneous program is translated from a platform-specific instruction set into a set of intermediate representation (IR) instructions that are platform-neutral. The IR instructions are grouped into IR code blocks, the IR code blocks into IR procedures, and the IR procedures into IR components to create an intermediate representation hierarchy for the program. An application program interface is provided that permits user access to the IR hierarchy for instrumentation, optimization, navigation, and manipulation of the IR hierarchy. The transformed IR hierarchy is then translated into platform-specific instructions and output as a modified binary. The user can designate a different platform for the output translation of a code block than the platform for which the code block was originally written. Prologue and epilog code is added to contiguous blocks that are translated into different architectures.
    Type: Grant
    Filed: June 30, 1999
    Date of Patent: October 5, 2004
    Assignee: Microsoft Corporation
    Inventors: Ronnie I. Chaiken, Hon Keat W. Chan, Andrew J. Edwards, Gregory A. Eigsti, David M. Gillies, Bruce M. Kuramoto, John A. Lefor, Ken B. Pierce, Amitabh Srivastava, Hoi H. Vo, Gideon A. Yuval
  • Patent number: 6799320
    Abstract: A proxy component system having dispatch proxies and object proxies is disclosed. The computerized system includes an operating system supporting component interfaces. In addition, the system includes a first interface to a target component, with the first interface having an early bound method. The system further includes a second interface to a proxy component, with the second interface having a late bound method. Also included in the system is a dispatch proxy operative to invoke the early bound method of the first interface from an invocation of the late bound method of the second interface.
    Type: Grant
    Filed: December 16, 1998
    Date of Patent: September 28, 2004
    Assignee: Microsoft Corporation
    Inventors: Ferhan Elvanoglu, Benjamin L. Chronister, Terry L. Lucas
  • Patent number: 6789254
    Abstract: A system and method are disclosed for a common set of Component Peer classes for the Java abstract windowing toolkit (AWT). The native methods employed by the various platform-specific versions of a Peer class are similar in operation, but contain differences in the source code of the C/C++ functions that implement them. Consequently, they represent distinct bodies of software, which must be supported and maintained separately. The present invention provides a basis for replacing the diverse versions of the Component Peers with a single set, employing a standardized set of native methods. This results in a unique codebase for the Component Peers, across all the supported operating systems, thereby reducing the effort required to maintain and upgrade the software.
    Type: Grant
    Filed: June 21, 2001
    Date of Patent: September 7, 2004
    Assignee: International Business Machines Corp.
    Inventor: Scott J. Broussard
  • Patent number: 6769123
    Abstract: A method and apparatus for using a single computer program code base to provide a program that is operable in either a client-server mode or a standalone mode are provided. In one embodiment, a client logic element has one or more proxy objects, each of which implement an interface that is neutral with respect to the client-server mode and the standalone mode. A server logic element has one or more service objects. Each of the service objects implements the interface. The interface implementations are not bound to any code that is specific to the client-server version or the standalone version. In the stand-alone version, the client side logic invokes the server side logic directly through the interfaces, as implemented by the service objects. In the client-server version, the client side logic invokes the server side logic through the same set of Java interfaces.
    Type: Grant
    Filed: September 7, 2000
    Date of Patent: July 27, 2004
    Assignee: Cisco Technology, Inc.
    Inventor: Chi-Choi Chan
  • Patent number: 6769095
    Abstract: The first process provides a context sensitive editor to create, modify and display hierarchically structured control information. The editor provides action choices appropriate to the immediately current context, thereby simplifying the manipulation protocol of the user. Because the editor understands the relationships and multiplicity between the contexts, its editor and display represents the repetition and conditionality of the blocks without resorting to a scripting language. The editor displays the control information according to the display rules of the associated context. The presentation clearly differentiates between the bulk text, the structure in which the text resides, and parameterized elements. The editor effectively manipulates what is meta control information in a way that displays it as information. The second process provides a method to systematically transform the control information into a machine-understandable format, such as code generator script data.
    Type: Grant
    Filed: November 27, 2000
    Date of Patent: July 27, 2004
    Assignee: Codagen Technologies Corp.
    Inventors: Michel Brassard, Boris Shingarov
  • Patent number: 6754889
    Abstract: A system and method are disclosed for enabling injection of non-native code into a JAVA environment. The method provides a software hook for detecting the loading of a JAVA interpreter, and then creates a connection that communicates with an executing JAVA application. A method is also provided that loads in a customized CLASSLOADER module, wherein the customized CLASSLOADER module identifies a location of non-native code, and then loads in the non-native code identified by the customized CLASSLOADER module.
    Type: Grant
    Filed: October 4, 2000
    Date of Patent: June 22, 2004
    Assignee: Compuware Corporation
    Inventor: Neal T. Leverenz
  • Patent number: 6718540
    Abstract: A data processing system and method for managing the storage of compiled instructions used in interpretive programming language applications is implemented. As the applications are implemented in an interpreted programming language, the instructions are compiled into byte-codes to be used by a virtual machine and are subsequently stored in a memory. The data processing system and method recognize that a same application may be used repeatedly and periodically. Thus, the data processing system and method diminish the time required to compile the instructions of an interpretive programming language application, while preserving the compilation of interpretive programming code across sessions accessing the code. Additionally, the data processing system and method diminish the time required to download a Java application and, therefore, allow a user to more efficiently access Internet operations.
    Type: Grant
    Filed: November 17, 1997
    Date of Patent: April 6, 2004
    Assignee: International Business Machines Corporation
    Inventors: Maria C. Azua, Viktors Berstis
  • Patent number: 6691309
    Abstract: Digital data is preserved by archiving on a removable medium. In the long term, the save data bit stream must be correctly interpreted. For a computer program or system to be archived, the bit stream constituting the program must be archived and the code must be executable at restore time. The program that restores the data does not “see” the contents of the data itself, but accesses it by issuing a function call to an executor. A description of which methods are available to restore the information hidden in the data is always available. A text tells the client which functions are available and what their purposes are. The archiving method is based on using a virtual computer instruction set and saving the algorithm as a program written int hat virtual machine language. For machine instructions to be executed many years later, for example 100 years, an emulator of the original machine would be written on the future hardware.
    Type: Grant
    Filed: February 25, 2000
    Date of Patent: February 10, 2004
    Assignee: International Business Machines Corporation
    Inventor: Raymond Amand Lorie
  • Publication number: 20040015911
    Abstract: A method of translating object-oriented computer programs into native code includes a two-step translation process, first by a jcode translator (212) into a machine-independent virtual processor code (213), and then by a native translator (214) into native code (230). In a heterogeneous multiprocessor environment, the machine-independent part of the translation can be carried out at the central server, with machine-independent virtual processor code being distributed as required to the individual clients. Each client then needs to carry just a small processor-dependent native translator (214) with which it completes the conversion into native code. The invention finds particular application in embedded systems, and particularly in heterogeneous-processor systems such as mobile phone networks.
    Type: Application
    Filed: February 25, 2002
    Publication date: January 22, 2004
    Inventors: Christopher Andrew Hinsley, Timothy Renouf
  • Publication number: 20040015502
    Abstract: A system and computer program product are provided for allowing an application to be integrated with any one of a plurality of distinct types of programmable platforms. First included is a platform-independent application and a platform-independent interface. The platform-independent interface is capable of interfacing the platform-independent application with any one of the distinct types of programmable platform. The programmable platform is further equipped with a platform-dependent interface. This platform-dependent interface serves in conjunction with the platform-independent interface in providing the interface between the platform-independent application and the programmable platform. As such, a versatile framework is provided that allows the reuse of the platform-independent application on numerous different types of programmable platforms.
    Type: Application
    Filed: May 31, 2001
    Publication date: January 22, 2004
    Inventors: John Alexander, Hammad Hamid
  • Patent number: 6678885
    Abstract: A system and method improves a process of creating software programs for a variety of existing computing platforms. In particular, a developer receives an input file. The developer generates a formatted data file as a function of the input file. If the input file includes data, then the data contained within the formatted data file is stored in a predetermined format compatible with each of a plurality of computing platforms. Then the developer generates a common generation file using a predetermined programming language which is a lowest common denominator language utilized by each of the plurality of computing platforms. The common generation file is capable of creating a predefined output file compatible with each of the plurality of computing platforms. The formatted data file is modified to create a modified formatted data file. Finally, the common generation file is compiled with the modified data file to generate the predefined output file for the corresponding platform.
    Type: Grant
    Filed: March 1, 2001
    Date of Patent: January 13, 2004
    Assignee: Wind River Systems, Inc.
    Inventors: David Reyna, Shawn-Lin Dzeng
  • Publication number: 20030226134
    Abstract: Techniques for representing core files generated by a computer operating system upon crash of a computer program in a generic format are disclosed. A generic representation of the core file can be generated and analyzed to help in determining errors in code that occurred which the operating system is unable to handle. The generic representation of core files can be represented in a platform-independent format, for example, generic representation of core files may be represented in an extensible data format.
    Type: Application
    Filed: May 21, 2003
    Publication date: December 4, 2003
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Ajay Sethi, Sameer Shisodia, Mahantesh Hosmath, Ritesh Motlani, Ramesh Bhattiprolu, Kirk Bradley, John Pullokkaran, Sunil Kumar, Gopalaswamy Ramesh
  • Patent number: 6658660
    Abstract: A computer (100) and a method (200) are provided for automatically generating source code (132) readily operable in a fault-tolerant system or a distributed system, from source code (130) non-operable in either a fault-tolerant system or a distributed system. The computer (100) preferably includes a programmer's computer system including a CPU (104), storage media (108-118), I/O interface 142, input device (144), output device (146). The computer (100) analyzes the source code (130), and automatically generates source code (132), which is then stored in the storage medium (132). The source code (132) contains additional lines of code for marshaling, unmarshaling, and marking modified data objects.
    Type: Grant
    Filed: December 31, 1999
    Date of Patent: December 2, 2003
    Assignee: Nortel Networks Limited
    Inventor: Trenton Corey Minyard
  • Patent number: 6629312
    Abstract: An MDES extractor automatically extracts a machine description (MDES) for re-targeting a compiler from a structural representation of a datapath of an explicitly parallel instruction computing (EPIC) processor. The datapath is a machine readable data structure that specifies the functional unit instances and an interconnect of the functional unit instances to registers. The MDES extractor structurally traverses the interconnect, identifying resource conflicts among the operations in the processor's opcode repertoire. Latencies and internal resources of the opcodes associated with the functional unit instances are obtained from a macrocell library. The MDES extractor then identifies external resource conflicts by preparing reservation tables for the functional units.
    Type: Grant
    Filed: August 20, 1999
    Date of Patent: September 30, 2003
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Shail Aditya Gupta
  • Patent number: 6611844
    Abstract: A method and system for providing an intelligent intermediate form of an object-oriented database. The intermediate form is derived from a grammatical form of an object-oriented database through the process of compilation. The grammatical form is a persistent form of an object-oriented database expressed in a human-readable and human-editable textual form according to a grammar. The intermediate form comprises an array of intelligent entry objects which encapsulate data with methods for manipulating that data. The methods include creating a database entry, creating a property associated with an entry, creating an attribute associated with an entry or property, querying the last entry, property, or attribute created, and finalizing entry storage. The intermediate form lacks the infrastructure of the database, but the intermediate form can be used to populate the object-oriented database with entries.
    Type: Grant
    Filed: February 19, 1999
    Date of Patent: August 26, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: Thomas E. Saulpaugh, Gregory L. Slaughter, Bernard A. Traversat
  • Patent number: 6609130
    Abstract: A method and system for customizing the transformation of an object-oriented database to and from a grammatical form. A grammatical form is an expression of an object-oriented database in a textual form according to a grammar. The transformation customizer is a plug-in which provides translation of primitive data types to and from complex data types for compilation and serialization processes. A complex data type is defined in terms of one or more primitive data types. One or more values in the object-oriented database are expressed in terms of the complex data type. During serialization, the plug-in module is invoked. The plug-in understands both the complex data type and the primitive data types. The values from the object-oriented database are translated from the complex data type to the primitive data types. For customizing compilation, one or more values expressed in terms of the primitive data types are translated to the complex data type when the plug-in is invoked.
    Type: Grant
    Filed: February 19, 1999
    Date of Patent: August 19, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: Thomas E. Saulpaugh, Gregory L. Slaughter, Bernard A. Traversat, Matthew R. Nelson
  • Patent number: 6609248
    Abstract: An output translator provides for cross module representations of components within a heterogeneous program by translating modifying a platform-neutral intermediate representation (IR) of the program into platform-specific instructions for different architectures. The intermediate representation is hierarchy of base elements that correspond to instructions, code blocks, procedures and components within the program. Blocks of instructions that were originally written for one architecture can be translated from the intermediate representation into platform-specific instructions for a different architecture. The output translator provides any necessary code to interface contiguous code blocks that are emitted in different instruction sets.
    Type: Grant
    Filed: June 30, 1999
    Date of Patent: August 19, 2003
    Assignee: Microsoft Corporation
    Inventors: Amitabh Srivastava, Hoi H. Vo
  • Patent number: 6606632
    Abstract: A method and system for serializing a transient object-oriented database into a persistent form. The persistent form is a grammatical form, an expression of an object-oriented database in a textual form according to a grammar. The grammatical form is human-readable and human-editable. The grammar is designed to be platform-independent and programming-language-independent and therefore descriptive of any hierarchical object-oriented database. An object-oriented database is expressed as a plurality of entries in a transient, hierarchical, object-oriented form. The tree of entries is navigated and each entry is written to the persistent form as text according to the grammar. The serialized form stores only the key state of the database, not a “snapshot” of memory. Therefore, the persistent, serialized form is smaller than the in-memory, transient form of the object-oriented database.
    Type: Grant
    Filed: February 19, 1999
    Date of Patent: August 12, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: Thomas E. Saulpaugh, Gregory L. Slaughter, Bernard A. Traversat
  • Publication number: 20030140337
    Abstract: A system, method and article of manufacture are provided for program data transfer reporting. A source program is compiled to a platform-independent bytecode. The program is executed. Note that the program passes data implicitly using pointers. Accesses to memory are traced for generating a trace. The trace is analyzed. Memory use profile data is generated based on the trace.
    Type: Application
    Filed: December 21, 2001
    Publication date: July 24, 2003
    Applicant: Celoxica Ltd.
    Inventor: Matthew Philip Aubury
  • Patent number: 6598052
    Abstract: A method and system for compiling a grammatical form of an object-oriented database into an intermediate form of that database. The grammatical form is a persistent form of an object-oriented database expressed in a human-readable and human-editable textual form according to a grammar. The textual form is parsed into a series of tokens. The tokens are compiled into a plurality of entries. The plurality of entries are expressed in an intermediate form. The intermediate form comprises an array of intelligent entry objects which encapsulate data with methods for manipulating that data. The methods include creating a database entry, creating a property associated with an entry, creating an attribute associated with an entry or property, querying the last entry, property, or attribute created, and finalizing entry storage. The intermediate form lacks the infrastructure of the database, but the intermediate form can be used to populate the object-oriented database with entries.
    Type: Grant
    Filed: February 19, 1999
    Date of Patent: July 22, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: Thomas E. Saulpaugh, Gregory L. Slaughter, Bernard A. Traversat
  • Patent number: 6571388
    Abstract: A system for creating a custom environment for executing application programs in a target device. The system broadens the applicability of software environments like Java by providing custom pre-loaded classes for application programs and by customizing the procedures for class loading to the available resources in the target device. The system includes tools for generating a pre-load class list that specifies a set of classes needed to support the application program. The tools build the custom environment including a set of code for a virtual machine and a set of code for each of a set of pre-loaded classes specified in the pre-load class list. The virtual machine loads classes from the pre-loaded classes, a file system class library, and/or a networked class library using widely available network protocols.
    Type: Grant
    Filed: March 9, 1999
    Date of Patent: May 27, 2003
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Chandrasekar Venkatraman, Venkatesh Krishnan, Geetha Manjunath, Kommarahalli S. Venugopal, Devaraj Das, Arunachalam Venkataramani
  • Patent number: 6546549
    Abstract: A process for transforming an original source code containing a description of a stub method employed in an object interaction into another source code corresponding to an environment on which a program is executed. The original source code is described with a predetermined programming language and contains information concerning the stub method to be used in the object interaction. The information is described in a format which is common to a plurality of different program execution environments. The transformation is conducted with reference to a registered information corresponding to the program execution environment on which stub method is to be executed into another source code described with the same programming language as the original source code in a predetermined format corresponding to the program execution environment on which the stub method is to be executed.
    Type: Grant
    Filed: August 19, 1998
    Date of Patent: April 8, 2003
    Assignee: Sony Corporation
    Inventor: Qiaoyun Li
  • Patent number: 6542899
    Abstract: A grammar to represent a hierarchical object-oriented database. The grammar comprises a set of keywords and a syntax. The keywords include “tree”, “entry”, “properties”, and “attributes”. Properties and attributes are defined by name-value pairs. The grammar is designed to be platform-independent and programming-language-independent and therefore descriptive of any hierarchical object-oriented database. A grammatical form, a description of an object-oriented database in a textual form according to the grammar, may be stored in a persistent form such as one or more files on disk. The grammatical form is human-readable and human-editable. The grammatical form can be created by hand, or it can be created from an object-oriented database in transient form through the process of serialization. The grammatical form can be transformed into an object-oriented database through the process of compilation.
    Type: Grant
    Filed: February 19, 1999
    Date of Patent: April 1, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: Thomas E. Saulpaugh, Gregory L. Slaughter, Bernard A. Traversat
  • Patent number: 6526570
    Abstract: Systems and methods for building a platform specific compiler in a multi-platform environment are provided. A set of user defined platform dependent compiler architecture descriptors that describe corresponding architectural features of a particular hardware platform dependent compiler are provided. The descriptors are converted into the platform dependent compiler source code which is compiled into platform dependent compiler object code. The platform specific compiler is formed from the platform dependent compiler object code and platform independent compiler object code already provide. During compiler run time an interface mediates the flow of information between the platform dependent compiler object code and the platform independent compiler object code.
    Type: Grant
    Filed: April 24, 2000
    Date of Patent: February 25, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: Clifford N. Click, Jr., Christopher A. Vick, Michael H. Paleczny
  • Patent number: 6487716
    Abstract: A method and several variants are provided for analyzing and transforming a computer program such that instructions may be reordered even across instructions that may throw an exception, while strictly preserving the precise exception semantics of the original program. The method uses program analysis to identify the subset of program state that needs to be preserved if an exception is thrown. Furthermore, the method performs a program transformation that allows dependence constraints among potentially excepting instructions to be completely ignored while applying program optimizations. This transformation does not require any special hardware support, and requires a compensation code to be executed only if an exception is thrown, i.e., no additional instructions need to be executed if an exception is not thrown. Variants of the method show how one or several of the features of the method may be performed.
    Type: Grant
    Filed: October 8, 1999
    Date of Patent: November 26, 2002
    Assignee: International Business Machines Corporation
    Inventors: Jong-Deok Choi, Manish Gupta, Michael Hind