Class / Patent application number | Description | Number of patent applications / Date published |
717155000 | Data flow analysis | 30 |
20080282236 | PROCESS FLOW ANALYSIS BASED ON PROCESSING ARTIFACTS - A plurality of reporting elements are applied to a process, which reporting elements, during operation of the process, generate processing artifacts each including a coordination identification (relative to a specific item flowing through the process), a service identification and a time stamp. Thereafter, flow of the item through the process may be analyzed based on the processing artifacts. The processing artifacts may be stored locally at each reporting element or centrally. In the presently preferred embodiment, the analysis of the flow of an item through the process includes generating an industry-standard representation of the flow based on the processing artifacts. In this manner, the present invention provides for a complete analysis of a given process, particularly business processes, through the collection of relatively simple, easily-generated processing artifacts. | 11-13-2008 |
20080288930 | Computer-Implemented Method and System for Improved Data Flow Analysis and Optimization - A computer-implemented method and system for improved data flow analysis and optimization are disclosed. The method and system generates data flow analysis information from vectorized processing components, the data flow analysis information including an input information set and an output information set, generates hole information from the vectorized processing components, selects needed holes based on the input information set, the output information set, and the hole information, and modifies a portion of the data flow analysis | 11-20-2008 |
20090070753 | INCREASE THE COVERAGE OF PROFILING FEEDBACK WITH DATA FLOW ANALYSIS - The present invention provides a system and method for profiling based optimization of a computer program. The system includes an optimization module that profiles feedback from profiled part of a program to a part of the program that was not reached, an identical expressions model that identifies at least one identical expression in the program that have not been profiled and copies alias profiling result from a profiled reference to the reference that has not been profiled, a speculative identical expressions model that identifies at least one speculative identical expression in the program that have not been profiled and copies alias profiling result from a profiled speculative identical reference to the speculative identical reference that has not been profiled, and a similar expressions model that identifies at least one similar expression in the program that have not been profiled and copies alias profiling result from a similar profiled reference to the similar reference that has not been profiled. | 03-12-2009 |
20090083723 | Flattening Hierarchically Structured Flows - There is disclosed a system for flattening hierarchically structured flows using a breadth-first approach. At each level of hierarchy of a hierarchically structured source flow, complex nodes are flattened by one level across the entire breadth of the flow. The results of this flattening are placed in a target flow, and any connections that existed in the source flow are reestablished in the target flow in such a way that any data input into the target flow will be processed as if it had been input into the source flow. After a processing iteration, if there are still complex nodes remaining in the target flow, the target flow becomes the next source flow, and the process is repeated until the flow has been completely flattened. | 03-26-2009 |
20090222803 | Efficient call sequence restoration method - Embodiments of the present invention provide for minimizing the number of procedure frame unwinding operations to be performed when restoring the program control flow information. A first data structure may be constructed to contain procedure linkage information along with references to the conventional memory area where each procedure linkage information element (procedure return address or a procedure frame pointer) was originally found. The first data structure may be initialized upon the initial request for program control flow information. Upon each subsequent request, the contents of the conventional memory area as referenced by the first data structure may be compared with the corresponding elements of the first data structure. As a result of said comparison, changed and unchanged regions within the conventional memory area may be determined. Then, procedure frame unwinding operations may be performed for the changed regions. Procedure linkage information collected during the frame unwinding operations may be stored in a second data structure along with references to the original locations within the conventional memory area. The second data structure may then be extended with procedure linkage information pertaining to the unchanged regions from the first data structure. Once the second data structure is constructed, it may be substituted for the first data structure to be employed in processing subsequent requests for program control flow information. | 09-03-2009 |
20090254894 | Method and Apparatus for Workflow Based High Availability Analysis - Techniques are disclosed for workflow based high availability analysis in computing systems. For example, a computer-implemented method for analyzing an information network infrastructure to identify one or more availability weak points includes the following steps. A workflow specification is provided based on one or more user-visible processes and an application topology. Service workflows associated with the specification are mapped from the application topology to the infrastructure to generate a workflow data structure. An availability weak point analysis is performed in accordance with the workflow data structure to determine one or more optimal high availability parameters for one or more deployed components of the infrastructure. The one or more optimal high availability parameters are applied in the infrastructure so as to substantially eliminate the one or more availability weak points. | 10-08-2009 |
20090307672 | MODULE GENERATING APPARATUS, MODULE GENERATING METHOD, AND COMPUTER PRODUCT - A computer is caused to function as a parsing unit, a macroblocking analyzing unit, a junction-node restructuring unit, an identical portion merging/restructuring unit, a similar portion merging/restructuring unit, and an intermediate language restructuring unit. The parsing unit performs syntax analysis of a source code. The macroblocking analyzing unit segments the program written in the source code into blocks and appends a virtual portion representing a unique number in a statement, to a number for identifying a variable for the statement in each block to virtualize a calculation pattern. The junction-node restructuring unit extracts a node directly related to a subroutine block. The identical portion merging/restructuring unit merges pre-processing together and post-processing together for a subroutine called up at a multiple portions in the program. The similar portion merging/restructuring unit integrates subroutines having similar structures into a related subroutine. | 12-10-2009 |
20100162220 | Code Motion Based on Live Ranges in an Optimizing Compiler - Optimizing program code in a static compiler by determining the live ranges of variables and determining which live ranges are candidates for moving code from the use site to the definition site of source code. Live ranges for variables in a flow graph are determined. Selected live ranges are determined as candidates in which code will be moved from a use site within the source code to a definition site within the source code. Optimization opportunities within the source code are identified based on the code motion. | 06-24-2010 |
20100186006 | PROGRAMMABLE DEVICE FOR SOFTWARE DEFINED RADIO TERMINAL - A programmable device suitable for software defined radio terminal is disclosed. In one aspect, the device includes a scalar cluster providing a scalar data path and a scalar register file and arranged for executing scalar instructions. The device may further include at least two interconnected vector clusters connected with the scalar cluster. Each of the at least two vector clusters provides a vector data path and a vector register file and is arranged for executing at least one vector instruction different from vector instructions performed by any other vector cluster of the at least two vector clusters. | 07-22-2010 |
20100251228 | TYPE PROPAGATION FOR AUTOMATIC CASTING OF OUTPUT TYPES IN A DATA FLOW PROGRAM - System and method for implicit downcasting at compile time in a data flow program. A first data flow function in an object-oriented dataflow program is identified, where the first function includes an input of a parent data type and an output of the parent data type. The first function is analyzed to determine if the output preserves the run-time data type of the input. A second dataflow function in the object-oriented data flow program is identified, where the second function includes a program element that calls the first function, passing an input parameter of a child data type of the parent data type as input. If the analysis determines that an output parameter returned by the output of the first function will always be of the child data type, the program element is automatically configured at compile time to always downcast the output parameter from the parent data type to the child data type at run-time. | 09-30-2010 |
20100275194 | CONVERSION OF A CLASS ORIENTED DATA FLOW PROGRAM TO A STRUCTURE ORIENTED DATA FLOW PROGRAM WITH DYNAMIC INTERPRETATION OF DATA TYPES - 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. | 10-28-2010 |
20110010697 | Systems and Methods for Detecting Obfuscated Malware - Disclosed are systems, methods and computer program products for efficient and reliable analysis, optimization and detection of obfuscated malware. One disclosed example method for malware detection includes loading an executable software code on a computer system and disassembling the software code into an assembly language or other low-level programming language. The method then proceeds to simplifying complex assembly instructions and constructing a data flow model of the simplified software code. The dependencies and interrelations of code elements of the data flow model are analyzed to identify obfuscated software codes therein. The identified obfuscated codes are then optimized. Based on the results of optimization, determination is made whether the software code is malicious and/or whether further antimalware analysis of the optimized software code is necessary. | 01-13-2011 |
20110041123 | FINE SLICING: GENERATING AN EXECUTABLE BOUNDED SLICE FOR PROGRAM - A method for generating a fine slice for a program is provided. The method comprises receiving a set of slicing criteria, wherein the set of slicing criteria comprises one or more variable occurrences or control dependences; receiving a set of cut points, wherein the set of cut points comprises one or more variable occurrences or control dependences; and generating a slice according to the set of slicing criteria and the set of cut points. The generated slice includes statements related to computation of values for the set of slicing criteria and excludes statements related to computation of values for the set of cut points. Missing information is added to the slice so that the slice is executable. | 02-17-2011 |
20110067017 | NON-BLOCKING SEMANTICS FOR MODELING SYSTEMS - In an implementation, a computing device-implemented method includes identifying a non-blocking block in a graphical block diagram that includes the non-blocking block and other blocks, the other blocks including one or more non-blocking blocks, one or more blocking blocks, or a combination of one or more non-blocking blocks and one or more blocking blocks, determining whether one or more of the other blocks are dependent on an output from the non-blocking block, and partitioning execution of the non-blocking block into two or more execution stages, generating an order of execution of the graphical blocks, the order including a first stage of execution of the two or more execution stages for the non-blocking block, followed by an execution of one or more of the other blocks that have been determined not be dependent on the output from the non-blocking block, followed by a second stage of execution of the two or more execution stages. | 03-17-2011 |
20110088023 | SYSTEM AND METHOD FOR STATIC DETECTION AND CATEGORIZATION OF INFORMATION-FLOW DOWNGRADERS - A system and method for static detection and categorization of information-flow downgraders includes transforming a program stored in a memory device by statically analyzing program variables to yield a single assignment to each variable in an instruction set. The instruction set is translated to production rules with string operations. A context-free grammar is generated from the production rules to identify a finite set of strings. An information-flow downgrader function is identified by checking the finite set of strings against one or more function specifications. | 04-14-2011 |
20110161946 | BATCH DATA PROCESSING - A method and apparatus for programming a computer to execute a batch data processing procedure using a computing device having at least a processor, a memory, a display device and an input device. The memory stores a plurality of functions arranged to process individual data messages or batches of data messages. A function is selected from the plurality of functions and retrieved from the memory. A data flow diagram is arranged on the display, in response to developer input, to specify a process. The data flow diagram includes a function icon corresponding to the selected function, at least one data icon corresponding to a data object, and at least one link connecting the function icon to the data icon. The function is arranged to perform one of disassociating a batch of data messages into individual data messages and associating data messages into a batch of data messages. | 06-30-2011 |
20110191760 | METHOD AND APPARATUS FOR ENHANCING COMPREHENSION OF CODE TIME COMPLEXITY AND FLOW - A method and apparatus that utilizes techniques for formatting assembly and/or machine code, including using arrows, indentations and textual symbols, so that a programmer who reads the code has an enhanced understanding of the program flow. Different methods of assessing computing time complexity (e.g., the up branch method and the strongly connected subgraph method) have strengths and weaknesses but benefit from being used together. | 08-04-2011 |
20120079468 | INTERMEDIATE REPRESENTATION CONSTRUCTION FOR STATIC ANALYSIS - The analysis of an intermediate representation of source or program code. An initial version of an initial representation of the source or program code is accessed and statically analyzed. For one or more portions of this initial version, the analysis component queries an analysis-time resolution component that provides supplemental intermediate representations corresponding to the portion. This supplemental intermediate representation provides further clarity regarding the portion, and is analyzed. If defects are found, they may be reported. | 03-29-2012 |
20120137277 | VERIFICATION OF A DATAFLOW REPRESENTATION OF A PROGRAM THROUGH STATIC TYPE-CHECKING - Functionality is described for providing a compiled program that can be executed in a parallel and a distributed manner by any selected runtime environment. The functionality includes a compiler module for producing the compiled program based on a dataflow representation of a program (i.e., a dataflow-expressed program). The dataflow-expressed program, in turn, includes a plurality of tasks that are connected together in a manner specified by a graph (such as a directed acyclic graph). The compiler module also involves performing static type-checking on the dataflow-expressed program to identify the presence of any mismatch errors in the dataflow-expressed program. By virtue of this approach, the above-described functionality can identify any errors in constructing the graph prior to its instantiation and execution in a runtime environment. | 05-31-2012 |
20120192168 | COMPILER DEVICE - A compiler device | 07-26-2012 |
20140075423 | EFFICIENTLY SOLVING THE "USE-DEF" PROBLEM INVOLVING LABEL VARIABLES - A method for efficiently solving the “use-def” problem involving label variables performs a data-flow analysis on a control flow graph that includes calculating an inset for each node as follows: if a predecessor node directly branches to the node, the method includes an outset of the predecessor node in the inset of the node; if a predecessor node indirectly branches to the node via a label variable and the node is in definitions of the label variable in the outset of the predecessor node, the method includes the outset of the predecessor node in the inset of the node; if a predecessor node indirectly branches to the node via a label variable and the node is not in definitions of the label variable in the outset of the predecessor node, the method does not include the outset of the predecessor node in the inset of the node. | 03-13-2014 |
20140075424 | EFFICIENTLY SOLVING THE "USE-DEF" PROBLEM INVOLVING LABEL VARIABLES - A method for efficiently solving the “use-def” problem involving label variables performs a data-flow analysis on a control flow graph that includes calculating an inset for each node as follows: if a predecessor node directly branches to the node, the method includes an outset of the predecessor node in the inset of the node; if a predecessor node indirectly branches to the node via a label variable and the node is in definitions of the label variable in the outset of the predecessor node, the method includes the outset of the predecessor node in the inset of the node; if a predecessor node indirectly branches to the node via a label variable and the node is not in definitions of the label variable in the outset of the predecessor node, the method does not include the outset of the predecessor node in the inset of the node. | 03-13-2014 |
20140237459 | Method for Exploiting Massive Parallelism - A method of statically testing dependence in a dataflow program is provided, the method comprising receiving a dataflow program which provides parameters, including consumption rates, production rates on connections between actors in the program and a number of initial samples (delays) on the connections, generating from the parameters a model of a precedence graph for the dataflow program representing dependence constraints between distinct firings of the number of actors. For the model, determining a feedback distance between multiple firings of a same actor, determining sets of parallel regions comprising a given number of actor firings of a same actor, composing mutually independent component regions comprising at least a part of the sets of parallel regions, and composing one or more composite regions comprising one or more component regions and/or one or more sets of parallel regions, being composed so that a pre-determined criteria is satisfied. | 08-21-2014 |
20150067660 | BUILDING REUSABLE FUNCTION SUMMARIES FOR FREQUENTLY VISITED METHODS TO OPTIMIZE DATA-FLOW ANALYSIS - A method includes inspecting function summaries generated during a static analysis of a program and identifying a set of function summaries for a same method that have structural similarities. The method includes replacing the set of structurally similar summaries with a coarse summary. The method further includes using the coarse summary in subsequent static analysis operations. Apparatus and program products are also disclosed. | 03-05-2015 |
20150121353 | PERFORMANCE MONITORING OF VIRTUALIZED INSTRUCTIONS - Systems and methods for monitoring performance of virtualized instructions are provided. One method includes, during emulated execution of non-native program code including non-native instructions, maintaining a program flow history in a computing system representing a flow of program execution of the non-native program code. The program flow history includes a listing of non-native jump instructions for which execution is emulated in the computing system. The method also includes capturing one or more statistics regarding performance in native execution of the non-native program code on the computing system. The method further includes correlating the one or more statistics to the program flow history to determine performance of the computing system in executing one or more non-native instructions between each of the non-native jump instructions. | 04-30-2015 |
20150324176 | OPTIMIZING IF STATEMENTS IN COMPUTER PROGRAMMING - A method for optimizing if statements in a program includes obtaining, by a processing device, for each of conditional expressions of a plurality of if statements in the program, a set of conditional expressions having an inclusion relation; computing, for each of the set, a position with low execution frequency in the program as a move destination of a conditional expression having an inclusion relation, using information of the set in which the conditional expression is included; and moving the conditional expression to the computed move destination of the conditional expression. | 11-12-2015 |
20150324177 | OPTIMIZING IF STATEMENTS IN COMPUTER PROGRAMMING - A method for optimizing if statements in a program includes obtaining, by a processing device, for each of conditional expressions of a plurality of if statements in the program, a set of conditional expressions having an inclusion relation; computing, for each of the set, a position with low execution frequency in the program as a move destination of a conditional expression having an inclusion relation, using information of the set in which the conditional expression is included; and moving the conditional expression to the computed move destination of the conditional expression. | 11-12-2015 |
20160062750 | Program Variable Convergence Analysis - System and method for convergence analysis. One or more state variables of a first program may be determined based on dependencies of variables in a first program. A second program corresponding to the first program is created based on the state variables and their dependencies, and executed multiple times. Each execution may include recording values of the state variables, determining an execution count, comparing the values to corresponding values from previous executions of the second program, and terminating the executing in response to the values matching corresponding values from at least one previous execution of the second program. A convergence property for the first program is determined based on the execution count, and indicating a number of executions of the first program required to generate all possible values of the one or more variables. The convergence property is stored, and may be useable to optimize the first program. | 03-03-2016 |
20160117153 | CONTROL FLOW GRAPH FLATTENING DEVICE AND METHOD - Control Flow Graph flattening of a function of software code comprising a plurality of basic blocks having an address and at least one instruction. A processor creates a dispatcher basic block comprising instructions to look up an address in a jump table and to jump to the address, creates the jump table associating a label of each basic block with the address of the basic block, creates a coefficient array comprising diffusion function coefficients, replaces a Jump terminal instruction by a jump to the dispatcher basic block in each of the plurality of basic blocks, creates and inserts a first branch function and a second branch function, the first branch function calculating the label of a subsequent basic block based on a diffusion function for the present basic block, the second branch function calculating the diffusion function index of the subsequent basic block based on the present diffusion function index, creates and inserts a transition function into the dispatcher basic block, the transition function obtaining the address in the jump table based on at least the label of a subsequent basic block, and creates and inserts diffusion functions in the plurality of basic blocks, each diffusion function calculating a value based on at least one diffusion coefficient in the coefficient array and the label of the present basic block. | 04-28-2016 |
20180024820 | LINEAR-TIME ALGORITHM TO DETERMINE THE MAXIMUM NUMBER OF ITERATIONS OF THE ITERATIVE ALGORITHM FOR DATA-FLOW ANALYSIS FOR REDUCIBLE LOOPS | 01-25-2018 |