Including Analysis Of Program Patents (Class 717/154)
  • Patent number: 8843581
    Abstract: A live object pattern is described that enables a distributed cache to store live objects as data entries thereon. A live object is a data entry stored in the distributed cache which represents a particular function or responsibility. When a live object arrives to the cache on a particular cluster server, a set of interfaces are called back which inform the live object that it has arrived at that server and that it should initiate to perform its functions. A live object is thus different from “dead” data entries because a live object performs a set of function, can be started/stopped and can interact with other live objects in the distributed cache. Because live objects are backed up across the cluster just like normal data entries, the functional components of the system are more highly available and are easily transferred to another server's cache in case of failures.
    Type: Grant
    Filed: January 26, 2012
    Date of Patent: September 23, 2014
    Assignee: Oracle International Corporation
    Inventors: Brian Oliver, Noah Arliss
  • Publication number: 20140282453
    Abstract: Systems, apparatus, methods, and articles of manufacture provide for determining at least one criterion for establishing an offer campaign based on a player's experience on gaming platform (e.g., via a gaming website) and/or determining whether a player qualifies for one or more offers based on the player's experience.
    Type: Application
    Filed: March 17, 2014
    Publication date: September 18, 2014
    Applicant: Gamesys Ltd.
    Inventors: Tobias Patrick O'Rourke, Rik Ward
  • Patent number: 8839211
    Abstract: Evaluation and enforcement of software design quality, in which a system applies design quality rules to a design of a software application to detect violations and provides output describing one or more violations of the design quality rules detected. Based on the output, the system receives user input to address the one or more violations of the design quality rules and, subsequent to receiving the user input, evaluates code developed for the software application for violations of the design quality rules to assess quality of the code being developed for the software application based on the design of the software application.
    Type: Grant
    Filed: March 17, 2011
    Date of Patent: September 16, 2014
    Assignee: Accenture Global Services Limited
    Inventors: Vikrant Shyamkant Kaulgud, Santonu Sarkar
  • Patent number: 8839219
    Abstract: An illustrative embodiment of a computer-implemented process for shared data prefetching and coalescing optimization versions a loop containing one or more shared references into an optimized loop and an un-optimized loop, transforms the optimized loop into a set of loops, and stores shared access associated information of the loop using a prologue loop in the set of loops. The shared access associated information pertains to remote data and is collected using the prologue loop in absence of network communication and builds a hash table. An associated data structure is updated each time the hash table is entered, and is sorted to remove duplicate entries and create a reduced data structure. Patterns across entries of the reduced data structure are identified and entries are coalesced. Data associated with a coalesced entry is pre-fetched using a single communication and a local buffer is populated with the fetched data for reuse.
    Type: Grant
    Filed: October 24, 2012
    Date of Patent: September 16, 2014
    Assignee: International Business Machines Corporation
    Inventors: Michail Alvanos, Ettore Tiotto
  • Patent number: 8839215
    Abstract: A method, system and computer program product for optimizing memory usage associated with duplicate string objects in a Java virtual machine. The method comprises scanning a heap of the Java virtual machine at the end of the start-up process of the virtual machine to identify duplicate strings associated with the virtual machine, storing the identified strings in a string cache file, and determining whether a new string that needs to be created during start-up already exists in the string cache file. The duplicate strings are added to an interned strings table. A reference to a duplicate string is returned if a string to be created is already in the string cache file.
    Type: Grant
    Filed: July 19, 2010
    Date of Patent: September 16, 2014
    Assignee: International Business Machines Corporation
    Inventors: Curtis E. Hrischuk, Andrew Russell Low, Peter Duncan Shipton, John Joseph Stecher
  • Patent number: 8826255
    Abstract: A control flow graph may be generated from a model. The control flow graph may be restructured by converting at least one cyclical unstructured region of a control flow graph into a structured region. The restructuring may involve introducing loop head and/or bottom nodes, serving as incident nodes for loop entry or exit, correspondingly. Loop back-edges may be re-routed to loop entry nodes, while all exit nodes may be re-rerouted to loop exit nodes, as long as the control flow within the loop is properly directed using control flow constructs.
    Type: Grant
    Filed: June 18, 2007
    Date of Patent: September 2, 2014
    Assignee: The MathWorks, Inc.
    Inventors: Srinath Avadhanula, Vijay Raghavan
  • Patent number: 8826249
    Abstract: In modern multi-threaded environments, threads often work cooperatively toward providing collective or aggregate throughput for an application as a whole. Optimizing in the small for “thread local” common path latency is often but not always the best approach for a concurrent system composed of multiple cooperating threads. Some embodiments provide a technique for augmenting traditional code emission with thread-aware policies and optimization strategies for a multi-threaded application. During operation, the system obtains information about resource contention between executing threads of the multi-threaded application. The system analyzes the resource contention information to identify regions of the code to be optimized. The system recompiles these identified regions to produce optimized code, which is then stored for subsequent execution.
    Type: Grant
    Filed: February 18, 2010
    Date of Patent: September 2, 2014
    Assignee: Oracle International Corporation
    Inventors: David Dice, Virendra J. Marathe, Mark S. Moir
  • Patent number: 8826253
    Abstract: Delayed insertion of safepoint related code is disclosed. Optimization processing is performed with respect to an intermediate representation of a source code. The optimized intermediate representation is analyzed programmatically to identify a safepoint and insert safepoint related code associated with the safepoint. In some embodiments, analyzing the optimized intermediate representation programmatically comprises determining where to place the safepoint within a program structure of the source code as reflected in the intermediate representation.
    Type: Grant
    Filed: December 15, 2008
    Date of Patent: September 2, 2014
    Assignee: Apple Inc.
    Inventors: Victor Leonel Hernandez Porras, Roger Scott Hoover, Christopher Arthur Lattner, Thomas John O'Brien
  • Patent number: 8826244
    Abstract: Method for providing programming support to a debugger are disclosed. The method includes defining at least one debugger programming statement, and instructing the debugger to execute the at least one debugger programming statement which modifies a least a portion of the computer program during execution of the computer program without recompiling the computer program. The debugger may be instructed to execute the at least one debugger programming statement at a specified position of the computer program. The at least one debugger programming statement may include a delete instruction that instructs the debugger to prevent one or more programming statements at a specified position in the computer program from being executed. The debugger may be instructed to execute the at least one debugger programming statement instead of one or more programming statements at a specified position in the computer program without recompiling the computer program.
    Type: Grant
    Filed: March 27, 2012
    Date of Patent: September 2, 2014
    Assignee: International Business Machines Corporation
    Inventors: Madhusudanan Kandasamy, Vidya Ranganathan
  • Patent number: 8819652
    Abstract: A method and system for evaluating a system are described. A parameter space comprising one or more parameters corresponding to the system and/or an application executed on the system is defined. Additionally, one or more search functions for selecting a parameter from the parameter space to evaluate a desired characteristic of the system are determined. Further, at least one parameter from the parameter space is selected using the one or more search functions and the application is executed using the selected parameter. Subsequently, the execution of the application is monitored and metrics associated with the application are recorded. The method further includes iteratively selecting another parameter from the parameter space based on the recorded metrics and executing the application using the selected another parameter.
    Type: Grant
    Filed: July 30, 2010
    Date of Patent: August 26, 2014
    Assignee: General Electric Company
    Inventors: Stephen Eric Zingelewicz, Branden James Moore
  • Patent number: 8819399
    Abstract: Some embodiments provide a system that executes a native code module. During operation, the system obtains the native code module. Next, the system loads the native code module into a secure runtime environment. Finally, the system safely executes the native code module in the secure runtime environment by using a set of software fault isolation (SFI) mechanisms that use predicated store instructions and predicated control flow instructions, wherein each predicated instruction from the predicated store instructions and the predicated control flow instructions is executed if a mask condition associated with the predicated instruction is met.
    Type: Grant
    Filed: November 20, 2009
    Date of Patent: August 26, 2014
    Assignee: Google Inc.
    Inventors: Robert Muth, Karl Schmipf, David C. Sehr, Clifford L. Biffle
  • 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: 8806463
    Abstract: A method includes generating a first executable program module based on source code modules and collecting profile information for the source code modules by executing the first executable program module. The profile information includes information pertaining to invocation of procedures in the first executable program module. The method further includes determining module grouping information for the source code modules based on procedure invocation patterns in the profile information and according to one or more inter-procedural optimization (IPO) heuristics. The method includes performing IPO based on the module grouping information to generate object code modules and generating a second executable program module based on the plurality of object code modules.
    Type: Grant
    Filed: May 12, 2014
    Date of Patent: August 12, 2014
    Assignee: Google Inc.
    Inventors: Xinliang David Li, Raksit Ashok, Robert Hundt
  • Patent number: 8806461
    Abstract: Systems and methods for using memory usage to pinpoint sub-optimal code for gaming systems are provided herein. Memory usage characteristics, such as latency, cache misses, load-hit-store, memory address misuse, and wasted cache bandwidth are presented, preferably in a graphical format, to provide the developer with information for optimizing source code. A trace analysis is performed on source code undergoing optimization. Relevant data is extracted from the trace analysis, sorted as necessary, and presented to the user. The user may be presented with multiple results sorting mechanisms as well as ways to change the presentation of the results.
    Type: Grant
    Filed: June 21, 2007
    Date of Patent: August 12, 2014
    Assignee: Microsoft Corporation
    Inventors: David Floyd Aronson, Parham Mohadjer, Matthew Russell Kimball, Bruce Michael Dawson
  • Patent number: 8799857
    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: February 23, 2006
    Date of Patent: August 5, 2014
    Assignee: Microsoft Corporation
    Inventors: Clemens A. Szyperski, Antony S. Williams, Craig Wittenberg
  • 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: 8789031
    Abstract: In one embodiment, the present invention includes a software-controlled method of forming instruction strands. The software may include instructions to obtain code of a superblock including a plurality of basic blocks, build a dependency directed acyclic graph (DAG) for the code, sort nodes coupled by edges of the dependency DAG into a topological order, form strands from the nodes based on hardware constraints, rule constraints, and scheduling constraints, and generate executable code for the strands and store the executable code in a storage. Other embodiments are described and claimed.
    Type: Grant
    Filed: September 18, 2007
    Date of Patent: July 22, 2014
    Assignee: Intel Corporation
    Inventors: Wei Liu, Lixin Su, Youfeng Wu, Herbert Hum
  • Patent number: 8789033
    Abstract: Provided are techniques for parsing source code file into a plurality of functions; generating a ranking corresponding to each of the plurality of functions based upon an order of occurrence in the source code file; generating a weight score corresponding to each of the plurality of functions based upon a weighing factor and the occurrence of a condition corresponding to each of the plurality of functions; and generating an object code file such that the plurality of functions are ordered in the object code file based upon the corresponding rankings and weight scores such during a startup of execution of the object code file a startup time is minimized with respect to an object code file not generated in accordance with the claimed method.
    Type: Grant
    Filed: February 3, 2012
    Date of Patent: July 22, 2014
    Assignee: International Business Machines Corporation
    Inventors: Vishal Chittranjan Aslot, Aravinda Prasad
  • Patent number: 8789032
    Abstract: Methods, systems, and apparatus, including computer program products, for inter-procedural optimization, are disclosed. In one aspect, a first executable program module is generated based on a plurality of source code modules. Profile information is collected for the plurality of source code modules by executing the first executable program module. Inter-procedural analysis for the plurality of source code modules is performed during execution of the first executable program module. The inter-procedural analysis is based on the collected profile information. IPO is performed based on the results from the inter-procedural analysis to generate a plurality of object code modules. A second executable program module is generated based on the plurality of object code modules.
    Type: Grant
    Filed: February 27, 2009
    Date of Patent: July 22, 2014
    Assignee: Google Inc.
    Inventors: Xinliang David Li, Raksit Ashok, Robert Hundt
  • Patent number: 8782627
    Abstract: Mechanism that employs code cloning and specialized code execution for barriers to minimize runtime overhead. This is facilitated by duplicating code and inserting specializations of the barriers in the code copies. The mechanism is effective for garbage collection when the garbage collection executes through different phases, and the barrier behavior and overheads depend on these phases. The duplicated and specialized code enables the program to run efficiently by reducing the dynamic count of a phase check when the phase is well-known and phase checks can be avoided.
    Type: Grant
    Filed: November 29, 2007
    Date of Patent: July 15, 2014
    Assignee: Microsoft Corporation
    Inventors: Bjarne Steensgaard, Erez Petrank, Filip Pizlo
  • Publication number: 20140196018
    Abstract: An embodiment is directed to determining, by a compiler, that a call to a named barrier is matched across all of a plurality of threads, and based at least in part on determining that the call to the named barrier is matched across all of the plurality of threads, replacing, by the compiler, the named barrier with an unnamed barrier.
    Type: Application
    Filed: March 18, 2014
    Publication date: July 10, 2014
    Applicant: International Business Machines Corporation
    Inventors: Yaxun Liu, Ilie G. Tanase, Ettore Tiotto
  • Patent number: 8775769
    Abstract: A partition-based method for diagnosing memory leaks in Java systems, comprising dividing heap memory of a Java virtual machine into a plurality of partitions based on a partition plan, wherein each partition has at least one partition owner; monitoring the status of the respective partitions to determine whether there is a partition in which the memory space is exhausted; and if there is a partition in which the memory space is exhausted, determining that the memory leak may occur in the partition and analyzing the partition to obtain leaked objects and objects related to the leaked objects. The present invention also provides a partition-based apparatus for diagnosing memory leak in Java systems.
    Type: Grant
    Filed: July 1, 2008
    Date of Patent: July 8, 2014
    Assignee: International Business Machines Corporation
    Inventors: Ying Li, Quan Long, Tiancheng Lui, Jie Qiu
  • Patent number: 8769514
    Abstract: A dynamic race detection system is provided that detects race conditions in code that executes concurrently in a computer system. The dynamic race detection system uses a modified software transactional memory (STM) system to detect race conditions. A compiler converts portions of the code that are not configured to operate with the STM system into pseudo STM code that operates with the STM system. The dynamic race detection system detects race conditions in response to either a pseudo STM transaction in the pseudo STM code failing to validate when executed or an actual STM transaction failing to validate when executed because of conflict with a concurrent pseudo STM transaction.
    Type: Grant
    Filed: June 27, 2008
    Date of Patent: July 1, 2014
    Assignee: Microsoft Corporation
    Inventors: David L. Detlefs, Michael M. Magruder, Yosseff Levanoni
  • Patent number: 8769512
    Abstract: A method apparatus and computer program product is disclosed for adding instrumentation to a body of code to enable generation of code coverage data for said body of code in which used instrumentation code is arranged to be optimized out by a compiler.
    Type: Grant
    Filed: March 23, 2012
    Date of Patent: July 1, 2014
    Assignee: International Business Machines Corporation
    Inventors: Ian O. Partridge, Adam J. Pilkington, David S. Renshaw, Andrew Taylor
  • Patent number: 8769515
    Abstract: A computer-implemented technique for analysis of software, is carried out using a semantic intensity calculation module, a coupling calculation module, and a software decomposition module. Software elements are identified in a computer program code, and respective roles of the software elements established. With the semantic intensity calculation module respective semantic intensity metrics are calculated for the software elements according to the roles thereof. With the coupling calculation module semantic intensity metrics are calculated to determine coupling factors between different software elements. With the software decomposition module the software elements are organized into distinct software components according to the coupling factors therebetween. Then, an optimized computer program code is generated from the software components.
    Type: Grant
    Filed: March 23, 2009
    Date of Patent: July 1, 2014
    Assignee: International Business Machines Corporation
    Inventors: Dany Moshkovich, Amir Rubinstein
  • Patent number: 8769516
    Abstract: Systems and associated methods for automated repair support for input model faults are described. Embodiments automate generation of fault repair support by producing one or more repair action suggestions for a given input model containing faults. Responsive to an indication of one or more faults within the model, embodiments utilize a fault index to ascertain the nature of faults within the model and to compile one or more repair action suggestions. Users can review the repair action suggestions, and preview the impact each of these suggestions will have on the model if implemented, and select an appropriate repair action for repairing a model containing faults.
    Type: Grant
    Filed: August 19, 2010
    Date of Patent: July 1, 2014
    Assignee: International Business Machines Corporation
    Inventors: Pankaj Dhoolia, Senthil Kumar Kumarasamy Mani, Saurabh Sinha, Vibha Singhal Sinha
  • Patent number: 8768678
    Abstract: One or more embodiments provide a load balancing solution for improving the runtime performance of parallel HDL simulators. During compilation each process is analyzed to determine a simulation cost based on complexity of the HDL processes. During simulation, processes to be executed in the same simulation cycle are scheduled using the simulation costs computed at compile-time in order to reduce the delay incurred during simulation.
    Type: Grant
    Filed: September 26, 2011
    Date of Patent: July 1, 2014
    Assignee: Xilinx, Inc.
    Inventors: Valeria Mihalache, Christopher H. Kingsley, Jimmy Z. Wang, Kumar Deepak
  • Patent number: 8769513
    Abstract: An embodiment of the present invention is a technique to hide latency in program traces. Blocks of instructions between start and end of a critical section are associated with color information. The blocks correspond to a program trace and containing a wait instruction. The wait instruction is sunk down the blocks globally to the end of the critical section using the color information and a dependence constraint on the wait instruction.
    Type: Grant
    Filed: November 18, 2005
    Date of Patent: July 1, 2014
    Assignee: Intel Corporation
    Inventors: Xiaofeng Guo, Jinquan Dai, Long Li, Zhiyuan Lv
  • 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: 8762366
    Abstract: A system and a method are disclosed for efficiently executing database queries using a computing device that includes a central processing unit (CPU) and a processing unit based on single instruction multiple thread (SIMT) architecture, for example, a GPU. A query engine determines a target processing unit to execute a database query based on factors including the type and amount of data processed by the query, the complexity of the query, and the current load on the processing units. An intermediate executable representation generator generates an intermediate executable representation for executing a query on a database virtual machine. If the query engine determines that the database query should be executed on an SIMT based processing unit, a native code generator generates native code from the intermediate executable representation. The native code is optimized for execution using a particular processing unit.
    Type: Grant
    Filed: March 15, 2013
    Date of Patent: June 24, 2014
    Assignee: MeLLmo Inc.
    Inventors: Santiago Becerra, Santiago E. Becerra, Alex C. Schaefer, John McInerney, Patrick Cheng
  • 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: 8756581
    Abstract: An apparatus includes a processor for executing instructions at runtime and instructions for dynamically compiling the set of instructions executing at runtime. A memory device stores the instructions to be executed and the dynamic compiling instructions. A memory device serves as a trace buffer used to store traces during formation during the dynamic compiling. The dynamic compiling instructions includes a next-executing-cycle (N-E-C) trace selection process for forming traces for the instructions executing at runtime. The N-E-C trace selection process continues through an existing trace-head when forming traces without terminating a recording of a current trace if an existing trace-head is encountered.
    Type: Grant
    Filed: February 3, 2011
    Date of Patent: June 17, 2014
    Assignee: International Business Machines Corporation
    Inventors: Jose G. Castanos, Hiroshige Hayashizaki, Hiroshi Inoue, Mauricio J. Serrano, Peng Wu
  • Patent number: 8752015
    Abstract: A technique for updating agent software which controls an agent, including how the agent adds instrumentation to an application and how the agent process data from the instrumentation. A current configuration file and an updated configuration file are evaluated in view of rules, to create a merged configuration file. The files include metadata entries. The rules can include: delete a current configuration file, not merge a current configuration file with an updated configuration file, overwrite a current configuration file with an updated configuration file, delete a metadata entry, prefer an entry in the configuration file over a corresponding entry in the updated configuration file, and prefer an entry in the updated configuration file over the corresponding entry in the configuration file. Customized entries in the current configuration file can be maintained if appropriate. Entries which are not maintained are kept in the merged configuration file as inline comments for documentation.
    Type: Grant
    Filed: December 5, 2011
    Date of Patent: June 10, 2014
    Assignee: CA, Inc.
    Inventors: Indranil Basak, Dipasoke Chattopadhyay, Abhijit Bhadra, Gurumurthy R
  • Patent number: 8752035
    Abstract: Transforming dynamic code. The method includes obtaining one or more first data structures defining constructs in a body of dynamic language source code. From the one or more first data structures, identifier information is extracted for one or more of the defined constructs. Knowledge about the constructs is augmented. Using the identifier information and augmented knowledge, metadata is generated about the body of the dynamic language source code. The generated metadata is represented as a symbol table. Using the symbol table, the body of dynamic language source code is transformed.
    Type: Grant
    Filed: May 31, 2011
    Date of Patent: June 10, 2014
    Assignee: Microsoft Corporation
    Inventors: Michael C. Fanning, Frederico A. Mameri, Zachary A. Nation
  • Patent number: 8745597
    Abstract: System, and computer program product for providing programming support to a debugger are disclosed. The debugger executes at least one debugger programming statement which modifies at least a portion of the computer program during execution of the computer program without recompiling the computer program. The debugger may be instructed to execute the at least one debugger programming statement at a specified position of the computer program. The at least one debugger programming statement may include a delete instruction that instructs the debugger to prevent one or more programming statements at a specified position in the computer program from being executed. The debugger may be instructed to execute the at least one debugger programming statement instead of one or more programming statements at a specified position in the computer program without recompiling the computer program.
    Type: Grant
    Filed: November 25, 2009
    Date of Patent: June 3, 2014
    Assignee: International Business Machines Corporation
    Inventors: Madhusudanan Kandasamy, Vidya Ranganathan
  • Patent number: 8745578
    Abstract: A system for eliminating false-positive reports resulting from static analysis of computer software is provided herein. The system includes the following components executed by a processor: a modeler configured to model a computer code into a model that defines sources, sinks, and flows; a static analyzer configured to apply static analysis to the code or the model, to yield reports indicative of at least one issue relating to one or more of the flows; a preconditions generator configured to generate preconditions for eliminating false-positive issues in the reports, based on the model and user-provided input; and a preconditions checker configured to apply the generated preconditions to the reports for eliminating false-positive issues in the reports.
    Type: Grant
    Filed: December 4, 2011
    Date of Patent: June 3, 2014
    Assignee: International Business Machines Corporation
    Inventors: Marco Pistoia, Omer Tripp
  • Patent number: 8745605
    Abstract: Various domains may wish to specify different implementations of the type; e.g., a compilation domain may describe the type statically, an execution domain may instantiate objects of the given type, while a debugging execution domain may associate additional debugging information such as a symbol name. This may be achieved by specifying a type implementation of a particular type within respective domains which all implement a common type interface. A type binding instruction set may then select a type implementation for the type within the target instruction set according to the domain, and may bind type instances of the type within target instruction set to the selected type implementation for the current domain. This technique yields domain-specific variance in type implementation without having to reconfigure the target instruction set or perform domain-checking logic there-within.
    Type: Grant
    Filed: January 9, 2009
    Date of Patent: June 3, 2014
    Assignee: Microsoft Corporation
    Inventors: Jonathon Michael Stall, Renaud Paquay, Sonja Keserovic, Michael Gregory Montwill
  • Patent number: 8745607
    Abstract: According to one aspect of the present disclosure, a method and technique for reducing branch misprediction impact for nested loop code is disclosed. The method includes: responsive to identifying code having an outer loop and an inner loop, determining a quantity of iterations of the inner loop for an initial number of iterations of the outer loop; determining a number of processor cycles for executing the quantity of iterations of the inner loop for the initial number of iterations of the outer loop; determining whether the number of processor cycles is less than a threshold; and responsive to determining that the number of processor cycles is less than the threshold, fully unrolling the inner loop for the initial number of iterations of the outer loop.
    Type: Grant
    Filed: November 11, 2011
    Date of Patent: June 3, 2014
    Assignee: International Business Machines Corporation
    Inventors: Madhavi G. Valluri, Steven W. White
  • Patent number: 8745611
    Abstract: A system may include computer code for analyzing an upgrade from a first version to a second version of a software program that has been customized without performing the upgrade. The system may provide default state information of default program objects. The default program objects would be included in a default installation of the second version of the software program. The computer code may retrieve current state information of current program objects from an application database. The software program that has been customized may include the current program objects. The system may generate upgrade information based on a comparison between the current state information and the default state information. The upgrade information may identify a subset of the current program objects that would be impacted by the upgrade.
    Type: Grant
    Filed: July 31, 2008
    Date of Patent: June 3, 2014
    Assignee: Accenture Global Services Limited
    Inventors: Sachin Saraf, Vidyut Dinkar Kichambare
  • Patent number: 8738348
    Abstract: A method and mechanism for implementing a general purpose scripting language that supports parallel execution is described. In one approach, parallel execution is provided in a seamless and high-level approach rather than requiring or expecting a user to have low-level programming expertise with parallel processing languages/functions. Also described is a system and method for performing circuit simulation. The present approach provides methods and systems that create reusable and independent measurements for use with circuit simulators. Also disclosed are parallelizable measurements having looping constructs that can be run without interference between parallel iterations. Reusability is enhanced by having parameterized measurements. Revisions and history of the operating parameters of circuit designs subject to simulation are tracked.
    Type: Grant
    Filed: June 15, 2012
    Date of Patent: May 27, 2014
    Assignee: Cadence Design Systems, Inc.
    Inventor: Kenneth S. Kundert
  • Patent number: 8739143
    Abstract: Embodiments include methods, apparatus, and systems for profiling metrics for computer programs. One embodiment includes a method that executes a program to obtain data for each of plural entities in the program. Equations are received for plural metrics that define events occurring in the entities. The method then displays scores for each of the entities with respect to each of the metrics in order to visually indicate which of the entities to optimize to improve performance of the program.
    Type: Grant
    Filed: January 31, 2007
    Date of Patent: May 27, 2014
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: David LaFrance-Linden
  • Patent number: 8738931
    Abstract: A semantics engine is described that produces a semantically-impaired but equivalent version of the original source code that can be compiled and executed using conventional tools for commonly used programming languages. This semantically-impaired source code and the compiled assemblies it produces are incomprehensible to anyone who would attempt to read them. The semantics-impairing process is irreversible both at the source and the assembly levels and the machine code generated by the semantically-impaired source code is exactly the same as that produced by the original source code. The semantics engine achieves confidentiality without using encryption or compression. All protective modifications are made directly to copies of the original source code thereby introducing no intermediate forms of the code.
    Type: Grant
    Filed: October 21, 2013
    Date of Patent: May 27, 2014
    Inventor: Conley Jack Funk
  • Patent number: 8739144
    Abstract: A compiler and method for compiling source code comprising: a library of code patterns and control flow information for each code pattern, wherein each code pattern comprises one or more variable; and a processor arranged to: evaluate the control flow of an expression in the source code, wherein the expression comprises one or more variable, match the expression to one of the code patterns in the library based on the evaluated control flow information, assign value numbers to the one or more variable within the expression, determine if the expression and the matched code pattern are equivalent based on the assigned value numbers, and replace the expression in the source code with a replacement expression if the expression and the matched code pattern are equivalent.
    Type: Grant
    Filed: December 17, 2008
    Date of Patent: May 27, 2014
    Assignee: Freescale Semiconductor, Inc.
    Inventors: Mihai Emanuel Stoicescu, Bogdan Florin Ditu, Mihail Popa
  • Patent number: 8732684
    Abstract: According to one embodiment, a first program code including a plurality of variables is converted to a second program code to be executed by a multi-core processor including a plurality of cores. Specifically, an access pattern of each variable in the first program code is decided. All variables in the first program code are classified into a plurality of groups each of which variables belong to the same access pattern. A member structure of each group having variables belonging to the same access pattern is created. Each member structure includes variables of one group. A route-pointer indicating an address (in a memory) of variables of the member structure is created. The variables in the first program code are converted to the member structure and the route-pointer (in the second program code) that indicate the variables. The second program code is outputted to the multi-core processor.
    Type: Grant
    Filed: January 25, 2011
    Date of Patent: May 20, 2014
    Assignee: Kabushiki Kaisha Toshiba
    Inventors: Nobuaki Tojo, Ken Tanabe, Hidenori Matsuzaki
  • Patent number: 8732455
    Abstract: Embodiments of the invention provide a method and a system of detecting source code in a message being sent over a digital communication network to secure against unauthorized leakage of source code. The message is intercepted on a network device, placed into a memory on the network device, and divided into one or more segments, wherein each segment includes a predetermined number of lines of text from the message. For each segment, one or more syntax rules of a programming language is applied to the segment and a predetermined number of context lines of text before the segment and/or after the segment, to determine which of the syntax rules of the programming language are matched in the segment. A determination of whether the text message includes source code is provided based on the syntax rules that were matched.
    Type: Grant
    Filed: July 25, 2008
    Date of Patent: May 20, 2014
    Assignee: Infotect Security Pte Ltd
    Inventors: Onn Chee Wong, Siew Keng Loh, Hui Yang, You Liang Wang
  • Patent number: 8726246
    Abstract: A method includes accessing a validator routine having an input string and one or more return points, each return point returning a return value having two possible values; finding the return points in the validator routine; for each of the return points, performing a backwards traversal from a return point through a code section and determining constraints on the input string based at least on one or both of the two possible return values for the return point; using the determined constraints for the input string, determining whether all of the return values returned from the one or more return points meet validation constraints; and outputting one or more indications of whether all of the returned values returned from the return points meet the validation constraints for the one or both of the two possible return values. Apparatus and computer program products are also disclosed.
    Type: Grant
    Filed: May 17, 2011
    Date of Patent: May 13, 2014
    Assignee: International Business Machines Corporation
    Inventors: Ryan Berg, Marco Pistoia, Takaaki Tateishi, Omer Tripp
  • Patent number: 8726255
    Abstract: Executable code may be recompiled so that generic portions of code may be replaced with specific portions of code. The recompilation may customize executable code for a specific use or configuration, making the code lightweight and executing faster. The replacement mechanism may replace variable names with fixed values, replace conditional branches with only those branches which are known to be executed, and may eliminate executable code portions that are not executed. The replacement mechanism may comprise identifying known values defined in the executable code for variables, and replacing those variables with the constant value. Once the constants are substituted, the code may be analyzed to identify branches that may be evaluated using the constant values. Those branches may be reformed using the constant value and the rest of the conditional code that may not be accessed may be removed.
    Type: Grant
    Filed: May 1, 2012
    Date of Patent: May 13, 2014
    Assignee: Concurix Corporation
    Inventors: Alexander G. Gounares, Charles D. Garrett
  • Patent number: 8726254
    Abstract: Program source code is annotated to support dataflow analysis or other program analysis, without requiring changes to compilers. Annotation statements are embedded inside comments or other non-code-generative portions of the source code. The annotations can be used to express contracts at routine boundaries, allowing an analyzer to check the global correctness of the source code through modular (local) analysis, with performance that is linear in the number of routines. In particular, annotated SQL source code may be analyzed to identify SQL injection vulnerabilities.
    Type: Grant
    Filed: July 23, 2009
    Date of Patent: May 13, 2014
    Assignee: Microsoft Corporation
    Inventors: Henning Korsholm Rohde, Avi Samuel Gavlovski, Bala Neerumalla
  • Patent number: 8726226
    Abstract: A tool supports management of engineering project changes using a current design diagram with links to implementation components, a proposed design diagram, and a work list of tasks for transforming the current design into the proposed design. Tasks recite intended changes such as add, remove, or refactor, with reference to implementation components to be changed, and tracking information. Work list tasks may be automatically generated based on design model differences correlated with project code, automatically generated based on tracked user design actions correlated with project code, and/or manually generated by users. Work lists may be exported. Users can mark a relationship for removal and view a corresponding updated work list. Users can trace impact of a work list on project context such as testing coverage, database structures, and user scenarios.
    Type: Grant
    Filed: June 5, 2009
    Date of Patent: May 13, 2014
    Assignee: Microsoft Corporation
    Inventors: Mark Groves, Jens Jacobsen, Suhail Dutta, Tracey Glass Trewin