Including Graph Or Tree Representation (e.g., Abstract Syntax Tree Or Ast) Patents (Class 717/144)
  • Patent number: 8875110
    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: Grant
    Filed: April 5, 2010
    Date of Patent: October 28, 2014
    Assignee: Soft4soft Co., Ltd.
    Inventor: Heon Ki Lee
  • Patent number: 8875111
    Abstract: A system and method for facilitating analysis and modification of a computer program. A directed graph is generated from an intermediate language representation of a computer program function, with a node representing each instruction. Meta-edges or meta-nodes are inserted into the directed graph to facilitate location of instruction nodes. One type of meta-edge is a back edge that identifies branch instruction nodes. Some meta-nodes may identify instructions of a specific type. Some meta-nodes may identify exception blocks and corresponding handlers. Analysis of a program function may include insertion of new instructions prior to execution of the function.
    Type: Grant
    Filed: April 23, 2009
    Date of Patent: October 28, 2014
    Assignee: Microsoft Corporation
    Inventors: Leon Dubinsky, John Lyon-Smith
  • Patent number: 8875112
    Abstract: A source-level compiler may randomly select compilation conventions to implement portable content protection, securing the secrets embedded in a program by shuffling associated data. The program may be developed using a source language that is applicative on the associated data. To obscure the embedded secrets, in one embodiment, pre-compiler software may be deployed for compiling the program in a random-execution-order based on a random seed indication that randomly selects compilation conventions and a shuffling algorithm that moves the associated data across the program during execution.
    Type: Grant
    Filed: March 22, 2012
    Date of Patent: October 28, 2014
    Assignee: Intel Corporation
    Inventor: Gary L. Graunke
  • Patent number: 8869121
    Abstract: Data processing using multidimensional fields is described along with methods for advantageously using high-level language codes.
    Type: Grant
    Filed: July 7, 2011
    Date of Patent: October 21, 2014
    Assignee: Pact XPP Technologies AG
    Inventors: Martin Vorbach, Frank May, Armin Nückel
  • Patent number: 8869106
    Abstract: A language service provider framework that generates an application context of a dynamic language program being authored. The application context includes a description of the dynamic language application being authored, one or more specific locations within the program, and runtime environment information. A language service provider port component holds one or more language service providers. Each language service provider may receive the application context and generate a set of available symbols corresponding to each of at least one of the identified one or more specific locations. A management component receives the application context from the application context generation component, provides the application context the language service provider, and correspondingly receives the available symbol set from the language service provider.
    Type: Grant
    Filed: December 16, 2011
    Date of Patent: October 21, 2014
    Assignee: Microsoft Corporation
    Inventors: Charles P. Jazdzewski, Michael C. Fanning, Randy S. Kimmerly, A. Michael Horton
  • Patent number: 8863105
    Abstract: An automatic control system capable of executing a control program in parallel is described. The system includes more than one unit controller, each executing in parallel at least a part of the program to be executed by the automatic control system; a compiler, connected to one of the unit controllers, for converting the program to be executed by the automatic control system into tasks executed in parallel by the unit controllers; an interconnection network, for connecting the unit controllers, such that information on one of the unit controllers is transferred to another one via the interconnection network.
    Type: Grant
    Filed: November 28, 2008
    Date of Patent: October 14, 2014
    Assignee: Siemens Aktiengesellschaft
    Inventors: Ming Jie, Fei Long, Li Pan, Detlef Pauly
  • Patent number: 8863102
    Abstract: A method for assembling an information processing application, includes: inputting a plurality of component descriptions, wherein each of the component descriptions includes a graph pattern that semantically describes an applicability condition of a component and a graph pattern that semantically describes an inclusion effect of the component; 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; assembling a processing graph, wherein the processing graph includes at least one component that satisfies the desired processing outcome; and outputting the processing graph.
    Type: Grant
    Filed: April 2, 2007
    Date of Patent: October 14, 2014
    Assignee: International Business Machines Corporation
    Inventors: Mark D. Feblowitz, Nagui Halim, Zhen Liu, Anand Ranganathan, Anton V. Riabov
  • Patent number: 8849747
    Abstract: Systems, methods, apparatus, and computer-readable media for business process management include identifying a business process model generated with a business process modeling tool; transforming the business process model defined in a first format to one or more artifacts defined in a second format; deploying an output file defined by the one or more artifacts in an in-memory database; and executing the output file in the in-memory database base at least in part on one or more processes executing in the in-memory database in response to a received query for data stored in the in-memory database.
    Type: Grant
    Filed: April 24, 2012
    Date of Patent: September 30, 2014
    Assignee: SAP AG
    Inventors: Sören Balko, Kesavaprakash Vasudevan
  • Patent number: 8850410
    Abstract: A system and method for improving software maintainability, performance, and/or security by associating a unique marker to each software code-block; the system comprising of a plurality of processors, a plurality of code-blocks, and a marker associated with each code-block. The system may also include a special hardware register (code-block marker hardware register) in each processor for identifying the markers of the code-blocks executed by the processor, without changing any of the plurality of code-blocks.
    Type: Grant
    Filed: January 29, 2010
    Date of Patent: September 30, 2014
    Assignee: International Business Machines Corporation
    Inventors: Ramanjaneya S. Burugula, Joefon Jann, Pratap C. Pattnaik
  • Patent number: 8843902
    Abstract: A method and corresponding tool for estimating program execution time. A higher-level structure is received as an input, representing control flow through an executable program. The higher-level structure comprises one or more levels of parent nodes, each parent node representing internal structure comprising a group of one or more child nodes and one or more associated edges between nodes. The levels of the higher-level structure are probed to extract a substructure representing a route through the program from a start instruction to an end instruction, by selectively extracting nodes of different levels of parent to represent different regions along the route in dependence on a location of the start and end instructions relative to the levels of parent nodes. An execution time for the route through the program is estimated based on the extracted substructure, and a modification affecting the execution time is made in dependence on the estimation.
    Type: Grant
    Filed: March 12, 2010
    Date of Patent: September 23, 2014
    Assignee: XMOS Ltd.
    Inventor: Andrew Stanford-Jason
  • Patent number: 8843898
    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: August 14, 2012
    Date of Patent: September 23, 2014
    Assignee: International Business Machines Corporation
    Inventors: William P. Alexander, III, Robert T. Dimpsey, Frank E. Levine, Robert J. Urquhart
  • Patent number: 8832670
    Abstract: A method of generating a symbol table for a programmable logic controller which executes high-level language program is provided. The method includes reading the high-level language program and an association table specifying relationship between devices controlled by the programmable logic controller and variable names in the high-level language program; compiling and linking the high-level language program and the association table for determining a physical address for each of the variable names and the corresponding devices; generating the symbol table by the compiling and linking, the symbol table defining the determined physical address for each of the devices; and storing the symbol table in the memory of the programmable logic controller. A programmable logic controller executing the high-level language program and storing the symbol table is also provided.
    Type: Grant
    Filed: July 1, 2011
    Date of Patent: September 9, 2014
    Assignee: Mitsubishi Electric Corporation
    Inventor: Noriyasu Fukatsu
  • Patent number: 8832655
    Abstract: A system, method, and computer-readable medium, is described that finds similarities among programming applications based on semantic anchors found within the source code of such applications. The semantic anchors may be API calls, such as Java's package and class calls of the JDK. Latent Semantic Indexing may be used to process the application and semantic anchor data and automatically develop a similarity matrix that contains numbers representing the similarity of one program to another.
    Type: Grant
    Filed: September 29, 2011
    Date of Patent: September 9, 2014
    Assignee: Accenture Global Services Limited
    Inventor: Mark Grechanik
  • Patent number: 8826240
    Abstract: Application validation is performed based at least in part on object level hierarchy data associated with the application. An application is executed on a physical or emulated host device, and assembly code is generated for the executing application. The assembly code is analyzed to identify objects associated with the application, and to identify relationships between the objects. Based on the object and relationship data, an object level hierarchy is generated for the application. Validation of the application may be performed by comparing an object level hierarchy for a current version of the application to a previously generated hierarchy for a previous version of the application to identify differences between to the two hierarchies.
    Type: Grant
    Filed: September 29, 2012
    Date of Patent: September 2, 2014
    Assignee: Appurify, Inc.
    Inventors: Manish Lachwani, Jay Srinivasan, Rahul Jain, Pratyus Patnaik
  • Patent number: 8819672
    Abstract: A system and method for application migration include matching an infrastructure of a source application with a plurality of multi-image work sets from a catalog by selecting a mapping of components of the infrastructure with components in the multi-image work sets to provide one or more selected multi-images. The source application is migrated to a target environment using the one or more selected multi-images.
    Type: Grant
    Filed: September 20, 2010
    Date of Patent: August 26, 2014
    Assignee: International Business Machines Corporation
    Inventors: Nikolai A. Joukov, Birgit M. Pfitzmann
  • Patent number: 8813044
    Abstract: A method, system, and article of manufacture are disclosed for transforming a definition of a process for delivering a service. This service process definition is comprised of computer readable code. The method comprises the steps of expressing a given set of assumptions in a computer readable code; and transforming said process definition by using a processing unit to apply said assumptions to said process definition to change the configuration of the process definition. The process definition may be transformed by using factors relating to the specific context in or for which the process definition is executed. Also, the process definition may be transformed by identifying, in a flow diagram for the service process definition, flows to which the assumptions apply, and applying program rewriting techniques to those identified flows.
    Type: Grant
    Filed: September 6, 2012
    Date of Patent: August 19, 2014
    Assignee: International Business Machines Corporation
    Inventors: David F. Bantz, Steven J. Mastrianni, James R. Moulic, Dennis G. Shea
  • Patent number: 8813047
    Abstract: A practical language for writing analysis and transformation tools for C/C++ and other languages is provided. This language, YATL, is imperative in style and designed to be easy to use for someone familiar with the grammar of the target language. It allows the developer to describe transformations with reference to elements of the target grammar through a pluggable personality to a compiler. This provides the means for powerful, yet easy to write, transformation programs, while fundamentally remaining language agnostic.
    Type: Grant
    Filed: September 8, 2005
    Date of Patent: August 19, 2014
    Assignee: Alcatel Lucent
    Inventors: Daniel G. Waddington, Bin Yao
  • Patent number: 8793649
    Abstract: The present invention relates to an XML application framework (XAF). XAF applications are data driven such that all operations with the computer system are data focused. In addition, the components used in the XAF application are instantiated and connected according to how the data is displayed and what type of data is used. Applications within XAF comprise a user interface (UI) connector, an action module, and a data connector. UI connectors receive UI events and connect the UI event to an action module. The action module generates a standard format action from the UI event and sends it to the data connector. The data connector translates the standard format action into a data-specific action that changes data in a data store. A data connector then sends a standard format data representation corresponding to the changed data back to the UI connector to provide the changed data to the UI.
    Type: Grant
    Filed: March 2, 2012
    Date of Patent: July 29, 2014
    Assignee: Microsoft Corporation
    Inventors: Antony S. Williams, Clemens A. Szyperski, Craig Wittenberg
  • Patent number: 8793656
    Abstract: A selection method and related application is provided for a framework-based application having programming applications with both language program files and configuration files. In one embodiment, the method comprises abstracting a frame configuration model instance by analyzing configuration files prior to any modifications made to the program. The frame configuration model instance denoting individual configuration nodes in the framework model and further defining relationship between one or more code units in the configuration nodes and program code units in the application. Then one or more control test cases are constructed by profiling select test cases of the application, wherein the control flow consists of code units traversed during test case execution and control flow of said code units. Subsequently, an extended control flow is obtained by correlating configuration nodes in the framework configuration model instance with the code units in said control flow.
    Type: Grant
    Filed: December 23, 2010
    Date of Patent: July 29, 2014
    Assignee: International Business Machines Corporation
    Inventors: Sheng Huang, Shao C. Li, Zhong J. Li, He H. Liu, Hua F. Tan, Jun Zhu, Wei Zhu
  • Patent number: 8793673
    Abstract: An illustrative embodiment provides a computer-implemented process for algorithm complexity identification through inter-procedural data flow analysis receives a call graph to form a set of received nodes in a static analysis framework, identifies a parent node in the set of received nodes to form an identified parent, traverses the call graph from the identified parent node to a node to identify a function within the node to form an identified function. Each identified function is analyzed to form a complexity value in a set of complexity values. Responsive to a determination that node analysis is complete, and responsive to a determination that path analysis is complete, determines whether path analysis for the identified parent is complete. Responsive to a determination that path analysis for the identified parent is complete, sum the complexity values in the set of complexity values for the identified parent and return the complexity value for the identified parent to a requester.
    Type: Grant
    Filed: November 2, 2010
    Date of Patent: July 29, 2014
    Assignee: International Business Machines Corporation
    Inventors: Steven J. Gutz, Mohammed Mostafa, Joshua P. Tessier
  • Patent number: 8776031
    Abstract: Embodiments of the present invention provide computer program products, methods, and systems for extracting and revising data for a resource embedded in a dynamic-link library (DLL) assembly. In various embodiments, the DLL assembly is loaded and data for a resource is extracted from the assembly. In particular embodiments, a manifest is created that includes a path for the extracted data extracted. This path includes information on placing the data for the resource into the assembly to construct a necessary DLL structure compatible with the program application. After the extracted data has been edited to create replacement data, in various embodiments, the replacement data is imported into the assembly based on the path for the extracted data and the assembly is compiled to create a revised DLL that may be read by the program application in place of or in addition to the original DLL assembly to utilize the replacement data.
    Type: Grant
    Filed: August 9, 2012
    Date of Patent: July 8, 2014
    Assignee: Noble Systems Corporation
    Inventors: Michael Christopher Frances Goodwin, Andrew Michael Krock
  • Patent number: 8769506
    Abstract: Various technologies and techniques are disclosed for using a command interpreter at design time of a software application. A command interpreter can be used to design and test the functionality of an application at design time. The command interpreter allows a user to identify a command to execute for a selected object at design time of an application being developed within a software application design environment. The command interpreter causes the identified command to be executed. A selected object can be sent from a visual tree to the command interpreter. The command interpreter receives the object sent from the visual tree and assigns a designated object name for referencing the object in the command interpreter. The designated object name is displayed within the command interpreter to allow a user to have an abbreviated way of issuing one or more commands for the object from the command interpreter.
    Type: Grant
    Filed: September 24, 2007
    Date of Patent: July 1, 2014
    Assignee: Microsoft Corporation
    Inventors: Lester Oscar Lobo, Siridhar Vellanki, Jeremy Zhou Wang
  • Patent number: 8769507
    Abstract: A method, system, and article of manufacture are disclosed for transforming a definition of a process for delivering a service on a specified computing device. This service process definition is comprised of computer readable code. The method comprises the steps of expressing a given set of assumptions in a computer readable code; and transforming the definition by using a processing unit to apply the assumptions to the definition of the process to change the way in which the process operates. The definition of the process may be transformed by using factors relating to the specific context in or for which the definition is executed. Also, the definition may be transformed by identifying, in a flow diagram for the process, flows to which the assumptions apply, and applying program rewriting techniques to those identified flows.
    Type: Grant
    Filed: May 14, 2009
    Date of Patent: July 1, 2014
    Assignee: International Business Machines Corporation
    Inventors: David F. Bantz, Steven J. Mastrianni, James R. Moulic, Dennis G. Shea
  • Patent number: 8762969
    Abstract: Immutable structures are employed to effect immutable parsing. In particular, an immutable parsing configuration, comprising a stack and lookahead buffer, is utilized by a parser to perform lexical and syntactical analysis of an input stream and optionally output an immutable parse tree or the like. Performance with respect to the immutable structures can be optimized utilizing sharing and lazy computation. In turn, immutability benefits are afforded with respect to parsing including safe sharing amongst services and/or across multiple threads as well as history preservation, among other things.
    Type: Grant
    Filed: August 7, 2008
    Date of Patent: June 24, 2014
    Assignee: Microsoft Corporation
    Inventors: Henricus Johannes Maria Meijer, John Wesley Dyer, Thomas Meschter, Cyrus Najmabadi
  • Patent number: 8762834
    Abstract: Methods and apparatus, including computer program products, for a user interface for defining a text file transformation. A method of processing a text file includes retrieving the text file, displaying the text file and a tree structure showing processing commands, and performing a set of visual editing operations to extract given portions of the text file while discarding other text, characters or white space, the displayed tree structure updated to include all processing commands representative of the visual editing operations. The method can include previewing the results of and/or debugging the editing operations using the displayed processing commands in the tree structure.
    Type: Grant
    Filed: September 29, 2006
    Date of Patent: June 24, 2014
    Assignee: Altova, GmbH
    Inventors: Alexander Falk, Vladislav Gavrielov
  • Patent number: 8762970
    Abstract: A method for grouping algorithms included in a program into groups and thus for assisting in analyzing the program. The method includes the steps of: converting each of the algorithms into a directed graph; judging, as to each representative directed graph stored in a storage unit of a computer system, whether or not the directed graph obtained by the conversion is similar to the representative directed graph; and determining a group to which the directed graph obtained by the conversion belongs from among groups stored in the storage unit in accordance with the similarity judgment. A computer system for performing the above method and a computer program for causing a computer system to perform the above method are also described.
    Type: Grant
    Filed: December 14, 2009
    Date of Patent: June 24, 2014
    Assignee: International Business Machines Corporation
    Inventor: Motohiro Kawahito
  • Patent number: 8756587
    Abstract: Static analysis of a computer software application can be performed by applying a first level of abstraction to model a plurality of run-time objects, thereby producing a set of object abstractions. Static data-flow analysis of the computer software application can be performed using the set of object abstractions, thereby producing a first data-flow propagation graph. A data-flow bottleneck can be identified within the data-flow propagation graph. A second level of abstraction can be applied to model any of the run-time objects having in the set of object abstractions a corresponding object abstraction that is traceable to the data-flow bottleneck. The applying the second level of abstraction can decompose the corresponding object abstraction into a set of object abstractions, thereby modifying the set of object abstractions. Static data-flow analysis of the computer software application can be performed using the modified set of object abstractions.
    Type: Grant
    Filed: September 30, 2011
    Date of Patent: June 17, 2014
    Assignee: International Business Machines Corporation
    Inventors: Marco Pistoia, Omer Tripp
  • Patent number: 8745599
    Abstract: A computer-implemented probabilistic pointer analysis method using SSA form comprises the steps of: evaluating a program in an SSA form comprising a target pointer to determine pointer relations between the target pointer, a plurality of aliased pointers related to the target pointer and at least a probable location of the target pointer; and generating a direct probabilistic relation between the target pointer and the at least a probable location of the target pointer according to the pointer relation.
    Type: Grant
    Filed: January 19, 2012
    Date of Patent: June 3, 2014
    Assignee: National Tsing Hua University
    Inventors: Jenq Kuen Lee, Ming Yu Hung, Yuan Shin Hwang, Peng Sheng Chen
  • Patent number: 8738360
    Abstract: A method of processing a sequence of characters, the method comprising converting the sequence of characters into a sequence of tokens so that each token comprises a lexeme and one of a plurality of token types. Each of the plurality of token types relates to at least one of a plurality of predetermined functions, wherein at least one said token type relates to multiple functions of the plurality of predetermined functions.
    Type: Grant
    Filed: September 29, 2008
    Date of Patent: May 27, 2014
    Assignee: Apple Inc.
    Inventors: Olivier Bonnet, Frederic de Jaeger, Romain Goyet
  • Patent number: 8725697
    Abstract: Techniques for cloud data backup are disclosed. Example methods may store backup data from a client computer on portions of data storage media associated with peer computers. In some example embodiments, a file may be encoded into segments using an error-tolerant encoding scheme, and the segments may be stored on peer computers. In some example embodiments, individual segments may be stored on more than one peer machine and/or an individual peer machine may not receive all of the segments associated with the file.
    Type: Grant
    Filed: February 4, 2013
    Date of Patent: May 13, 2014
    Assignee: Empire Technology Development LLC
    Inventor: Andrew Wolfe
  • Patent number: 8719805
    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: May 9, 2012
    Date of Patent: May 6, 2014
    Inventor: Kan Zhao
  • Patent number: 8713065
    Abstract: A hybrid object tree that interconnects individual data objects of different data types from a group of different input data sources is provided. The instantiated data objects of the hybrid object tree include an internal dynamic data area that encapsulates at least one reference to an original input data source. At least one attribute is identified that is unavailable at the referenced original input data source of a first instantiated data object of the hybrid object tree. The at least one attribute is added to the first instantiated data object of the hybrid object tree within the internal dynamic data area of the first instantiated data object.
    Type: Grant
    Filed: August 18, 2011
    Date of Patent: April 29, 2014
    Assignee: International Business Machines Corporation
    Inventor: Arthur L. De Magalhaes
  • Patent number: 8705080
    Abstract: A print shop management method or system is used for a print shop. The method or system uses a knowledge base containing device data elements and service data elements. Each device data element represents a device in the print shop, and each service data element represents a service that may be implemented by one or more of the devices. A workflow management system implements an automated reasoner that, when a new device is added or one or more parameters of a device in the print shop are modified, uses semantic reasoning to select a service that may be implemented by the modified device, updates the knowledge base to include a new device element for the new or modified device; and automatically associates the new device element and the selected service.
    Type: Grant
    Filed: September 11, 2007
    Date of Patent: April 22, 2014
    Assignee: Xerox Corporation
    Inventors: Michael David Shepherd, Barry Glynn Gombert
  • Patent number: 8707275
    Abstract: A scheduler receives a job graph which includes a graph of computational vertices that are designed to be executed on multiple distributed computer systems. The scheduler queries a graph manager to determine which computational vertices of the job graph are ready for execution in a local execution environment. The scheduler queries a cluster manager to determine the organizational topology of the distributed computer systems to simulate the determined topology in the local execution environment. The scheduler queries a data manager to determine data storage locations for each of the computational vertices indicated as being ready for execution in the local execution environment. The scheduler also indicates to a vertex spawner that an instance of each computational vertex is to be spawned in the local execution environment based on the organizational topology and indicated data storage locations, and indicates to the local execution environment that the spawned vertices are to be executed.
    Type: Grant
    Filed: September 14, 2010
    Date of Patent: April 22, 2014
    Assignee: Microsoft Corporation
    Inventors: Massimo Mascaro, Igor Ostrovsky, Emad A. Omara
  • Patent number: 8694980
    Abstract: An embodiment of the invention pertains to a weighted directed graph comprising multiple nodes and edges that each extends between two nodes. The embodiment includes processing edges to generate a forward and reverse edge corresponding to each edge. Forward and reverse edges are processed to generate indirect edges, each comprising two edge components, and extending between two nodes. One node associated with each forward edge, each reverse edge, and each indirect edge is selected to be the key node of its associated edge. All forward, reverse and indirect edges having a particular node as their respective key nodes are placed into a group. All edges of the group are then selectively processed to provide information pertaining to an egonet of the graph that has the particular node as its egonode.
    Type: Grant
    Filed: July 12, 2012
    Date of Patent: April 8, 2014
    Assignee: International Business Machines Corporation
    Inventors: Marcel C. Rosu, Hanghang Tong
  • Patent number: 8694979
    Abstract: An embodiment of the invention pertains to a weighted directed graph comprising multiple nodes and edges that each extends between two nodes. The embodiment includes processing edges to generate a forward and reverse edge corresponding to each edge. Forward and reverse edges are processed to generate indirect edges, each comprising two edge components, and extending between two nodes. One node associated with each forward edge, each reverse edge, and each indirect edge is selected to be the key node of its associated edge. All forward, reverse and indirect edges having a particular node as their respective key nodes are placed into a group. All edges of the group are then selectively processed to provide information pertaining to an egonet of the graph that has the particular node as its egonode.
    Type: Grant
    Filed: June 26, 2012
    Date of Patent: April 8, 2014
    Assignee: International Business Machines Corporation
    Inventors: Marcel C. Rosu, Hanghang Tong
  • Patent number: 8689191
    Abstract: Automated refactorings as implemented in modern IDEs for Java usually make no special provisions for concurrent code. Thus, refactored programs may exhibit unexpected new concurrent behaviors. We analyze the types of such behavioral changes caused by current refactoring engines and develop techniques to make them behavior-preserving, ranging from simple techniques to deal with concurrency-related language constructs to a framework that computes and tracks synchronization dependencies. By basing our development directly on the Java Memory Model we can state and prove precise correctness results about refactoring concurrent programs. We show that a broad range of refactorings are not influenced by concurrency at all, whereas other important refactorings can be made behavior-preserving for correctly synchronized programs by using our framework. Experience with a prototype implementation shows that our techniques are easy to implement and require only minimal changes to existing refactoring engines.
    Type: Grant
    Filed: March 5, 2010
    Date of Patent: April 1, 2014
    Assignee: International Business Machines Corporation
    Inventors: Julian Dolby, Max Schaefer, Manu Sridharan, Frank Tip, Emina Torlak
  • Patent number: 8689184
    Abstract: An apparatus, system, and computer-implemented method of managing a software program. The computer comprises a processor, a memory, and an input/output interface for receiving and transmitting information to and from the processor, the computer providing a development environment for developing a set of instructions executable by a system. The processor receives a first program containing information in machine-readable form. The information represents a first set of instructions executable by the system. A configuration is created for the system based on the received information. The processor generates a second program containing a second set of instructions executable by the system based on the configuration. The second set of instructions corresponds to at least one algorithm assembled in a nested hierarchy.
    Type: Grant
    Filed: March 9, 2012
    Date of Patent: April 1, 2014
    Assignee: The Procter & Gamble Company
    Inventors: Timothy Aaron Storer, Michael Wayne Ogden
  • Patent number: 8688743
    Abstract: A hybrid object tree that interconnects individual data objects of different data types from a group of different input data sources is provided. The instantiated data objects of the hybrid object tree include an internal dynamic data area that encapsulates at least one reference to an original input data source. At least one attribute is identified that is unavailable at the referenced original input data source of a first instantiated data object of the hybrid object tree. The at least one attribute is added to the first instantiated data object of the hybrid object tree within the internal dynamic data area of the first instantiated data object.
    Type: Grant
    Filed: March 29, 2012
    Date of Patent: April 1, 2014
    Assignee: International Business Machines Corporation
    Inventor: Arthur L. De Magalhaes
  • Patent number: 8689173
    Abstract: A mechanism is provided for detecting pattern occurrences utilizing a transformation software application on a computer. An input model is received in which the transformation software application is configured to detect model elements playing pattern roles, and report them in an output model (conforming to new pattern result language). A pattern specification is configured as a declarative transformation relation that is used by the transformation software application to detect pattern occurrences in the input model. Pattern occurrences are reported in the output model, where the pattern occurrences are instances of the pattern detected in the input model.
    Type: Grant
    Filed: January 21, 2011
    Date of Patent: April 1, 2014
    Assignee: International Business Machines Corporation
    Inventor: Maged Elaasar
  • Patent number: 8683449
    Abstract: A server device is configured to receive a request to identify a manner in which changed code propagates within an application; generate a group of blocks that correspond to code associated with a parent function corresponding to the application and which includes the changed code; perform an intra-procedural analysis on the group of blocks to identify a block that is affected by the changed code included within an epicenter block; perform an inter-procedural analysis on functions associated with the block, where, when performing the inter-procedural analysis, the server device is to generate another group of blocks associated with the functions, and identify another block that is affected by the changed code included within the epicenter block; and present, for display, information associated with the block or the other block that enables the application to be tested based on the block or the other block.
    Type: Grant
    Filed: October 28, 2010
    Date of Patent: March 25, 2014
    Assignee: Juniper Networks, Inc.
    Inventors: Abhishek Singh, Sachin Vasudeva
  • Patent number: 8661459
    Abstract: A content syndication platform, such as a web content syndication platform, manages, organizes and makes available for consumption content that is acquired from the Internet. In at least some embodiments, the platform can acquire and organize web content, and make such content available for consumption by many different types of applications. These applications may or may not necessarily understand the particular syndication format. An application program interface (API) exposes an object model which allows applications and users to easily accomplish many different tasks such as creating, reading, updating, deleting feeds and the like.
    Type: Grant
    Filed: June 21, 2005
    Date of Patent: February 25, 2014
    Assignee: Microsoft Corporation
    Inventors: Amar S. Gandhi, Edward J. Praitis, Jane T. Kim, Sean O. Lyndersay, Walter V. von Koch, William Gould, Bruce A. Morgan, Cindy Kwan
  • Patent number: 8656381
    Abstract: A machine-independent representation of computer instructions can serve as a standard for machine instruction description that is suitable for post-link transformation tools, such as post-link optimizers, and for education of users. In one embodiment the instructions are presented as expression trees in a XML file. An optimizer operates on the transformed code representations, after which optimized code is re-transformed into machine-readable code.
    Type: Grant
    Filed: December 7, 2006
    Date of Patent: February 18, 2014
    Assignee: International Business Machines Corporation
    Inventors: Maxim Gurevich, Gad Haber, Roy Levin
  • Patent number: 8645429
    Abstract: Resolving conflicting graph mutations in a distributed computing system. Graph data for at least a partition of a graph is stored in a worker system of a distributed computing system. The graph represents relationships among a set of tangible items that model a real-world condition having an associated problem. A plurality of conflicting mutation requests are received to mutate the graph. A conflict between the mutation requests is resolved with a conflict resolution function that lacks direct access to the graph data. The graph data is updated responsive to a result generated by resolving the conflict using the conflict resolution function.
    Type: Grant
    Filed: March 28, 2012
    Date of Patent: February 4, 2014
    Assignee: Google Inc.
    Inventors: Aart J. C. Bik, Matthew H. Austern, James C. Dehnert, Grzegorz Czajkowski, Grzegorz Malewicz, Naty Leiser
  • Patent number: 8645925
    Abstract: A source code inspection method and system. The method includes receiving by a computing system, source code files associated with a specified project. The computing system retrieves metrics data comprising software metrics associated with the source code files. The computing system generates first evaluation scores associated with the source code files. The computing system generates and presents to a user, a graph displaying the first evaluation scores. The computing system calculates parameter values associated with an evaluation function used to calculate second evaluation scores associated with the source code files. The computing system calculates the second evaluation scores by enabling the evaluation function using the parameter values. The computing system generates and presents to the user, a second graph displaying the second evaluation scores.
    Type: Grant
    Filed: June 27, 2013
    Date of Patent: February 4, 2014
    Assignee: International Business Machines Corporation
    Inventors: Nobuhiro Hosokawa, Yuka Mori, Miwako Naoi, Kazutaka Yamasaki
  • Patent number: 8645929
    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 indicated by the producer graph.
    Type: Grant
    Filed: April 25, 2012
    Date of Patent: February 4, 2014
    Assignee: Murex S.A.S.
    Inventors: Fady Chamieh, Elias Edde
  • Patent number: 8640111
    Abstract: Provided is a file conversion device which converts a file form written in a given language to a file form that can be interpreted by another language, which includes: a file readout device which reads description contents of an inputted file by each line, and manages the description contents by adding an index to each line of the read description contents; a syntax tree creating device which converts the description contents into a syntax tree of a tree structure based on the indexes through linearly scanning the indexes of the file managed by the file readout device; a syntax tree optimizing device which optimizes the tree structure of the syntax tree as a flowchart according to an optimization rule; and a file dividing device which divides the inputted file by having controllers in the flowchart optimized by the syntax tree optimizing device as identifiers.
    Type: Grant
    Filed: May 4, 2010
    Date of Patent: January 28, 2014
    Assignee: NEC Corporation
    Inventor: Shinji Takai
  • Patent number: 8640112
    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: Grant
    Filed: March 30, 2011
    Date of Patent: January 28, 2014
    Assignee: National Instruments Corporation
    Inventors: Haoran Yi, Brady C. Duggan, Robert E. Dye, Adam L. Bordelon, Jeffrey L. Kodosky
  • Patent number: 8627297
    Abstract: For the purpose of evaluating at least one characteristic value of at least one function in the execution of a program, a method uses a graphical representation of the at least one determined characteristic value associated with the functions. The representation is subdivided into a hierarchical structure, dependent on the degree of call depth of the function, and each call of a function in the graphical representation occupies an area whose size is dependent on the associated determined characteristic value in each case. In this context characteristic values can be any variables that are measurable by means of a profiler, as already explained in the introduction. Typically, an execution of a program is initiated via the calling of first functions, also referred to hereinafter as call depth 1. Said functions may possibly call further functions, i.e. of call depth 2, and so on, until processing of the desired task has been completed.
    Type: Grant
    Filed: July 1, 2008
    Date of Patent: January 7, 2014
    Assignee: Seimens Aktiengesellschaft
    Inventor: Thilo Opaterny
  • Patent number: 8621448
    Abstract: Systems and methods for the vectorization of software applications are described. In some embodiments, source code dependencies can be expressed in ways that can extend a compiler's ability to vectorize otherwise scalar functions. For example, when compiling a called function, a compiler may identify dependencies of the called function on variables other than parameters passed to the called function. The compiler may record these dependencies, e.g., in a dependency file. Later, when compiling a calling function that calls the called function, the same (or another) compiler may reference the previously-identified dependencies and use them to determine whether and how to vectorize the calling function. In particular, these techniques may facilitate the vectorization of non-leaf loops. Because non-leaf loops are relatively common, the techniques described herein can increase the amount of vectorization that can be applied to many applications.
    Type: Grant
    Filed: September 23, 2010
    Date of Patent: December 31, 2013
    Assignee: Apple Inc.
    Inventor: Jeffry E. Gonion