Patents Examined by Antony Nguyen-Ba
  • Patent number: 6910206
    Abstract: An interpreter invocation mechanism for switching between execution of native instruction words to interpreted instruction words uses a subroutine call instruction to start execution of the interpreter. The return address of the subroutine call instruction is used as an address pointer to the start of the interpreted code. The interpreted code may terminate with an Exit instruction whereupon normal native code execution resumes using the instruction at the immediately following memory address or alternatively with a Return instruction that recovers a return address previously stored to stack memory.
    Type: Grant
    Filed: November 7, 2000
    Date of Patent: June 21, 2005
    Assignee: Arm Limited
    Inventor: Edward Colles Nevill
  • Patent number: 6901587
    Abstract: A method and a system of cache management using spatial separation of outliers. The system includes a dynamic compiler arranged to create compiled fragments of code having dominant code blocks and outliers. Memory coupled to the dynamic compiler is managed by a compiler manager such that dominant code blocks are stored in one portion of the memory and the outliers are stored in another portion of the memory. Storing the dominant path code separate from the outliers increases efficiency of the system.
    Type: Grant
    Filed: May 16, 2001
    Date of Patent: May 31, 2005
    Assignee: Esmertec AG
    Inventors: Jeremy Paul Kramskoy, William Thomas Charnell, Stephen Darnell, Blaise Abel Alec Dias, Philippa Joy Guthrie, Wayne Plummer, Jeremy James Sexton, Michael John Wynn, Keith Rautenbach, Stephen Paul Thomas
  • Patent number: 6895579
    Abstract: A method and apparatus which comprises, as part of compiling source code into native code, identifying a source code block in the source code to optimize using register promotion, and optimizing the source code block using a register promotion transformation. Thereafter, compensation native code is generated to update those memory locations whose values were promoted using register promotion with the up-to-date values from registers associated with the memory locations. As a result native code corresponding to any existing source code exception handler associated with the source code block will have access to the up-to-date memory locations during program execution.
    Type: Grant
    Filed: July 31, 2001
    Date of Patent: May 17, 2005
    Assignee: Intel Corporation
    Inventor: Guei-Yuan Lueh
  • Patent number: 6895578
    Abstract: A system and method for facilitating and simplifying testing and debugging of computer programs. is described A computer program is broken down to smaller components, such as, classes, functions, or objects, and then those smaller components are tested individually. Accordingly, specific aspects of the computer program can be effectively tested. The user can automatically perform a range of tests on a class or method when the class or method is compiled without integrating the class or method into a larger project.
    Type: Grant
    Filed: January 6, 2000
    Date of Patent: May 17, 2005
    Assignee: Parasoft Corporation
    Inventors: Adam K. Kolawa, Chad E. Byers
  • Patent number: 6892378
    Abstract: A method for detecting memory leakage of a linked list in a running program, includes saving current size of the linked list as a new maximum size of the linked list when a new element is added to the linked list that causes the current size of the linked list to exceed a former maximum size of the linked list, determining whether a first pre-determined period of time has elapsed from when the liked list was created, and determining whether the new maximum size of the linked list exceeds the former maximum size of the linked list during a second pre-determined period of time.
    Type: Grant
    Filed: September 17, 2001
    Date of Patent: May 10, 2005
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: James R. Curtis, Eric Hwang
  • Patent number: 6871345
    Abstract: A system and method is described for managing plugin program components through encapsulation in a self managing agent that supports introspection for installation. An agent evaluator engine at the host machine interrogates the introspective interface for the agent to determine what resources are required by the plugin. In addition, the engine determines what effect the plugin will have on the host system, and invokes the installation logic which may be contained in the agent. Using the introspective mechanism and installation logic, any changes in the plugin (such as revisions) and the associated dependency changes can be readily accommodated since only a single base of information and installation logic, that which is contained within the enclosing agent, requires modification.
    Type: Grant
    Filed: April 4, 2000
    Date of Patent: March 22, 2005
    Assignee: Motive, Inc.
    Inventors: James J. Crow, Dennis L. Parker
  • Patent number: 6865729
    Abstract: A flowchart-based programming and control system includes a computer with a processor, memory, and display. A device is connected to the computer and is associated with a process. A flowcharting module generates and edits flowchart source code that includes flowchart blocks and that contains logic for operating the device. First and second flowchart blocks assign an operational state of the process. A reason code module associated with the flowcharting module assigns first and second reason codes to the first and second flowchart blocks. The flowchart module compiles the flowchart source code into flowchart object code. A flowchart run-time engine module executes the flowchart object code to control the process. The flowchart object code generates the first and second reason codes during execution of the first and second flowchart blocks. A performance analysis module and a charting module record and graphically represent the operational state of the process over time.
    Type: Grant
    Filed: September 29, 2000
    Date of Patent: March 8, 2005
    Assignee: Entivity, Inc.
    Inventors: Andrew H. McMillan, Joseph Gasiorek, Thomas Harkaway
  • Patent number: 6865735
    Abstract: A program or program snippet is rewritten to conform to site-specific properties prior to being executed by a target host. The program or program snippet directed to a target host from a known or unknown source is either intercepted by a server before reaching the target host or can be redirected from the target host to the server to effect its rewriting. The program is parsed in its external representation, converting it to an internal representation that is inspected and analyzed with reference to a site-specific properties database. A summary of the program's properties is then compared to the site-specific properties database by a binary rewriting engine, which produces a rewritten program in an internal representation. If appropriate, the program or program snippet is rewritten to convert it to a format suitable for execution on the target host. Furthermore, certifications may be added to the rewritten program to mark that the rewritten program obeys site-specific constraints.
    Type: Grant
    Filed: October 7, 1998
    Date of Patent: March 8, 2005
    Assignee: University of Washington
    Inventors: Emin Gun Sirer, Brian N. Bershad
  • Patent number: 6859922
    Abstract: A system that provides easy testing of software objects and reduces the burden on a program developer for maintaining a test system is presented. The system accepts as an input objects and automatically creates test drivers for these objects. The test objects are provided to a test bed comprising an application server where the objects are tested by application of the test drivers. In a preferred embodiment, the test bed comprises a collection of application servers. An application service provider provides the system test driver and the test bed. Access to the test system is provided by passing a representing of the object under test to the application service provided through a network interface. The application service provider provides test services on a fee for service basis.
    Type: Grant
    Filed: August 24, 2000
    Date of Patent: February 22, 2005
    Assignee: Empirix Inc.
    Inventors: Caren H. Baker, George Friedman, Michael V. Glik, Walter G. Vahey
  • Patent number: 6859921
    Abstract: A hierarchy of software components is created based on the programming constructs therein using a computer linked to a database having a collection of legacy software therein. Key component characteristics, e.g., programming constructs are defined. These constructs are assigned weights based on the difficulty or ease with which they can be reused in a new software component for use with a Web system or other network system. The legacy collection is searched to determine which, if any, of the key constructs are included therein. An ordered list is output that includes a list of the components containing the key constructs. The order of the list is based on the weight of the constructs in each component and the frequency with which they occur in each component. The list is then used to determine the effort and thus, the expense required to move entire components or blocks of code in the components into a Web system or other network system.
    Type: Grant
    Filed: May 31, 2001
    Date of Patent: February 22, 2005
    Assignee: International Business Machines Corporation
    Inventors: Michael David Connor, Laurence Edward England, Leshek Fiedorowicz, James Paul Hildner
  • Patent number: 6854110
    Abstract: A system and method for obtaining scratch registers in a computer-executable binary is provided. Register allocation requests in a computer-executable binary are discovered. In one method, the register allocations are examined procedure-by-procedure. The maximum number of registers requested by any instruction in the procedure is discovered. Then, register requests in the procedure are modified to request the maximum number discovered plus a number of scratch registers. In another method, the register allocations are examined block-by block within a procedure. Dominating register allocations for each block are found. Then the dominating register allocations are modified to request scratch registers.
    Type: Grant
    Filed: December 21, 2000
    Date of Patent: February 8, 2005
    Assignee: Microsoft Corporation
    Inventors: David M. Gillies, Ronnie Chaiken, Jiyang Liu
  • Patent number: 6851111
    Abstract: A computer system includes multiple class loaders for loading program class files into the system. A constraint checking mechanism is provided wherein a first class file loaded by a first class loader makes a symbolic reference to a second class file loaded by a second class loader, the symbolic reference including a descriptor of a third class file. The constraint mechanism requires that the first and second class files agree on the identity of the third class file and stores a list of constraints as a set of asymmetric relationships between class loaders. Each stored constraint, for a class loader which loaded a class file that contains a symbolic reference to another class file, includes a first parameter denoting the class loader which loaded the class file to which the symbolic references is made; and a second parameter denoting a class file which is identified by a descriptor in said symbolic reference.
    Type: Grant
    Filed: December 15, 2000
    Date of Patent: February 1, 2005
    Assignee: International Business Machines Corporation
    Inventors: Richard Kenneth McGuire, Edward John Slattery, Matthew Alexander Webster
  • Patent number: 6851108
    Abstract: A verification module evaluates intermediate language code to verify that the code is type safe before passing the code for execution. Code that is not deemed type safe can cause execution errors, corrupt the runtime environment in which the code is executing, or cause unauthorized access to protected system resources. As such, the verification module protects a computer system from intentional or inadvertent breaches of the computer system's defenses. The verification module verifies the type safety of intermediate language code that supports significant high-level language constructs prohibited by verification modules in the prior art. One exemplary verification module verifies intermediate language code that includes one or more reference-based parameter, such as a pointer (or reference), a value class containing pointers, a RefAny parameter, or a nested pointer.
    Type: Grant
    Filed: November 16, 2000
    Date of Patent: February 1, 2005
    Assignee: Microsoft Corporation
    Inventors: Don Syme, Andrew Gordon, Jonathan A. Forbes, Vance P. Morrison
  • Patent number: 6839895
    Abstract: Code restructuring or reordering based on profiling information and memory hierarchy is provided by constructing a Program Execution Graph (PEG) corresponding to a level of the memory hierarchy, partitioning this PEG to reduce estimated memory overhead costs below an upper bound, and constructing a PEG for a next level of the memory hierarchy from the partitioned PEG. The PEG is constructed from control flow and frequency information from a profile of the program to be restructured. The PEG is a weighted undirected graph comprising nodes representing basic blocks and edges representing transfer of control between pairs of basic blocks. The weight of a node is the size of the basic block it represents and the weight of an edge is the frequency of transition between the pair of basic blocs it connects.
    Type: Grant
    Filed: October 10, 2000
    Date of Patent: January 4, 2005
    Assignee: International Business Machines Corporation
    Inventors: Dz Ching Ju, Kalyan Muthukumar, Shankar Ramaswamy, Barbara Bluestein Simons
  • Patent number: 6836886
    Abstract: A method, apparatus, system, and article of manufacture for electronically obtaining a Web page in a Web browser. A Web page is requested. In response, the browser receives a bootstrap file that comprises a declaration of a component module control object, and a script block comprising a method that accesses the component module control object. The object identified in the declaration is obtained. The object also includes one or more resources. The object is then installed in the Web browser. The Web browser may then use the method of the script block to extract a Web page based on the resources of the component module control object. The Web browser may also be configured to determine if the control object is an up to date version. If the control object is not an up to date version, the browser obtains and installs an up to date version.
    Type: Grant
    Filed: March 19, 2001
    Date of Patent: December 28, 2004
    Assignee: Autodesk, Inc.
    Inventors: Thomas Mike Tuerke, Priya Rawat, Janice Pei-I Huang
  • Patent number: 6834384
    Abstract: The present invention provides methods and apparatus for upgrading firmware in an embedded system, without impacting the system. More specifically, the present invention enables an embedded system to be upgraded without any system downtime, by providing two application areas in non-volatile programmable read only memory. A processor can boot up and run from either application area. A fixed vector table is provided, which, in cooperation with a software vector table, enables the processor to maintain proper interrupt vector addresses while being able to run from either application area. Upgraded firmware can be loaded into one application area while the system is running from the other application area. Resetting the processor allows the system to run the upgraded version of firmware.
    Type: Grant
    Filed: March 14, 2001
    Date of Patent: December 21, 2004
    Assignee: General Instrument Corporation
    Inventors: Daniel Charles Fiorella, III, Ronald L. Gebhardt, Jr., Marlin F. McGregor, Jr.
  • Patent number: 6832371
    Abstract: In a computer system, a method for automatically registering resources required for an application program module to execute. After the application program module is booted, a registration cache is examined to determine its status. The registration cache is stored in association with the application program module and it indicates whether a registry on the computer system needs to be updated, such as after the user has moved files or renamed files such that registry keys in the registry may no longer be valid. If the registration cache indicates that the registry needs to be updated, then a search is made through a predetermined directory, such as the application program module folder. The search is looking for an application file or a dynamic link library file. Upon detecting an application file or a dynamic link library file, then a resource fork in association with the file is opened and it is determined whether there is a self-registration resource in the resource fork.
    Type: Grant
    Filed: January 4, 1999
    Date of Patent: December 14, 2004
    Assignee: Microsoft Corporation
    Inventor: Thomas E. Hussey
  • Patent number: 6832367
    Abstract: A method for recording and replaying execution of distributed programs on a computer system in a distributed environment, includes identifying an execution order of critical events of a program, generating groups of critical events of the program, wherein for each group, critical events belonging to the group belong to a common execution thread, and generating for each execution thread a logical thread schedule that identifies a sequence of the groups so as to allow deterministically replaying a non-deterministic arrival of stream socket connection requests, a non-deterministic number of bytes received during message reads, and a non-deterministic binding of stream sockets to local ports.
    Type: Grant
    Filed: March 6, 2000
    Date of Patent: December 14, 2004
    Assignee: International Business Machines Corporation
    Inventors: Jong-Deok Choi, Ravi Konuru, Harini Srinivasan
  • Patent number: 6826745
    Abstract: The invention provides user configurable and reconfigurable scripting, methods of scripting, and systems for scripting for use by call centers, technical support centers, and marketers. Scripts are interactive tools that guide a telemarketer, a sales person, or a technical support technician through a telephone call with a customer. Scripts are characterized by going on to particular subsequent questions as a function of the customer's answer to a previous question.
    Type: Grant
    Filed: May 30, 2001
    Date of Patent: November 30, 2004
    Assignee: Siebel Systems, Inc.
    Inventors: John L. Coker, Matthew S. Malden, Kevin R. Nix
  • Patent number: 6795963
    Abstract: This system sets up a framework that allows for separating debug information from executable code. The system is comprised of a compiler, a linker and a debugger. The compiler produces optimized object code and a debugging information file that contains information necessary for symbolic debugging. The linker merges the optimized object files to produce an optimized executable file as well as debugging information files to produce a composite debugging information file. This debugging information file can be further refined when the program is executed to include runtime dependencies. The debugger provides a source code debugging environment and a core dump debugging environment for the optimized code. The debugger allows monitoring of variable values, placement of watches on changes in variable values, setting breakpoints by location or by name and performing program debugging at a source code level.
    Type: Grant
    Filed: November 12, 1999
    Date of Patent: September 21, 2004
    Assignee: International Business Machines Corporation
    Inventors: Flemming Andersen, Jason Raymond Baumgartner