Compiling Code Patents (Class 717/140)
  • Patent number: 8266381
    Abstract: In at least one embodiment, a processor detects during execution of program code whether a load instruction within the program code is associated with a hint. In response to detecting that the load instruction is not associated with a hint, the processor retrieves a full cache line of data from the memory hierarchy into the processor in response to the load instruction. In response to detecting that the load instruction is associated with a hint, a processor retrieves a partial cache line of data into the processor from the memory hierarchy in response to the load instruction.
    Type: Grant
    Filed: February 1, 2008
    Date of Patent: September 11, 2012
    Assignee: International Business Machines Corporation
    Inventors: Ravi K. Arimilli, Gheorghe C. Cascaval, Balaram Sinharoy, William E. Speight, Lixin Zhang
  • Patent number: 8261231
    Abstract: Systems and methods for developing, customizing, and deploying mobile device applications are provided through a mobile application development and deployment platform. Preferably, these systems and methods are implemented in an Internet based environment that allows non-technical users to build sophisticated, highly-customizable cross-platform mobile applications. The platform allows users to select, input, create, customize, and combine various content, design characteristics, and application components, such as modules, some of which utilize features and functionality associated with various mobile devices and mobile operating systems. In certain embodiments, the platform allows users to compile, and generate a configuration file for, the mobile application that can be distributed to end users for execution on various mobile devices and mobile operating systems.
    Type: Grant
    Filed: February 14, 2012
    Date of Patent: September 4, 2012
    Assignee: Media Direct, Inc.
    Inventors: Scott Hirsch, Arsen Pereymer, Sunny Rajpal
  • Patent number: 8261247
    Abstract: In a method of modifying code of a running computer program so as to modify the running computer program without having to restart the running computer program for changes to the running computer program to take effect, the improvement is disclosed of: (a) comparing differences in the running program's running binary code versus object code produced by compiling the running program's source code and (b) using the results of step (a), determining what values to use for symbols in said changes to the program. The compiling may be performed using either the compiler originally used to compile the running program or a different compiler. A data storage medium having instructions stored therein for a computer to perform the improved method is also disclosed.
    Type: Grant
    Filed: October 1, 2008
    Date of Patent: September 4, 2012
    Assignee: Oracle International Corporation
    Inventor: Jeffrey Brian Arnold
  • Patent number: 8261246
    Abstract: Improved techniques for automatic (or dynamic) updating (or maintaining) of file groups in a developer environment that stores and executes files are disclosed. The automatic update to file groups can occur when additional files are added to or removed from the developer environment. The automatic update to file groups can also occur when previously stored files are otherwise altered.
    Type: Grant
    Filed: September 7, 2004
    Date of Patent: September 4, 2012
    Assignee: Apple Inc.
    Inventors: Steve Naroff, Steve Lewallen, Tim Burngarner
  • Patent number: 8261252
    Abstract: A method and system for converting application code into optimized application code or into execution code suitable for execution on a computation engine with an architecture comprising at least a first and a second level of data memory units are disclosed. In one aspect, the method comprises obtaining application code, the application code comprising data transfer operations between the levels of memory units. The method further comprises converting at least a part of the application code. The converting of application code comprises scheduling of data transfer operations from a first level of memory units to a second level of memory units such that accesses of data accessed multiple times are brought closer together in time than in the original code.
    Type: Grant
    Filed: March 26, 2008
    Date of Patent: September 4, 2012
    Assignees: IMEC, Katholieke Universiteit Leuven
    Inventors: Praveen Raghavan, Murali Jayapala, Francky Catthoor, Absar Javed, Andy Lambrechts
  • Publication number: 20120222019
    Abstract: An operating system may be configured using a control flow graph that defines relationships between each executable module. The operating system may be configured by analyzing an application and identifying the operating system modules called from the application, then building a control flow graph for the configuration. The operating system may be deployed to a server or other computer containing only those components identified in the control flow graph. Such a lightweight deployment may be used on a large scale for datacenter servers as well as for small scale deployments on sensors and other devices with little processing power.
    Type: Application
    Filed: May 1, 2012
    Publication date: August 30, 2012
    Applicant: CONCURIX CORPORATION
    Inventors: Alexander G. Gounares, Charles D. Garrett
  • Publication number: 20120222010
    Abstract: A loading and debugging method and a debugging system thereof are disclosed in the present invention, wherein the debugging method includes: loading a relocatable program according to an order of input segments in an ARM image file; compiling a link of the loaded relocatable program to generate an executable file; and loading the executable file into a debugging tool, to realize the debugging of the relocatable program. The present invention achieves the debugging of a dynamic program loaded dynamically, and addresses the issue that the symbol information of the loaded relocatable file cannot be acquired and the code debugging cannot be performed directly when the relocatable file is loaded dynamically.
    Type: Application
    Filed: April 16, 2010
    Publication date: August 30, 2012
    Applicant: ZTE CORPORATION
    Inventors: Xiaohui Wu, Haijian He
  • Patent number: 8250549
    Abstract: A computer implemented tool is provided for assisting in the mapping of a computer program to a data processing apparatus wherein multiple physical instances of a logical variable in the computer program are required. A computer program is provided as the input to the tool which analyses the data flow of the program and identifies multiple physical instance requirement for logical variables. The tool adds mapping support commands, such as instantiation commands, Direct Memory Access (DMA) move commands and the like as necessary to support the mapping of the computer program to a data processing apparatus.
    Type: Grant
    Filed: October 23, 2007
    Date of Patent: August 21, 2012
    Assignee: ARM Limited
    Inventors: Alastair David Reid, Edmund Grimley-Evans, Simon Andrew Ford
  • Patent number: 8250524
    Abstract: In one embodiment, a computer system provides an application programming interface (API) for augmenting an application API. A computer system receives software code written in a second programming language indicating a user's intention to augment an application API with contracts from a contract API written in a first programming language. The software code includes a reference to the contract API. The contracts include assertions indicating appropriate use of the application API. The computer system accesses portions of the contract API according to the reference in the software code and compiles the received software code and the referenced portions of the contract API into an intermediate language (IL) version of the software code. The IL version is in an intermediate language common to both the first programming language and the second programming language. The IL version includes the assertions indicating appropriate use of the application API.
    Type: Grant
    Filed: December 21, 2007
    Date of Patent: August 21, 2012
    Assignee: Microsoft Corporation
    Inventors: Michael Barnett, Manuel A. Fahndrich, Brian M. Grunkemeyer, Wolfram Schulte
  • Patent number: 8250551
    Abstract: A method and apparatuses for allowing additional tail call optimizations. The compiler generates both optimized and non-optimized code for tail call candidates. At a later time when there is more information (e.g. regarding program bounds), a decision and a modification to the executable code is made, implementing one of the two earlier codes.
    Type: Grant
    Filed: January 17, 2008
    Date of Patent: August 21, 2012
    Assignee: International Business Machines Corporation
    Inventors: James A. Kryka, Tim C. Muehe, Robert R. Roediger, Roger W. Southwick
  • Patent number: 8250552
    Abstract: A method and system for reducing processing overhead during execution of a code block in a high efficiency compilation framework. The method identifies second code blocks within the code block and separates them out from the first code block during compilation. Further, during compilation, the system converts the second code blocks to kernel program modules, in a form recognizable by the system kernel. The compilation is followed by execution of the first code block, with the compiled object code of the first code block being executed in user mode and the kernel program modules being executed in kernel mode.
    Type: Grant
    Filed: November 17, 2008
    Date of Patent: August 21, 2012
    Assignee: International Business Machines Corporation
    Inventors: Madhusudanan Kandasamy, Manish Gupta, Vidya Ranganathan, Dibyendu Das
  • Patent number: 8250547
    Abstract: The present invention provides a method and system for loading and running program images rapidly in a multi-processor system. The method comprises the steps of: starting in a synergistic processor a synergistic processing program listener, which is configured to listen to a notification from a main processor; calling in the main processor a run-synergistic-processing-program function which is configured to notify the synergistic processing program listener to run a synergistic processing program image which is part of the program image and has been transferred to the local store of the synergistic processor; and the synergistic processing program listener running the synergistic processing program image in response to receiving the notification.
    Type: Grant
    Filed: August 22, 2008
    Date of Patent: August 21, 2012
    Assignee: International Business Machines Corporation
    Inventors: Wen Jun Wang, Xiu Hua Huang, Jian Chen, Yuan Li
  • Patent number: 8250137
    Abstract: A method, apparatus, and system are provided for assigning tasks and/or providing resources in a distributed system. An indication of a task being available for processing is provided to one or more remote systems in a distributed system based on a distribution list. At least one response from one of the remote systems capable of performing the task is received in response to the indication. The response includes a request for a resource for performing the task. The resource for performing the task is provided to the remote systems.
    Type: Grant
    Filed: September 19, 2005
    Date of Patent: August 21, 2012
    Assignee: Apple Inc.
    Inventors: Robert D. Nielsen, Anders Bertelrud, Kaelin Colclasure, Nick G. Kledzik, Guy L. Tribble
  • Publication number: 20120210308
    Abstract: The disclosed embodiments provide a system that facilitates the compilation and execution of a software program. During operation, the system obtains a closure from source code for the software program. Next, the system characterizes a type of the closure based on a mutability of one or more variables captured by the closure. Finally, the system encodes the type into a compiled form of the closure to facilitate subsequent execution of the closure in a multithreaded environment.
    Type: Application
    Filed: February 15, 2011
    Publication date: August 16, 2012
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Brian Goetz, Alexander R. Buckley
  • Publication number: 20120210307
    Abstract: Systems and methods to provide usage analysis of a productive environment are provided. In example embodiments, a logging module links to a compiler to obtain information on a program as the program is being executed by the compiler. One or more procedures of the program may be determined and a count for each of the one or more determined procedures maintained. The determined one or more procedures and the count for each of the one or more determined procedures are stored in a buffer as log data. The log data is compiled, using one or more processors, into a detailed data source for further analysis.
    Type: Application
    Filed: February 11, 2011
    Publication date: August 16, 2012
    Applicant: SAP AG
    Inventor: Bjoern Panter
  • Publication number: 20120210300
    Abstract: The subject disclosure relates to enabling the evolution of a framework by providing public surface area factorings for both old and new public surface areas. The factoring can mitigate changes in the implementation of existing distributions of framework. The factoring can also mitigate breaking existing binaries. Further, the factoring can be provided while mitigating a degradation in the security guarantees of the linking model. The factorings can be applied for runtime and/or for a development toolkit. Thus, multiple, almost simultaneous, interoperable views of a framework implementation can be enabled at runtime and/or at design or build time. The views can represent different versions of the framework.
    Type: Application
    Filed: February 10, 2011
    Publication date: August 16, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Mircea Trofin, Wes Haggard, Krzysztof Cwalina, David Kean, Jobst-Immo Landwerth
  • Patent number: 8245203
    Abstract: The present invention provides a computer-implemented method to generate a logging dictionary for a compilation of a source code that has a logging statement and associated source code static data, comprising: selecting part of the source code that includes the logging statement; determining source code static data associated with the logging statement; generating a combined data element from the associated source code static data; correlating the combined data element with the logging statement; wherein if the combined data element does not occur in the logging dictionary correlated to said logging statement; assigning a log index value to the combined data element; and adding the log index value, correlated to the logging statement, to the log dictionary.
    Type: Grant
    Filed: June 29, 2007
    Date of Patent: August 14, 2012
    Assignee: Alcatel Lucent
    Inventor: Daniel C. Becker
  • Patent number: 8245210
    Abstract: Compile-time context information is captured and provided to a runtime binder for dynamic features in programming languages. For example, a C# run-time binder uses the information to perform a run-time bind with semantics matching the compiler's binding behavior. Dynamic programming language features supported relate to compound operations, events, delegates, member accessibility, dynamic-typed objects, structs passed by ref, arguments passed by name rather than position, extension methods, conditionally compiled methods, literal arguments, overflow checking, dynamic indexed properties, dynamic method groups, and static method groups.
    Type: Grant
    Filed: May 22, 2009
    Date of Patent: August 14, 2012
    Assignee: Microsoft Corporation
    Inventors: Samuel Ng, Mads Torgersen, Martin Maly, Christopher Joseph Burrows, James Hugunin
  • Patent number: 8245205
    Abstract: The techniques and mechanisms described herein are directed at sharing objects between applications executing in a virtual runtime environment. The techniques include compiling a cpu-independent file to create executable instructions that are associated with an application that is executable in a virtual runtime environment. A constructor associated with a shareable class defined within the cpu-independent file is executed to create an instance of a shareable object. The shareable object is then persisted in a manner such that other applications executing in the virtual runtime environment may access the shareable object. The technique may be performed during pre-JIT compilation or just-in-time compilation of the cpu-independent file. The execution of the constructor is performed at a restricted security level that prevents access to changeable information when generating static data for the static members of the shareable object.
    Type: Grant
    Filed: November 20, 2009
    Date of Patent: August 14, 2012
    Assignee: Microsoft Corporation
    Inventors: Rico Mariani, Christopher W. Brumme, Patrick H. Dussud, Sean E. Trowbridge
  • Patent number: 8245204
    Abstract: Managing program function parameters using compiler directives is provided. A parameter management system can include a compiler coupled to a primary symbol-type dictionary and a supplemental symbol-type dictionary containing parameter data for specific function calls of corresponding generic type functions. Notably, directive processing logic can be configured both to populate the supplemental symbol-type dictionary based upon processor directives embedded in source code, and also to substitute specific function calls for generic function calls in the source code as specified in the supplemental symbol-type dictionary.
    Type: Grant
    Filed: December 31, 2007
    Date of Patent: August 14, 2012
    Assignee: International Business Machines Corporation
    Inventors: Ying Chau Raymond Mak, Wang Dong Chen, Larry Alexander Lindsay
  • Patent number: 8239842
    Abstract: Modified compilers and other development tools provide implied line continuation within a sequence of syntax tokens of a programming language grammar which includes multiple semantic contexts and which uses line termination as presumptive statement termination. When source code parsing encounters a line terminator adjacent a context-dependent implicit line continuation token in an associated semantic context, an explicit decision is made whether to imply line continuation. Line continuation may also be implied in response to other specified tokens.
    Type: Grant
    Filed: February 24, 2009
    Date of Patent: August 7, 2012
    Assignee: Microsoft Corporation
    Inventors: Avner Aharoni, Timothy Yat Tim Ng, David N. Schach, Paul Allen Vick, Jr., Lisa Feigenbaum, Sophia Salim, Henricus Johannes Maria Meijer, Jonathan Paul Aneja, Joseph Tyler Whitney
  • Patent number: 8239841
    Abstract: Prefetching irregular memory references into a software controlled cache is provided. A compiler analyzes source code to identify at least one of a plurality of loops that contain an irregular memory reference. The compiler determines if the irregular memory reference within the at least one loop is a candidate for optimization. Responsive to an indication that the irregular memory reference may be optimized, the compiler determines if the irregular memory reference is valid for prefetching. Responsive to an indication that the irregular memory reference is valid for prefetching, a store statement for an address of the irregular memory reference is inserted into the at least one loop. A runtime library call is inserted into a prefetch runtime library for the irregular memory reference. Data associated with the irregular memory reference is prefetched into the software controlled cache when the runtime library call is invoked.
    Type: Grant
    Filed: April 4, 2008
    Date of Patent: August 7, 2012
    Assignee: International Business Machines Corporation
    Inventors: Tong Chen, Marc Gonzalez tallada, Zehra N. Sura, Tao Zhang
  • Patent number: 8239843
    Abstract: Parallelize a computer program by scoping program variables at compile time and inserting code into the program. Identify as value predictable variables, variables that are: defined only once in a loop of the program; not defined in any inner loop of the loop; and used in the loop. Optionally also: identify a code block in the program that contains a variable assignment, and then traverse a path backwards from the block through a control flow graph of the program. Name in a set all blocks along the path until a loop header block. For each block in the set, determine program blocks that logically succeed the block and are not in the first set. Identify all paths between the block and the determined blocks as failure paths, and insert code into the failure paths. When executed at run time of the program, the inserted code fails the corresponding path.
    Type: Grant
    Filed: March 11, 2008
    Date of Patent: August 7, 2012
    Assignee: Oracle America, Inc.
    Inventors: Yonghong Song, Xiangyun Kong, Spiros Kalogeropulos, Partha P. Tirumalai
  • Patent number: 8239827
    Abstract: A system and method for compiling part of the bytecode for a software application into native code at install time when the software application is installed on a particular computer are described. According to one embodiment of the method, usage information for the software application may be received. The usage information may indicate how frequently or commonly each of a plurality of features of the software application is used. The usage information may be analyzed to determine a rank ordering of the features. The method may further comprise installing the software application on the particular computer. Installing the software application may comprise compiling one or more bytecode modules of the software application into native code, where the one or more bytecode modules are selected from a plurality of bytecode modules depending upon the rank ordering of the features.
    Type: Grant
    Filed: March 31, 2008
    Date of Patent: August 7, 2012
    Assignee: Symantec Operating Corporation
    Inventors: William E. Sobel, Sourabh Satish
  • Publication number: 20120198426
    Abstract: Methods and an apparatus to form a resilient objective instruction construct are provided. An example method obtains a source instruction construct and forms a resilient objective instruction construct by compiling one or more resilient transactions.
    Type: Application
    Filed: April 9, 2012
    Publication date: August 2, 2012
    Inventors: Youfeng Wu, Cheng Wang, Ho-Seop Kim
  • Publication number: 20120198425
    Abstract: A compiler of a single instruction multiple data (SIMD) information handling system (IHS) identifies “if-then-else” statements that offer opportunity for conditional branch conversion. The compiler converts those “if-then-else” statements into “conditional branch and prepare” statements as well as “branch return” statements. The compiler compiles source code file information containing “if-then-else” statement opportunities into compiled code, namely an executable program. The SIMD IHS employs a processor or processors to execute the executable program. During execution, the processor generates and updates SIMD lane mask information to track and manage the conditional branch loops of the executing program. The processor saves branch addresses and employs SIMD lane masks to identify conditional branch loops with different branch conditions than previous conditional branch loops. The processor may reduce SIMD IHS processing time during processing of compiled code of the original “if-then-else” statements.
    Type: Application
    Filed: January 28, 2011
    Publication date: August 2, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Alexandre E. Eichenberger, Brian Flachs, Dorit Nuzman, Ira Rosen, Ulrich Weigand, Ayal Zaks
  • Patent number: 8234627
    Abstract: Exemplary systems and methods for expediting information display on a user device are provided. In exemplary embodiments, a request for information is received. An application server then generates and provides source code for a web page containing the requested information. In exemplary embodiments, a removal module is returned with the source code for the first web page. The removal module is configured to remove unnecessary elements from subsequent source code in order to expedite loading and displaying of subsequent web pages on the user device. In some embodiments, the web page comprises a syndicated web page within a window of a main web page.
    Type: Grant
    Filed: September 21, 2007
    Date of Patent: July 31, 2012
    Assignee: Knowledge Networks, Inc.
    Inventors: Michel Floyd, Brian Spiegel
  • Patent number: 8234635
    Abstract: In a multi-processor system for performing a parallel processing, each of a plurality of processors includes a communication processing unit for performing control between the processors in a data flow machine-type data-driven control method; and a program processing unit for performing control in each processor in a Neumann-type program-driven control method. The communication processing unit performs a communication between the processors in synchronization with the program processing unit, and has a function of detecting a communication data hazard between the processors. The program processing unit performs a processing based on an execution code stored in a local memory, and has a function of executing or suspending the execution code, according to a result of detecting the data hazard.
    Type: Grant
    Filed: January 16, 2007
    Date of Patent: July 31, 2012
    Assignee: Tokyo Institute of Technology
    Inventors: Tsuyoshi Isshiki, Hiroaki Kunieda
  • Publication number: 20120192168
    Abstract: A compiler device 10 includes: an input unit inputting a data flow graph including a set of nodes and a set of edges and information indicating a range of values that can be taken by data flowing along each edge; and a determination unit determining, from among a plurality of different types of hardware resources, a hardware resource to which a first node can be assigned based on the first node type and information indicating the range of values that can be taken by data flowing along a first edge connected to the first node. The compiler device 10 makes it possible to efficiently utilize hardware resources without losing data accuracy.
    Type: Application
    Filed: March 14, 2012
    Publication date: July 26, 2012
    Inventors: Kenji Funaoka, Mayuko Koezuka, Akira Kuroda, Hidenori Matsuzaki
  • Publication number: 20120192165
    Abstract: Apparatus, systems, and methods for a compiler are disclosed. One such compiler parses a human readable expression into a syntax tree and converts the syntax tree into an automaton having in-transitions and out-transitions. Converting can include unrolling the quantification as a function of in-degree limitations wherein in-degree limitations includes a limit on the number of transitions into a state of the automaton. The compiler can also convert the automaton into an image for programming a parallel machine, and publishes the image. Additional apparatus, systems, and methods are disclosed.
    Type: Application
    Filed: January 24, 2012
    Publication date: July 26, 2012
    Inventors: Junjuan Xu, Paul Glendenning
  • Patent number: 8230402
    Abstract: A method for testing and debugging of dynamic binary translation wherein a dynamic binary translator allows a target binary to be executed transparently on a host machine having a different computer architecture than the target machine involves selecting a minimum set of target machine states for simulation at run-time. A series of target machine instructions from the target binary is translated into a series of host machine instructions. During translation, a plurality of check points are inserted into the series of host machine instructions. During translation, a plurality of verification points are inserted into the series of host machine instructions. The series of host machine instructions, including the check points and verification points, are executed. Execution of a check point determines a simulated target machine state. Execution of a verification point sends information pertaining to simulated target machine states to an external verifier.
    Type: Grant
    Filed: September 30, 2007
    Date of Patent: July 24, 2012
    Assignee: Oracle America, Inc.
    Inventors: William Y. Chen, Jiwei Lu, Geetha K. Vallabhaneni
  • Patent number: 8230403
    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: November 24, 2010
    Date of Patent: July 24, 2012
    Assignee: Apple Inc.
    Inventors: Eric Albert, Alexei Elias Kosut, Matthew George Watson, Steve Zellers
  • Patent number: 8230406
    Abstract: Method, system, and program product for processing hardware design language code to facilitate reuse of compiled code units including options and option values in compiled code units. The method includes the steps of grouping options and option values to determine if code controlled by them will be reused; and determining options and option values that would permit and prevent reuse of compiled code units.
    Type: Grant
    Filed: September 11, 2006
    Date of Patent: July 24, 2012
    Assignee: International Business Machines Corporation
    Inventors: Richard L. H. Carbone, Gabor Bobok, Gabor Drasny, Ali El-Zein
  • Patent number: 8230413
    Abstract: A method, apparatus, system, and signal-bearing medium that in an embodiment issue a warning if a file to be used is an older version. In an embodiment, the warning includes an identification of the location of a newer version of the file. In an embodiment, the file is a class, and the old and new versions are found using a classpath, but in other embodiments any type of file or other object may be used. In this way, the use of incorrect versions of files may be detected and avoided.
    Type: Grant
    Filed: April 8, 2004
    Date of Patent: July 24, 2012
    Assignee: International Business Machines Corporation
    Inventors: Cary Lee Bates, Paul W. Buenger
  • Patent number: 8230408
    Abstract: In one embodiment, a hardware implementation of an electronic system may be realized by compiling the HDL description into an executable form and executing the processor instructions. By applying data flow separation technique, the operations of the system can be effectively mapped into the instruction set of complex processors for efficient logic evaluation, in some implementations. An array of interconnected processors may be deployed, in some embodiments, to exploit the inherent parallelism in a HDL description.
    Type: Grant
    Filed: June 28, 2005
    Date of Patent: July 24, 2012
    Assignee: Coherent Logix, Incorporated
    Inventor: Tommy Kinming Eng
  • Patent number: 8225295
    Abstract: We show that register allocation can be viewed as solving a collection of puzzles. We model the register file as a puzzle board and the program variables as puzzle pieces. We model pre-coloring by letting some of the puzzle pieces be already immovably placed on the puzzle board, and we model register aliasing by letting pieces have a plurality widths. For a wide variety of computer architectures, we can solve the puzzles in polynomial time. Puzzle solving is independent of spilling, that is, puzzle solving can be combined with a wide variety of approaches to spilling.
    Type: Grant
    Filed: September 20, 2008
    Date of Patent: July 17, 2012
    Inventors: Jens Palsberg, Fernando M. Q. Pereira
  • Patent number: 8225299
    Abstract: Program converting methods, apparatus and systems including a code analysis unit for performing lexical and syntactic analyses of a source code of an execution program, an optimization unit for transforming this execution program, and an output code generation unit for converting the transformed execution program into a machine language code. In addition, this optimization unit detects a calling procedure and a called procedure in a procedure call of this execution program analyzed by the code analysis unit, guards an evaluation of an argument described in the called procedure under a predetermined evaluation condition, and transforms the execution program so that the evaluation is performed when referring to this argument.
    Type: Grant
    Filed: November 26, 2007
    Date of Patent: July 17, 2012
    Assignee: International Business Machines Corporation
    Inventor: Mikio Takeuchi
  • Patent number: 8225294
    Abstract: One embodiment of the present invention provides a system for generating executable code. During operation, the system receives source code, wherein the source code can include declarations for types and operations, wherein the type declarations may be parameterized, and wherein the source code may specify subtyping relationships between declared types. Next, the system compiles or interprets the source code to produce executable code, wherein the type parameters may be instantiated by different types during execution, and wherein the result of executing operations may depend upon the instantiations of the type parameters. While compiling or interpreting the source code, the system checks the types and operations in the source code to ensure that the executable code generated is type-safe, and hence will not generate type errors during execution.
    Type: Grant
    Filed: April 27, 2006
    Date of Patent: July 17, 2012
    Assignee: Oracle America, Inc.
    Inventors: Sukyoung Ryu, Eric E. Allen, Victor M. Luchangco, Joseph J. Hallett, III, Samuel Y. Tobin-Hochstadt
  • Publication number: 20120180024
    Abstract: The disclosure provides a solution for associating deployed executables with source code. In the solution, source code of a development environment can be mapped to a deployed executable of a runtime environment. The mapping can ensure that a version of source code from which the deployed executable was produced is always known. The mapping can occur within digitally encoded data stored in a non-transient storage medium. The development environment and the runtime environment can be two distinct and separate computing environments that are isolated from each other.
    Type: Application
    Filed: January 7, 2011
    Publication date: July 12, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: JASON A. GONZALEZ, ENDEMECIO SANTANA, TASSANEE K. SUPAKKUL, JANKI V. VORA, JULIO WONG
  • Patent number: 8219972
    Abstract: An Extensible Markup Language (XML) Application Server for storing, processing, communicating, and displaying dynamic semi-structured information. It comprises a declarative specification language, a transactional indexed XML data store, and an XML application server engine. An integrated architecture (a) provides for optimization, indexing, and backtracking search in a business logic layer, (b) provides for general-purpose programming idioms including recursive function definitions, iteration, and dynamic dispatch in data layer queries and updates, and (c) eliminates processing overhead and maintenance issues caused by transforming between relational, object-oriented, and semi-structured data paradigms.
    Type: Grant
    Filed: February 24, 2009
    Date of Patent: July 10, 2012
    Inventor: Judson Ames Cornish
  • Patent number: 8219984
    Abstract: A network for updating firmware, drivers, or application software facilitates the access to generated update packages by electronic devices and the update of firmware, drivers, content or application software in a fault tolerant mode. A “Bubbles” technique is employed to generate efficient and compact update packages. A “Bubbles” information is generated employing the “Bubbles” technique that is subsequently sent to the electronic devices as part of an update package. The “Bubbles” information and other related information is used in preprocessing activities and in other update related activities. For example, they are used to prepare the electronic device for an update to a different version of its firmware, software and/or content.
    Type: Grant
    Filed: October 24, 2007
    Date of Patent: July 10, 2012
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Shao-Chun Chen, James P. Gustafson
  • Patent number: 8214810
    Abstract: A method of compiling source code, involving a pre-processing step for including at least one additional source code file into the source code prior to generating target code from the source code. The proposed method further comprises the steps of: establishing, during the pre-processing step, at least one network connection to at least one remote server; and downloading the additional source code file from the remote server.
    Type: Grant
    Filed: August 28, 2007
    Date of Patent: July 3, 2012
    Assignee: International Business Machines Corporation
    Inventors: Mark Dettinger, Andreas Krebbel
  • Patent number: 8214809
    Abstract: A grid-enabled ANT system that includes ANT XML task files that can run on both grid-enabled machines or stand-alone computers is disclosed. A network file server is used to store files accessed during the build process, and ANT's standard XML tagging and parameters are used, thus enabling the user to use a standardized format for entering XML information. This grid-enabled ANT is transparent to the user since ANT parses the tasks and automatically sends jobs to the grid, when appropriate, instead of the user deciding which tasks to implement as grid tasks.
    Type: Grant
    Filed: December 7, 2007
    Date of Patent: July 3, 2012
    Assignee: International Business Machines Corporation
    Inventors: Patrick J. Richards, Jr., Matthew B. Trevathan
  • Patent number: 8214814
    Abstract: Embodiments of the invention enable application programs running across multiple compute nodes of a highly-parallel system to compile source code into native instructions, and subsequently share the optimizations used to compile the source code with other nodes. For example, determining what optimizations to use may consume significant processing power and memory on a node. In cases where multiple nodes exhibit similar characteristics, it is possible that these nodes may use the same set of optimizations when compiling similar pieces of code. Therefore, when one node compiles source code into native instructions, it may share the optimizations used with other similar nodes, thereby removing the burden for the other nodes to figure out which optimizations to use. Thus, while one node may suffer a performance hit for determining the necessary optimizations, other nodes may be saved from this burden by simply using the optimizations provided to them.
    Type: Grant
    Filed: June 24, 2008
    Date of Patent: July 3, 2012
    Assignee: International Business Machines Corporation
    Inventors: Eric L. Barsness, David L. Darrington, Amanda Peters, John Matthew Santosuosso
  • Patent number: 8214808
    Abstract: A system and method for speculative assistance to a thread in a heterogeneous processing environment is provided. A first set of instructions is identified in a source code representation (e.g., a source code file) that is suitable for speculative execution. The identified set of instructions are analyzed to determine the processing requirements. Based on the analysis, a processor type is identified that will be used to execute the identified first set of instructions based. The processor type is selected from more than one processor types that are included in the heterogeneous processing environment. The heterogeneous processing environment includes more than one heterogeneous processing cores in a single silicon substrate. The various processing cores can utilize different instruction set architectures (ISAs). An object code representation is then generated for the identified first set of instructions with the object code representation being adapted to execute on the determined type of processor.
    Type: Grant
    Filed: May 7, 2007
    Date of Patent: July 3, 2012
    Assignee: International Business Machines Corporation
    Inventors: Michael Norman Day, Michael Karl Gschwind, John Kevin Patrick O'Brien, Kathryn O'Brien
  • Patent number: 8214813
    Abstract: A method of optimizing code which invokes methods on a system across an interface is described. High level information relating to the system is accessed and this information is used in performing code transformations in order to optimize the code.
    Type: Grant
    Filed: January 12, 2007
    Date of Patent: July 3, 2012
    Assignee: Microsoft Corporation
    Inventors: Timothy Harris, Rebecca Isaacs, Eric Koskinen, Richard Mortier
  • Publication number: 20120167063
    Abstract: A system and a method are disclosed for communicating between two programming languages on a client device. Commands in a high-level language are encoded as character string containing a series of numbers separated by delimiters, with each component of the command encoded as a different number. The encoded character strings are passed to compiled code that runs natively on the client device, and the native code decodes the character strings into corresponding native commands and executes the native commands. This communication protocol allows applications written in high-level code to perform functions that are typically set aside for native code, such as communicating with web servers and modifying files saved in memory. High-level code may also be transferred to client devices without being subjected to the restrictions that some operating systems place on the transfer for application binaries, which allows application developers to automatically send application updates to users.
    Type: Application
    Filed: December 13, 2011
    Publication date: June 28, 2012
    Applicant: NGMOCO, LLC
    Inventors: Stephen Cain Detwiler, James Edward Marr, Payton Russell White
  • Publication number: 20120167064
    Abstract: Provided is a computer-readable, non-transitory medium storing an algorithm selection program for selecting one of algorithm among of a plurality of algorithms included in an extension program for executing a predetermined function when a call-out source program calls out the extension program, the algorithm selection program causing an information processing device including a storage device to execute:acquiring, from the storage device, selection information in which a command for calling out the extension program in the call-out source program and the one of algorithm are correlated; and selecting an algorithm for executing the predetermined function based on the acquired selection information.
    Type: Application
    Filed: December 27, 2011
    Publication date: June 28, 2012
    Applicant: FUJITSU LIMITED
    Inventor: Ikuo MIYOSHI
  • Patent number: 8209673
    Abstract: One embodiment of the present invention sets forth a system and method for implementing a scalable link interface (SLI) approval policy using a database. The resource manager within a GPU driver incorporates a database, which may be used to determine whether the current computer system configuration is approved for running in SLI mode. The database of specific approved configurations may be embedded within the GPU driver or stored in a separate file, which may be modified by an authorized user. The database may be encrypted to prevent unauthorized users from modifying to the database contents. When a given computer system configuration is an approved configuration within the database, the system may be enabled to operate in SLI mode.
    Type: Grant
    Filed: September 25, 2007
    Date of Patent: June 26, 2012
    Assignee: NVIDIA Corporation
    Inventor: Herbert O. Ledebohm
  • Publication number: 20120159462
    Abstract: Techniques are described that enable restoring interrupted program execution from a checkpoint without the need for cooperation from the computer's operating system. These techniques can be implemented by modifying existing code using an automated tool that adds instructions for enabling restoring interrupted program execution.
    Type: Application
    Filed: December 20, 2010
    Publication date: June 21, 2012
    Applicant: Microsoft Corporation
    Inventors: Stephen Leibman, Jonathon Michael Stall, Parry Jones Reginald Husbands