Patents Examined by Brian Sattizahn
  • Patent number: 7337173
    Abstract: An optimization technique is provided which automatically reduces the number of globals in a program to the minimum required. The optimization technique identifies those elements which are placed in a program as global elements, but which do not need to be global elements. The optimization technique parses all files in a program, identifies all global elements, and removes any global elements that are not used outside of a particular file within the program by converting these global elements to local elements or by disregarding those elements.
    Type: Grant
    Filed: December 4, 1997
    Date of Patent: February 26, 2008
    Assignee: Netscape Communications Corporation
    Inventor: David J. Williams
  • Patent number: 6179491
    Abstract: Given a class hierarchy (a collection of classes and inheritance relations among them) and a program P that uses the hierarchy, a slice of the class hierarchy is computed with respect to the program by eliminating from the hierarchy those data members, member functions, classes, and inheritance relations that are unnecessary for ensuring that the semantics of P is maintained.
    Type: Grant
    Filed: February 5, 1997
    Date of Patent: January 30, 2001
    Assignee: International Business Machines Corporation
    Inventors: Jong-Deok Choi, John H. Field, Ganesan Ramalingam, Frank Tip
  • Patent number: 6118940
    Abstract: Method and apparatus for creating benchmark programs for the analysis of java virtual machine implementations are implemented. Java applications and applets are compiled into an intermediate code referred to as byte code. The Java byte code forms the machine code for the Java Virtual Machine. The Java Virtual Machine running on top of a hardware platform translates the byte code into native machine code for execution on the hardware platform on which the Java Virtual Machine is running. The performance of a Java Virtual Machine is improved by the use of a so-called "just in time" (JIT) compiler that translates commonly occurring sequences of bytes codes in the native instruction sequences which are then stored for later execution. Critical to the performance of the JIT is the ability of the JIT to optimally compile for the most commonly occurring sequences of byte codes. The method and apparatus for creating benchmark programs provides a means for performance measurements with respect to such sequences.
    Type: Grant
    Filed: November 25, 1997
    Date of Patent: September 12, 2000
    Assignee: International Business Machines Corp.
    Inventors: William Preston Alexander, III, Robert Francis Berry, Riaz Hussain, Paul Jerome Kilpatrick, Robert John Urquhart
  • Patent number: 6081655
    Abstract: A method, apparatus, and article for solving the year 2000 problem involves limited modifications in the data definition portions of the source code and compiler support for processing the modified source code. Fields in the source code that contain a year or date values are identified and, for each such field, the user selects an appropriate technique (for example, expansion, compression or windowing). The user modifies the data definition for each identified field, by adding new attributes to request the selected technique. The user then compiles the program and resolves any ambiguous references to the variables whose definitions were modified. This procedure is applied, module by module, and each processed module is merged into production, after testing, by using a compiler option to disable the use of the new attributes.
    Type: Grant
    Filed: November 14, 1997
    Date of Patent: June 27, 2000
    Assignee: International Business Machines Corporation
    Inventors: William Augustus Carter, Alan Roeder Elderon, Timothy David Magee, Mark David Nicholas, Henry Y. Saade, Grant Sutherland, William Nicholas John Tindall, Jeffrey Ramesh Urs, Timothy Edward Weinmann, Michael Thomas Wheatley
  • Patent number: 6081664
    Abstract: A method for monitoring a basic input/output system, or BIOS, in a computer system involves intercepting a call by a software routine to access a BIOS, invoking the BIOS on behalf of the calling routine, and communicating the result of the call back to the calling routine. Intercepting a BIOS call is accomplished by establishing a false entry point to the BIOS, and providing the address of this false entry point to a calling routine in response to a request for the address of the BIOS. The calling routine will then direct subsequent BIOS service requests to the false entry point, which in turn forwards the service requests to a BIOS monitor for processing. By inserting an intermediary between the calling routine and the BIOS, usage of the BIOS can be readily monitored.
    Type: Grant
    Filed: September 30, 1996
    Date of Patent: June 27, 2000
    Assignee: Intel Corporation
    Inventor: Dan Howard Nowlin, Jr.
  • Patent number: 6078734
    Abstract: A method, apparatus, and article for solving the year 2000 problem involves limited modifications in the data definition portions of the source code and compiler support for processing the modified source code. Fields in the source code that contain a year or date values are identified and, for each such field, the user selects an appropriate technique (for example, expansion, compression or windowing). The user modifies the data definition for each identified field, by adding new attributes to request the selected technique. The user then compiles the program and resolves any ambiguous references to the variables whose definitions were modified. This procedure is applied, module by module, and each processed module is merged into production, after testing, by using a compiler option to disable the use of the new attributes.
    Type: Grant
    Filed: July 23, 1997
    Date of Patent: June 20, 2000
    Assignee: International Business Machines Corporation
    Inventors: William Augustus Carter, Alan Roeder Elderon, Timothy David Magee, Mark David Nicholas, Henry Y. Saade, Grant Sutherland, William Nicholas John Tindall, Jeffrey Ramesh Urs, Timothy Edward Weinmann, Michael Thomas Wheatley
  • Patent number: 6078743
    Abstract: For scripting objects in a component software architecture, a generic IDE interface to scripting IDEs is defined to allow connection to a language-specific scripting IDE preferred by a user. IDE class information--methods, properties, and events, including callback methods--for IDE editable objects are saved with an IDE instance of the IDE editable objects corresponding to objects registered for scripting. The IDE instance and its handle are connected to a scripting component through a corresponding Java object and handle. Language-specific scripting IDEs may thus be connected to a scripting component for a different language-specific scripting engine. Any scripting IDE may therefore be utilized for creation and execution of scripts written in a specific language for any scripting engine, allowing the user to employ a preferred scripting IDE regardless of the scripting language selected to connect registered objects.
    Type: Grant
    Filed: November 24, 1997
    Date of Patent: June 20, 2000
    Assignee: International Business Machines Corporation
    Inventors: Ajay Arvind Apte, Ping Chen, John Conrad Sanchez
  • Patent number: 6070011
    Abstract: A compile method employs loop fusion to improve execution of a first loop and a second loop in a code sequence. A compile method initially peels one or more loop iterations from one of the loops to cause each of the loops to exhibit an equal number of loop iterations. Thereafter, an attempt is made to fuse the first and second loops, upon a condition that the resulting fused loop produces a same computational result as would be produced if the first loop and second loop were not fused. If the condition is not met, a loop reversal is performed on one of the loops and a fusing action is again attempted; if the attempted fusing action of the loops does not fulfill the condition, a loop reversal is performed on the other loop and a fusing action is again attempted. The combined loop peeling/loop reversal actions provide a higher probability of an ability to fuse the loops than otherwise.
    Type: Grant
    Filed: October 21, 1997
    Date of Patent: May 30, 2000
    Assignee: Hewlett-Packard Co.
    Inventors: Jiyang Liu, Robert Gottlieb, Andrew E. Ayers
  • Patent number: 6064817
    Abstract: A method, apparatus, and article for solving the year 2000 problem involves limited modifications in the data definition portions of the source code and compiler or interpreter support for processing the modified source code. Fields in the source code that contain a year or date values are identified and, for each such field, the user selects an appropriate technique (for example, expansion, compression or windowing). The user modifies the data definition for each identified field, by adding new attributes to request the selected technique. The user then compiles or interprets the program and resolves any ambiguous references to the variables whose definitions were modified. This procedure is applied, module by module, and each processed module is merged into production, after testing, by using a compiler option to disable the use of the new attributes.
    Type: Grant
    Filed: November 14, 1997
    Date of Patent: May 16, 2000
    Assignee: International Business Machines Corporation
    Inventors: William Augustus Carter, Alan Roeder Elderon, Timothy David Magee, Mark David Nicholas, Henry Y. Saade, Grant Sutherland, William Nicholas John Tindall, Jeffrey Ramesh Urs, Timothy Edward Weinmann, Michael Thomas Wheatley
  • Patent number: 6061518
    Abstract: An efficient mechanism for debugging JavaScript programs is implemented to provide functions that allow a software developer to gain more information and to have more control when debugging a software program. Debugging tools are implemented to allow the software developer to control the contents of a JavaScript client object directly during the debugging operation and, therefore, to have greater control over and to know the contents of the client object at a specific point in time during execution of the program. Additionally, a data processing system and methodology are implemented to allow debugging functions and results generated therefrom to be output to a temporary file based on a current client's Internet Protocol address, rather than to a display screen or a current applet device of the client.
    Type: Grant
    Filed: November 25, 1997
    Date of Patent: May 9, 2000
    Assignee: International Business Machines Corporation
    Inventor: Richard Dale Hoffman
  • Patent number: 6059840
    Abstract: Scheduling instructions by eliminating COPY instructions to reduce code size and increase performance in a computer program compiler. According to one embodiment of the present invention COPY instructions are coalesced prior to preparing a ready list. The ready list is polled and instructions selected for scheduling. After selection of a next instruction, liveness conflicts are determined, where a live register contains a valid value that is needed at a later step. Conflicts are then resolved and instruction scheduling continues. The process is continued until the ready list is empty.
    Type: Grant
    Filed: March 17, 1997
    Date of Patent: May 9, 2000
    Assignee: Motorola, Inc.
    Inventor: Cliff N. Click, Jr.
  • Patent number: 6061517
    Abstract: A method, apparatus, and article of manufacture for providing a programming development environment that supports the development of Internet and Intranet applications. More specially, the present invention discloses a multi-tier debugger that allows the debugging of applications executing on multiple tiers at the same time, when the tiers are on separate machines or when the tiers are on a single machine. The debugger is split into a window module and a runtime module.
    Type: Grant
    Filed: March 31, 1997
    Date of Patent: May 9, 2000
    Assignee: International Business Machines Corporation
    Inventors: Daniel Edward House, Constance Jane Nelin
  • Patent number: 6058367
    Abstract: A system for matching users in response to user selections from sets of sensory stimuli. The system provides a first sensory stimulus set to a user including a plurality of stimuli and stores an identifier that identifies the user's response to the stimulus. The system then generates a user data string that includes an identifier for each of the sensory stimuli selected by the user in each of the plurality of sensory stimulus sets and sums the number of sensory stimuli selected by a selected user and another user to provide a match value. The match value is compared to a predetermined threshold value.
    Type: Grant
    Filed: June 13, 1997
    Date of Patent: May 2, 2000
    Assignee: Tele-Publishing, Inc.
    Inventors: Andrew B. Sutcliffe, Kevin A. Dunn
  • Patent number: 6041177
    Abstract: A variable type analyzing unit detects the data types of each variable. A variable length analyzing unit detects the length of each variable. A partial reference unit detects the range of a partial reference when part of a variable is referred to. An internal layout analyzing unit checks the range to which data is actually referred and to which data is actually assigned based on the information on each variable obtained by the above units. A domain analyzing unit categorizes variables used in a target program by domain based on the ranges.
    Type: Grant
    Filed: September 12, 1997
    Date of Patent: March 21, 2000
    Assignee: Fujitsu Limited
    Inventors: Keiko Kawabe, Akihiko Matsuo, Minako Kimura, Kenji Nagahashi, Sanya Uehara
  • Patent number: 6038398
    Abstract: A compiler optimizing procedure improves a sequence of memory addressing actions of a program, wherein the program includes a plurality of do loops. The procedure includes the steps of: performing an interchange of do loops, within a set of nested loops, to move at least one loop of the set to a position of an outer loop, wherein the one loop manifests a condition which prevents application of a distribution action thereto; attempting a distribution of next outermost loops so as to isolate a code segment in the program from remaining interior loops in the set of nested loops; and if the distribution is performed, determining for each remaining interior loop if an interchange with another interior loop will improve an efficiency of execution of the program and if yes, performing the loop interchange.
    Type: Grant
    Filed: November 18, 1997
    Date of Patent: March 14, 2000
    Assignee: Hewlett-Packard Co.
    Inventor: Richard Schooler
  • Patent number: 6035122
    Abstract: A processing device executes an instruction speculatively, and execution result of the instruction becomes valid when all the predictions about true/false of branch condition are correct, and the instruction has a commit condition indicating the number of branch conditions.
    Type: Grant
    Filed: May 14, 1998
    Date of Patent: March 7, 2000
    Assignee: Mitsubishi Denki Kabushiki Kaisha
    Inventor: Hideki Ando
  • Patent number: 6026233
    Abstract: An intelligent real time tool to assist a computer programmer during the writing and/or maintenance of a computer program. The tool generates assist windows that contain program related information that the programmer can use to construct a programming language statement and/or to obtain real time information about a programming language statement. An assist window can be automatically displayed as determined by the tool itself, and/or manually displayed on demand in response to a user input command. An assist window displays two general categories of information including but not limited to selection menu information based on a partial compilation of all programming language statements, and informational displays based on a partial compilation and a reverse parse of an immediate programming language statement.
    Type: Grant
    Filed: May 27, 1997
    Date of Patent: February 15, 2000
    Assignee: Microsoft Corporation
    Inventors: Matthew Shulman, Matthew James Curland, Martin Cibulka, David Anthony Sobeski
  • Patent number: 6009269
    Abstract: A computer implemented method detects concurrency errors in programs. Machine executable images of multiple program threads are instrumented to locate and replace instructions which affect concurrency states of the threads. Concurrency state information is recorded in a memory while the multiple threads are executing. The recorded concurrency state information is analyzed, and inconsistent dynamic concurrency state transitions are reported as concurrency errors.
    Type: Grant
    Filed: March 10, 1997
    Date of Patent: December 28, 1999
    Assignee: Digital Equipment Corporation
    Inventors: Michael Burrows, Charles G. Nelson, Stefan Savage, Patrick G. Sobalvarro
  • Patent number: 6002873
    Abstract: A method, apparatus, and article for solving the year 2000 problem involves limited modifications in the data definition portions of the source code and compiler support for processing the modified source code. Fields in the source code that contain a year or date values are identified and, for each such field, the user selects an appropriate technique (for example, expansion, compression or windowing). The user modifies the data definition for each identified field, by adding new attributes to request the selected technique. The user then compiles the program and resolves any ambiguous references to the variables whose definitions were modified. This procedure is applied, module by module, and each processed module is merged into production, after testing, by using a compiler option to disable the use of the new attributes.
    Type: Grant
    Filed: November 14, 1997
    Date of Patent: December 14, 1999
    Assignee: International Business Machines Corporation
    Inventors: William Augustus Carter, Alan Roeder Elderon, Timothy David Magee, Mark David Nicholas, Henry Y. Saade, Grant Sutherland, William Nicholas John Tindall, Jeffrey Ramesh Urs, Timothy Edward Weinmann, Michael Thomas Wheatley
  • Patent number: 5999738
    Abstract: A technique for flexible scheduling of a code sequence wherein a set of instructions for determining a a fully-resolved predicate for each of a set of non-speculative instructions contained in the code sequence is generated. An optimized code sequence is then generated that includes the instructions for determining the fully resolved predicates and that further includes the non-speculative instructions each guarded by one of the fully resolved predicates such that any one of the non-speculative instructions may be executed before any other of the non-speculative instructions.
    Type: Grant
    Filed: November 6, 1997
    Date of Patent: December 7, 1999
    Assignee: Hewlett-Packard Company
    Inventors: Michael S. Schlansker, Vinod Kathail