Analysis Of Code Form Patents (Class 717/141)
  • Patent number: 8201171
    Abstract: Various technologies and techniques are disclosed for handling data parallel operations. Data parallel operations are composed together to create a more complex data parallel operation. A fusion plan process is performed on a particular complex operation dynamically at runtime. As part of the fusion plan process, an analysis is performed of a structure of the complex operation and input data. One particular algorithm that best preserves parallelism is chosen from multiple algorithms. The structure of the complex operation is revised based on the particular algorithm chosen. A nested complex operation can also be fused, by inlining its contents into an outer complex operation so that parallelism is preserved across nested operation boundaries.
    Type: Grant
    Filed: June 27, 2007
    Date of Patent: June 12, 2012
    Assignee: Microsoft Corporation
    Inventors: John Joseph Duffy, David Callahan
  • Patent number: 8201157
    Abstract: An Integrated Design Environment (IDE) includes an on-the-fly compiler. The IDE does a first compiler pass that review code for dependencies. In the first compiler pass, the IDE compiles source files, where files having any unresolved types or errors are marked for a second pass recompilation. The IDE does a second compiler pass that does a multithreaded compilation of the code in an order determined using the dependencies. In the second compiler pass, any file that uses the files compiled in the first pass are recompiled. Additionally, any files marked for unresolved types or errors are also recompiled.
    Type: Grant
    Filed: May 3, 2007
    Date of Patent: June 12, 2012
    Assignee: Oracle International Corporation
    Inventors: Timothy Allen Wagner, Timothy Hanson, Jesse Michael Garms, Michael Kovaks
  • Patent number: 8196110
    Abstract: The present invention provides a computer implemented method, data processing system, and computer program product for verifying a return address. A computer stores the return address into a stack based on a function call. The computer generates a first hash based on a first stack frame and a second stack frame. The computer stores the first hash in a first canary location, wherein the first canary location is in the first stack frame. The computer executes at least one instruction of a routine referenced by the function call. The computer reads the first canary location to form a first suspect hash. The computer calculates a first verification hash based on the first stack frame and the second stack frame. The computer determines that the first verification hash matches the first suspect hash to form a first positive determination. The computer responsive to the first positive determination, the computer reads a second canary location to form a second suspect hash.
    Type: Grant
    Filed: November 30, 2007
    Date of Patent: June 5, 2012
    Assignee: International Business Machines Corporation
    Inventors: Marco A. Cabrera Escandell, Tommy L. McLane, Elizabeth J. Murray
  • Patent number: 8191049
    Abstract: A method and apparatus in a data processing system for measuring events associated with the execution of instructions are provided. Instructions are received at a processor in the data processing system. If a selected indicator is associated with the instruction, counting of each event associated with the execution of the instruction is enabled. In some embodiments, the performance indicators, counters, thresholds, and other performance monitoring structures may be stored in a page table that is used to translate virtual addresses into physical storage addresses. A standard page table is augmented with additional fields for storing the performance monitoring structures. These structures may be set by the performance monitoring application and may be queried and modified as events occur that require access to physical storage.
    Type: Grant
    Filed: April 3, 2008
    Date of Patent: May 29, 2012
    Assignee: International Business Machines Corporation
    Inventors: Frank Eliot Levine, Christopher Michael Richardson, Edward John Silha
  • Patent number: 8191053
    Abstract: A system and method for transforming data from a first format to a second format. A pre-existing set of software instructions may be used to transform the data from the first format to the second format. A user may document a set of format parameters for the first format of data, which can be used to determine which portion of the pre-existing software instructions are used to transform the data from the first format to the second format.
    Type: Grant
    Filed: February 7, 2008
    Date of Patent: May 29, 2012
    Assignee: Ingenix, Inc.
    Inventors: Nancy Grimaldi, Dee Goldschmidt
  • Patent number: 8185874
    Abstract: A library or application is selected comprising one or more functions or methods. An interesting subset of the functions or methods is created. A plurality of multi-threaded test cases are generated from the subset of interesting functions or methods, with each test case comprising a unique pair or triple of functions or methods from the subset. The resulting set of test cases may then be filtered of thread safe test cases using static analysis techniques. The filtered set of test cases is then used as an input to a specialized application that executes each of the multi-threaded test cases to detect atomicity violations and race conditions. The results of the execution of each of the test cases by the specialized application are then aggregated and presented to a user or administrator in a report, for example.
    Type: Grant
    Filed: November 7, 2006
    Date of Patent: May 22, 2012
    Assignee: Microsoft Corporation
    Inventors: Thomas J. Ball, Yuan Yu, Shuvendu K. Lahiri
  • Patent number: 8185881
    Abstract: Pointer analysis is used for different applications, e.g., compilers, debugging tools and programs understanding tools, each having different requirements. A framework for pointer analysis is provided that defines a multidimensional space, for example a three-dimensional space, containing an order sensitivity dimension, a predicate sensitivity dimension and a value persistence dimension. A point in the three-dimensional space is identified. This point yields values for order sensitivity, predicate sensitivity and value persistence. Pointer analysis is then conducted on a computer program in accordance with the identified values for order sensitivity, predicate sensitivity and value persistence.
    Type: Grant
    Filed: June 19, 2007
    Date of Patent: May 22, 2012
    Assignee: International Business Machines Corporation
    Inventors: Daniel Brand, Marcio Buss, Vugranam C Sreedhar
  • Patent number: 8176477
    Abstract: A method, system and program product for optimizing emulation of a suspected malware. The method includes identifying, using an emulation optimizer tool, whether an instruction in a suspected malware being emulated by an emulation engine in a virtual environment signifies a long loop and, if so, generating a first hash for the loop. Further, the method includes ascertaining whether the first hash generated matches any long loop entries in a storage and, if so calculating a second hash for the long loop. Furthermore, the method includes inspecting any long loop entries ascertained to find an entry having a respective second hash matching the second hash calculated. If an entry matching the second hash calculated is found, the method further includes updating one or more states of the emulation engine, such that, execution of the long loop of the suspected malware is skipped, which optimizes emulation of the suspected malware.
    Type: Grant
    Filed: September 14, 2007
    Date of Patent: May 8, 2012
    Assignee: International Business Machines Corporation
    Inventor: Ji Yan Wu
  • Patent number: 8176473
    Abstract: Methods and systems for software obfuscation are disclosed. In one exemplary embodiment, the obfuscation includes integrating the checker code with product code to form integrated code. The product code includes a first portion that provides desired functionalities to a software product, while the checker code includes a second portion that protects the product code from unlicensed use. A generated pseudorandom value is used to select one or more instruction sequences of the integrated code. Following the selection, the instruction sequences may be replaced with equivalent instruction sequences to form a new integrated code. Alternatively, the original integrated code is transformed into new integrated code when the selected instruction sequences are optimized. Additionally, the new integrated code may be compared to the original integrated code by generating output states from each integrated code.
    Type: Grant
    Filed: May 14, 2007
    Date of Patent: May 8, 2012
    Assignee: Microsoft Corporation
    Inventors: Matthias Jacob, Mariusz H. Jakubowski
  • Patent number: 8171473
    Abstract: The service assignment tool analyzes a service to determine whether the service can execute on a cluster. If the service cannot execute on a cluster, the service is assigned to a single virtual machine. The service assignment tool identifies non-cluster friendly services by performing a static analysis on the bytecode of the service. The bytecode of the service is analyzed by comparing each segment of bytecode to a list of known good and bad coding conventions. If each segment of bytecode in a service meets the good coding convention criteria, then the service is cluster friendly. If one segment of bytecode does not meet the good coding convention criteria, then the entire service is considered to be not cluster friendly.
    Type: Grant
    Filed: August 31, 2007
    Date of Patent: May 1, 2012
    Assignee: International Business Machines Corporation
    Inventor: Matthew David Lavin
  • Patent number: 8171461
    Abstract: Systems and methods for compiling high-level primitive programs are used to generate primitive program micro-code for execution by a primitive processor. A compiler is configured to produce micro-code for a specific target primitive processor based on the target primitive processor's capabilities. The compiler supports features of the high-level primitive program by providing conversions for different applications programming interface conventions, determining output primitive types, initializing attribute arrays based on primitive input profile modifiers, and determining vertex set lengths from specified primitive input types.
    Type: Grant
    Filed: February 24, 2006
    Date of Patent: May 1, 2012
    Assignee: NVIDIA Coporation
    Inventors: Mark J. Kilgard, Cass W. Everitt, Christopher T. Dodd, Robert Steven Glanville
  • Patent number: 8166466
    Abstract: Which target functions in a target binary have target function basic blocks that match the source function basic blocks in a source function in a source binary is determined. For the target functions having matching target function basic blocks, a target function control flow graph is determined that has the greatest control flow matching strength to a source function control flow graph, wherein a node in the source function control graph represents a source function basic block, wherein a node in a target function control graph represents a target function basic block in a corresponding target function.
    Type: Grant
    Filed: June 22, 2007
    Date of Patent: April 24, 2012
    Assignee: Microsoft Corporation
    Inventors: Harish Mohanan, Perraju Bendapudi, Abishek Kumarasubramanian, Rajesh Jalan, Ramarathnam Venkatesan
  • Publication number: 20120096440
    Abstract: Modular and/or demand-driven string analysis of a computer program is performed. Each method of the program is encoded into monadic second-order logic (M2L) to yield a set of predicate declarations and a set of constraints. The two sets for each method are composed to yield a union set of predicate declarations and a union set of constraints for the program. The union set of constraints includes a particular set of constraints corresponding to call relationships among the methods. An M2L formula including a free variable corresponding to a program variable is added to the union set of constraints. The two union sets are processed to verify a satisfiability of the constraints in relation to an illegal pattern. Where the constraints are satisfiable, the program can generate a string containing the illegal pattern. Where the constraints are not satisfiable, the program never generates a string containing the illegal pattern.
    Type: Application
    Filed: October 19, 2010
    Publication date: April 19, 2012
    Inventors: Takaaki Tateishi, Omer Tripp, Marco Pistoia
  • Publication number: 20120096446
    Abstract: Declarations from an input source code or tokenized source code are serialized into a stream of tokens produced by following each branch of a preprocessor conditional directive statement that interrupts a declaration. Tokens are labeled with a parsing path indicator corresponding to a parsing path induced by branches of a preprocessor conditional directive. The declarations that are formed along the different parsing paths are serialized by fetching the tokens that belong to the first parsing path in a first pass, and passing the tokens on to a next phase of a compiler. The pointer that marks the next token is repositioned to return to the start of the declaration. The declaration may be serialized again through the second parsing path in a second pass. The operation may be repeated until each of the parsing paths induced by the presence of branches of the preprocessor conditional directives in the source code is exhausted.
    Type: Application
    Filed: December 12, 2011
    Publication date: April 19, 2012
    Applicant: MICROSOFT CORPORATION
    Inventor: Thierry Miceli
  • Patent number: 8161114
    Abstract: In a method for transmitting information using a data structure that is defined by the formal language called Abstract Syntax Notation One, the information is transmitted encoded as text. A form of plain-text encoding may generally be used. This enables the use of text-based transmission media, which are in widespread use. Furthermore, it enables fault localization without the use of additional tools.
    Type: Grant
    Filed: April 15, 1998
    Date of Patent: April 17, 2012
    Assignee: Deutsche Telekom AG
    Inventors: Heiko Dassow, Birgit Frohnhoff, Egbert Terlinde
  • Patent number: 8161464
    Abstract: A method of compiling source code. The method includes converting pointer-based access in the source code to array-based access in the source code in a first pass compilation of the source code. Information is collected for objects in the source code during the first pass compilation. Candidate objects in the source code are selected based on the collected information to form selected candidate objects. Global stride variables are created for the selected candidate objects. Memory allocation operations are updated for the selected candidate objects in a second pass compilation of the source code. Multiple-level pointer indirect references are replaced in the source code with multi-dimensional array indexed references for the selected candidate objects in the second pass compilation of the source code.
    Type: Grant
    Filed: April 11, 2006
    Date of Patent: April 17, 2012
    Assignee: International Business Machines Corporation
    Inventors: Roch Georges Archambault, Shimin Cui, Yaoqing Gao, Raul Esteban Silvera
  • Patent number: 8156559
    Abstract: To achieve end-to-end security, traditional machine-to-machine security measures are insufficient if the integrity of the graphical user interface (GUI) is compromised. GUI logic flaws are a category of software vulnerabilities that result from logic flaws in GUI implementation. The invention described here is a technology for uncovering these flaws using a systematic reasoning approach. Major steps in the technology include: (1) mapping a visual invariant to a program invariant; (2) formally modeling the program logic, the user actions and the execution context, and systematically exploring the possibilities of violations of the program invariant; (3) finding real spoofing attacks based on the exploration.
    Type: Grant
    Filed: November 30, 2006
    Date of Patent: April 10, 2012
    Assignee: Microsoft Corporation
    Inventors: Shuo Chen, Jose Meseguer, Ralf Sasse, Jiahe Helen Wang, Yi-Min Wang
  • Patent number: 8151242
    Abstract: With use of a relationship analyzing section for analyzing the relationship between constituent elements of a requisition sheet model described, for example, in the form of use case, and a relationship output section for outputting the analysis result to, for example, a display unit, an operator can check the presence/absence of an omission, contradiction, and the like in the displayed relationship between constituent elements, thereby easily checking whether the requisition sheet is accurately described. In addition, with use of a use case executing section for sequentially executing use cases included in a requisition sheet and a log recording section for recording a log by recording the process of executing each use case, the process of executing each use case included in the requisition sheet is recorded as a log, thereby allowing a scenario representing the operation of a system to be easily created by only sequentially executing use cases.
    Type: Grant
    Filed: April 5, 2000
    Date of Patent: April 3, 2012
    Assignee: NS Solutions Corporation
    Inventors: Nobuo Takayanagi, Katsunobu Shibata, Masahiro Noguchi, Yoshitaka Ikeda
  • Patent number: 8151252
    Abstract: A computer program is speculatively parallelized with transactional memory by scoping program variables at compile time, and inserting code into the program at compile time. Determinations of the scoping can be based on whether scalar variables being scoped are involved in inter-loop non-reduction data dependencies, are used outside loops in which they were defined, and at what point in a loop a scalar variable is defined. The inserted code can include instructions for execution at a run time of the program to determine loop boundaries of the program, and issue checkpoint instructions and commit instructions that encompass transaction regions in the program. A transaction region can include an original function of the program and a spin-waiting loop with a non-transactional load, wherein the spin-waiting loop is configured to wait for a previous thread to commit before the current transaction commits.
    Type: Grant
    Filed: February 22, 2008
    Date of Patent: April 3, 2012
    Assignee: Oracle America, Inc.
    Inventors: Yonghong Song, Xiangyun Kong, Spiros Kalogeropulos, Partha P. Tirumalai
  • Patent number: 8146064
    Abstract: Dynamically controlling a prefetching range of a software controlled cache is provided. A compiler analyzes source code to identify at least one of a plurality of loops that contain irregular memory references. For each irregular memory reference in the source code, the compiler determines whether the irregular memory reference is a candidate for optimization. Responsive to identifying an irregular memory reference that may be optimized, the complier determines whether the irregular memory reference is valid for prefetching. If the irregular memory reference is valid for prefetching, a store statement for an address of the irregular memory reference is inserted into the at least one loop. A runtime library call is inserted into a prefetch runtime library to dynamically prefetch the irregular memory references. Data associated with the irregular memory references are dynamically prefetched into the software controlled cache when the runtime library call is invoked.
    Type: Grant
    Filed: April 4, 2008
    Date of Patent: March 27, 2012
    Assignee: International Business Machines Corporation
    Inventors: Tong Chen, Marc Gonzalez tallada, Zehra N. Sura, Tao Zhang
  • Publication number: 20120072890
    Abstract: A type system includes a dual representation for basic data types. One representation is the basic data type representation common to such basic built-in data types, known as an unboxed value type or simply as a value type. Each of the basic data types also has a boxed representation that can be stored in the object hierarchy of the type system. This dual representation can also be extended to user-defined types, so that user-defined types may exist both as an unboxed value type and as an object within the object hierarchy of the type system. This dual representation allows the compiler and/or runtime environment to select the most effective and efficient representation for the data type depending on the particular need at the moment.
    Type: Application
    Filed: October 14, 2011
    Publication date: March 22, 2012
    Applicant: Microsoft Corporation
    Inventors: George H. Bosworth, Patrick H. Dussud, James S. Miller, Daryl B. Olander
  • Patent number: 8141049
    Abstract: A system and method for pointer analysis for computer program verification includes forming a subset or cluster of pointers from pointers in a program by applying increasingly accurate alias analyses in a cascaded fashion such that each analysis works on a subset of pointers generated by a previous analysis's results. Aliases are computed for any pointer by computing aliases in the subsets in parallel instead of an entire program. For carrying out context and flow-sensitive alias analysis, function summaries are computed on small subsets in a top-down manner based on the points-to hierarchy which reduces the sizes of the summaries.
    Type: Grant
    Filed: February 14, 2008
    Date of Patent: March 20, 2012
    Assignee: NEC Laboratories America, Inc.
    Inventor: Vineet Kahlon
  • Patent number: 8141064
    Abstract: A method for analyzing a program is provided. The method includes, determining an object type that may exist at an execution point of the program, wherein this enables determination of possible virtual functions that may be called; creating a call graph at a main entry point of the program; and recording an outgoing function call within a main function. The method also includes analyzing possible object types that may occur at any given instruction from any call path for virtual calls, wherein possible object types are determined by tracking object types as they pass through plural constructs; and calling into functions generically for handling specialized native runtime type information.
    Type: Grant
    Filed: December 11, 2008
    Date of Patent: March 20, 2012
    Assignee: Lantronix, Inc.
    Inventor: Timothy Chipman
  • Patent number: 8136091
    Abstract: Instruction set architecture (ISA) extension support is described for control-flow integrity (CFI) and for XFI memory protection. ISA replaces CFI guard code with single instructions. ISA support is provided for XFI in the form of bounds-check instructions. Compared to software guards, hardware support for CFI and XFI increases the efficiency and simplicity of enforcement. In addition, the semantics for CFI instructions allows more precise static control-flow graph encodings than were possible with a prior software CFI implementation.
    Type: Grant
    Filed: January 31, 2007
    Date of Patent: March 13, 2012
    Assignee: Microsoft Corporation
    Inventors: Ulfar Erlingsson, Martin Abadi, Mihai-Dan Budiu
  • Patent number: 8122440
    Abstract: A computer-implemented method and apparatus for enumerating program code dependencies is provided. According to an embodiment of the invention, a user selects or otherwise indicates a code base to be processed and analyzed for the purpose of enumerating those program code modules required by the code base in order to properly compile and execute the code base. Next, the code base is processed in accordance with instructions designed to mirror those of a compiler for compiling the code base. Accordingly, external program code dependencies are identified using compile time compilation parameters, as well as extensive programming language analysis.
    Type: Grant
    Filed: September 26, 2007
    Date of Patent: February 21, 2012
    Assignee: NetApp, Inc.
    Inventors: James Lentini, Thomas Talpey
  • Patent number: 8108689
    Abstract: An obfuscation evaluation method which sufficiently evaluates an obfuscation performed on a program. The obfuscation evaluation method includes: a step of executing an obfuscated code module produced by obfuscating an original code module of a program, and generating a trace output file by logging a result of the execution; and a step of identifying the degree of obfuscation of the obfuscated code module by evaluating the trace output file.
    Type: Grant
    Filed: October 27, 2006
    Date of Patent: January 31, 2012
    Assignee: Panasonic Corporation
    Inventors: Kenneth Alexander Nicolson, Rieko Asai, Taichi Sato
  • Patent number: 8108841
    Abstract: A method for minimizing total cost of interaction among components of a computer program, each of the components being characterized by at least one implementation property includes steps of: a) carrying out at least a partial run of the program; b) monitoring the at least partial run of the program to measure an amount of interaction between each pair of components; c) determining a cost of interaction between each pair of interacting components; d) determining a choice of implementation properties which minimizes total cost of the at least partial run; and e) assigning that choice of implementation properties to the components for a subsequent at least partial run of the program.
    Type: Grant
    Filed: February 25, 2008
    Date of Patent: January 31, 2012
    Assignee: International Business Machines Corporation
    Inventors: Douglas Neil Kimelman, Vadakkedathu T. Rajan, Tova Roth, Vugranam C. Sreedhar, Mark N. Wegman
  • Patent number: 8108848
    Abstract: Functions are memoized automatically and transparently. Memoized code can be injected automatically within a program to facilitate efficient and/or expeditious execution thereof, among other things. The memoized code can intercept calls to an original function and return values in accordance with the code. Accordingly, callers of the function need not do anything special and can invoke the function without knowledge of it being memoized.
    Type: Grant
    Filed: August 15, 2007
    Date of Patent: January 31, 2012
    Assignee: Microsoft Corporation
    Inventors: Henricus Johannes Maria Meijer, Jeffrey van Gogh, Brian C. Beckman
  • Patent number: 8099721
    Abstract: Declarations from an input source code or tokenized source code are serialized into a stream of tokens produced by following each branch of a preprocessor conditional directive statement that interrupts a declaration. Tokens are labeled with a parsing path indicator corresponding to a parsing path induced by branches of a preprocessor conditional directive. The declarations that are formed along the different parsing paths are serialized by fetching the tokens that belong to the first parsing path in a first pass, and passing the tokens on to a next phase of a compiler. The pointer that marks the next token is repositioned to return to the start of the declaration. The declaration may be serialized again through the second parsing path in a second pass. The operation may be repeated until each of the parsing paths induced by the presence of branches of the preprocessor conditional directives in the source code is exhausted.
    Type: Grant
    Filed: June 17, 2008
    Date of Patent: January 17, 2012
    Assignee: Microsoft Corporation
    Inventor: Thierry Miceli
  • Patent number: 8091078
    Abstract: A program is into at least two object files: one object file for each of the supported processor environments. During compilation, code characteristics, such as data locality, computational intensity, and data parallelism, are analyzed and recorded in the object file. During run time, the code characteristics are combined with runtime considerations, such as the current load on the processors and the size of the data being processed, to arrive at an overall value. The overall value is then used to determine which of the processors will be assigned the task. The values are assigned based on the characteristics of the various processors. For example, if one processor is better at handling intensive computations against large streams of data, programs that are highly computationally intensive and process large quantities of data are weighted in favor of that processor. The corresponding object is then loaded and executed on the assigned processor.
    Type: Grant
    Filed: May 7, 2008
    Date of Patent: January 3, 2012
    Assignee: International Business Machines Corporation
    Inventors: Daniel Alan Brokenshire, Harm Peter Hofstee, Barry L Minor, Mark Richard Nutter
  • Patent number: 8087009
    Abstract: An Extensible Markup Language (XML) Application Server for storing, processing, communicating, and displaying dynamic semi-structured information. It comprises a declarative specification language, a transactional indexed XML data store, and an XML application server engine. An integrated architecture (a) provides for optimization, indexing, and backtracking search in a business logic layer, (b) provides for general-purpose programming idioms including recursive function definitions, iteration, and dynamic dispatch in data layer queries and updates, and (c) eliminates processing overhead and maintenance issues caused by transforming between relational, object-oriented, and semi-structured data paradigms.
    Type: Grant
    Filed: February 24, 2009
    Date of Patent: December 27, 2011
    Inventor: Judson Ames Cornish
  • Patent number: 8082144
    Abstract: A method for explaining a form that includes receiving input code, wherein the input code is associated with the form, processing the input code to create an explanation dynamically associated with the form, and outputting the explanation into a natural language.
    Type: Grant
    Filed: May 22, 2006
    Date of Patent: December 20, 2011
    Assignee: Intuit Inc.
    Inventors: Bradford R. Brown, Michael Wang, Michael A. Artamonov
  • Publication number: 20110302651
    Abstract: Embodiments of the invention provide a method, apparatus, and program product to verify a program that includes a plurality of sections with a computing system that is configured to process a plurality of threads of execution. The method comprises verifying and executing a first section of the program utilizing a first thread of execution in response to activation of the program and determining a second section of the program to execute subsequent to the first section. The method further comprises verifying the second section utilizing a second thread of execution in parallel with the execution of the first section. Another embodiment of the invention provides a method of compiling program that includes program code by grouping the program code into sections based upon the execution time of the program code and based upon which program code is most commonly executed.
    Type: Application
    Filed: June 3, 2010
    Publication date: December 8, 2011
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Cary L. Bates, Christopher A. Peterson
  • Patent number: 8065668
    Abstract: A type system includes a dual representation for basic data types. One representation is the basic data type representation common to such basic built-in data types, known as an unboxed value type or simply as a value type. Each of the basic data types also has a boxed representation that can be stored in the object hierarchy of the type system. This dual representation can also be extended to user-defined types, so that user-defined types may exist both as an unboxed value type and as an object within the object hierarchy of the type system. This dual representation allows the compiler and/or runtime environment to select the most effective and efficient representation for the data type depending on the particular need at the moment.
    Type: Grant
    Filed: May 17, 2004
    Date of Patent: November 22, 2011
    Assignee: Microsoft Corporation
    Inventors: George H. Bosworth, Patrick H. Dussud, James S. Miller, Daryl B. Olander
  • Patent number: 8065669
    Abstract: A compiler (or interpreter) detects source language instructions performing arithmetic operations using a fixed point format (preferably packed decimal). Where the operation can be performed without loss of precision or violation of other constraints of the source language, the compiler automatically converts the operands to a floating point format (preferably Decimal Floating Point (DFP)) having hardware support, and re-converts results to the original fixed point format. Preferably, the compiler may combine multiple operations and instructions in an expression tree, analyze the tree, and selectively convert where possible. The compiler preferably performs a heuristic cost judgment in determining whether to use a particular conversion.
    Type: Grant
    Filed: March 13, 2008
    Date of Patent: November 22, 2011
    Assignee: International Business Machines Corporation
    Inventors: Robert John Donovan, William Jon Schmidt
  • Patent number: 8060859
    Abstract: A type system employing structural subtyping is disclosed herein. A core type system supports several structural types, such as stream, choice, intersection and sequence. Also part of the core type system is a new invariant type, which denotes values whose dynamic type is the same as its static type, and type restrictions for limiting a range of a base type. Furthermore, a streamlined structural version of delegates, called structural delegates and a validation method thereof are introduce into the type system. To further facilitate type safety, strict statically checked interface casts are introduced.
    Type: Grant
    Filed: June 16, 2008
    Date of Patent: November 15, 2011
    Assignee: Microsoft Corporation
    Inventors: Erik Meijer, Wolfram Schulte, Barend H. Venter, Chia-Hsun Chen, Christopher J. Lovett, Matthew J. Warren
  • Patent number: 8060868
    Abstract: Providing for read/write access to captured free variables expressed as environment data objects is disclosed herein. By way of example, free variables can be rewritten as a field of a private class, and accessed via an instance of the private class captured within the environment data object. In such a manner, no need of a placeholder or proxy function is required to access the free variable. Consequently, the subject innovation provides a simplified method for capturing free variables within expression trees and providing read/write access to such variables.
    Type: Grant
    Filed: June 21, 2007
    Date of Patent: November 15, 2011
    Assignee: Microsoft Corporation
    Inventors: Henricus Johannes Maria Meijer, Anders Hejlsberg, Mads Torgersen, Peter A. Hallam, Matthew J. Warren, Dinesh C. Kulkarni, Clemens Alden Szyperski
  • Publication number: 20110276948
    Abstract: Partition-based static analysis of computer software applications may include inspecting each of a plurality of modules of a computer software application to identify at least one dependency of the inspected module on at least one other module of the computer software application, for each of the inspected modules, determining any transitive dependencies of the inspected module from the dependencies identified for the inspected module, performing a first static analysis on one of the inspected modules and its transitive dependencies, and performing a second static analysis on another of the inspected modules and its transitive dependencies, where the first and second analyses may be performed independently from each other.
    Type: Application
    Filed: May 10, 2010
    Publication date: November 10, 2011
    Applicant: International Business Machines Corporation
    Inventor: Omer Tripp
  • Patent number: 8056068
    Abstract: The present invention provides a probe system and method for multithreaded user-space programs. The system includes an instrumentation module that enables single stepping out of line processing for multithreaded programs, an establish probepoint module that divides up an area of the probed program's memory into a plurality of instruction slots, an ensure slot assigned module that ensures that an instruction slot is assigned to a probepoint, a slot acquisition module that acquires the instruction slot for the probepoint, stealing a slot from another probepoint as needed, and a free slot module that relinquishes the instruction slot owned by the probepoint when the probepoint is being unregistered.
    Type: Grant
    Filed: September 11, 2007
    Date of Patent: November 8, 2011
    Assignee: International Business Machines Corporation
    Inventors: Prasadarao Akulavenkatavara, Gerrit Huizenga, James A. Keniston
  • Patent number: 8056055
    Abstract: A mechanism controls disposition of a candidate object in an object-oriented programming environment. The mechanism identifies cyclic information related to an object being considered for destruction and determines based on that information whether the candidate object is externally unreachable and can therefore be destroyed. The cyclic information may be stored for repeated use.
    Type: Grant
    Filed: June 9, 2008
    Date of Patent: November 8, 2011
    Assignee: The MathWorks, Inc.
    Inventor: David A. Foti
  • Patent number: 8056053
    Abstract: A code cell is selected from a program code. The code cell is a contiguous subsection of code. To select the code cell from the program code, a first indicator is placed in the program code prior to the beginning of the code cell and a second indicator is placed in the program code after the end of the code cell. The code cell is edited to obtain an edited code cell. The edited code cell is analyzed, without saving the program code, to produce a result. The result is provided.
    Type: Grant
    Filed: July 25, 2007
    Date of Patent: November 8, 2011
    Assignee: The MathWorks, Inc.
    Inventor: Edward Whittington Gulley
  • Patent number: 8051410
    Abstract: An apparatus migrates and/or converts any source application working on any platform into a format of any target platform. It comprises an inputting means for accepting the entire source code of sample part in ASCII to analyze the business logic of the source application and corresponding data; an analyzing means for analyzing the source schemes; a setting up means for generating (updating or creating) custom knowledge base; a processing means for conversion of source code in format of target specification; and A documenting means for generation of reports during review of the process stage and a summary report after the end of the conversion process, which consists of the code that is not converted automatically.
    Type: Grant
    Filed: December 10, 2004
    Date of Patent: November 1, 2011
    Assignee: EvolveWare, Inc.
    Inventors: Miten Marfatia, Ajay M. Rambhia
  • Patent number: 8046749
    Abstract: A tool for analyzing a sequence of data in an object-oriented environment is disclosed. In an embodiment, the sequence of data may include time-indexed sequence of data (“time series data”). The tool may enable a user to generate a time series object for encapsulating the time series data in the object-oriented environment. The user may construct the time series object from data or mathematical expressions using a command line interface. The time series object may include a sequence of objects implementing APIs that supply an interface for analyzing the times series data in the time series object. The user may analyze the time series data encapsulated in the time series object using the APIs of the time series object.
    Type: Grant
    Filed: June 27, 2006
    Date of Patent: October 25, 2011
    Assignee: The MathWorks, Inc.
    Inventors: James G. Owen, Rajiv Singh, Rong Chen, Pascal Gahinet
  • Patent number: 8037456
    Abstract: A program execution device is provided which, even when a currently executed application (program) abnormally terminates, can prevent the application from becoming unusable, and thereby improve user convenience. An MA management unit includes: an MA management unit main for receiving an instruction from an initialization subprogram and controlling the other constituent elements in the MA management unit; an XAIT obtainment analysis unit for analyzing an XAIT sent from the head end; an MA selection unit A for selecting a program to be activated, according to the XAIT analysis result; an MA activation unit for activating of the specified program; an MA monitoring unit for monitoring the operational state of the specified program and notifying when an abnormal termination has occurred; and an MA selection unit B for selecting an alternative program.
    Type: Grant
    Filed: April 4, 2005
    Date of Patent: October 11, 2011
    Assignee: Panasonic Corporation
    Inventors: Yoshio Kawakami, Yuki Horii
  • Patent number: 8037462
    Abstract: A method for providing parallel processing capabilities including: performing scalar and array privatization analysis via a compiler; checking whether an assignment statement is reducible; recognizing reduction patterns through a pattern matching algorithm; classifying a reduction type of each of the reduction patterns; and performing transformations and code generation for each reduction the reduction type of each of the reduction patterns.
    Type: Grant
    Filed: August 2, 2006
    Date of Patent: October 11, 2011
    Assignee: International Business Machines Corporation
    Inventors: Roch G. Archambault, Yaoqing Gao, Zhixing Ren, Raul E. Silvera
  • Patent number: 8032822
    Abstract: A method for reviewing data dependencies in a document that includes requesting an explanation of a dependent data container in a plurality of data containers, in which the dependent data container resides within a document, and receiving the explanation of the dependent data container, in which the explanation that includes information about the dependent data container and information about a precedent data container of the plurality of data containers, and in which the information describes the dependency between the precedent data container and the dependent data container.
    Type: Grant
    Filed: July 28, 2006
    Date of Patent: October 4, 2011
    Assignee: Intuit Inc.
    Inventors: Michael A. Artamonov, Michael Wang, Bradford R. Brown, Jay Jie-Bing Yu, James S. Gillespie
  • Patent number: 8028280
    Abstract: A computer program product and computer system for implementing a method of compiler optimisation of source code during compilation of the source code in a computer environment. The compiler optimisation of source code includes: recasting two algebraic expressions into a form of one or more token pairs arranged sequentially in a string, each token pair including an operator followed by an operand; reducing the strings in accordance with a set of predetermined simplifying rules; and comparing the reduced strings by matching to detect an equivalence of the two algebraic expressions.
    Type: Grant
    Filed: January 17, 2008
    Date of Patent: September 27, 2011
    Assignee: International Business Machines Corporation
    Inventor: Rajendra Kumar Bera
  • Publication number: 20110202906
    Abstract: A compiling method for translating an input program to an object program enables a user to easily ascertain how the input program and the object program are affected by designation of a plurality of extended language specifications. The compiling method includes: analyzing, in the case where the plurality of extended language specifications are designated in the input program, the designated plurality of extended language specifications, to determine which part of the input program is affected by the designated plurality of extended language specifications; and outputting information about the part, together with the object program.
    Type: Application
    Filed: April 26, 2011
    Publication date: August 18, 2011
    Applicant: PANASONIC CORPORATION
    Inventor: Shinobu ASAO
  • Patent number: 8001538
    Abstract: Various technologies and techniques are disclosed for providing software accessible metadata on a cache of a central processing unit. The metadata can include at least some bits for each virtual address, at least some bits for each cache line, and at least some bits for the cache overall. An instruction set architecture on the central processing unit is provided that includes additional instructions for interacting with the metadata. New side effects that are introduced into an operation of the central processing unit by a presence of the metadata and the additional instructions. The metadata can be accessed by at least one software program to facilitate an operation of the software program.
    Type: Grant
    Filed: June 8, 2007
    Date of Patent: August 16, 2011
    Assignee: Microsoft Corporation
    Inventors: Jan Gray, Timothy L. Harris, James Larus, Burton Smith
  • Publication number: 20110191756
    Abstract: A code ID range table holding code ID ranges for each code and a next code ID table holding next code IDs, which are the code ID located next to each code ID, are created. Code ID ranges of codes configuring a search code string are read out from the code ID range table for the search target code string, and the stored next code ID corresponding to a code ID included in the code ID range of the head code in the search code string is read out from the next code ID table while the stored next code IDs corresponding to the next codes are successively read out from the next code ID table, and the next code ID read out from the next code ID table is verified whether it is included in the code ID range read out from the code ID range table.
    Type: Application
    Filed: March 28, 2011
    Publication date: August 4, 2011
    Applicant: S. Grants Co., Ltd.
    Inventors: Toshio Shinjo, Mitsuhiro Kokubun