Compiling Code Patents (Class 717/140)
  • Patent number: 8689200
    Abstract: A system and method for optimizing the object codes of a computer program is disclosed. The method includes receiving one or more object code units associated with an executable program; identifying, among the object code units, a first program entity and a first set of operations associated with the first program entity and a second program entity and a second set of operations associated with the second program entity, each program entity having an object code segment and an associated address; updating the object code units by inserting a predefined instruction before the first program entity's object code segment and causing the second set of operations to be associated with the predefined instruction if the first program entity's object code segment is identical to the second program entity's object code segment; and combining the updated object code units into the executable program.
    Type: Grant
    Filed: January 12, 2011
    Date of Patent: April 1, 2014
    Assignee: Google Inc.
    Inventors: Sriraman Tallam, Ian Lance Taylor, Cary Coutant, Xinliang David Li, Christopher Demetriou
  • Patent number: 8689197
    Abstract: Disclosed herein is a method of optimizing an executable program to improve instruction cache hit rate when executed on a processor. A method of predicting instruction cache behavior of an executable program is also disclosed. According to further aspects of the present invention, there is provided a software development tool product comprising code which when executed on a computer will perform the method of optimizing an executable program. A linker product and a computer program are also disclosed.
    Type: Grant
    Filed: October 2, 2009
    Date of Patent: April 1, 2014
    Assignee: Icera, Inc.
    Inventors: David Alan Edwards, Alan Alexander
  • Patent number: 8689194
    Abstract: A computer readable medium including executable instructions that when executed perform a method for validating an optimization in generated code using an executable constraints document is provided. The medium can include instructions for relating an assumption to the optimization during code generation. The medium can include instructions for generating the executable constraints document during the code generation, the executable constraints document including information about the relating; and the medium can include instructions for executing the constraints document when the validating is performed, the validating including performing an operation based on a validation result produced by the validating, where the operation includes displaying the validation result to a user, storing the validation result, sending the validation result to a destination, or modifying the generated code.
    Type: Grant
    Filed: August 20, 2007
    Date of Patent: April 1, 2014
    Assignee: The MathWorks, Inc.
    Inventors: Aravind Pillarisetti, Peter Szpak, Jesung Kim, Xiaocang Lin, Pieter J. Mosterman
  • Patent number: 8689201
    Abstract: A method of automatically creating functionally and structurally diverse equivalent copies of software executables using return oriented programming for the purpose of passing through a filter and other purposes includes starting with a program and a target runtime environment, creating a return oriented instruction library having a plurality of code fragments which end in a ‘return’ instruction from the program and chaining fragments together to automatically form diverse equivalent copies of software executables using return oriented programming.
    Type: Grant
    Filed: January 27, 2011
    Date of Patent: April 1, 2014
    Assignee: Telcordia Technologies, Inc.
    Inventors: Eric van den Berg, Michael W Little
  • Patent number: 8689193
    Abstract: A method and apparatus for protecting computer systems from a virus are disclosed. For example, the present method protects against a class of computer viruses that replicate themselves by making use of the knowledge that a specific piece of software code or data component that always resides at a specific relative memory location in RAM for all instances of the software. In one embodiment, the present method divides a software application into a plurality of components and creates distinct copies of the software application by varying the locations of the components when loaded onto a computer system.
    Type: Grant
    Filed: November 1, 2006
    Date of Patent: April 1, 2014
    Assignee: AT&T Intellectual Property II, L.P.
    Inventor: Amitava Hazra
  • Patent number: 8689181
    Abstract: A process performed on a server includes configuring the server to enable script for a Web service to be defined dynamically, where the Web service includes an application program interface (API) for enabling access by, and interaction with, a computer program executing on a device other than the server. The process also includes compiling the script to produce machine-executable code for the Web service, receiving a call from the computer program to the Web service, executing the machine-executable code in response to the call to produce an output, and sending the output to the device.
    Type: Grant
    Filed: November 23, 2010
    Date of Patent: April 1, 2014
    Assignee: Axeda Corporation
    Inventor: Joseph L. Biron, III
  • Publication number: 20140089908
    Abstract: In one embodiment, a decision tree is evaluated in interpreted mode while statistics are collected. The decision tree is then represented as source code, and each decision in the decision tree is annotated with instructions determined based on the collected statistics. The source code is compiled into machine code, and the machine code is optimized based on the instructions annotating each decision in the decision tree.
    Type: Application
    Filed: September 25, 2012
    Publication date: March 27, 2014
    Inventors: Jeffrey S. Dunn, Rafael L. Sagula
  • Publication number: 20140089906
    Abstract: Locale objects are dynamically built from locale source files when requested at run-time. When a locale object is dynamically built, it is stored in global memory so it may be read by multiple applications. Dynamically building locale objects when requested allows software to operate with a relatively small number of locale objects instead of with hundreds or thousands of locale objects, as is known in the art. The result is significant savings in system-wide resources while still allowing for access to a large number of possible locales.
    Type: Application
    Filed: February 6, 2013
    Publication date: March 27, 2014
    Applicant: International Business Machines Corporation
    Inventors: Leander Bromley, JR., Christopher J. Brown, Thuy P. Christenson, Patrick L. Glenski, Kershaw S. Mehta
  • Publication number: 20140089905
    Abstract: In accordance with disclosed embodiments, there are provided methods, systems, and apparatuses enabling polymorphic objects across devices in a heterogeneous platform. According to the disclosed embodiments, such means include, for example, receiving, at a device aware compiler, source code for a computer program as input; compiling the source code for the computer program, in which the compiling includes at least: generating two distinct sets of executable binary instructions for a method of an object; in which a first of the two distinct sets of executable binary instructions for the method of the object provides first binary instructions for the method executable by a first computing device and not executable by a second computing device; and in which a second of the two distinct sets of executable binary instructions for the method of the object provides second binary instructions for the method executable by the second computing device and not executable by the first computing device.
    Type: Application
    Filed: September 27, 2012
    Publication date: March 27, 2014
    Inventors: WILLIAM ALLEN HUX, NICOLAS GALOPPO VON BORRIES
  • Patent number: 8683428
    Abstract: Various embodiments provide a mechanism by which a driver writer can describe the operation set of a particular driver using an intermediary representation, such as an XML. A generation tool can then process the intermediary representation and generate client code and device driver code to support these operations. In one or more embodiments, driver operation and associated elements that support the driver operation can be described according to a customized schema that is specific to the operation of the particular device driver.
    Type: Grant
    Filed: March 23, 2011
    Date of Patent: March 25, 2014
    Assignee: Microsoft Corporation
    Inventor: Paul Sliwowicz
  • Patent number: 8677315
    Abstract: Examples of a continuous deployment system are provided that manage and track releases of software code, where some or all of the steps between check-in and deployment to production can be automated. Such systems can reduce the amount of developer effort needed to deploy a package, as developers may not have to be responsible for scheduling package builds, clicking deployment buttons, or manually running tests. The system can take care of all or some of that work.
    Type: Grant
    Filed: September 26, 2011
    Date of Patent: March 18, 2014
    Assignee: Amazon Technologies, Inc.
    Inventors: Keith H. Anderson, John L. Kenyon, Benjamin R. Hollis, Jill Edwards, Brad Reid
  • Patent number: 8677329
    Abstract: A method and an apparatus that instructs a compiler server to build or otherwise obtain a compiled code corresponding to a compilation request received from an application are described. The compiler server may be configured to compile source codes for a plurality of independent applications, each running in a separate process, using a plurality of independent compilers, each running in a separate compiler process. A search may be performed in a cache for a compiled code that satisfies a compilation request received from an application. A reply message including the compiled code can be provided for the application, wherein the compiled code is compiled in direct response to the request, or is obtained from the cache if the search identifies in the cache the compiled code that satisfies the compilation request.
    Type: Grant
    Filed: June 3, 2009
    Date of Patent: March 18, 2014
    Assignee: Apple Inc.
    Inventors: Robert Beretta, Nicholas William Burns, Nathaniel Begeman, Phillip Kent Miller, Geoffrey Grant Stahl
  • Patent number: 8677331
    Abstract: A lock-clustering compiler is configured to compile program code for a software transactional memory system. The compiler determines that a group of data structures are accessed together within one or more atomic memory transactions defined in the program code. In response to determining that the group is accessed together, the compiler creates an executable version of the program code that includes clustering code, which is executable to associate the data structures of the group with the same software transactional memory lock. The lock is usable by the software transactional memory system to coordinate concurrent transactional access to the group of data structures by multiple concurrent threads.
    Type: Grant
    Filed: September 30, 2011
    Date of Patent: March 18, 2014
    Assignee: Oracle International Corporation
    Inventors: Virendra J. Marathe, David Dice
  • Patent number: 8677316
    Abstract: Architectural design intent for software is represented in some type of concrete form. A set of computable rules are inferred from the representation of the architectural design intent. The rules are applied to the codebase at various points in the development process including but not limited to when source code is checked into a project or when a build is run, or when a test run is performed. If the codebase being developed is not consistent with the architectural intent of the designer as captured, feedback concerning non-compliance is provided.
    Type: Grant
    Filed: May 12, 2010
    Date of Patent: March 18, 2014
    Assignee: Microsoft Corporation
    Inventors: Suhail Dutta, David N Trowbridge, Bernard Tschirren, Arun M. Abraham
  • Patent number: 8677323
    Abstract: A recording medium readable by an information processing apparatus, has recorded thereon a monitoring program for monitoring an operation status of a monitoring target program that runs on an information processing apparatus having a processor and a memory. The monitoring program causes the information processing apparatus to obtain, at a time of installation of a program, information indicating a status where the program is executed in the information processing apparatus and becomes a monitoring target program. The program monitors, on the basis of the information obtained, whether the monitoring target program exists in a memory in which the monitoring target program has been loaded.
    Type: Grant
    Filed: February 5, 2008
    Date of Patent: March 18, 2014
    Assignee: Fujitsu Limited
    Inventor: Yasushi Nakagawa
  • Patent number: 8677332
    Abstract: Systems and methods for compiling one or more code blocks written in programming language are provided. In some aspects, display associated with application is provided. Display includes plurality of graphical objects. That each of plurality of graphical objects is associated with child code block in one-to-one association between graphical objects and child code blocks is determined. Each child code block is written in programming language. The child code blocks associated with plurality of graphical objects are transformed into single parent code block. Parent code block, upon compiling, is configured to be reused across execution contexts and to allow injection of global scope. Parent code block, upon specific execution, includes execution context for specified child code block. Parent code block is configured to receive indication of specified child code block for initiating execution of parent code block. Parent code block is compiled.
    Type: Grant
    Filed: July 24, 2012
    Date of Patent: March 18, 2014
    Assignee: Google Inc.
    Inventors: John Hjelmstad, Malte Ubl
  • Patent number: 8677330
    Abstract: A compiling method compiles an object program to be executed by a processor having a plurality of execution units operable in parallel. In the method a first availability chain is created from a producer instruction (p1), scheduled for execution by a first one of the execution units (20: AGU), to a first consumer instruction (c1), scheduled for execution by a second one of the execution units (22: EXU) and requiring a value produced by the said producer instruction. The first availability chain comprises at least one move instruction (mv1-mv3) for moving the required value from a first point (20: ARF) accessible by the first execution unit to a second point (22: DRF) accessible by the second execution unit.
    Type: Grant
    Filed: June 9, 2010
    Date of Patent: March 18, 2014
    Assignee: Altera Corporation
    Inventors: Marcio Merino Fernandes, Raymond Malcolm Livesley
  • Patent number: 8677312
    Abstract: A computer implemented method of generating a compiler description from an architecture description. Information is automatically extracted from an architecture description that is usable in a description of an architecture described by the architecture description. The extracted information is imported into a program comprising a graphical user interface that accepts user provided additional information that is usable in the compiler description. User provided additional information is accessed that is usable in the compiler description. A compiler description is automatically generated for the architecture described by the architecture description, based on the automatically extracted information and the accessed user provided additional information.
    Type: Grant
    Filed: March 30, 2004
    Date of Patent: March 18, 2014
    Assignee: Synopsys, Inc.
    Inventors: Gunnar Braun, Andreas Hoffmann, Volker Greive
  • Patent number: 8677328
    Abstract: Provides methods and apparatus that can reduce the time required for processing, when generating a dynamic content using JSP or the like. An example device for generating a dynamic content creation program internally handles text by expressing the text in a predetermined general character encoding format. The device generates a dynamic content creation program, based on a predetermined file containing static text for constituting static part of a content; and prepares in advance content character encoding format-based character code information on the static text so that the program can utilize the information.
    Type: Grant
    Filed: July 3, 2008
    Date of Patent: March 18, 2014
    Assignee: International Business Machines Corporation
    Inventor: Go Kondo
  • Patent number: 8671401
    Abstract: Described is a technology by which a series of loop nests corresponding to source code are detected by a compiler, with the series of loop nests tiled together, (thereby increasing the ratio of cache hits to misses in a multi-processor environment). The compiler transforms the series of loop nests into a plurality of tile loops within a controller loop, including using dependency analysis to determine which results from a tile loop need to be pre-computed before another tile loop. For dependency analysis, the compiler may use a directed acyclic graph as a high-level intermediate representation, and split the graph into sub-graphs each representing an array. The compiler uses descriptors processed from the graph to determine the controller loop and the tile loops within that controller loop.
    Type: Grant
    Filed: April 9, 2007
    Date of Patent: March 11, 2014
    Assignee: Microsoft Corporation
    Inventors: Siddhartha Puri, Jaydeep P. Marathe
  • Publication number: 20140068574
    Abstract: The disclosed embodiments provide a system that facilitates the development and execution of a software program. During operation, the system obtains a type interval for a generic type parameter of an implementation of an overloaded function. Next, the system selects an inference direction for the generic type parameter based on a variance of the generic type parameter, wherein the inference direction is an upward inference direction or a downward inference direction. Finally, the system uses the type interval and the inference direction to perform type inference on the generic type parameter.
    Type: Application
    Filed: August 31, 2012
    Publication date: March 6, 2014
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Karl B. Naden, David R. Chase, Justin R. Hilburn
  • Publication number: 20140068572
    Abstract: A method for executing native code in a distributed Java Virtual Machine (JVM) is disclosed herein. The method may include receiving, in a first thread executing in a remote execution container, a first native code-generated call, such as a Java Native Interface (JNI) call, to a second thread, the first call including a first array write request. The first call may be stored in an instruction cache and bundled with a second native code-generated call and sent to the second thread. The calls are unbundled and executed in the second thread. An opaque handle to an array returned by the second call is bundled with corresponding array data and returned to the first thread. The array data of the bundle is stored in a data cache and retrieved in response to requests for the array data addressed to the second thread. A corresponding computer program product is also disclosed.
    Type: Application
    Filed: August 28, 2012
    Publication date: March 6, 2014
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Michael H. Dawson, Graeme Johnson, Seetharami R. Seelam, Megumi Ito, Xavier Rene Guerin
  • Publication number: 20140068575
    Abstract: Apparatus and methods are provided for controlling the loading status of DLLs. Specifically, a streaming program compiler is provided. The compiler includes operation modules for calling DLLs during streaming program execution; association table generating units for generating association tables according to user-defined rules, where the association table includes entries indicating (i) stream branches of the streaming program and (ii) an operation module corresponding to the stream branches; and a trigger generating unit for generating a trigger based on user-defined rules, where the trigger generating unit (i) determines which conditions for loading and unloading DLLs fit the streaming program, (ii) matches these conditions to a particular stream branch to identify a matched stream branch, and (iii) sends out triggering signals indicating the matched stream branch. This invention also provides a corresponding method and controller.
    Type: Application
    Filed: November 8, 2013
    Publication date: March 6, 2014
    Applicant: lNTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Rui Hou, Zhi Yu Liu, Huayong Wang, Yan Qi Wang
  • Publication number: 20140068573
    Abstract: A condition detected by a virtual routine may be treated by setting an error code or raising an exception, depending on circumstances. Enhanced vtable layouts promote availability of both error-ID-based and exception-based virtual routines, while maintaining compatibility. Compilers treat virtual routines based on their circumstances. One enhanced vtable includes error-ID-based routine pointers in a COM-layout-compatible portion and exception-based routine pointers in an extension. For a virtual routine not overridden by a derived class, a compiler generates a direct call. For an object instance of a specific type, the compiler generates a direct exception-based call for the object's routine. For a factory-sourced object's routine, the compiler generates a virtual exception-based call. When the virtual routine belongs to a component having an enhanced vtable, the compiler may generate a virtual call using the exception-based routine pointer. Code wrappers between COM and native format may also be used.
    Type: Application
    Filed: August 28, 2012
    Publication date: March 6, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Deon Brewis, James Springfield, Sridhar S. Madhugiri
  • Patent number: 8667475
    Abstract: A program-converting module for a multi-axis cooperated machine and a program-converting method. Machining programs and mechanism data of a plurality of first machines are input to a first input module. Mechanism data of a plurality of second machines are input to a second input unit. A setting unit sets at least one of the first machines to be a source machine, and sets one of the second machines to be a target machine. A conversion unit uses a kinematical method to convert the machining program of the source machine into a machining program applicable to the target machine based on the mechanism data of the source and target machines, without requiring CAD/CAM software.
    Type: Grant
    Filed: December 20, 2010
    Date of Patent: March 4, 2014
    Assignee: Industrial Technology Research Institute
    Inventors: Wan-Kun Chang, Chin-Chu Sun, Cheng-Yu Chen, Yung-Ming Kao, Shih-Chang Liang
  • Patent number: 8666968
    Abstract: In an embodiment, a runtime callback function is a part of a code that is invoked upon execution of an associated function. To execute the runtime callback function associated with an in-memory computing engine, multidimensional analytical metadata associated with an application server is received and transformed into an in-memory executable metadata, to generate an instance of an in-memory executable calculation scenario. The instance of the in-memory executable calculation scenario is analyzed to determine process callbacks associated with nodes of the in-memory executable calculation scenario. Based upon the determined process callbacks, the runtime callback function is executed by executing a selection callback at the nodes and a transformation callback at part providers associated with the in-memory executable calculation scenario.
    Type: Grant
    Filed: December 23, 2011
    Date of Patent: March 4, 2014
    Assignee: SAP AG
    Inventors: Nadine Sachs, Sebastian Schroetel, Ulrich Bestfleisch, Gerrit Simon Kazmaier
  • Patent number: 8667474
    Abstract: A generated grouped representation of existing source code can define regions of the existing source code. A set of the regions that can run in parallel can be identified based on the grouped representation. The grouped representation can be converted into a modified representation, such as modified source code or a modified intermediate compiler representation, which can be configured to be resolved or executed to self-schedule the set of regions to run in parallel as a set of tasks. Additionally, the source code can include one or more exception handling routines, and user input can be received to identify in one or more lambda expressions one or more regions of the source code to be run in parallel as one or more tasks.
    Type: Grant
    Filed: June 19, 2009
    Date of Patent: March 4, 2014
    Assignee: Microsoft Corporation
    Inventor: James Radigan
  • Patent number: 8667476
    Abstract: Multiple instructions including branch instructions are grouped into a condensed variable length instruction. A trimmed and grouped branch instruction branches to one of the instructions in the same group. Therefore, a grouped instruction including branch(es) inherently executes correct branch behaviors without deploying any branch prediction schemes. In addition, a grouped instruction in a condensed form delivers multiple operations to execute without fetching all of the instructions grouped separately from the instruction memory via its caches while conserving instruction memory and/or cache as well as decreasing the number of bit switching on the bus. Software developers can make their own compatible, compact and ciphered instruction sets after grouping existing instructions in their software compiled with existing software compilers and the associated microprocessors.
    Type: Grant
    Filed: January 6, 2010
    Date of Patent: March 4, 2014
    Assignee: Adaptmicrosys LLC
    Inventor: Yong-Kyu Jung
  • Patent number: 8661409
    Abstract: System and method for performing program-related operations over a network via a web browser. A network connection is established between a server computer and a client computer over a network. A universal resource identifier (URI) is sent from the client computer to the server computer over the network, where the URI indicates a program, e.g., a graphical program (GP), or at least a portion of a graphical program interactive development environment (GPIDE), e.g., a graphical program editor, an execution engine, a static or dynamic analyzer, and/or compiler. The at least a portion of the GPIDE is received from the server computer over the network in response to the URI, and executed in a web browser of the client computer to perform some specified functionality with respect to the GP.
    Type: Grant
    Filed: October 2, 2009
    Date of Patent: February 25, 2014
    Assignee: National Instruments Corporation
    Inventor: Paul F. Austin
  • Patent number: 8661419
    Abstract: The method of the invention for preprocessing data before providing the data to a user of the data for further processing the data at the user of the data, comprising the steps of (a) selecting, by the data provider, at least one part of the data from the entire data to be provided to the user for further processing, depending on at least one give criterion which the user fulfils; (b) hiding the selected data such that despite being hidden from the user, the selected data can be further processed and/or executed after the provision.
    Type: Grant
    Filed: February 19, 2011
    Date of Patent: February 25, 2014
    Assignee: Inchron GmbH
    Inventors: Ralf Munzenberger, Matthias Dorfel
  • Patent number: 8661459
    Abstract: A content syndication platform, such as a web content syndication platform, manages, organizes and makes available for consumption content that is acquired from the Internet. In at least some embodiments, the platform can acquire and organize web content, and make such content available for consumption by many different types of applications. These applications may or may not necessarily understand the particular syndication format. An application program interface (API) exposes an object model which allows applications and users to easily accomplish many different tasks such as creating, reading, updating, deleting feeds and the like.
    Type: Grant
    Filed: June 21, 2005
    Date of Patent: February 25, 2014
    Assignee: Microsoft Corporation
    Inventors: Amar S. Gandhi, Edward J. Praitis, Jane T. Kim, Sean O. Lyndersay, Walter V. von Koch, William Gould, Bruce A. Morgan, Cindy Kwan
  • Publication number: 20140053141
    Abstract: A method for building an application installation repository is disclosed herein. In one embodiment a build directory comprising a plurality of application objects is evaluated. Artifact generation rules may also be evaluated with respect to the application objects and the build directory. Object groupings, each comprising one or more application objects of the plurality of application objects, are defined according to the evaluations of the artifact generation rules and the hierarchical directory structure and artifacts are generated according to the object groupings. An installable application is generated that includes the generated artifacts. Artifacts may be further grouped into sharable units and assemblies according to rules and organization of application objects in the build directory. A delta build including only artifacts corresponding to modified files and correspondingly modified metadata may also be generated according to methods disclosed herein.
    Type: Application
    Filed: March 15, 2013
    Publication date: February 20, 2014
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Keith Chi-Hang Chan, Yu Yuan
  • Patent number: 8656346
    Abstract: One or more available command units can be represented with a computer output device. The available command units can be command units from one or more snapins, such as one or more snapins that include command units to be run with a shell application. User input can be received from an input device, the user input selecting one or more selected command units of the available command units. In response to the user input, source code can be automatically generated from the one or more command units, and the source code can be automatically compiled to generate one or more workflow activities.
    Type: Grant
    Filed: February 18, 2009
    Date of Patent: February 18, 2014
    Assignee: Microsoft Corporation
    Inventors: Sai Gopal Kodi, Edhi Sarwono, Travis A. Wright, James W. Truher, Frank Zakrajsek
  • Patent number: 8656379
    Abstract: Systems and methods disclosed herein uniquely define each type of Fortran type descriptor within an executable file or shared library to allow for a rapid determination of how the dynamic type of one object (e.g., a first polymorphic entity) relates to that of another object (e.g., a second polymorphic entity) while allowing for the lazy loading of shared libraries. In one aspect, type descriptor definitions are instantiated (e.g., during compile-time) in each object file in which polymorphic entities are defined, each type descriptor definition is marked with a singleton attribute, and each group of common type descriptor definitions is associated with a COMDAT group to ensure that only a single copy of each type descriptor is defined in a corresponding executable file at a particular address in memory to which polymorphic entities can reference. Type descriptor addresses can be compared to determine dynamic type relations between polymorphic entities.
    Type: Grant
    Filed: September 26, 2011
    Date of Patent: February 18, 2014
    Assignee: Oracle International Corporation
    Inventors: Diane R. Meirowitz, Iain George Bason
  • Patent number: 8656373
    Abstract: A system and method for deploying one or more graphical programs on a personal digital assistant (PDA). One or more selected graphical programs may be programmatically converted to an executable format that can be executed by the portable computing device. For example, the graphical programs may be initially represented as a plurality of data structures that define or specify the operation of the respective graphical programs, and conversion software program may operate to access these data structures from memory and convert the data structures to an executable format suitable for the portable computing device. The executable may be transferred to the portable computing device for execution.
    Type: Grant
    Filed: November 23, 2011
    Date of Patent: February 18, 2014
    Assignee: National Instruments Corporation
    Inventors: Andrew Dove, Hugo Andrade, Darshan Shah
  • Patent number: 8656376
    Abstract: A method for providing intrinsic supports for a VLIW DSP processor with distributed register files comprises the steps of: generating a program representation with cluster information on instructions of the DSP processor, wherein the cluster information is provided by a program with cluster intrinsic coding; identifying data stream operations indicating parallel instruction sequences applied on different data sets in the program representation; identifying data sharing relations indicating data shared by the data stream operations in the program representation; identifying data aggregation relations indicating results aggregated from the data stream operations in the program representation; and performing register allocation for the DSP processor according to the identified data stream operations, the data sharing relations and the data aggregation relations.
    Type: Grant
    Filed: September 1, 2011
    Date of Patent: February 18, 2014
    Assignee: National Tsing Hua University
    Inventors: Jenq Kuen Lee, Chi Bang Kuan
  • Patent number: 8650554
    Abstract: A mechanism is provided for improving single-thread performance for a multi-threaded, in-order processor core. In a first phase, a compiler analyzes application code to identify instructions that can be executed in parallel with focus on instruction-level parallelism and removing any register interference between the threads. The compiler inserts as appropriate synchronization instructions supported by the apparatus to ensure that the resulting execution of the threads is equivalent to the execution of the application code in a single thread. In a second phase, an operating system schedules the threads produced in the first phase on the hardware threads of a single processor core such that they execute simultaneously. In a third phase, the microprocessor core executes the threads specified by the second phase such that there is one hardware thread executing an application thread.
    Type: Grant
    Filed: April 27, 2010
    Date of Patent: February 11, 2014
    Assignee: International Business Machines Corporation
    Inventors: Elmootazbellah N. Elnozahy, Ahmed Gheith
  • Patent number: 8645927
    Abstract: A method of performing a numerical simulation includes programming a programmable device using function blocks adapted to perform a respective part of the numerical simulation. Input data are received, and a first portion of the numerical simulation is performed on a standard computer processor. A data path is provided between the processor and the programmable device. A second portion of the numerical simulation is performed on the programmable device, and data from at least one of the first and second portions are exchanged via the data path.
    Type: Grant
    Filed: November 24, 2003
    Date of Patent: February 4, 2014
    Assignee: The Boeing Company
    Inventor: Martin G. Rammel
  • Patent number: 8645931
    Abstract: Embodiments of the present invention address deficiencies of the art in respect to externally stored static elements for a document in a document editor and provide a method, system and computer program product for moving static elements for a document between an external file and the document in a document editor. A data processing system for moving static elements for a document between an external file and the document in a document editor can include an automated de-externalization and re-externalization processor coupled to a document editor. The automated de-externalization and re-externalization processor can include program code enabled both to replace static elements in a subject document with static element references while storing replaced static elements in entries in an external file, and also to replace static element references in the subject document with corresponding static elements stored in the entries in the external file.
    Type: Grant
    Filed: November 4, 2005
    Date of Patent: February 4, 2014
    Assignee: International Business Machines Corporation
    Inventor: Allan K. Pratt
  • Patent number: 8645936
    Abstract: An API call abstraction processor-implemented method is disclosed. It includes obtaining programming code for an application and parsing the obtained programming code to identify instructions in the programming code. The SNAM identifies an application programming interface call in the programming code based on parsing the obtained programming code and the application programming interface call including an input string. The SNAM determines if the identified application programming interface call requires a pre-registered bundle to replace the input string. It provides a request to register a new bundle including the input string and obtains an indication that the new bundle has been registered. The SNAM can obtain a bundle identification corresponding to the new bundle, upon obtaining the indication that the bundle has been registered and replace the input string in the application programming interface call with the bundle identification.
    Type: Grant
    Filed: September 17, 2010
    Date of Patent: February 4, 2014
    Assignee: Zynga Inc.
    Inventor: Amitt Mahajan
  • Patent number: 8645934
    Abstract: The present invention provides a method to optimize object code files produced by a compiler for several different types of target processors. The compiler divides the source code to be compiled into several functional modules. Given a specified set of target processors, each functional module is compiled resulting in a target object version for each target processor. Then, for each functional module, a merging process is performed wherein identical target object versions or target object versions with similar contents are merged by deleting the identical or similar versions. After this merging process, a composite object code file is formed containing all of the non-deleted target object versions of the function modules.
    Type: Grant
    Filed: May 6, 2010
    Date of Patent: February 4, 2014
    Assignee: International Business Machines Corporation
    Inventors: Nathan Fontenot, Michael Thomas Strosaker, Joel Howard Schopp
  • Patent number: 8645932
    Abstract: The various embodiments of the invention relate generally to computer software, computer program architecture, software development, and computer programming languages, and more specifically, to techniques for analyzing control flow in COBOL-sourced programs to facilitate optimized conversions to object-oriented program structures. For example, a compiler can include a global optimizer configured to analyze execution flow for a range of blocks of source code in the memory to determine flow-affected code. Also, the compiler can include a native code generator configured to generate native code based on representations of the native code as functions of the source code. The native code is configured to execute on a virtual machine.
    Type: Grant
    Filed: September 19, 2011
    Date of Patent: February 4, 2014
    Assignee: Micro Focus (US). Inc.
    Inventors: Jeremy Wright, Robert Sales
  • Patent number: 8645930
    Abstract: Disclosed herein are systems, methods, and computer-readable storage media for obfuscating by a common function. A system configured to practice the method identifies a set of functions in source code, generates a transformed set of functions by transforming each function of the set of functions to accept a uniform set of arguments and return a uniform type, and merges the transformed set of functions into a single recursive function. The single recursive function can allocate memory in the heap. The stack can contain a pointer to the allocated memory in the heap. The single recursive function can include instructions for creating and explicitly managing a virtual stack in the heap. The virtual stack can emulate what would happen to the real stack if one of the set of functions was called. The system can further compile the source code including the single recursive function.
    Type: Grant
    Filed: January 4, 2010
    Date of Patent: February 4, 2014
    Assignee: Apple Inc.
    Inventors: Christopher Arthur Lattner, Tanya Michelle Lattner, Julien Lerouge, Ginger M. Myles, Augustin J. Farrugia, Pierre Betouin
  • Publication number: 20140033185
    Abstract: A system may include an application programming interface (API) layer, a cache layer, and an object storage/access layer. The API layer may expose an interface to store a business object and an interface to retrieve the business object, and may transmit a request to store the business object and a request to retrieve the business object, and the cache layer may cache the business object and transmit the request to store the business object and the request to retrieve the business object. The object storage/access layer may receive the request to store the business object and, in response to the request to store the business object, to invoke a serialization method exposed by the business object to store the data associated with the object in a data structure.
    Type: Application
    Filed: September 25, 2013
    Publication date: January 30, 2014
    Inventor: Ivan Schreter
  • Patent number: 8640112
    Abstract: System and method for vectorizing combinations of program operations. Program code is received that includes a combination of individually vectorizable program portions that collectively implement a first computation. Each individually vectorizable program portion has at least one array input and at least one array output. The combination of individually vectorizable program portions is transformed into a single vectorizable program portion that is or includes a functional composition of the combination of individually vectorizable program portions. Vectorized executable code implementing the first computation is generated based on the single vectorizable program portion. The generated executable code is directed to SIMD (Single-Instruction-Multiple-Data) computing units of a target processor.
    Type: Grant
    Filed: March 30, 2011
    Date of Patent: January 28, 2014
    Assignee: National Instruments Corporation
    Inventors: Haoran Yi, Brady C. Duggan, Robert E. Dye, Adam L. Bordelon, Jeffrey L. Kodosky
  • Patent number: 8635627
    Abstract: A method, medium and apparatus for storing and restoring a register context for a fast context switching between tasks is disclosed. The method, medium and apparatus may improve overall operating speed of a system by increasing the speed of context switching. The method may include adding an update code for updating information of live registers to a task file that includes a code of a task to perform a specified function, converting the task file having the update code added thereto into a run file, updating the information of the live registers with the update code during running of the task using the run file, and storing a live register context according to the updated information of the registers.
    Type: Grant
    Filed: December 12, 2006
    Date of Patent: January 21, 2014
    Assignee: Samsung Electronics Co., Ltd.
    Inventors: Jung-keun Park, Keun-soo Yim, Woon-gee Kim, Jeong-joon Yoo, Kyoung-ho Kang, Chae-seok Im, Jae-don Lee
  • Patent number: 8635604
    Abstract: A method, system and module for automatically converting a call flow into a state-based representation are disclosed. The method comprises walking a call flow and converting each page of the call flow into a rule of a higher level representation of the call flow, augmenting the higher level representation with terminal symbols representing state variable assignments and comparisons associated with decision and computation shapes in the call flow and converting the higher level representation into a state-based representation.
    Type: Grant
    Filed: February 12, 2013
    Date of Patent: January 21, 2014
    Assignee: AT&T Intellectual Property II, L.P.
    Inventors: Cecilia Castillo, Theodore J. Roycraft, James M. Wilson
  • Patent number: 8631393
    Abstract: A process for performing a software task is detailed that includes preparing readable programming computer code and storing the computer code within the storage of a computer system in uncompiled form. The computer code is compiled to machine code in response to an executional call for the code. The machine code corresponding to the computer code is then executed to perform the software task. In addition to removing the conventional limitation of retaining only executable compiled software, only a portion of a larger total computer code necessary to perform the desired software task is compiled in response to an executional call from a user, request for another computer process, a prompt by an interfaced electronic instrument or a boot event.
    Type: Grant
    Filed: September 14, 2009
    Date of Patent: January 14, 2014
    Assignee: Vision Genesis, Inc.
    Inventor: Mark Pomponio
  • Publication number: 20140013314
    Abstract: A recording medium storing therein a compiling program to be executed by a computer, the program includes: compiling a portion of a source corresponding to at least one operation of a plurality of operations into at least one partial object of a plurality of partial objects included in an object; generating first information for identifying a portion involved in the compiling of the at least one partial object; and storing, in a memory, object expansion information including second information, which indicates the at least one operation, and the first information, with associating the object expansion information with the at least one partial object, wherein the object expansion information identifies a partial object generated by a portion involved in the compiling relating to a compilation failure.
    Type: Application
    Filed: May 15, 2013
    Publication date: January 9, 2014
    Applicant: FUJITSU LIMITED
    Inventor: Kenji SHINBORI
  • Patent number: 8627286
    Abstract: A fully declarative build system is described for software build optimization. The build system supports complete control over build and test inputs and build and test operations. The build system takes inputs from a source control system. The inputs can include source code files, test files and various site files used to generate human-oriented materials for the modules. A dependencies file specifies a set of dependencies among the modules of the system. When invoked, the build system determines that changes have been made to the inputs. The system then parses the dependencies file, and based on it, determines exactly which inputs will be affected by the changes. The build system can then rebuild only those modules that will be affected by the changes, as determined from the dependencies file. Alternatively, the system may only perform testing or document generating for files which are dependent on the modified file.
    Type: Grant
    Filed: March 26, 2010
    Date of Patent: January 7, 2014
    Assignee: Oracle International Corporation
    Inventor: Lawrence Feigen