Including Graph Or Tree Representation (e.g., Abstract Syntax Tree Or Ast) Patents (Class 717/144)
  • Patent number: 8407676
    Abstract: A device (100) for managing a plurality of software items, the device (100) comprising an analysis unit (103) adapted for analyzing a functional correlation between the plurality of software items, and a grouping unit (105) adapted for grouping functionally correlated ones of the plurality of software items together in a common memory space.
    Type: Grant
    Filed: June 18, 2008
    Date of Patent: March 26, 2013
    Assignee: NXP B.V.
    Inventor: Bart Jansseune
  • Patent number: 8407260
    Abstract: A method of controlling the storage of web objects in a storage media, the web objects forming a closed web site and being adapted for delivery to a user, the web objects being stored on the basis of predictive determinations of which web object has the highest probability of being selected from the closed web site by the user.
    Type: Grant
    Filed: June 13, 2007
    Date of Patent: March 26, 2013
    Assignee: International Business Machines Corporation
    Inventors: Frederic Bauchot, Jean-Luc Collet, Gerard Marmigere, Michel Porta
  • Patent number: 8381178
    Abstract: The system and method in one aspect allow understanding of Boolean expressions by representing them graphically as a flow of information. NOTs are represented as switches in the flow, capturing the original structure of the expression as written by the user. Verification of those expressions with live data is also enabled.
    Type: Grant
    Filed: July 2, 2009
    Date of Patent: February 19, 2013
    Assignee: International Business Machines Corporation
    Inventors: Jacquelyn A. Martino, Paul M. Matchen, Rosario A. Uceda-Sosa
  • Patent number: 8381185
    Abstract: An apparatus, system, and method are disclosed for analyzing code paths. In one embodiment, a starting point for one or more code paths within a listing of code is specified. The starting point may include code from which one or more code paths flow. An ending point is also specified for one or more code paths within the code, wherein the ending point includes code that is reachable via one or more of the code paths flowing from the starting point. Each code path flowing from the starting point to the ending point is determined by analyzing the listing of code without execution of the code. Information about the determined code paths is provided to a user.
    Type: Grant
    Filed: March 31, 2009
    Date of Patent: February 19, 2013
    Assignee: International Business Machines Corporation
    Inventors: Neil Everett Bohling, Douglas Lee Lehr, David Charles Reed, Max Douglas Smith
  • Patent number: 8375355
    Abstract: System and method for converting a class oriented data flow program to a structure oriented data flow program. A first data flow program is received, where the first data flow program is an object oriented program comprising instances of one or more classes, and wherein the first data flow program is executable to perform a first function. The first data flow program is automatically converted to a second data flow program, where the second data flow program does not include the instances of the one or more classes, and where the second data flow program is executable to perform the first function. The second data flow program is stored on a computer memory, where the second data flow program is configured to be deployed to a device, e.g., a programmable hardware element, and where the second data flow program is executable on the device to perform the first function.
    Type: Grant
    Filed: April 27, 2009
    Date of Patent: February 12, 2013
    Assignee: National Instruments Corporation
    Inventors: Stephen R. Mercer, Akash B. Bhakta, Matthew E. Novacek
  • Patent number: 8370817
    Abstract: A mechanism is provided for optimizing scalar code executed on a single instruction multiple data (SIMD) engine by aligning the slots of SIMD registers. With the mechanism, a compiler is provided that parses source code and, for each statement in the program, generates an expression tree. The compiler inspects all storage inputs to scalar operations in the expression tree to determine their alignment in the SIMD registers. This alignment is propagated up the expression tree from the leaves. When the alignments of two operands in the expression tree are the same, the resulting alignment is the shared value. When the alignments of two operands in the expression tree are different, one operand is shifted. For shifted operands, a shift operation is inserted in the expression tree. The executable code is then generated for the expression tree and shifts are inserted where indicated.
    Type: Grant
    Filed: May 27, 2008
    Date of Patent: February 5, 2013
    Assignee: International Business Machines Corporation
    Inventors: Alexandre E. Eichenberger, John Kevin Patrick O'Brien
  • Patent number: 8359584
    Abstract: A system and method for debugging a computer program by using a call graph. A call graph that represents trace events during execution of a debuggee program may be used as input to a system that enables a user to debug the debuggee program. Mechanisms facilitate conditionally forming clusters of event nodes, a cluster indicative of multiple event nodes corresponding to an execution of a source language statement. During a debugging session, in response to a command to perform a step operation, the nodes of a cluster are processed together so that a step corresponds to multiple events if the multiple events correspond to a single source language statement. A mechanism for inspecting variables is provided. Variable values may be selectively propagated and provided based on the call graph and a static control flow analysis of the debuggee program.
    Type: Grant
    Filed: December 18, 2009
    Date of Patent: January 22, 2013
    Assignee: Microsoft Corporation
    Inventors: Abhijit Rao, Steven J. Steiner
  • Patent number: 8356290
    Abstract: System and method for converting a class oriented data flow program to a structure oriented data flow program. A first data flow program is received, where the first data flow program is an object oriented program comprising instances of one or more classes, and wherein the first data flow program is executable to perform a first function. The first data flow program is automatically converted to a second data flow program, where the second data flow program does not include the instances of the one or more classes, and where the second data flow program is executable to perform the first function. The second data flow program is stored on a computer memory, where the second data flow program is configured to be deployed to a device, e.g., a programmable hardware element, and where the second data flow program is executable on the device to perform the first function.
    Type: Grant
    Filed: April 27, 2009
    Date of Patent: January 15, 2013
    Assignee: National Instruments Corporation
    Inventors: Stephen R. Mercer, Akash B. Bhakta, Matthew E. Novacek
  • Patent number: 8356289
    Abstract: A mechanism for encoding and reporting instrumented data is disclosed that requires less storage space and incurs less processor overhead than other methods of the prior art. In accordance with the illustrative embodiment, a bit vector in shared memory corresponds to nodes of a program's control-flow graph that have been instrumented, and the contents of the vector indicate which of these nodes have executed; in addition, character strings in shared memory indicate what file, class, and method each node belongs to. A process that executes concurrently with those of the program under test transmits instrumented data from the shared memory to a database. The illustrative embodiment enables efficient, rapid reporting and storage of instrumented data, and is therefore especially well-suited for run-time analysis of real-time concurrent systems.
    Type: Grant
    Filed: September 29, 2008
    Date of Patent: January 15, 2013
    Assignee: Avaya Inc.
    Inventors: Juan Jenny Li, David Mandel Weiss
  • Publication number: 20130014093
    Abstract: The present invention relates to a code inspection executing system for performing a code inspection of ABAP source codes, and particularly, to a code inspection executing system for performing a code inspection of ABAP source codes, which provides the reliable maintainability, performance, accuracy, stability, and security of an ABAP application by inspecting coding defects such as system failure and stoppage, data loss and transformation, excessive performance deterioration, erroneous behavior of functions and results thereof, complex code structures, and spelling errors.
    Type: Application
    Filed: April 5, 2010
    Publication date: January 10, 2013
    Applicant: SOFT4SOFT CO., LTD.
    Inventor: Heon Ki Lee
  • Patent number: 8341523
    Abstract: A method and system for providing help information for a computer program. The help system provides help information based on a schema that specifies the structure of a valid computer program. The schema provides definitions of program element types that are specific instances of a program element type derived from more general program element types. The help system identifies a “derivation” of program element types relating to the selected program element. The help system then displays the derivation to the user. The user can then select to display documentation associated with the displayed program element types.
    Type: Grant
    Filed: January 21, 2010
    Date of Patent: December 25, 2012
    Assignee: Intentional Software Corporation
    Inventor: Charles Simonyi
  • Patent number: 8336035
    Abstract: Embodiments described herein are directed to allowing a user to extend the functionality of a software code interpretation system. In one embodiment, a computer system receives user-defined conversion rules from a user for converting dynamic language code to continuation-based abstract memory representations. The computer system identifies portions of software code that are to be converted from dynamic language abstract memory representations into continuation-based abstract memory representations, where the identified code portions include undefined, extensible input primitives. The computer system also generates a dynamic, extensible set of output primitives interpretable by a continuation-based code interpretation system using the received conversion rules and converts the identified code portions including the undefined, extensible input primitives from dynamic language abstract memory representations into continuation-based abstract memory representations using the generated set of output primitives.
    Type: Grant
    Filed: December 16, 2008
    Date of Patent: December 18, 2012
    Assignee: Microsoft Corporation
    Inventors: John Robert Lambert, Kenneth D. Wolf, Geoffrey M. Kizer
  • Patent number: 8316355
    Abstract: Methods and systems are provided for analyzing parallelism of program code. According to a method, the sequential execution of the program code is simulated so as to trace the execution procedure of the program code, and parallelism of the program code is analyzed based on the result of the trace to the execution procedure of the program code. Execution information of the program code is collected by simulating the sequential execution of the program code, and parallelism of the program code is analyzed based on the collected execution information, so as to allow programmers to perform parallel task partitioning of the program code with respect to a multi-core architecture more effectively, thus increasing the efficiency of parallel software development.
    Type: Grant
    Filed: June 18, 2008
    Date of Patent: November 20, 2012
    Assignee: International Business Machines Corporation
    Inventors: Bo Feng, Rong Yan, Kun Wang, Hua Yong Wang
  • Patent number: 8311806
    Abstract: An apparatus for processing a sequence of tokens to detect predetermined data, wherein each said token has a token type, and the predetermined data has a structure that comprises a predetermined sequence of token types, including at least one optional token type. The apparatus comprises a processor arranged to: provide a tree for detecting the predetermined data, the tree comprising a plurality of states, each said state being linked with at least one other state by a respective condition, the arrangement of linked states forming a plurality of paths; and compare the token types of the sequence of tokens to respective conditions in the tree to match the sequence of tokens to one or more paths in the tree, wherein the predetermined data can be detected without using an epsilon reduction to take account of said at least one optional token type.
    Type: Grant
    Filed: September 29, 2008
    Date of Patent: November 13, 2012
    Assignee: Apple Inc.
    Inventors: Olivier Bonnet, Frederic de Jaeger, Romain Goyet
  • 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: 8312426
    Abstract: A method for service composition whereby a tag query is received and a processing graph is composed in accordance with the tag query. The processing graph is composed by using annotated primal data and services. The processing graph includes at least one of the services. The service included in the processing graph is deployed in an execution environment.
    Type: Grant
    Filed: January 7, 2008
    Date of Patent: November 13, 2012
    Assignee: International Business Machines Corporation
    Inventors: Eric Bouillet, Zhen Liu, Anton V. Riabov
  • Patent number: 8307372
    Abstract: A method for constructing a processing request so that an information processing application satisfying the processing request can be assembled, includes: inputting a processing request, wherein the processing request includes a goal that is represented by a graph pattern that semantically describes a desired processing outcome; and assembling a processing graph that includes at least one component that satisfies the desired processing outcome, wherein the processing graph is assembled by associating the graph pattern that semantically describes the desired processing outcome with a graph pattern that semantically describes an applicability condition of the at least one component or a graph pattern that semantically describes an inclusion effect of the at least one component.
    Type: Grant
    Filed: April 2, 2007
    Date of Patent: November 6, 2012
    Assignee: International Business Machines Corporation
    Inventors: Mark D. Feblowitz, Nagui Halim, Zhen Liu, Anand Ranganathan, Anton V. Riabov
  • 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: 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
  • Publication number: 20120254845
    Abstract: System and method for vectorizing combinations of program operations. Program code is received that includes a combination of individually vectorizable program portions that collectively implement a first computation. Each individually vectorizable program portion has at least one array input and at least one array output. The combination of individually vectorizable program portions is transformed into a single vectorizable program portion that is or includes a functional composition of the combination of individually vectorizable program portions. Vectorized executable code implementing the first computation is generated based on the single vectorizable program portion. The generated executable code is directed to SIMD (Single-Instruction-Multiple-Data) computing units of a target processor.
    Type: Application
    Filed: March 30, 2011
    Publication date: October 4, 2012
    Inventors: Haoran Yi, Brady C. Duggan, Robert E. Dye, Adam L. Bordelon, Jeffrey L. Kodosky
  • Patent number: 8266595
    Abstract: A method and apparatus for identifying a minimum call tree data structure from a plurality of call tree data structures are provided. With the apparatus and method, call tree data structures are generated for two or more executions of a build of a computer program. The apparatus and method perform a “tree-minimization” operation in which the two or more call trees generated during runs of the computer program are walked and only those nodes that are present in each of the tree data structures are maintained in a minimized tree data structure. In addition, the minimum values for these common nodes are maintained in the minimized tree data structure. In this way, asynchronous events are removed from the minimum tree data structure and analysis may focus on those areas of the computer program that are consistent between runs of the computer program.
    Type: Grant
    Filed: February 12, 2004
    Date of Patent: September 11, 2012
    Assignee: International Business Machines Corporation
    Inventors: William Preston Alexander, III, Robert Tod Dimpsey, Frank Eliot Levine, Robert John Urquhart
  • 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: 8250557
    Abstract: There is disclosed a method and system for configuring a data dependency graph (DDG) to handle instruction scheduling in computer architectures permitting dynamic by-pass execution, and for performing dynamic by-pass scheduling utilizing such a configured DDG. In accordance with an embodiment of the invention, a heuristic function is used to obtain a ranking of nodes in the DDG after setting delays at all identified by-pass pairs of nodes in the DDG to 0. From among a list of identified by-pass pairs of nodes, a node that is identified as being the least important to schedule early is marked as “bonded” to its successor, and the corresponding delay for that identified node is set to 0. Node rankings are re-computed and the bonded by-pass pair of nodes are scheduled in consecutive execution cycles with a delay of 0 to increase the likelihood that a by-pass can be successfully taken during run-time execution.
    Type: Grant
    Filed: May 7, 2008
    Date of Patent: August 21, 2012
    Assignee: International Business Machines Corporation
    Inventors: Marcel Mitran, Alexander Vasilevskiy
  • Patent number: 8234634
    Abstract: A method, computer program and system for consuming reusable software assets, said assets being described with elements and attributes, said assets containing at least one variable element (VPs) themselves containing at least one variant. The user executes a program on a computer by first choosing the asset to be consumed. A decision tree corresponding to the asset is traversed, each decision point corresponding to a variable element. The decision point is processed by asking the user inputs to modify the variants of the corresponding variable elements. The modified variable elements are stored. The dependency of the decision point is indicated by a dependency attribute in the variable element.
    Type: Grant
    Filed: May 5, 2008
    Date of Patent: July 31, 2012
    Assignee: International Business Machines Corporation
    Inventors: Regis Coqueret, Bertrand H. Portier
  • Patent number: 8225288
    Abstract: Some embodiments of the present invention provide a system that tests a software program. During operation, the system creates a behavioral model of the software program using branches, decisions, and options. Next, the system generates a test case from the behavioral model and executes the test case on the software program. Finally, the system analyzes an output of the executed test case to determine a validity of the software program.
    Type: Grant
    Filed: January 29, 2008
    Date of Patent: July 17, 2012
    Assignee: Intuit Inc.
    Inventors: Michael D. Miller, Ryan R. Ulaszek
  • Patent number: 8225279
    Abstract: A method for service composition whereby a tag query is received and a processing graph is composed in accordance with the tag query. The processing graph is composed by using annotated primal data and services. The processing graph includes at least one of the services. The service included in the processing graph is deployed in an execution environment.
    Type: Grant
    Filed: January 7, 2008
    Date of Patent: July 17, 2012
    Assignee: International Business Machines Corporation
    Inventors: Eric Bouillet, Zhen Liu, Anton V. Riabov
  • Patent number: 8225299
    Abstract: Program converting methods, apparatus and systems including a code analysis unit for performing lexical and syntactic analyses of a source code of an execution program, an optimization unit for transforming this execution program, and an output code generation unit for converting the transformed execution program into a machine language code. In addition, this optimization unit detects a calling procedure and a called procedure in a procedure call of this execution program analyzed by the code analysis unit, guards an evaluation of an argument described in the called procedure under a predetermined evaluation condition, and transforms the execution program so that the evaluation is performed when referring to this argument.
    Type: Grant
    Filed: November 26, 2007
    Date of Patent: July 17, 2012
    Assignee: International Business Machines Corporation
    Inventor: Mikio Takeuchi
  • Patent number: 8214814
    Abstract: Embodiments of the invention enable application programs running across multiple compute nodes of a highly-parallel system to compile source code into native instructions, and subsequently share the optimizations used to compile the source code with other nodes. For example, determining what optimizations to use may consume significant processing power and memory on a node. In cases where multiple nodes exhibit similar characteristics, it is possible that these nodes may use the same set of optimizations when compiling similar pieces of code. Therefore, when one node compiles source code into native instructions, it may share the optimizations used with other similar nodes, thereby removing the burden for the other nodes to figure out which optimizations to use. Thus, while one node may suffer a performance hit for determining the necessary optimizations, other nodes may be saved from this burden by simply using the optimizations provided to them.
    Type: Grant
    Filed: June 24, 2008
    Date of Patent: July 3, 2012
    Assignee: International Business Machines Corporation
    Inventors: Eric L. Barsness, David L. Darrington, Amanda Peters, John Matthew Santosuosso
  • Patent number: 8196122
    Abstract: A XLANG/s compilation method is provided that uses data flow analysis of a program's flow graph to determine lifetimes of a data object. A flowgraph is created according to abstract computer instructions. A depth-first order is assigned to basic blocks and a dominance relationship between the basic blocks is determined. A determination is made as to whether any loops are present within the flowgraph and, if so, the loops are identified. A creation point, destruction point and lock point for the data object is determined. Instructions are inserted into the computer code to create the at least one data object at the creation point, to destroy the data object at the destruction point and to lock the data object at the lock point.
    Type: Grant
    Filed: February 16, 2007
    Date of Patent: June 5, 2012
    Assignee: Microsoft Corporation
    Inventors: Donald James McCrady, Paul F. Ringseth, Bimal Mehta
  • Patent number: 8196056
    Abstract: A mechanism for processing graphical block diagram parameter expressions is presented. The mechanism achieves optimal implementation of block equations in the execution (run-time) environment by defining a mapping between user-defined block parameters and a run-time version of the parameters. The parameter processing mechanism also pools like, non-interfaced parameter expressions, allowing reuse of both uniform and non-uniform data across constant block parameters in the generated code and during model execution. The parameter processing mechanism further maintains an execution structure that maps the run-time parameter expressions containing interfaced variables to generated code for the block diagram so that the interfaced variables appear in the generated code. This mapping thus allows for interfacing to the interfaced variables in the generated code from any execution framework.
    Type: Grant
    Filed: July 24, 2001
    Date of Patent: June 5, 2012
    Assignee: The MathWorks, Inc.
    Inventor: John Edward Ciolfi
  • Patent number: 8191052
    Abstract: A method and apparatus for producer graph oriented programming and execution. According to one aspect of the invention, a runtime is provided that interprets producer dependency declarations for methods. The producer dependency declarations identify at run time a set of zero or more producers, where a producer is a runtime instantiatable construct that includes at least an instance and a method associated with that instance. The runtime automatically generates and executes, responsive to receiving a designation of a producer of interest whose method has a producer dependency declaration, a producer graph. The producer graph initially includes the producer of interest and is generated, from the producer of interest to source producers, through instantiation of producers based on the producer dependency declarations of the methods of the producers already in the producer graph. The runtime sequences the execution of the producers in the producer graph as by the producer graph.
    Type: Grant
    Filed: December 1, 2006
    Date of Patent: May 29, 2012
    Assignee: Murex S.A.S.
    Inventors: Fady Chamieh, Elias Eddé
  • Patent number: 8181167
    Abstract: The present invention provides a method and system for producing intermediate representation of source code listings with possibly mixed syntaxes to assist software development applications in presenting and analyzing the source code listings through reading the intermediate representation. A source code processor calls Application Programming Interfaces (APIs) to preserve source code information, which includes intermediate representation data sets and is preferably stored in a file-based repository. The source code processor is of a compiler, a preprocessor, a parser, or a comment document processor. The data sets capture lexical, syntax and semantic information of source code construct elements, and comprise of location, processor identification, construct category, and attribute data.
    Type: Grant
    Filed: January 9, 2008
    Date of Patent: May 15, 2012
    Inventor: Kan Zhao
  • Patent number: 8181171
    Abstract: A dependent element group which is invertibly contractible is found by using program analysis information including a plurality of dependent elements representing dependent relationships of statement and control, the statement and the control being included in a program. Next, a program dependence graph in which dependent elements are made to be contracted is generated by contracting the found dependent element group. The number of vertices and the number of edges of the program dependence graph are reduced by the contraction of the dependent elements, so that a program dependence graph with a rough granularity can be generated. As a result, a calculation amount (calculation time) necessary for optimization processing such as parallel processing of the program can be reduced. That is, by generating the contracted program dependence graph having invertibility, it is possible to realize the analysis and optimization of large-scale software in a realistic time.
    Type: Grant
    Filed: August 14, 2008
    Date of Patent: May 15, 2012
    Assignee: Fujitsu Limited
    Inventors: Makiko Ito, Hideo Miyake, Atsuhiro Suga
  • Patent number: 8171438
    Abstract: Provided are a method, system, and article of manufacture for verification of a program partitioned according to the control flow information of the program. Properties are received indicating outcome states for a program. The program is processed to determine a control flow in the program and paths in the control flow. Enabled paths are determined in the control flow having states satisfying requirements of the outcome states. For each enabled path, a determination is made of inert variables not used along the control flow of the path and a representation of states and transitions for the enabled path is generated, wherein the represented states and transitions do not include the inert variables. The generated representation of the states and transitions for the enabled path are combined into a merged computation image.
    Type: Grant
    Filed: August 25, 2006
    Date of Patent: May 1, 2012
    Assignee: International Business Machines Corporation
    Inventor: David Ward
  • Patent number: 8171449
    Abstract: A software tool is provided to analyze static source code. Source Code files are selected to define the project work space. A class and a method in the class are selected from said selected source code files. The tool generates a Call Tree as an ordered recursive sequence of all method calls in different classes or their instances that are invoked by said selected method in said selected class. A Sequence Diagram is generated from said Call Tree. The tool remembers all updates to the Call Tree used to generate the Sequence Diagram. This information is used when a generated Sequence Diagram is impacted due to changes made to any source code file included in the project.
    Type: Grant
    Filed: January 7, 2009
    Date of Patent: May 1, 2012
    Assignee: International Business Machines Corporation
    Inventors: Kapil Bhandari, Divya Bharti, Kallol Pal
  • Patent number: 8166465
    Abstract: A method for assembling a stream processing application in which data source descriptions, component descriptions and a stream processing request are input and used to assemble a stream processing graph. Each of the data source descriptions includes a graph pattern that semantically describes an output of a data source, each of the component descriptions includes a graph pattern that semantically describes an input of a component and a graph pattern that semantically describes an output of the component, the stream processing request includes a goal that is represented by a graph pattern that semantically describes a desired stream processing outcome and the stream processing graph includes at least one data source or at least one component that satisfies the desired processing outcome.
    Type: Grant
    Filed: April 2, 2007
    Date of Patent: April 24, 2012
    Assignee: International Business Machines Corporation
    Inventors: Mark D. Feblowitz, Zhen Liu, Anand Ranganathan, Anton V. Riabov
  • Patent number: 8166466
    Abstract: Which target functions in a target binary have target function basic blocks that match the source function basic blocks in a source function in a source binary is determined. For the target functions having matching target function basic blocks, a target function control flow graph is determined that has the greatest control flow matching strength to a source function control flow graph, wherein a node in the source function control graph represents a source function basic block, wherein a node in a target function control graph represents a target function basic block in a corresponding target function.
    Type: Grant
    Filed: June 22, 2007
    Date of Patent: April 24, 2012
    Assignee: Microsoft Corporation
    Inventors: Harish Mohanan, Perraju Bendapudi, Abishek Kumarasubramanian, Rajesh Jalan, Ramarathnam Venkatesan
  • Patent number: 8161469
    Abstract: Compiled configuration files for different programmable logic devices that are intended to be functionally equivalent may be compared using multiple different comparisons to assure functional equivalence. The different comparisons include a fitter or resource report comparison, an engineering bit settings report that compares vectors of bits that represent the settings of hard logic blocks, and comparisons based on location, connectivity and functionality. These comparisons are particularly well-suited for determining equivalence between different models of programmable logic devices, or even different types of devices such as field-programmable gate arrays as compared to mask-programmable logic devices.
    Type: Grant
    Filed: December 13, 2005
    Date of Patent: April 17, 2012
    Assignee: Altera Corporation
    Inventors: Mihail Iotov, Erhard Joachim Pistorius, Jim Park, David Karchmer
  • Patent number: 8156457
    Abstract: Simulating hardware includes generating a data flow representation of the hardware, based on a hardware description language (HDL) description. The data flow representation including compatibility information that preserves behavioral and synthesizable characteristics of the HDL description. Simulating hardware further includes generating code from the data flow representation, and executing the code concurrently.
    Type: Grant
    Filed: September 24, 2009
    Date of Patent: April 10, 2012
    Assignee: Synopsys, Inc.
    Inventors: Claudio Basile, Giacinto Paolo Saggese, Keith Whisnant
  • Patent number: 8156508
    Abstract: Runtime execution of one or more tasks defined in a workflow process language. The method may include obtaining a description of the task from a process ontology (PO). The PO may define a hierarchical taxonomy of executable tasks, where each task refers to at least one frame of a hierarchical frame taxonomy of the PO. The method may further include identifying at least one parameter as described in the frame description to which the task refers, resolving the value of the at least one parameter, and executing the most specific applicable version of the task contained in the task taxonomy of the process ontology.
    Type: Grant
    Filed: December 3, 2007
    Date of Patent: April 10, 2012
    Assignee: Software AG
    Inventors: Allesandro Tommasi, Cesare Zavattari, Harald Schöning, Andreas Frohlich, Michael Gesmann
  • Patent number: 8156559
    Abstract: To achieve end-to-end security, traditional machine-to-machine security measures are insufficient if the integrity of the graphical user interface (GUI) is compromised. GUI logic flaws are a category of software vulnerabilities that result from logic flaws in GUI implementation. The invention described here is a technology for uncovering these flaws using a systematic reasoning approach. Major steps in the technology include: (1) mapping a visual invariant to a program invariant; (2) formally modeling the program logic, the user actions and the execution context, and systematically exploring the possibilities of violations of the program invariant; (3) finding real spoofing attacks based on the exploration.
    Type: Grant
    Filed: November 30, 2006
    Date of Patent: April 10, 2012
    Assignee: Microsoft Corporation
    Inventors: Shuo Chen, Jose Meseguer, Ralf Sasse, Jiahe Helen Wang, Yi-Min Wang
  • Patent number: 8146070
    Abstract: Inter-procedural strength reduction is provided by a mechanism of the present invention to optimize software program. During a forward pass, the present invention collects information of global variables and analyzes the information to select candidate computations for optimization. During a backward pass, the present invention replaces costly computations with less costly or weaker computations using pre-computed values and inserts store operations of new global variables to pre-compute the costly computations at definition points of the global variables used in the costly computations.
    Type: Grant
    Filed: November 13, 2008
    Date of Patent: March 27, 2012
    Assignee: International Business Machines Corporation
    Inventors: Roch Georges Archambault, Shimin Cui, Raul Esteban Silvera
  • Patent number: 8146055
    Abstract: A software tool is provided to analyze static source code. Source Code files are selected to define the project work space. A class and a method in the class are selected from said selected source code files. The tool generates a Call Tree as an ordered recursive sequence of all method calls in different classes or their instances that are invoked by said selected method in said selected class. A Sequence Diagram is generated from said Call Tree. The tool remembers all updates to the Call Tree used to generate the Sequence Diagram. This information is used when a generated Sequence Diagram is impacted due to changes made to any source code file included in the project.
    Type: Grant
    Filed: April 18, 2008
    Date of Patent: March 27, 2012
    Assignee: International Business Machines Corporation
    Inventors: Kapil Bhandari, Divya Bharti, Kallol Pal
  • Publication number: 20120072892
    Abstract: According to some embodiments, a token synchronization gateway may be recognized in a graph-based business process model, such as a business process modeling notation model. A number of upstream artifacts located upstream from the token synchronization gateway may then be identified in the business process modeling notation model. In addition, a final artifact may be identified directly in front of the token synchronization gateway. The token synchronization gateway may then be compiled into code that will be executed at runtime to perform a synchronization process. The synchronization process may, for example, include handling tokens T1 through Tn to synchronize the upstream artifacts, with each token being associated with one of the n upstream artifacts.
    Type: Application
    Filed: September 20, 2010
    Publication date: March 22, 2012
    Inventors: Sören Balko, Thomas Hettel
  • Patent number: 8141073
    Abstract: A software tool is provided to analyze static source code. Source Code files are selected to define the project work space. A class and a method in the class are selected from said selected source code files. The tool generates a Call Tree as an ordered recursive sequence of all method calls in different classes or their instances that are invoked by said selected method in said selected class. A Sequence Diagram is generated from said Call Tree. The tool remembers all updates to the Call Tree used to generate the Sequence Diagram. This information is used when a generated Sequence Diagram is impacted due to changes made to any source code file included in the project.
    Type: Grant
    Filed: April 10, 2008
    Date of Patent: March 20, 2012
    Assignee: International Business Machines Corporation
    Inventors: Kapil Bhandari, Divya Bharti, Kallol Pal
  • Patent number: 8141059
    Abstract: A method/system for avoiding software conflicts, with library being divided into layer 1 to layer M and M?1.
    Type: Grant
    Filed: December 22, 2006
    Date of Patent: March 20, 2012
    Assignee: International Business Machines Corporation
    Inventors: Yong Ding, Xiao Bing Guo, Hui Su, Zhepeng Wang, Shiwan Zhao
  • Patent number: 8131610
    Abstract: Systems and methods are provided for computerized processing of invoices which a company has presented to, for example, two or more customers. The systems and methods may be configured to select, from a plurality of invoices, invoices which are due within a preselectable time or on a preselectable date and the balance of which is larger than a preselectable first value, and to assign a first state to the selected invoices.
    Type: Grant
    Filed: November 2, 2004
    Date of Patent: March 6, 2012
    Assignee: SAP AG
    Inventor: Mike Soumokil
  • Patent number: 8127269
    Abstract: The invention provides a solution for transforming a flow graph model to a structured flow language model. In particular, the nodes in the flow graph model are traversed, and each node is mapped to an activity in the structured flow language model. When a node comprises a branch point, the corresponding branch region is identified and mapped. This process is repeated until all nodes in the flow graph model have been mapped to corresponding activities in the structured flow language model. In this manner, the desired nesting and containment relationships can be identified and generated in the structured flow language model.
    Type: Grant
    Filed: August 4, 2005
    Date of Patent: February 28, 2012
    Assignee: International Business Machines Corporation
    Inventors: Jie Hu, Raymond L. Kong, Curtis Miles
  • Patent number: 8127281
    Abstract: A computer implemented method, system and computer program product for efficient multiple-pattern based matching and transformation of intermediate language expression trees in a compiler. Such an approach includes three constructs of pattern matchers namely a registry, a mapped registry and a registry instance for constructing multiple patterns and for enabling a matching and transformation process. These constructs narrow the number of relevant patterns applied against input expressions without repeatedly implementing an algorithm and also significantly reduce memory footprint and compilation time.
    Type: Grant
    Filed: December 12, 2007
    Date of Patent: February 28, 2012
    Assignee: International Business Machines Corporation
    Inventor: Arie Tal
  • Patent number: 8122441
    Abstract: Embodiments of the invention enable application programs running across multiple compute nodes of a highly-parallel system to compile source code into native instructions, and subsequently share the optimizations used to compile the source code with other nodes. For example, determining what optimizations to use may consume significant processing power and memory on a node. In cases where multiple nodes exhibit similar characteristics, it is possible that these nodes may use the same set of optimizations when compiling similar pieces of code. Therefore, when one node compiles source code into native instructions, it may share the optimizations used with other similar nodes, thereby removing the burden for the other nodes to figure out which optimizations to use. Thus, while one node may suffer a performance hit for determining the necessary optimizations, other nodes may be saved from this burden by simply using the optimizations provided to them.
    Type: Grant
    Filed: June 24, 2008
    Date of Patent: February 21, 2012
    Assignee: International Business Machines Corporation
    Inventors: Eric L. Barsness, David L. Darrington, Amanda Peters, John Matthew Santosuosso