Analysis Of Code Form Patents (Class 717/141)
  • Patent number: 8397223
    Abstract: A method, system and apparatus for providing a web application generator to generate the basis for a complete web application source code. Based on graphical user interface input files provided by graphic designers, the web application generator generates application framework code, an event handler skeleton and business logic foundation code. Web developers then prepare additional source code using an object-oriented programming language based on the event handler skeleton and business logic foundation code to create web application business logic objects and event handler methods. Ultimately the graphical user interface input files prepared by the graphic designers and web application source code prepared by the web developers are dynamically bound at runtime.
    Type: Grant
    Filed: March 16, 2001
    Date of Patent: March 12, 2013
    Assignee: Gutenberg Printing LLC
    Inventor: Hiang-Swee Chiang
  • Patent number: 8397219
    Abstract: Described is a system that tracks enregistered memory locations. The system receives program object code that enregisters a memory location (e.g., a set of data at a given memory address) and executes the program code using a thread. Enregistering memory locations involves using additional registers to cache frequently used memory locations while the object code is executing, these additional registers being available on an architecture on which the program executes, but generally not available on an architecture for which the object code was generated. After enregistering the memory location, the system uses a table that identifies enregistered memory locations to track the associated memory address and a thread identifier for the thread. The system checks this table during memory accesses to ensure that other threads attempting to access an enregistered memory location receive a current value for the enregistered memory location.
    Type: Grant
    Filed: March 31, 2009
    Date of Patent: March 12, 2013
    Assignee: Oracle America, Inc.
    Inventors: Christopher A. Vick, Gregory M. Wright
  • Patent number: 8392888
    Abstract: A method, article, and system for providing an effective implementation of assembler language translate-n-to-n instructions implemented on 21, 31, and 64-bit architectures, while maintaining backward compatibility with existing systems. The enhanced Extended-Translation Facility 2 (ETF2) instruction set introduces a new operand in an unused field (M3) that facilitates a change in the original instruction format and its intended function. With the ETF2-Enhancement Facility installed, a value of zeros in the M3 field indicates that instruction operation is to continue as originally defined. When a nonzero value is coded in the M3 field a new function is carried out. The assembler accommodates the changes by making the new M3 field optional when coding the instructions. If the M3 field is not coded, the assembler defaults to providing zeros in the M3 field (as found in the original instruction format), and backward compatible operation is provided.
    Type: Grant
    Filed: August 31, 2010
    Date of Patent: March 5, 2013
    Assignee: International Business Machines Corporation
    Inventors: John R. Ehrman, Mike S. Fulton, Dan F. Greiner
  • Patent number: 8387028
    Abstract: An apparatus and computer program product determine a target data type in an environment having a plurality of levels. The plurality of levels comprise a source level, zero or more intermediate levels, and a target level. The zero or more intermediate levels are between the source level and the target level. A target data type representing a transformation of a data type of an associated datum as the datum passes from the source level through the zero or more intermediate levels to the target level is generated. The target data type comprises a sequence of nested transformation functions having an innermost transformation function and an outermost transformation function.
    Type: Grant
    Filed: April 25, 2008
    Date of Patent: February 26, 2013
    Assignee: International Business Machines Corporation
    Inventors: Lan Huang, Eileen Tien Lin, Tina Louise Mukai, Amit Radheshyam Somani, Yang Sun
  • Patent number: 8387029
    Abstract: A method for parsing and executing a software program includes receiving a portion of a software program in an original linguistic form, wherein the portion of the software program includes a nonlinear program element having a body, and, while retaining the original linguistic form, directly executing the nonlinear program element by manipulating a parse state and an input stream of tokens representing the body of the nonlinear program element, wherein directly executing comprises executing tokens until the dynamic end of the nonlinear program element is reached. A system includes a tokenizer operable to tokenize the software program and a parser operable to directly execute a nonlinear program element in the software program by manipulating a parse state and an input stream of tokens representing the body of the nonlinear program element, while preserving the original linguistic form of the software program.
    Type: Grant
    Filed: July 25, 2006
    Date of Patent: February 26, 2013
    Assignee: Hercules Software, LLC
    Inventor: Peter L. Bird
  • Patent number: 8381194
    Abstract: Methods and apparatuses that collect code coverage information for selected code locations when executing executable code are described. Source code in one or more files may be annotated at the selected code locations. The executable code may be compiled from the annotated source code using standard compilers. The code coverage information may be collected into a run time data store accessible by other applications. In response to receiving a code coverage request, the code coverage information can be retrieved from the data store to compare with annotations identified from the source code. A code coverage report can be generated to indicate whether one or more of the selected code locations are not covered when executing the executable code.
    Type: Grant
    Filed: August 28, 2009
    Date of Patent: February 19, 2013
    Assignee: Apple Inc.
    Inventor: Wenguang Wang
  • Patent number: 8381199
    Abstract: Modular and/or demand-driven string analysis of a computer program is performed. Each method of the program is encoded into monadic second-order logic (M2L) to yield a set of predicate declarations and a set of constraints. The two sets for each method are composed to yield a union set of predicate declarations and a union set of constraints for the program. The union set of constraints includes a particular set of constraints corresponding to call relationships among the methods. An M2L formula including a free variable corresponding to a program variable is added to the union set of constraints. The two union sets are processed to verify a satisfiability of the constraints in relation to an illegal pattern. Where the constraints are satisfiable, the program can generate a string containing the illegal pattern. Where the constraints are not satisfiable, the program never generates a string containing the illegal pattern.
    Type: Grant
    Filed: October 19, 2010
    Date of Patent: February 19, 2013
    Assignee: International Business Machines Corporation
    Inventors: Takaaki Tateishi, Omer Tripp, Marco Pistoia
  • Patent number: 8370823
    Abstract: Device, system, and method of computer program optimization. For example, an apparatus to analyze a plurality of versions of computer program includes: a code analyzer to determine one or more code differences between first and second versions of the computer program, based on at least one optimization log associated with at least one of the first and second versions of the computer program.
    Type: Grant
    Filed: August 27, 2007
    Date of Patent: February 5, 2013
    Assignee: International Business Machines Corporation
    Inventors: Guy Bashkansky, Gad Haber, Marcel Zalmanovici
  • Patent number: 8370818
    Abstract: Methods and apparatus for analyzing the interface usage and requirements within software applications. In one embodiment, the interfaces comprise application programming interfaces (APIs) used with Java-based software, and the apparatus comprises a computer program that analyzes file paths (or classpaths) containing one or more files comprising Java bytecode. The names of the classes are extracted and placed into a class dictionary. The different classes listed in the dictionaries are broken down into their individual methods. Each method is then dissembled and analyzed for method or field invocations on other classes found in the dictionary. Methods called are added to a “used class” report. The used class report preferably contains the name of the class, method and the instruction information.
    Type: Grant
    Filed: December 2, 2006
    Date of Patent: February 5, 2013
    Assignee: Time Warner Cable Inc.
    Inventors: Matt Osminer, Robert F. Gazdzinski
  • Patent number: 8365151
    Abstract: A method for dynamic recompilation of source software instructions for execution by a target processor, which considers not only the specific source instructions, but also the intent and purpose of the instructions, to translate and optimize a set of equivalent code for the target processor. The dynamic recompiler determines what the source operation code is trying to accomplish and the optimum way of doing it at the target processor, in an “interpolative” and context sensitive fashion. The source instructions are processed in blocks of varying sizes by the dynamic recompiler, which considers the instructions that come before and after a current instruction to determine the most efficient approach out of several available approaches for encoding the operation code for the target processor to perform the equivalent tasks specified by the source instructions. The dynamic compiler comprises a decoding stage, an optimization stage and an encoding stage.
    Type: Grant
    Filed: April 30, 2010
    Date of Patent: January 29, 2013
    Assignee: Sony Computer Entertainment Inc.
    Inventor: Randal N. Linden
  • Patent number: 8359568
    Abstract: A data management method includes accessing data objects in an application written in C/C++ for change-logging and multi-step redo/undo, wherein the data objects are organized in a binary format and are devoid of self-describing information, and wherein the accessing the data objects is structured in a plurality of layers, the plurality of layers including a semantic layer, a change log layer, and a repository layer, dynamically analyzing the data objects to recognize all changes made by any of a plurality of users for all data types used by the application, the dynamically analyzing the data including using semantic analysis to track changes and identifying any changes in any of the data objects, and using generated wrapper classes to convert between C/C++ data structures and generic data format, wherein the wrapper classes are generated from developer provided annotations with C/C++ data structure declarations.
    Type: Grant
    Filed: December 22, 2008
    Date of Patent: January 22, 2013
    Assignee: International Business Machines Corporation
    Inventors: Juergen Baumann, Friedrich Beichter, Jochen Hoffman, Thomas Pohl
  • Patent number: 8359582
    Abstract: Method, computer readable medium, and system for specifying before-compiled code, compiling the before-compiled code into a compiled code snippet, specifying an insertion point in a compiled code block of a computer program, and inserting the compiled code snippet into the compiled code block at the specified insertion point while the computer program is running.
    Type: Grant
    Filed: September 27, 2008
    Date of Patent: January 22, 2013
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Tavis Elliott
  • Patent number: 8352922
    Abstract: A process for providing a simulated date and/or time to a time-sensitive application is disclosed herein. Such a process may include detecting the invocation of a time handler method configured to retrieve system time. Upon detecting the invocation, the contents of a call stack may be captured and analyzed to determine which requester method initiated the invocation. The process may then determine whether the requester method should receive a real or simulated system time. A real system time may be returned to the requester method in the event it should receive the real system time. A simulated system time may be returned to the requester method in the event it should receive the simulated system time. A corresponding apparatus and computer program product are also disclosed and claimed herein.
    Type: Grant
    Filed: March 31, 2009
    Date of Patent: January 8, 2013
    Assignee: International Business Machines Corporation
    Inventors: Trent A. Gray-Donald, Marc Warner Price
  • Patent number: 8352925
    Abstract: A mechanism is disclosed for enabling a set of code intended to be executed on a first platform (intended platform) to be executed on another platform (target platform). In one implementation, this mechanism takes a significantly different approach than that taken by current techniques. Rather than duplicating, augmenting, or changing a platform to accommodate the set of code, this mechanism alters the set of code to accommodate the platform. By altering the set of code, the mechanism causes the set of code to compensate for the difference(s) between the intended platform and the target platform. By compensating for the difference(s) in the two platforms, the set of code, when executed on the target platform, is able to produce the same result or results as it would have produced had it been executed on the intended platform. Thus, the set of code is able to execute properly on the target platform.
    Type: Grant
    Filed: January 16, 2007
    Date of Patent: January 8, 2013
    Assignee: Oracle America, Inc.
    Inventors: Kenneth B. Russell, Ira A. Wyant
  • Patent number: 8352918
    Abstract: A method and a system for verifying properties of a computer program is provided, pertaining to the validity of properties at program points by means of at least one forward analyser and one backward analyser. For each property, in an issuing phase an analyser issues to a centralizer module an assumption on the validity of the property at a point of the program, the centralizer module storing the assumption in a database with an attribute indicating the original analyser and a status indicating that the assumption needs to be verified; in a phase of verifying the assumption, stored in the database, a test analyser is selected to analyse the assumption in cooperation with the other analysers, the centralizer module determining analysers able to cooperate. The verification phase is iterated until all assumptions stored in the base have been analysed by at least one test analyser, a verified assumption being marked as valid.
    Type: Grant
    Filed: January 25, 2008
    Date of Patent: January 8, 2013
    Assignee: Commissariat a l'Energie Atomique
    Inventors: Pascal Cuoq, Benjamin Monate
  • Patent number: 8341597
    Abstract: The present invention relates to the field of computer programming. More specifically the invention relates to a method and a data processing system for editing the source code of a computer program. It is an object of the present invention to provide an easy source code editing technique, by which programming errors and type errors can reliably be avoided in cases where changes to the program are supposed not to change the semantics of the program. This object is achieved according to the invention by a method for editing source code, the method comprising the steps of: receiving a modification to the source code, said modification being made by a user, determining whether the modification would change the semantics of the source code, and handling the modification depending on the result of the determining step.
    Type: Grant
    Filed: January 16, 2008
    Date of Patent: December 25, 2012
    Assignee: International Business Machines Corporation
    Inventors: Andreas Arning, Friedemann Schwenkreis
  • Patent number: 8341609
    Abstract: A computer is programmed to automatically identify multiple sequences of executable code such that each sequence fits within a page of memory. When the executable code comprising several sequences is loaded into the paged memory, each sequence is placed in its own page. The computer is further programmed to prepare a number of structures which identify a corresponding number of instructions that transfer control between sequences. Each structure identifies at least a control transfer instruction in one sequence and a target in another sequence. When loading the sequences into memory, the structures are used to replace destination addresses of control transfers between sequences with new addresses derived from base addresses of pages that have been allocated in memory to hold the sequences.
    Type: Grant
    Filed: January 26, 2007
    Date of Patent: December 25, 2012
    Assignee: Oracle International Corporation
    Inventors: Robert H. Lee, David Unietis, Mark Jungerman
  • Patent number: 8336021
    Abstract: The present invention extends to methods, systems, and computer program products for managing set membership. A set definition is translated into one or more membership conditions. Each membership condition includes statements about the attributes of a resource that are to be true if the resource is to be included in the set. For any given resource request, resources touched by the request are compared to membership conditions applicable to the touched resources. Thus, embodiments of the invention minimize the work that is done to determine which sets a resource may or may not belong to whenever a resource is modified. Accordingly, based on available resources, embodiments of the invention can scale to accommodate larger numbers of sets and larger numbers of potential members of sets.
    Type: Grant
    Filed: December 15, 2008
    Date of Patent: December 18, 2012
    Assignee: Microsoft Corporation
    Inventors: Craig V. McMurtry, Nima Ganjeh, Vadim Meleshuk, Stephen J. Pek
  • Patent number: 8321846
    Abstract: Systems, methods, and other embodiments associated with executable templates are described. One example method includes generating an executable template from a set of template data. When an executable template is executed, the executable template creates one or more instantiated entities. These instantiated entities may then be combined with entities created from portions of the original template that were not compilable into the executable format.
    Type: Grant
    Filed: November 13, 2008
    Date of Patent: November 27, 2012
    Assignee: Oracle International Corporation
    Inventor: Ramkrishna Chatterjee
  • Patent number: 8321847
    Abstract: A device receives selection of a function category associated with a dynamically-type programming language, receives selection of a function associated with the selected function category, dynamically generates one or more function signatures associated with the selected function, and stores at least a subset of the one or more function signatures in a memory or displays at least a subset of the one or more function signatures to a user.
    Type: Grant
    Filed: May 17, 2007
    Date of Patent: November 27, 2012
    Assignee: The MathWorks, Inc.
    Inventors: Christopher F. Garvin, Roy Lurie
  • Patent number: 8312437
    Abstract: Architecture allows a programmer to answer questions about the source code the programmer is authoring, questions that cannot be answered by other means. A searching mechanism is provided over a much more structured presentation of the source code. The architecture utilizes components that provide an intimate knowledge about the structure of the text, namely, the source code of some particular programming language. The search mechanism employs an abstract syntax tree representation of the code over which the search is conducted. The program source code (as edited by the programmer) is transformed into the abstract syntax tree to embody the structure of the program. If the syntax tree is provided in XML, for example, an XML search mechanism such as Xpath can be utilized to perform the actual searching. This tree is then queried, allowing richer searching criteria to be expressed (by virtue of the structured format of the tree).
    Type: Grant
    Filed: December 30, 2008
    Date of Patent: November 13, 2012
    Assignee: Microsoft Corporation
    Inventor: Peter Villadsen
  • Patent number: 8307351
    Abstract: A system and method is provided for performing code provenance review in a software due diligence system. In particular, performing code provenance review may include sub-dividing source code under review and third-party source into logical fragments using a language-independent text fracturing algorithm. For example, the fracturing algorithm may include a set of heuristic rules that account for variations in coding style to create logical fragments that are as large as possible without being independently copyrightable. Unique fingerprints may then be generated for the logical fragments using a fingerprint algorithm that features arithmetic computation. As such, potentially related source code may be identified if sub-dividing the source code under review and the third-party source code produces one or more logical fragments that have identical fingerprints.
    Type: Grant
    Filed: March 18, 2009
    Date of Patent: November 6, 2012
    Assignee: Oracle International Corporation
    Inventor: Juergen Weigert
  • Patent number: 8302084
    Abstract: A technique is disclosed for correcting inconsistent language model parameters associated with a compiled computer readable project. One or more compiled units are analyzed to identify compiler commentary therein. Based on the debugging information, it is determined whether inconsistent language model parameters exist. If so, a user is allowed to apply a correction strategy to correct the one or more inconsistent parameters.
    Type: Grant
    Filed: November 9, 2007
    Date of Patent: October 30, 2012
    Assignee: Oracle America, Inc.
    Inventors: Alexander Simon, Andrew Krasny
  • Patent number: 8302087
    Abstract: A system and method for automatic code generation includes parsing source code in a source program to automatically generate reliability, accessibility and serviceability (RAS) code in response to the source code. The automatically generated code is executed in a check in stage. All, a portion or none of the automatically generated code is selectively removed during a check out stage to keep the source program clean and focused.
    Type: Grant
    Filed: January 5, 2007
    Date of Patent: October 30, 2012
    Assignee: International Business Machines Corporation
    Inventors: Naga Arun Kumar Ayachitula, Andrew J. Bradfield, Shu-Ping Chang, James S. Lipscomb
  • Patent number: 8296744
    Abstract: Embodiments of tree-based directed graph programming structures for a declarative programming language are provided. In various embodiments, complex graph structured data, referred to as “DGraphs” herein in one non-limiting implementation, is authored using a compact, human friendly syntax without the use of explicit identifiers. In one non-limiting aspect, the syntax includes support for conformance relationships, also referred to as factored relationships. In another non-limiting aspect, the semistructured graph data is a tree-based representation and the syntax includes lexical resolution of references or lexical scoping, and/or non local initialization.
    Type: Grant
    Filed: October 3, 2008
    Date of Patent: October 23, 2012
    Assignee: Microsoft Corporation
    Inventors: David E. Langworthy, John L. Hamby, Bradford H. Lovering, Donald F. Box
  • Patent number: 8291398
    Abstract: A compiler system and method for calculating a value to be assigned to a variable for optimizing a program. The apparatus includes a subrange analysis unit for analyzing, for an instruction to assign a value to a variable in the program, a range of the value being assignable to the variable by the instruction, as a subrange of the variable in a case where instruction is executed; a determination unit for determining if the execution result of the program changes if the instruction assigns any value in the subrange of the variable to the variable on the basis of the analyzed subrange of the variable; and a replacement unit for replacing the instruction to assign the value to the variable with an instruction to assign a constant value in the subrange of the variable to the variable.
    Type: Grant
    Filed: October 28, 2008
    Date of Patent: October 16, 2012
    Assignee: International Business Machines Corporation
    Inventors: Motohiro Kawahito, Hideaki Komatsu, Takao Moriyama
  • Patent number: 8286150
    Abstract: A computer is caused to function as a parsing unit, a macroblocking analyzing unit, a junction-node restructuring unit, an identical portion merging/restructuring unit, a similar portion merging/restructuring unit, and an intermediate language restructuring unit. The parsing unit performs syntax analysis of a source code. The macroblocking analyzing unit segments the program written in the source code into blocks and appends a virtual portion representing a unique number in a statement, to a number for identifying a variable for the statement in each block to virtualize a calculation pattern. The junction-node restructuring unit extracts a node directly related to a subroutine block. The identical portion merging/restructuring unit merges pre-processing together and post-processing together for a subroutine called up at a multiple portions in the program. The similar portion merging/restructuring unit integrates subroutines having similar structures into a related subroutine.
    Type: Grant
    Filed: August 18, 2009
    Date of Patent: October 9, 2012
    Assignee: Fujitsu Limited
    Inventor: Koichiro Yamashita
  • Patent number: 8286250
    Abstract: A computer-implemented method, a system and a computer program product for determining whether a browser extension leaks information over a network, is provided. A control flow graph (CFG) is generated from a source code included in the browser extension. The CFG is particular to the programming language included in the source code. A sensitive path in the CFG is determined. The sensitive path begins at a sensitive source node and ends at a sensitive end node. A set of tainted variables in the CFG are identified, where each tainted variable stores sensitive or personal information. A subset of tainted variables is generated where each tainted variable in the subset is included in the sensitive path. When a tainted variable in the subset is included in the sensitive end node, the browser extension is determined to leak information over the network.
    Type: Grant
    Filed: November 16, 2011
    Date of Patent: October 9, 2012
    Assignee: Google Inc.
    Inventors: Minh Thoai Anh Le, Andrew Swerdlow
  • Patent number: 8286149
    Abstract: A novel and useful mechanism for optimizing the detection of dependencies in a software system via feedback between static and dynamic engines. The present invention enables dynamic analysis to be more effective by using the results of static analysis to identify sections that need to be traced during dynamic analysis. The method also increases the accuracy of static analysis by using dynamic values as inputs to static analysis. Dynamic values used as inputs for static analysis are a result of dynamic analysis. The mechanism first executes a static analysis, then executes a dynamic analysis targeting the sections identified by the static analysis and finally executes a static analysis using the dynamic values identified during the dynamic analysis in order to detect dependencies.
    Type: Grant
    Filed: October 15, 2007
    Date of Patent: October 9, 2012
    Assignee: International Business Machines Corporation
    Inventors: Nurit Dor, Yishai Abraham Feldman, Inbal Ronen, Sara Porat
  • Patent number: 8285670
    Abstract: Reducing coherency problems in a data processing system is provided. Source code that is to be compiled is received and analyzed to identify at least one of a plurality of loops that contain a memory reference. A determination is made as to whether the memory reference is an access to a global memory that should be handled by a direct buffer. Responsive to an indication that the memory reference is an access to the global memory that should be handled by the direct buffer, the memory reference is marked for direct buffer transformation. The direct buffer transformation is then applied to the memory reference.
    Type: Grant
    Filed: July 22, 2008
    Date of Patent: October 9, 2012
    Assignee: International Business Machines Corporation
    Inventors: Tong Chen, John K. O'Brien, Tao Zhang
  • Patent number: 8281289
    Abstract: An execution binary image creating device includes an execution binary reading section (1) reading configuration information representing an internal configuration of an execution binary program to be executed on a computer and includes a deletable area detecting section (2) acquiring the configuration information of the execution binary program, analyzing information to be used in performing address resolution at a time of execution, and detecting a deletable area in the execution binary program, when the address resolution is not performed. Further, the device includes an execution binary rewriting section (3) rewriting the deletable area in the execution binary program into specific data and using an execution binary image creating section (4) reducing the data amount of the specific data included in the execution binary program, and converting the execution binary program into an execution binary image in a format recognizable on the computer.
    Type: Grant
    Filed: July 25, 2006
    Date of Patent: October 2, 2012
    Assignee: Panasonic Corporation
    Inventors: Kazuomi Kato, Teruto Hirota, Tetsuji Yamamoto
  • Patent number: 8271964
    Abstract: Described herein are methods and systems for providing software development services in a networked software development environment. For instance, instead of performing compilation on a stand-alone desktop computer, software development activities including, compilation are performed by a service provider in response to a general query from a client requester. Such a network desirably has a global view of the source files being processed by various software development tools associated therewith. This global view enables many interesting approaches including the ability to perform analysis and optimizations to the input files not specified by the client requester. Such anticipatory processing may be based on the history and pattern of previous requests and availability of software development tools that the client requester is not aware of, for instance.
    Type: Grant
    Filed: May 16, 2005
    Date of Patent: September 18, 2012
    Assignee: Microsoft Corporation
    Inventors: Benjamin G. Zorn, David R. Hanson
  • Patent number: 8266605
    Abstract: Described is a method and system for optimizing a code layout for execution on a processor including internal and/or external cache memory. The method and system includes executing a program having a first layout, generating at least one memory access parameter for the program, the memory access parameter being based on a cache memory of a computing system on which the program is designed to run and constructing a second layout for the program as a function of the at least one memory access parameter.
    Type: Grant
    Filed: February 22, 2006
    Date of Patent: September 11, 2012
    Assignee: Wind River Systems, Inc.
    Inventors: Roger Wiles, Maarten Koning
  • Patent number: 8266603
    Abstract: The present invention relates to allocating registers to variables in order to compile a program. In an embodiment of the present invention a compiler apparatus stores interference information indicating an interference relationship between variables, selects a register and allocates the register to each variables in accordance with a predetermined procedure, without allocating the same register to a set of variables having interference relationships. The compiler further replaces multiple variables having the same register allocated thereto with a new variable and generates an interference relationship by merging the interference relationships each concerning one of multiple variables.
    Type: Grant
    Filed: June 4, 2008
    Date of Patent: September 11, 2012
    Assignee: International Business Machines Corporation
    Inventors: Tatsushi Inagaki, Hideaki Komatsu, Takuya Nakaike, Rei Odaira
  • Patent number: 8261251
    Abstract: An error handling operation for checking of an array access in program code is modified during compilation thereof. A sequentially arranged null checking operation and array bounds checking operation for the array access are located. The array bounds checking operation has a corresponding error handling operation operable for setting an array bounds error. The located sequentially arranged null checking operation is removed. The corresponding error handling operation for the located sequentially arranged array bounds checking operation is modified to perform the removed null checking operation during execution of the program code.
    Type: Grant
    Filed: October 22, 2008
    Date of Patent: September 4, 2012
    Assignee: International Business Machines Corporation
    Inventor: Allan Henry Kielstra
  • Patent number: 8261247
    Abstract: In a method of modifying code of a running computer program so as to modify the running computer program without having to restart the running computer program for changes to the running computer program to take effect, the improvement is disclosed of: (a) comparing differences in the running program's running binary code versus object code produced by compiling the running program's source code and (b) using the results of step (a), determining what values to use for symbols in said changes to the program. The compiling may be performed using either the compiler originally used to compile the running program or a different compiler. A data storage medium having instructions stored therein for a computer to perform the improved method is also disclosed.
    Type: Grant
    Filed: October 1, 2008
    Date of Patent: September 4, 2012
    Assignee: Oracle International Corporation
    Inventor: Jeffrey Brian Arnold
  • Patent number: 8255881
    Abstract: A method for calculating a composite risk is disclosed. The method may include receiving information associated with a plurality of risk factors. The information may include a timeline for each risk factor, and the timeline may include a plurality of discrete time points. The method may further include determining risk values indicative of risk levels of each risk factor associated with the plurality of discrete time points. The method may also include calculating the composite risk using the determined risk values and a relationship between the composite risk and the plurality of risk factors. The composite risk may include a plurality of composite risk values associated with the plurality of discrete time points.
    Type: Grant
    Filed: June 19, 2008
    Date of Patent: August 28, 2012
    Assignee: Caterpillar Inc.
    Inventors: Nathan Lee Wilson, Scott William Streitmatter, Frank Chapman Bellrose, Bruce Gehlbach Howell, Stanley Russell Kaniecki
  • Patent number: 8255887
    Abstract: A memory management mechanism requires data structures to be explicitly deallocated in the programming code, but deallocation does not immediately make the memory available for reuse. Before a deallocated memory region can be reused, memory is scanned for pointers to the deallocated region, and any such pointer is set to null. The deallocated memory is then available for reuse. Preferably, deallocated memory regions are accumulated, and an asynchronous memory cleaning process periodically scans memory to nullify the pointers. In order to prevent previously scanned memory becoming contaminated with a dangling pointer before the scan is finished, any write to a pointer is checked to verify that the applicable target address has not been deallocated.
    Type: Grant
    Filed: November 29, 2006
    Date of Patent: August 28, 2012
    Assignee: International Business Machines Corporation
    Inventor: Timothy Hume Heil
  • Patent number: 8255884
    Abstract: Mechanisms for optimizing scalar code executed on a single instruction multiple data (SIMD) engine are provided. Placement of vector operation-splat operations may be determined based on an identification of scalar and SIMD operations in an original code representation. The original code representation may be modified to insert the vector operation-splat operations based on the determined placement of vector operation-splat operations to generate a first modified code representation. Placement of separate splat operations may be determined based on identification of scalar and SIMD operations in the first modified code representation. The first modified code representation may be modified to insert or delete separate splat operations based on the determined placement of the separate splat operations to generate a second modified code representation. SIMD code may be output based on the second modified code representation for execution by the SIMD engine.
    Type: Grant
    Filed: June 6, 2008
    Date of Patent: August 28, 2012
    Assignee: International Business Machines Corporation
    Inventors: Alexandre E. Eichenberger, Michael K. Gschwind, John A. Gunnels
  • Patent number: 8250551
    Abstract: A method and apparatuses for allowing additional tail call optimizations. The compiler generates both optimized and non-optimized code for tail call candidates. At a later time when there is more information (e.g. regarding program bounds), a decision and a modification to the executable code is made, implementing one of the two earlier codes.
    Type: Grant
    Filed: January 17, 2008
    Date of Patent: August 21, 2012
    Assignee: International Business Machines Corporation
    Inventors: James A. Kryka, Tim C. Muehe, Robert R. Roediger, Roger W. Southwick
  • Patent number: 8245204
    Abstract: Managing program function parameters using compiler directives is provided. A parameter management system can include a compiler coupled to a primary symbol-type dictionary and a supplemental symbol-type dictionary containing parameter data for specific function calls of corresponding generic type functions. Notably, directive processing logic can be configured both to populate the supplemental symbol-type dictionary based upon processor directives embedded in source code, and also to substitute specific function calls for generic function calls in the source code as specified in the supplemental symbol-type dictionary.
    Type: Grant
    Filed: December 31, 2007
    Date of Patent: August 14, 2012
    Assignee: International Business Machines Corporation
    Inventors: Ying Chau Raymond Mak, Wang Dong Chen, Larry Alexander Lindsay
  • Patent number: 8245206
    Abstract: A system and method for efficient string concatenation in a virtual machine (VM), or other runtime environment, and particularly for use in a system that includes a Java Virtual Machine (JVM). An embodiment improves the performance of string concatenation significantly by analysing the string concatenation chains during bytecode compilation and replacing the dynamic string concatenation code with fixed size structures without bounds checks or locks. The resulting code is also more suitable for inlining.
    Type: Grant
    Filed: December 12, 2007
    Date of Patent: August 14, 2012
    Assignee: Oracle International Corporation
    Inventors: Marcus Lagergren, Staffan Friberg
  • Publication number: 20120192162
    Abstract: Particular embodiments discover a relationship between a plurality of methods of a C++ object; define one or more rules to represent the relationship; verify the rules by symbolically executing the methods; and if the rules are verified, then use the rules when symbolically executing the methods so that bytecode of the methods is not executed.
    Type: Application
    Filed: January 20, 2011
    Publication date: July 26, 2012
    Applicant: FUJITSU LIMITED
    Inventors: Guodong Li, Sreeranga P. Rajan, Indradeep Ghosh
  • Patent number: 8225297
    Abstract: Various technologies and techniques are disclosed for providing software accessible metadata on a cache of a central processing unit. A multiprocessor has at least one central processing unit. The central processing unit has a cache with cache lines that are augmented by cache metadata. The cache metadata includes software-controlled metadata identifiers that allow multiple logical processors to share the cache metadata. The metadata identifiers and cache metadata can then be used to accelerate various operations. For example, parallel computations can be accelerated using cache metadata and metadata identifiers. As another example, nested computations can be accelerated using metadata identifiers and cache metadata. As yet another example, transactional memory applications that include parallelism within transactions or that include nested transactions can be also accelerated using cache metadata and metadata identifiers.
    Type: Grant
    Filed: August 6, 2007
    Date of Patent: July 17, 2012
    Assignee: Microsoft Corporation
    Inventors: Jan Gray, Timothy L. Harris, James Larus, Burton Smith
  • Patent number: 8225402
    Abstract: A method for detecting a SQL injection attack comprises a training phase and a detection phase. In the training phase, a plurality of SQL queries is transformed into a respective plurality of SQL token domain queries which are processed using a n-gram analysis to provide a threshold and an averaging vector. In the detection phase, each newly arrived SQL query is transformed into a new SQL token domain query, and the n-gram analysis is applied together with the averaging vector and the threshold to each new SQL token domain query to determine if the new SQL query is normal or abnormal. The detection may be online or offline.
    Type: Grant
    Filed: April 8, 2009
    Date of Patent: July 17, 2012
    Inventors: Amir Averbuch, Aviram Shmueli, Gil David
  • Patent number: 8225296
    Abstract: A plug-in for execution by an application on a computing device is selected by arranging for a server to iterate through available plug-ins, asking each plug-in in succession if it can better match the criteria required by the application than the previous plug-in. The plug-in having the closest match to the criteria is then executed by the application.
    Type: Grant
    Filed: June 8, 2005
    Date of Patent: July 17, 2012
    Assignee: Nokia Corporation
    Inventor: Karl McDowall
  • Patent number: 8214813
    Abstract: A method of optimizing code which invokes methods on a system across an interface is described. High level information relating to the system is accessed and this information is used in performing code transformations in order to optimize the code.
    Type: Grant
    Filed: January 12, 2007
    Date of Patent: July 3, 2012
    Assignee: Microsoft Corporation
    Inventors: Timothy Harris, Rebecca Isaacs, Eric Koskinen, Richard Mortier
  • Publication number: 20120167040
    Abstract: A solution for identifying build errors associated with a source code file for determining source code elements for refactoring. An embodiment of the invention utilizes a source code management system in combination with build logs generated by a build environment to determine source code elements that would benefit from refactoring.
    Type: Application
    Filed: March 5, 2012
    Publication date: June 28, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: STEPHEN A. DAVIES, Liam Smyth, Paul Thomas
  • Patent number: 8209662
    Abstract: Various technologies and techniques are disclosed for retargeting applications to different types. A development environment is provided for writing software. Input is received from a user to write application logic for a project. The user selects an option to save the project as a particular type of project. The application logic is wrapped with metadata appropriate for the particular type of project and at least one resulting file is created. The system determines if the resulting file needs compiled, and if so, compiles the resulting file into a compiled application. A second selection can be received from the user to save the project as a second type. In such a case, the application logic is wrapped with metadata appropriate for the second type of project and at least one resulting file is created.
    Type: Grant
    Filed: December 4, 2006
    Date of Patent: June 26, 2012
    Assignee: Microsoft Corporation
    Inventors: Adam D. Nathan, John I. Montgomery
  • Patent number: 8205192
    Abstract: Compiler device for optimizing program which manipulates a character string includes append instruction detection unit, store code generation unit, and append code generation unit. The append instruction detection unit detects an append instruction which appends a character string to a string variable for storing a character string, in the program. The store code generation unit generates, a substitute for each of a plurality of the append instructions detected by the append instruction detection unit, a store code for storing data of an appendant character string to be appended to the string variable by the append instruction into a buffer. The append instructions append the character strings to the same string variable. The append code generation unit generates append code for appending a plurality of the appendant character strings to the string variable, at a position executed before an instruction to refer to the string variable in the program.
    Type: Grant
    Filed: November 10, 2008
    Date of Patent: June 19, 2012
    Assignee: International Business Machines Corporation
    Inventors: Takeshi Ogasawara, Tamiya Onodera, Mikio Takeuchi