Analysis Of Code Form Patents (Class 717/141)
  • Patent number: 7987451
    Abstract: A verification system, method and computer program product are provided. In one embodiment, one of a plurality of call instruction formats is selected. In addition, it is verified whether an invocation of an interface was attempted by code utilizing the selected call instruction format. Further, the selection and the verification are repeated for each of the plurality of call instruction formats. In another embodiment, a return target address is identified. Still yet, it is determined whether return of contra to the return target address would result in invocation a one of a plurality of interfaces.
    Type: Grant
    Filed: November 20, 2006
    Date of Patent: July 26, 2011
    Assignee: McAfee, Inc.
    Inventor: Gregory William Dalcher
  • Publication number: 20110179403
    Abstract: Disclosed herein are systems, methods, and computer-readable storage media for obfuscating using inlined functions. A system configured to practice the method receives a program listing including annotated functions for obfuscation, identifies an annotated function called more than once in the program listing, and creates an inline control flow structure in the program listing for the identified annotated function, the control flow structure being computationally equivalent to inlining the identified annotated function into the program listing for each occurrence of the identified annotated function. The program listing can include tiers of annotated functions. The system can identify annotated functions called more than once based on an optionally generated callgraph. The system can create inline control flow structures in the program listing in order of annotation importance. The system can identify how many times each annotated function is called in the program listing.
    Type: Application
    Filed: January 15, 2010
    Publication date: July 21, 2011
    Applicant: Apple Inc.
    Inventors: Julien Lerouge, Nicholas T. Sullivan, Ginger M. Myles, Jon McLachlan, Augustin J. Farrugia
  • Publication number: 20110173594
    Abstract: Systems and methods are described herein for selectively loading code elements included in a plurality of software entities comprising a target software entity and one or more reference software entities to facilitate analysis of the target software entity by a code analysis tool, such as a static code analysis tool. In one embodiment, all of the code elements in the target software entity are loaded while only those code elements included in the reference software entities that are determined to be most important from a dependency standpoint are loaded. The loaded code elements may be used to obtain suitable definitions of the code elements included in the target software entity for the purpose of code analysis.
    Type: Application
    Filed: January 14, 2010
    Publication date: July 14, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: David Bartolomeo, Todd L. King
  • Patent number: 7979848
    Abstract: Systems, methods and apparatus are provided through which, in some embodiments, a formal specification is pattern-matched from scenarios, the formal specification is analyzed, and flaws in the formal specification are corrected. The systems, methods and apparatus may include pattern-matching an equivalent formal model from an informal specification. Such a model can be analyzed for contradictions, conflicts, use of resources before the resources are available, competition for resources, and so forth. From such a formal model, an implementation can be automatically generated in a variety of notations. The approach can improve the resulting implementation, which, in some embodiments, is provably equivalent to the procedures described at the outset, which in turn can improve confidence that the system reflects the requirements, and in turn reduces system development time and reduces the amount of testing required of a new system.
    Type: Grant
    Filed: September 21, 2006
    Date of Patent: July 12, 2011
    Assignee: The United States of America as represented by the Administrator of the National Aeronautics and Space Administration
    Inventors: Michael G. Hinchey, James L. Rash, Christopher A. Rouff
  • Patent number: 7974968
    Abstract: A pre-pass and direct call mechanism which replaces the interpreter. The mechanism moves static decisions out of the repeated runtime path, into a pre-pass operation. Advantageously, the mechanism reduces runtime overhead, and improves overall performance of the DBMS during runtime, while maintaining the considerable investment in opcode generation and plan representation, already invested in the implementation of the DBMS.
    Type: Grant
    Filed: May 6, 2008
    Date of Patent: July 5, 2011
    Assignee: International Business Machines Corporation
    Inventors: Ian R. Finlay, Douglas James Doole
  • Publication number: 20110154306
    Abstract: An embodiment of the invention includes code, such as a compiler, that enables byte order dependent code to execute on opposite byte order dependent architectures or systems. The compiler analyzes source code and produces diagnostic reports that indicate where source code changes are desirable to produce “endian neutral” source code versions that are compatible with opposite byte order dependent architectures or systems. Such source code changes may be desirable for code portions that will produce implicit byte order changes or byte order border crossings. The modified source code that is generated may include the semantics of the desired endian conversion, as opposed to generated executable code that includes proper endian formats but which may limit the architectures to which the code is applicable.
    Type: Application
    Filed: December 21, 2009
    Publication date: June 23, 2011
    Inventors: Maximillian J. Domeika, Hugh Wilkinson, Michael P. Rice
  • Patent number: 7966606
    Abstract: In one embodiment, the present invention includes a method for determining whether a select statement can be transformed, and if so selecting a first or second transformation operation based on compiler-evaluated values for certain variables of the select statement, performing the selected transformation operation to obtain at least one new statement, and replacing the select statement with the at least one new statement. Other embodiments are described and claimed.
    Type: Grant
    Filed: September 6, 2007
    Date of Patent: June 21, 2011
    Assignee: Intel Corporation
    Inventors: David Kreitzer, Mitchell Bodart
  • Patent number: 7966605
    Abstract: A method and apparatus are described for providing an undoable programming language. More specifically, the present invention relates to providing a fully undoable programming language, where the language includes a fully undoable core language portion and a conventional language portion. An embodiment of the present invention includes a method of determining an actual target of an event calculating a set of pre-events of the event, adding the set of pre-events as children of the event, and the set of pre-events being set to be raised to a pre-queue of the event. The method also includes applying an event principle to each pre-event of the event such that a set of protected positions being augmented with an upward closure of the target, executing the event, if the actual target is defined and the event is consumable, and applying the event principle to each post-event of the event.
    Type: Grant
    Filed: December 26, 2006
    Date of Patent: June 21, 2011
    Assignee: AT&T Intellectual Property II, L.P.
    Inventors: Giuseppe Di Fabbrizio, Nils Klarlund
  • Patent number: 7950009
    Abstract: A method of displaying contents on a mobile terminal. The method includes displaying a plurality of contents on a display of the mobile terminal, selecting a content from the plurality of displayed contents, and displaying the selected content and similar contents having a similar type as the selected content to be discriminated from other displayed contents that do not have the similar type as the selected content.
    Type: Grant
    Filed: December 11, 2007
    Date of Patent: May 24, 2011
    Assignee: LG Electronics Inc.
    Inventor: Jong Hwan Kim
  • Patent number: 7950003
    Abstract: A method and apparatus for software development and a method and system for analysis of graphics software are disclosed.
    Type: Grant
    Filed: March 2, 2007
    Date of Patent: May 24, 2011
    Assignee: Sony Computer Entertainment Inc.
    Inventors: Nathaniel G. Duca, Vlad Stamate, Thomas Flynn, Stace Peterson, Alexandre De Pereyra
  • Patent number: 7945904
    Abstract: An architecture that extends conventional computer programming languages that compile into an instance of an extensible markup language (XML) document object model (DOM) to provide support for XML literals in the underlying programming language. This architecture facilitates a convenient short cut by replacing the complex explicit construction required by conventional systems to create an instance of a DOM with a concise XML literal for which conventional compilers can translate into the appropriate code. The architecture allows these XML literals to be embedded with expressions, statement blocks or namespaces to further enrich the power and versatility. In accordance therewith, context information describing the position and data types that an XML DOM can accept can be provided to the programmer via, for example, an integrated development environment.
    Type: Grant
    Filed: August 22, 2005
    Date of Patent: May 17, 2011
    Assignee: Microsoft Corporation
    Inventors: Henricus Johannes Maria Meijer, David N. Schach, Avner Y. Aharoni, Peter F. Drayton, Brian C. Beckman, Amanda Silver, Paul A. Vick
  • Patent number: 7941792
    Abstract: A system is disclosed for compiling program code. The system provides a compiler that includes a static verifier and a runtime verifier. The static verifier performs static checks on the program code and produces object code corresponding to the program code. The runtime verifier receives the object code and performs dynamic checks on the object code in a platform dependent environment. The resulting object code can subsequently be executed.
    Type: Grant
    Filed: July 22, 2005
    Date of Patent: May 10, 2011
    Assignee: Red Hat, Inc.
    Inventor: Thomas Joseph Tromey
  • Patent number: 7937692
    Abstract: Embodiments of the present invention provide systems and methods for the static analysis of entire systems of software. Source code for at least some of the software system is received. An functional representation of the source code is generated from when the source code is compiled and references to other software are identified. The functional representations of the other software is retrieved from an archive and an abstract representation of the entire software system is built. A static analysis is then performed against the abstract representation of the entire system and results are provided. The software system or one or more of its components may be certified based on the static analysis results.
    Type: Grant
    Filed: November 30, 2005
    Date of Patent: May 3, 2011
    Assignee: Red Hat, Inc.
    Inventor: Ulrich Drepper
  • Patent number: 7937693
    Abstract: A method, system and computer program product for obfuscating pseudocode (e.g., p-code, IL-code, byte-code, etc.), including creating a class-container; declaring an anonymizer method in the class-container; identifying method call instructions in the pseudocode; replacing, in the pseudocode, method calls with calls of the anonymizer method; and in the anonymizer method, adding the method call instructions. All or some of the added method calls have the same name. Parameter types of the added calls can be replaced with an abstract type. Return types of the added calls can be replaced with an abstract type. The class-container is a global class, and includes calls to public method, or the class-container is a private nested class, and includes calls to private methods, or two separate class-containers can be used.
    Type: Grant
    Filed: September 29, 2006
    Date of Patent: May 3, 2011
    Assignee: 9Rays.Net, Inc.
    Inventor: Victor Y. Victorov
  • Patent number: 7930079
    Abstract: A software system for use in an electronic control unit (ECU) is designed to facilitate its reuse without redesigning of triggers even when a target hardware is changed. The design of the software system includes a classification of trigger types into two categories, that is, a function trigger and a software trigger, and combination of the function trigger to the software tasks in addition to the association of the function triggers with the software triggers for hardware independent design of the software system.
    Type: Grant
    Filed: March 20, 2007
    Date of Patent: April 19, 2011
    Assignee: Denso Corporation
    Inventors: Takayuki Toya, Minoru Okada, Takashi Sugiyama
  • Patent number: 7926039
    Abstract: An improved method for automatically improving the precision of an extrapolation operator used, for example, in software program verification in connection with the static analysis and model checking of the software programs which rely on fix-point computation. In particular, a new extrapolation-with-care-set operator, together with a method for gradually increasing the precision of this operation by tightening the care set.
    Type: Grant
    Filed: March 28, 2007
    Date of Patent: April 12, 2011
    Assignee: NEC Laboratories America, Inc.
    Inventors: Chao Wang, Zijiang Yang, Aarti Gupta
  • Patent number: 7921418
    Abstract: A method and system for evaluating a call to a library function at compile time. A first call included in a program being compiled by a compiler is identified. The first call is a call to a library function included in a pre-defined list of library functions external to the program. The first call includes one or more arguments associated with one or more formal arguments of a library function in the pre-defined list. The identification of the first call includes searching the pre-defined list of library functions for the library function. The arguments are determined to be constants. A second call to the library function is constructed in an optimizer of the compiler. A result of the second call is statically computed in the optimizer by issuing the second call with the constants as arguments. During compile time, the first call is replaced with the result.
    Type: Grant
    Filed: August 15, 2006
    Date of Patent: April 5, 2011
    Assignee: International Business Machines Corporation
    Inventors: Rohini Nair, Thomas James Christopher Ward
  • Patent number: 7913237
    Abstract: The current invention describes a virtual machine designed to run on a variety of platforms of varied capabilities, and in particular describes support in the coding and development environment for assessing and managing the variation in capability and performance among the platforms.
    Type: Grant
    Filed: August 26, 2004
    Date of Patent: March 22, 2011
    Assignee: Ensequence, Inc.
    Inventors: Troy Steven Acott, Stacy Anne Monday, Larry A. Westerman
  • Patent number: 7890936
    Abstract: A method for reverse reading a computer program code to locate useful information includes receiving a selection of a line of the computer program code from a user, extracting one or more variables from the line of the computer program, searching the computer program code for one or more other lines of code that create and/or use the variables, and highlighting the other lines of code that create and/or use the variables.
    Type: Grant
    Filed: July 31, 2006
    Date of Patent: February 15, 2011
    Assignee: International Business Machines Corporation
    Inventors: Cary L. Bates, Jason J. Illg
  • Publication number: 20110035726
    Abstract: A solution for identifying build errors associated with a source code file for determining source code elements for refactoring. An embodiment of the invention utilizes a source code management system in combination with build logs generated by a build environment to determine source code elements that would benefit from refactoring.
    Type: Application
    Filed: August 9, 2010
    Publication date: February 10, 2011
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: STEPHEN A. DAVIES, LIAM SMYTH, PAUL THOMAS
  • Publication number: 20110029960
    Abstract: The disclosed embodiments provide a system that encapsulates and manages diagnostic information. During operation, the system detects an event that generates diagnostic information, and stores this diagnostic information in a format that preserves semantic information associated with the event. The system also determines an output context (e.g., the intended target environment) for the diagnostic information, and then uses the preserved semantic information to output the diagnostic information in a context-sensitive format suited for the output context. Note that outputting customized diagnostic information that is adapted to a specific target environment facilitates improving the quality of diagnostic information presented to a user.
    Type: Application
    Filed: June 28, 2010
    Publication date: February 3, 2011
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Maurizio Cimadamore, Jonathan J. Gibbons, Alexander R. Buckley
  • Patent number: 7882498
    Abstract: Provided are a method, system, and program for parallelizing source code with a compiler. Source code including source code statements is received. The source code statements are processed to determine a dependency of the statements. Multiple groups of statements are determined from the determined dependency of the statements, wherein statements in one group are dependent on one another. At least one directive is inserted in the source code, wherein each directive is associated with one group of statements. Resulting threaded code is generated including the inserted at least one directive. The group of statements to which the directive in the resulting threaded code applies are processed as a separate task. Each group of statements designated by the directive to be processed as a separate task may be processed concurrently with respect to other groups of statements.
    Type: Grant
    Filed: March 31, 2006
    Date of Patent: February 1, 2011
    Assignee: Intel Corporation
    Inventors: Guilherme D. Ottoni, Xinmin Tian, Hong Wang, Richard A. Hankins, Wei Li, John Shen
  • Patent number: 7877739
    Abstract: A computer-implemented method for determining whether an array within a loop can be privatized for that loop is presented. The method calculates the array sections that require first or last privatization and copies only those sections, reducing the privatization overhead of the known solutions.
    Type: Grant
    Filed: October 9, 2006
    Date of Patent: January 25, 2011
    Assignee: International Business Machines Corporation
    Inventors: Roch G. Archambault, Erik P. Charlebois, Guansong Zhang
  • Patent number: 7873657
    Abstract: In a method and system for hosting a programming environment and processing user input within an information retrieval system, a definition of an expression is received from a user, during a first session between the user and an information retrieval system, the definition specifying an expression format, a response type, and a display format. The definition is stored. During a second session between the user and the information retrieval system, an expression having a semantic structure is received. The semantic structure of the expression is evaluated. A response to the expression is displayed to the user in a user interface according to the display format specified by the definition of the expression type.
    Type: Grant
    Filed: January 12, 2007
    Date of Patent: January 18, 2011
    Assignee: SAS Institute, Inc.
    Inventors: Emmanuel Roche, Yves Schabes
  • Patent number: 7865885
    Abstract: Dynamic optimization of application code is performed by selecting a portion of the application code as a possible transaction. A transaction has a property that when it is executed, it is either atomically committed or atomically aborted. Determining whether to convert the selected portion of the application code to a transaction includes determining whether to apply at least one of a group of code optimizations to the portion of the application code. If it is determined to apply at least one of the code optimizations of the group of optimizations to the portion of application code, then the optimization is applied to the portion of the code and the portion of the code is converted to a transaction.
    Type: Grant
    Filed: September 27, 2006
    Date of Patent: January 4, 2011
    Assignee: Intel Corporation
    Inventors: Youfeng Wu, Cheng Wang, Ho-seop Kim
  • Patent number: 7865884
    Abstract: A method, computer program and device for the translation of typed data objects in a heterogeneous computational environment is described. The operating system (or installed shared code libraries) translates typed data objects from a first format (e.g., big-endian) to a second format (e.g., little-endian) if the application sending the object and the application receiving the object utilize different formats. By placing data object format translation capabilities into the operating system, the software development effort required to permit an application (e.g., a user-level application) to execute in a heterogeneous environment is significantly reduced.
    Type: Grant
    Filed: June 3, 2005
    Date of Patent: January 4, 2011
    Assignee: Apple Inc.
    Inventors: Eric Albert, Alexei Elias Kosut, Matthew George Watson, Steve Zellers
  • Patent number: 7861229
    Abstract: A schema code complexity analysis architecture that computes complexity data for output to a code designer. The complexity data can be in the form of a number and/or complexity level. A schema component is provided for processing schema code, and a metrics component, for outputting a complexity value based on complexity of the schema code. In one implementation, the schema code is based on an XML schema, and the metrics component employs a newly-defined variation of a McCabe cyclomatic complexity metric to determine the complexity value. The decisions employed for computing schema complexity can include choices, occurrence constraints, element references to substitution groups, type references to types that are extended or restricted, a multiplicity of root element declarations, and nillable elements.
    Type: Grant
    Filed: March 16, 2006
    Date of Patent: December 28, 2010
    Assignee: Microsoft Corporation
    Inventors: Ralf Lammel, Stanislav Kitsis, David L. Remy, Priyamvadha P. Lakshminarayanan
  • Publication number: 20100325607
    Abstract: A compiler deployed as a component of an integrated development environment (“IDE”) is adapted to transform source code into target code that is correct by construction by complying with approved patterns described by an external configuration file which is utilized to parameterize the generation of the target code by a code generator. The approved patterns can express various design requirements, guidelines, policies, and the like that are acceptable for the target code to include as well as those which are unacceptable. A rules generator that applies regular tree grammar is configured to encapsulate the approved patterns in the external configuration file using a formal description that is machine-readable by the code generator. A source code translator is alternatively utilized to transform non-compliant source code into compliant source code that adheres to the approved patterns.
    Type: Application
    Filed: June 17, 2009
    Publication date: December 23, 2010
    Applicant: Microsoft Corporation
    Inventors: Erik Meijer, John Wesley Dyer
  • Publication number: 20100325618
    Abstract: A compilation method is provided for automated user error correction. The method includes using a compiler driver run by a processor to receive a source file for compilation. With a compiler component invoked by the compiler driver, the method includes identifying an error in the source file such as a linking problem or syntax error in the user's program. The method includes receiving with the compiler driver an error message corresponding to the identified error. With an error corrector module run by the processor, the method includes processing the error message to determine an error correction for the identified error in the source file. The compiler driver modifies the source file based on the error correction and compiles the modified source file with the compiler component.
    Type: Application
    Filed: June 22, 2009
    Publication date: December 23, 2010
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Yonghong Song, Spiros Kalogeropulos, Partha P. Tirumalai
  • Publication number: 20100318976
    Abstract: A method for constructing a customized web analytics application comprises providing a base analytics code, including a base data mining code and a plurality of tokens corresponding to unincorporated code snippets, and incorporating code snippets as selected to create the application where each code snippet is configured to track a different custom web analytic. The system displays a selection of at least one web analytic to track and receives user selection of at least one displayed web analytic to track over a wide area network. Once selected, an unincorporated code snippet corresponding to each selected displayed web analytic is retrieved from a library of such code snippets. The code snippet is then substituted in place of its corresponding token within the base analytics code to create a customized analytics code. The customized code is finalized by removing the remaining tokens and the finalized code transmitted to the user for incorporation into their web pages.
    Type: Application
    Filed: June 11, 2009
    Publication date: December 16, 2010
    Applicant: WEBTRENDS, INC.
    Inventors: David Everly, Eric Butler
  • Patent number: 7853935
    Abstract: A method and system for generating programming code and/or configuration data for programmable controller and the networks on which they operate is disclosed. In one embodiment, programming code is generated on a centralized server having a web-enabled engineering tool. The engineering tool operates on client devices that are in communication with the server over a network, such as the Internet. Preferably, the engineering tool runs in a browser application (or other network-interfacing-application) on the client device and a user generates the programming code on the server with the aid of the client device. By centralizing the engineering tool, which may contain a configuration editor and a configuration management tool having version management functionality, a new business paradigm for providing engineering tool services to customers having programmable controllers. In addition, new methods and tools for collaborative engineering of programming code are enabled.
    Type: Grant
    Filed: December 21, 2004
    Date of Patent: December 14, 2010
    Assignee: Siemens Industry, Inc.
    Inventor: George Lo
  • Patent number: 7853906
    Abstract: An accelerated High-Level Bounded Model Checking method that efficiently extracts high-level information from the model, uses that extracted information to obtain an improved verification model, and applies relevant information on-the-fly to simplify the BMC-problem instances.
    Type: Grant
    Filed: March 22, 2007
    Date of Patent: December 14, 2010
    Assignee: NEC Laboratories America, Inc.
    Inventors: Malay Ganai, Aarti Gupta
  • Patent number: 7849453
    Abstract: One embodiment of the present invention provides a system that generates code for software scouting the regions of a program. During operation, the system receives source code for a program. The system then compiles the source code. In the first step of the compilation process, the system identifies a first set of loops from a hierarchy of loops in the source code, wherein each loop in the first set of loops contains at least one effective prefetch candidate. Then, from the first set of loops, the system identifies a second set of loops where scout-mode prefetching is profitable. Next, for each loop in the second set of loops, the system produces executable code for a helper-thread which contains a prefetch instruction for each effective prefetch candidate. At runtime the helper-thread is executed in parallel with the main thread in advance of where the main thread is executing to prefetch data items for the main thread.
    Type: Grant
    Filed: November 9, 2005
    Date of Patent: December 7, 2010
    Assignee: Oracle America, Inc.
    Inventors: Partha P. Tirumalai, Yonghong Song, Spiros Kalogeropulos
  • Patent number: 7849387
    Abstract: In one embodiment, a quantum detector is provided to detect a vulnerability measure for a processor based on a processor metrics each associated with operation of a processor structure during a quantum, along with a controller to control an error mitigation unit based on the vulnerability measure. Other embodiments are described and claimed.
    Type: Grant
    Filed: April 23, 2008
    Date of Patent: December 7, 2010
    Assignee: Intel Corporation
    Inventors: Arijit Biswas, Niranjan Soundararajan, Shubhendu Mukherjee
  • Publication number: 20100306749
    Abstract: Presently described is a decompilation method of operation and system for parsing executable code, identifying and recursively modeling data flows, identifying and recursively modeling control flow, and iteratively refining these models to provide a complete model at the nanocode level. The nanocode decompiler may be used to determine if flaws, security vulnerabilities, or general quality issues exist in the code. The nanocode decompiler outputs in a standardized, human-readable intermediate representation (IR) designed for automated or scripted analysis and reporting. Reports may take the form of a computer annotated and/or partially human annotated nanocode listing in the above-described IR. Annotations may include plain English statements regarding flaws and pointers to badly constructed data structures, unchecked buffers, malicious embedded code or “trap doors,” and the like. Annotations may be generated through a scripted analysis process or by means of an expert-enhanced, quasi-autonomous system.
    Type: Application
    Filed: May 24, 2010
    Publication date: December 2, 2010
    Inventor: Christien R. Rioux
  • Publication number: 20100281471
    Abstract: Methods and apparatuses for compiler-created helper thread for multi-threading are described herein. In one embodiment, exemplary process includes identifying a region of a main thread that likely has one or more delinquent loads, the one or more delinquent loads representing loads which likely suffer cache misses during an execution of the main thread, analyzing the region for one or more helper threads with respect to the main thread, and generating code for the one or more helper threads, the one or more helper threads being speculatively executed in parallel with the main thread to perform one or more tasks for the region of the main thread. Other methods and apparatuses are also described.
    Type: Application
    Filed: December 31, 2009
    Publication date: November 4, 2010
    Inventors: Shih-Wei Liao, Xinmin Tian, Gerolf F. Hoflehner, Hong Wang, Daniel M. Lavery, Perry Wang, Dongkeun Kim, Milind Girkar, John P. Shen
  • Patent number: 7814477
    Abstract: In one embodiment, a system for customizing executable software code is provided. The system can include a scan logic configured to scan the executable software code to determine an execution trigger point in the executable software code. A packager logic can be configured to alter the execution trigger point by embedding, into the executable software code, alternative code configured to cause a customized logic to execute at the execution trigger point.
    Type: Grant
    Filed: May 20, 2003
    Date of Patent: October 12, 2010
    Assignee: Oracle International Corp.
    Inventors: Wenchao Sun, Jian-Ping Shi, Chandra P. Patni
  • Patent number: 7814468
    Abstract: A method for loop reformulation is provided such that a single exit ill-formed loop (SEIFL) can be reformulated into a reformulated code block that contains a transformed well-formed loop (TWFL). A SEIFL loop is a loop that can exit from the loop body of the loop. After the loop reformulation, the TWFL of the reformulated code block can only exit from the end of the loop. The reformulated code block will replace the SEIFL in the compiler's internal representation (IR) such that a more efficient executable machine code can be generated by optimizing the reformulated compiler's IR.
    Type: Grant
    Filed: April 20, 2005
    Date of Patent: October 12, 2010
    Assignee: Oracle America, Inc.
    Inventors: Yonghong Song, Xiangyun Kong
  • Patent number: 7814069
    Abstract: Methods and apparatus for checking the compliance of a file with global and custom standards are disclosed. According to one aspect of the present invention, a method for checking a file that is associated with a first set of standards and a second set of standards into a repository includes providing the file to a checking arrangement that includes a checking tool and an adapter that is interfaced with the checking tool. The method also includes executing the checking tool to determine compliance of the file with the first set of standards, and executing the adapter to determine compliance of the file with the second set of standards.
    Type: Grant
    Filed: March 30, 2006
    Date of Patent: October 12, 2010
    Assignee: Oracle International Corporation
    Inventor: Jyotsna Bendapudi
  • Patent number: 7810081
    Abstract: A method, system and computer program product for performing error correction are disclosed. The method includes performing on source code a selected compilation operation from among a set of compilation operations and, responsive to encountering an error in the selected compilation operation, running an error handler to isolate the error utilizing data logged for the compilation operation. Responsive to determining that the error handler has not sufficiently isolated the error, a source code modifier is run to modify a portion of the source code selected by reference to the data logged for the compilation operation.
    Type: Grant
    Filed: August 22, 2006
    Date of Patent: October 5, 2010
    Assignee: International Business Machines Corporation
    Inventors: Marc A. Dickenson, John D. Upton
  • Patent number: 7810082
    Abstract: Disclosed are systems and methods to automatically transform generic software code into operator specific code. For instance, in one embodiment, there may be an engine for transforming generic software code into operator-specific software code, the engine comprising: a module for reading generic software code, wherein the generic software code includes at least one generic control indication; a processing module including: a module for extracting the at least one generic control indication from the generic software code; a module for determining at least one aspect from the generic control indication, wherein the at least one aspect corresponds to operator specific requirements, a module for determining an integration instruction, a module for inserting the generic control indication with the at least one aspect according to the integration instruction; and a module for generating operator-specific software code which includes the at least one aspect.
    Type: Grant
    Filed: July 22, 2005
    Date of Patent: October 5, 2010
    Assignee: Telefonaktiebolaget L M Ericsson (PUBL)
    Inventor: Roman Levenshteyn
  • Patent number: 7805714
    Abstract: A front end component and a technique are provided. The front end component allows a transformation rule writer to specify syntax structure of interest, as well as what action to take when a syntax structure of interest is found. Example syntax structures include function call, variable declaration, math expression, etc. Typical actions include matching, replacement, or copying. The technique allows transformation tool writers to translate the specification into actual query and manipulation commands on the program representation. It is structured to be target language agnostic and, therefore, can be easily re-targeted to different programming languages.
    Type: Grant
    Filed: March 30, 2005
    Date of Patent: September 28, 2010
    Assignee: Alcatel-Lucent USA Inc.
    Inventors: Daniel G. Waddington, Bin Yao
  • Patent number: 7805710
    Abstract: Subject program code is translated to target code in basic block units at run-time in a process wherein translation of basic blocks is interleaved with execution of those translations. A shared code cache mechanism is added to persistently store subject code translations, such that a translator may reuse translations that were generated and/or optimized by earlier translator instances.
    Type: Grant
    Filed: March 30, 2004
    Date of Patent: September 28, 2010
    Assignee: International Business Machines Corporation
    Inventor: Geraint North
  • Patent number: 7802240
    Abstract: A mechanism is disclosed for compiling a program which is written in a first language having a first syntax. An indication is detected, in a set of code within the program, that the set of code contains a non-compliant identifier that is not intended to be compliant with the first syntax associated with the first language. In response to detecting the indication, the non-compliant identifier is transformed into a transformed identifier that is compliant with a second syntax associated with a second language. Compiled code that uses and operates with the transformed identifier is emitted. For example, the first program may be written in language that is substantially similar to the Java programming language. The first syntax may be a syntax that is substantially compliant with syntax of the Java programming language. The second language may be XML, wherein the second syntax is substantially compliant with XML.
    Type: Grant
    Filed: June 26, 2006
    Date of Patent: September 21, 2010
    Assignee: Oracle America, Inc.
    Inventor: Mark B. Reinhold
  • Patent number: 7797329
    Abstract: A method for committing memory transactions in an application that includes executing a plurality of sections of the application in parallel, logging a plurality of memory transactions that occur while executing the plurality of sections to obtain a plurality of logs and a plurality of temporary results, wherein the plurality of memory transactions that includes a plurality of writes to at least one memory location, comparing the plurality of logs to identify an optimal list of writes from the plurality of writes, and committing memory transactions corresponding to a subset of the plurality of temporary results, wherein the subset of the plurality of temporary results is identified by the optimal list of writes.
    Type: Grant
    Filed: June 9, 2006
    Date of Patent: September 14, 2010
    Assignee: Oracle America Inc.
    Inventors: Miguel Angel Lujan Moreno, Phyllis E. Gustafson, Michael H. Paleczny, Christopher A. Vick, Jay R. Freeman, Olaf Manczak
  • Patent number: 7793272
    Abstract: In program code conversion, particularly dynamic binary translation, subject code 17 is translated into target code 21 through a translator 19 for execution on a target processor 13. Selected portions of subject code, such as library functions SFuncA 172, are replaced by instead executing a portion of native code such as a native function NFuncA 282. The native function is native to the target processor 13. The method further includes executing a subject code portion such as a subject function SFuncB 173 in place of a native code portion such library function NFuncB 283. This reverse binding technique substitutes subject code for selected portions of the native code, particularly native library functions in order to keep control within the translator 19. This helps to maintain an accurate subject state in the translator 19, amongst other advantages.
    Type: Grant
    Filed: November 14, 2005
    Date of Patent: September 7, 2010
    Assignee: International Business Machines Corporation
    Inventors: Jonathan J. Andrews, Geraint North
  • Patent number: 7793273
    Abstract: System and method for implicit downcasting at compile time in a data flow program. A first data flow function in an object-oriented dataflow program is identified, where the first function includes an input of a parent data type and an output of the parent data type. The first function is analyzed to determine if the output preserves the run-time data type of the input. A second dataflow function in the object-oriented data flow program is identified, where the second function includes a program element that calls the first function, passing an input parameter of a child data type of the parent data type as input. If the analysis determines that an output parameter returned by the output of the first function will always be of the child data type, the program element is automatically configured at compile time to always downcast the output parameter from the parent data type to the child data type at run-time.
    Type: Grant
    Filed: November 8, 2005
    Date of Patent: September 7, 2010
    Assignee: National Instruments Corporation
    Inventors: Stephen R. Mercer, Steven W. Rogers
  • Publication number: 20100223604
    Abstract: A method and apparatus is disclosed herein for using a module system for polymorphic ?-calculus. In one embodiment, the method comprises receiving a formal specification of a software program; and performing automatic analysis on the formal specification using a module system fitted with processes of the polymorphic ?-calculus processes.
    Type: Application
    Filed: January 7, 2010
    Publication date: September 2, 2010
    Inventors: George Kuan, Dachuan Yu, Dinakar Dhurjati, Ajay Chander, Hiroshi Inamura
  • Patent number: 7788650
    Abstract: Source code includes a directive to indicate data structures of related data to a compiler. The compiler associates the related data to the same one of multiple processors in a multiprocessor environment. The compiler searches the source code for locks associated with the related data, and generates executable code that is modified with respect to locks written in the source code. The compiler may replace or remove locks written in the source code to protect access to the related data, resulting in an executable program that does not include the locks.
    Type: Grant
    Filed: May 10, 2005
    Date of Patent: August 31, 2010
    Assignee: Intel Corporation
    Inventors: Erik J. Johnson, Stephen D. Goglin
  • Patent number: 7788640
    Abstract: The subject invention relates to systems and methods that generate documentation discovered by programmatic and/or automatic code analysis. The generated documentation can be related to, for example, security, error conditions, permissions, exceptions, etc. Static code analysis and/or runtime analysis can be utilized to provide more complete, updated and/or accurate documentation as compared to conventional techniques by obtaining information, which can be utilized to automatically generate the documentation. According to an aspect of the subject invention, documentation can be generated that can supplement existing documentation.
    Type: Grant
    Filed: December 28, 2004
    Date of Patent: August 31, 2010
    Assignee: Microsoft Corporation
    Inventor: Sean Grimaldi