Just-in-time Compiling Or Dynamic Compiling (e.g., Compiling Java Bytecode On A Virtual Machine) Patents (Class 717/148)
  • Patent number: 9563764
    Abstract: A method performed by a first application in a client apparatus to authenticate a second application in the client apparatus is provided. The method includes, when the first application receives an execution request from the second application, requesting authentication information of the second application from an authentication server, obtaining the authentication information of the second application from the authentication server, and authenticating the second application using the authentication information, wherein the authentication information of the second application is signed with a private key of the authentication server.
    Type: Grant
    Filed: February 19, 2014
    Date of Patent: February 7, 2017
    Assignee: Samsung Electronics Co., Ltd.
    Inventors: Tae-kwang Um, Sun-eung Park, Jin-goo Seo, Do-jun Yang, Cheol-ju Hwang
  • Patent number: 9542175
    Abstract: A method is provided. The method stores a first version of an artifact in a first environment. Further, the method stores a second version of the artifact in the first environment. In addition, the second version of the artifact is distinct from the first version of the artifact. The method also deploys the first version of the artifact and the second version of the artifact to a second environment so that the first artifact and the second artifact can be run simultaneously in the second environment. The second environment is distinct from the first environment.
    Type: Grant
    Filed: June 23, 2006
    Date of Patent: January 10, 2017
    Assignee: Oracle International Corporation
    Inventors: Ariel D. Tseitlin, Daniel Kearns
  • Patent number: 9495185
    Abstract: In an approach for removing tenant initialization check per tenant for compiled code, a processor receives a request to create a tenant. A processor creates the tenant. A processor marks a current thread of the tenant as not eligible to run just-in-time (JIT) code, wherein the marking indicates that when a method is invoked, a non-JIT version of the method is executed. A processor executes initialization of a first class from an optimization list, wherein the optimization list is a configurable list of classes to be initialized prior to running JIT code. A processor determines that class initialization has been executed for all classes on the optimization list. A processor adjusts the marking to indicate that the current thread is eligible to run JIT code and that the tenant may run JIT code that assumes, without checking, that classes on the optimization list are initialized.
    Type: Grant
    Filed: February 23, 2015
    Date of Patent: November 15, 2016
    Assignee: International Business Machines Corporation
    Inventors: Oluwatobi A. Ajila, Graham A. Chapman, Michael H. Dawson, San Hong Li, Hui Shi
  • Patent number: 9495184
    Abstract: In an approach for removing tenant initialization check per tenant for compiled code, a processor receives a request to create a tenant. A processor creates the tenant. A processor marks a current thread of the tenant as not eligible to run just-in-time (JIT) code, wherein the marking indicates that when a method is invoked, a non-JIT version of the method is executed. A processor executes initialization of a first class from an optimization list, wherein the optimization list is a configurable list of classes to be initialized prior to running JIT code. A processor determines that class initialization has been executed for all classes on the optimization list. A processor adjusts the marking to indicate that the current thread is eligible to run JIT code and that the tenant may run JIT code that assumes, without checking, that classes on the optimization list are initialized.
    Type: Grant
    Filed: September 10, 2015
    Date of Patent: November 15, 2016
    Assignee: International Business Machines Corporation
    Inventors: Oluwatobi A. Ajila, Graham A. Chapman, Michael H. Dawson, San Hong Li, Hui Shi
  • Patent number: 9489459
    Abstract: Systems and methods for application search configuration, indexing, and execution. A method includes receiving a metadata definition for search and indexing configuration and generating a transfer mode definition to export objects for indexing. The method includes identifying objects to be indexed according to the metadata definition and extracting data according to the transfer mode definition. The method includes indexing the extracted data. The method can include executing queries according to the meta definition.
    Type: Grant
    Filed: September 23, 2013
    Date of Patent: November 8, 2016
    Assignee: SIEMENS PRODUCT LIFECYCLE MANAGEMENT SOFTWARE INC.
    Inventors: Javeed Nizami, Arvind Parasuram
  • Patent number: 9378034
    Abstract: Various systems and methods for dynamic bytecode modification of classes and class hierarchies are described herein. In various embodiments, a Java® agent is received at a launch of a Java® Virtual Machine (JVM®), the agent implementing a premain method, the premain method accepting a reference to an instrumentation instance. The instrumentation reference is then stored, a deployment container is initialized, and, within the deployment container, an instance of an application is created. The instrumentation reference is then provided to the application instance. A class transformer is then retrieved from a persistence provider, and the class transformer is wrapped by an O.R. Persistence Container Class Transformer, which is then registered with the instrumentation instance. A class to be transformed is passed to the class transformer, which dynamically modifies the bytecode of the class before the class is loaded by the JVM®.
    Type: Grant
    Filed: December 20, 2013
    Date of Patent: June 28, 2016
    Assignee: SAP SE
    Inventors: Peter K. Matov, Alexandrina Ivanova
  • Patent number: 9378129
    Abstract: The present information processing apparatus compares a size of a used memory that is currently used for execution of an application with a stored maximum size of a memory used by the application. Dump processing for writing memory contents to an external storage device is not executed when the result of the comparison shows that the size of the used memory is smaller than or equal to the maximum size, and is executed when the result of the comparison shows that the size of the used memory is larger than the maximum size.
    Type: Grant
    Filed: October 2, 2013
    Date of Patent: June 28, 2016
    Assignee: CANON KABUSHIKI KAISHA
    Inventor: Kunimasa Fujisawa
  • Patent number: 9367292
    Abstract: Systems and methods for modulating dynamic optimizations of a computer program are disclosed. One method includes receiving an intermediate representation (IR) of machine executable instructions, optimizing the received IR to generate a first optimized IR prior to the machine executable instructions being generated by a runtime compiler, optimizing the received IR to generate two or more alternative optimizations for the IR, wherein the two or more alternative optimizations generating two or more optimized IRs are optimized at different optimization points based at least in part on information generated during execution of the first optimized IR in a runtime environment different optimization strategies, and modulating between the two or more alternative optimizations for the IR to use different ones of the alternative optimizations during execution of the machine executable instructions at a frequency based at least in part on a degree of difference between the two or more optimized IRs.
    Type: Grant
    Filed: June 11, 2012
    Date of Patent: June 14, 2016
    Assignee: EMPIRE TECHNOLOGY DEVELOPMENT LLC
    Inventor: Ezekiel Kruglick
  • Patent number: 9363034
    Abstract: Method for encrypting information transferred between two mobile telephones, each having a security module and where a security application contains encryption and decryption algorithms. The security application is stored on an SD card introduced into a card-holder location in the relevant telephone, then transferred from the card to the security module with a session key stored on the card, a key stream forms in the card on the basis of the session key, and during encryption is transferred from the card to the security module where encryption takes place, such encrypted stream of data is transmitted by the telephone, the stream of data is received by a second mobile telephone, decryption takes place with a corresponding key stream in the security module of the second telephone and the corresponding key stream is formed in the SD card of the second telephone on the basis of the session key.
    Type: Grant
    Filed: February 23, 2011
    Date of Patent: June 7, 2016
    Assignee: SECUMOBI AB
    Inventor: Stefan Hagbard
  • Patent number: 9348636
    Abstract: Approaches for transferring a file using a virtualized application. A virtualized application executes within a virtual machine residing on a physical machine. When the virtualized application is instructed to download a file stored external to the physical machine, the virtualized application displays an interface which enables at least a portion of a file system, maintained by a host OS, to be browsed while preventing files stored within the virtual machine to be browsed. Upon the virtualized application receiving input identifying a target location within the file system, the virtualized application stores the file at the target location. The virtualized application may also upload a file stored on the physical machine using an interface which enables at least a portion of a file system of a host OS to be browsed while preventing files in the virtual machine to be browsed.
    Type: Grant
    Filed: September 5, 2014
    Date of Patent: May 24, 2016
    Assignee: Bromium, Inc.
    Inventors: Deepak Khajuria, Kiran Bondalapati, Vikram Kapoor, Gaurav Banga, Ian Pratt
  • Patent number: 9336025
    Abstract: A particular method includes receiving, at a device, a request to analyze a software component. The request indicates a target operating system. The method also includes generating a virtual machine at a computing device. The virtual machine implements the target operating system. The method further includes executing the software component in the target operating system on the virtual machine and generating data indicating effects of executing the software component on the virtual machine.
    Type: Grant
    Filed: July 12, 2013
    Date of Patent: May 10, 2016
    Assignee: The Boeing Company
    Inventors: Terrance J. Kirk, Matthew S. Bialek, Shaun Kospiah, Timothy M. Lemm, Scott G. Thompson
  • Patent number: 9329883
    Abstract: Systems and methods for tracing an emulated execution order of non-native instructions based on natively executing code on a computing system having a native instruction set architecture are provided. One method includes, during emulated execution of non-native program code, maintaining a jump history in the computing system, the jump history including a listing of non-native jump instructions for which execution is emulated in the computing system. The method includes, for each of the non-native jump instructions included in the jump history, accessing non-native program code including the non-native instructions to determine one or more non-native instructions executed between the non-native jump instruction and a last-executed non-native jump instruction, and aggregating the non-native jump instruction and the one or more non-native instructions into an instruction trace.
    Type: Grant
    Filed: October 28, 2013
    Date of Patent: May 3, 2016
    Assignee: Unisys Corporation
    Inventor: Thomas Nowatzki
  • Patent number: 9292270
    Abstract: Support for dynamic behavior is provided during static compilation while reducing reliance on JIT compilation and large runtimes. A mapping is created between metadata and native code runtime artifacts, such as between type definition metadata and a runtime type description, or between method definition metadata, a runtime type description, and a native code method location, or field definition metadata, a runtime type description, and a field location. A mapping between runtime artifacts may also be created. Some compilation results include trampoline code to support a reflection invocation of an artifact in the reduced runtime support environment, for virtual method calls, call-time bounds checking, calling convention conversion, or compiler-intrinsic methods. Some results support runtime diagnostics by including certain metadata even when full dynamic behavior is not supported.
    Type: Grant
    Filed: March 27, 2014
    Date of Patent: March 22, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Michal Strehovsky, David Charles Wrighton, Atsushi Kanamori, Mircea Trofin, Rudi Martin
  • Patent number: 9286089
    Abstract: Using stored information about the compilation environment during compilation of a code segment to improve performance of just-in-time compilers. A set of characteristic(s) of a compilation environment is measured during compilation of a code segment. Information that may be relevant to how the compilation is performed is derived from at least one of the measured characteristics and stored in a persistent storage device. Upon a subsequent request to compile that code segment, the information is retrieved and used to change compilation behavior. The set of characteristic(s) relate to at least either compilation backlog or peak memory usage. The changed compilation behavior involves at least adjusting the scheduling of the subsequent compilation request or adjusting the compiler optimization level.
    Type: Grant
    Filed: January 24, 2014
    Date of Patent: March 15, 2016
    Assignee: International Business Machines Corporation
    Inventor: Marius Pirvu
  • Patent number: 9250865
    Abstract: A method, apparatus, and/or computer program product performs selective speculative class-based optimization through the use of a type propagation analysis of class. Responsive to a determination that the type of class is not a fixed type, a determination is made as to whether the class is sub-classed. Responsive to a determination the class is not sub-classed, a virtual synthetic property method is created. The virtual synthetic property method is accommodated in an enhanced java virtual machine using a stack frame type. The stack frame type has associated metadata for throwing an exception and an invisibility property. The virtual synthetic property method, along with a virtual guard, is inlined, and a slow path is created. The slow path handles executions of the virtual synthetic property method when sub-classes of the class, which override an implementation of the virtual synthetic property method, are loaded in the future.
    Type: Grant
    Filed: March 7, 2014
    Date of Patent: February 2, 2016
    Assignee: International Business Machines Corporation
    Inventors: Mark G. Stoodley, Vijay Sundaresan
  • Patent number: 9244664
    Abstract: A system for controlling executable size of video development kits comprises an SDK. The SDK comprises a framework, an SDK library function, and a pointing function to deliver a pointer. The framework calls a pointing function. The SDK library function comprises a video processing function. The framework and the SDK library function are compiled into a video processing application. The pointing function points to the SDK library function. The pointing function includes a preprocessor conditional to remove a code section that refers to the SDK library function.
    Type: Grant
    Filed: April 28, 2014
    Date of Patent: January 26, 2016
    Assignee: VisualOn, Inc.
    Inventors: Jiafa Huang, Jun Lin, Chin-Yee Lin
  • Patent number: 9207914
    Abstract: A method for executing a machine code based on a dynamic language is disclosed. An execution guard is created as a value stored in a data structure. The value is representative of an expected condition or a set of conditions for a reusable portion of the machine code. The value representative of the expected condition(s) is compared to an actual value encountered later during execution of a portion of the machine code. The reusable machine code is executed if the actual value corresponds with the value representative of the expected condition(s). The execution guard is invalidated if any of the expected conditions changes.
    Type: Grant
    Filed: December 20, 2013
    Date of Patent: December 8, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Jedrzej Miadowicz, Curtis Cheng-Cheng Man, Louis Lafreniere
  • Patent number: 9183059
    Abstract: Systems and methods for providing a virtual machine client administrative interface are provided. In some aspects, a method includes providing for display of a virtual machine creation console via operation of a virtual machine hosting environment, the virtual machine creation console indicating a set of predetermined available resources for virtual machine creation. The method includes facilitating receiving, from a user, an input via the virtual machine creation console, the input defining a portion of the set of predetermined available resources and one or more virtual machines to be created with the portion of the set of predetermined available resources. The method includes facilitating creating the one or more virtual machines.
    Type: Grant
    Filed: June 1, 2012
    Date of Patent: November 10, 2015
    Assignee: WYSE TECHNOLOGY L.L.C.
    Inventors: Andrew T. Fausak, Oleg Rombakh
  • Patent number: 9178746
    Abstract: A browser-based fetch of an external library may include a browser receiving a request from a web application to load an external library and determining whether the web browser has a bundled version of the library. If the bundled version exists, the browser may load the bundled version. If the bundled version does not exist, the browser may fetch the external library. When the external library is configured to send data to the remote server the method may include the browser intercepting a request to send the data to the remote server, determining that the data may be sent at a later time, and storing the data until a connection with the remote server is established. Additionally, a web store may inspect a web application for use of an external library and prevent the web application from being added to the web store when the external library is not trusted.
    Type: Grant
    Filed: July 3, 2012
    Date of Patent: November 3, 2015
    Assignee: Google Inc.
    Inventors: Bryan Russell Yeung, Peng Huang
  • Patent number: 9176718
    Abstract: Certain example embodiments relate to a computer program written in the programming language Java for emulating the memory management of a computer program written in the programming language C. The C program includes instructions for allocating a memory area, instructions for defining at least one data structure, and instructions for defining at least one pointer to the allocated memory area in accordance with the at least one data structure. The Java program may include instructions for: providing a Java byte array for emulating the allocated memory area of the C program; and providing at least one Java object for emulating the at least one data structure of the C program. The at least one Java object uses at least one Java ByteBuffer object for emulating the at least one pointer of the C program.
    Type: Grant
    Filed: August 21, 2012
    Date of Patent: November 3, 2015
    Assignee: Software AG
    Inventor: Lior Yaffe
  • Patent number: 9148473
    Abstract: The resources available for performing computing tasks or functions on a mobile device may be dynamically expanded by wirelessly linking the mobile device with other devices over a network, such as a Bluetooth® network. Where the mobile device is charged with performing tasks or functions that would exceed its available resources, the mobile device may allocate the performance of those tasks or functions to other devices on the network. Conversely, where a local device on a network has available, unused computing resources, the local device may permit other devices on the network to utilize its computing resources for the performance of other tasks or functions.
    Type: Grant
    Filed: August 27, 2012
    Date of Patent: September 29, 2015
    Assignee: Amazon Technologies, Inc.
    Inventor: Anurag Sharma
  • Patent number: 9131094
    Abstract: An application execution time reducing method according to one aspect of the present disclosure includes a function registering step, a native function step, and a native function deleting step. In the function registering step, when processing of an application in a software structure having a native function which is a basic component is started, information about the native function is registered onto a platform on which the native function can be executed. In the native function step, the native function is executed on the platform by using the information about the native function. In the native function deleting step, when the processing of the application is quitted, the information about the native function is deleted from the platform.
    Type: Grant
    Filed: June 24, 2014
    Date of Patent: September 8, 2015
    Assignee: KYOCERA Document Solutions Inc.
    Inventor: Takashi Araki
  • Patent number: 9128732
    Abstract: A method and an apparatus for runtime compilation that generates non-deterministic and unpredictable code to protect against un-trusted code attacks are described. The runtime compilation may be based on heuristic rules without requiring deterministic behavior reduction operations for all the code generated. The heuristic rules may include estimations on, for example, runtime overhead or cost incurred for code protection, amount of code protection required and/or other applicable factors and their relationships.
    Type: Grant
    Filed: September 14, 2012
    Date of Patent: September 8, 2015
    Assignee: Apple Inc.
    Inventors: Oliver J. Hunt, Gavin Barraclough, Filip J. Pizlo, Geoffrey Garen
  • Patent number: 9104514
    Abstract: An embodiment of the invention provides a method for multi-tenant enabling a service, where the service includes a plurality of service components. Rules are received from a provider of the service, wherein the rules include rules for isolating the service components and rules for sharing the service components. The service components are matched with virtualization environments and/or physical environments based on the rules. The virtualization environments include at least one isolation container and/or at least one shared container. The service components are stored in the virtualization environments and/or the physical environments based on the matching. The service components are mapped to the at least one isolation container of the virtualization environments, the at least one shared container of the virtualization environments, and/or the physical environments based on the storing of the service components.
    Type: Grant
    Filed: January 11, 2011
    Date of Patent: August 11, 2015
    Assignee: International Business Machines Corporation
    Inventors: Andrew James Frederick Bravery, Arun Kwangil Iyengar, Aaron Edward Kasman, Thomas Arthur Mikalsen, Isabelle M. Rouvellou
  • Patent number: 9098319
    Abstract: An improved technique for inserting reference count code in a garbage collection technique. When there are two or more successor basic blocks to a basic block, a given variable is live at the entry of one or more of the successor basic blocks, and the variable is dead in another basic block S, a new basic block is inserted between the original basic block and a successor basic block in which the variable is dead, and RC? related to the variable is generated in the new basic block.
    Type: Grant
    Filed: September 17, 2013
    Date of Patent: August 4, 2015
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Kazuaki Ishizaki
  • Patent number: 9075636
    Abstract: A technique is provided for generating stubs. A processing circuit receives a call to a called function. The processing circuit retrieves a called function property of the called function. The processing circuit generates a stub for the called function based on the called function property.
    Type: Grant
    Filed: December 11, 2013
    Date of Patent: July 7, 2015
    Assignee: International Business Machines Corporation
    Inventor: Michael K. Gschwind
  • Patent number: 9075596
    Abstract: A method is provided. The method develops code for an enterprise module in an enterprise module development environment. Further, the method modifies the code to output customized code that runs in an enterprise module production environment. In addition, the method deploys the customized code to the enterprise module production environment.
    Type: Grant
    Filed: June 23, 2006
    Date of Patent: July 7, 2015
    Assignee: Oracle International Corporation
    Inventors: Ariel D. Tseitlin, Daniel Kearns, Mark Hastings
  • Patent number: 9063725
    Abstract: A method is provided. The method composes management code in a platform independent managed object format. Further, the management code is utilized to manage at least one object. In addition, the management code transforms the management code into a plurality of portable management objects and a plurality of native management objects.
    Type: Grant
    Filed: June 23, 2006
    Date of Patent: June 23, 2015
    Assignee: Oracle International Corporation
    Inventors: Ariel D. Tseitlin, Daniel Kearns, William B. Kilgore
  • Patent number: 9058206
    Abstract: A system, computer program and a method for debugging a system, the method includes: controlling, by a debugger, an execution flow of a processing entity; setting, by the debugger or the processing entity, a value of a scheduler control variable accessible by the scheduler; wherein the debugger is prevented from directly controlling an execution flow of a scheduler; and determining, by the scheduler, an execution flow of the scheduler in response to a value of the scheduler control variable.
    Type: Grant
    Filed: June 19, 2008
    Date of Patent: June 16, 2015
    Assignee: Freescale emiconductor, Inc.
    Inventors: Hillel Avni, Serge Lamikhov, Dov Levenglick
  • Patent number: 9058192
    Abstract: Some embodiments include a processing subsystem that compiles program code to generate compiled program code. In these embodiments, while compiling the program code, the processing subsystem first identifies a pointer in the program code that points to an unspecified address space. The processing subsystem then analyzes at least a portion of the program code to determine one or more address spaces to which the pointer may point. Next, the processor updates metadata for the pointer to indicate the one or more address spaces to which the pointer may point, the metadata enabling a determination of an address space to which the pointer points during subsequent execution of the compiled program code.
    Type: Grant
    Filed: October 1, 2012
    Date of Patent: June 16, 2015
    Assignee: ADVANCED MICRO DEVICES, INC.
    Inventor: Benedict R. Gaster
  • Patent number: 9047101
    Abstract: A method for compiling an original application written in an intermediate code, in which the original application is executed by means of a virtual machine. The method supplies a native application having a native binary code. The method includes: extracting at least one intermediate code instruction at least one corresponding function input point; a first step of compiling the intermediate code of the application to a code that includes control flow management and calls said at least one input point of each function implementing the instructions of the intermediate code; and a second step of compiling the compiled application code and intermediate code functions supplying the optimised native application.
    Type: Grant
    Filed: December 6, 2011
    Date of Patent: June 2, 2015
    Assignee: Google Inc.
    Inventors: Gilbert Cabillic, Jean-Philippe Lesot
  • Publication number: 20150149986
    Abstract: System and methods are provided for loop process suspension. One or more loop instructions associated with a loop process are loaded in a code cache. One or more branch instructions associated with a branch of the loop process in the code cache are determined. A suspension event is detected. The branch instructions are replaced with one or more jump instructions in the code cache upon the detection of the suspension event. If the jump instructions are executed in the code cache, the branch instructions in the code cache are restored, and the loop process is suspended. One or more suspension instructions associated with the suspension event are executed in an interpreter.
    Type: Application
    Filed: November 5, 2014
    Publication date: May 28, 2015
    Inventors: Haitao Huang, Liping Gao, Xinyu Qi, Ningsheng Jian
  • Patent number: 9043768
    Abstract: A system and method for efficient compilation and invocation of function type calls in a virtual machine (VM), or other runtime environment, and particularly for use in a system that includes a Java Virtual Machine (JVM). In accordance with an embodiment, the system comprises a virtual machine for executing a software application; a memory space for the application byte code comprising callsites generated using a function type carrier; a bytecode to machine code compiler which performs MethodHandle invocation optimizations; a memory space for the compiled machine code; and a memory space for storing software objects as part of the software application. The system enables carrying the function type from the original MethodHandle to a callsite in the generated bytecode, including maintaining generics information for a function type acquired from a target function, and generating a callsite based on the generics information for the function object invocation.
    Type: Grant
    Filed: September 16, 2013
    Date of Patent: May 26, 2015
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventor: Fredrik Öhrström
  • Patent number: 9043767
    Abstract: A deployment system provides the ability to deploy a multi-node distributed application, such as a cloud computing platform application that has a plurality of interconnected nodes performing specialized jobs. The deployment system includes a release management system that builds and manages versioned releases of application services and/or software modules that are executed by the plurality of nodes of the cloud computing platform application. The release management system utilizes specification files to define a jobs and application packages and configurations needed to perform the jobs. The jobs and application packages are assembled into a self-contained release bundle that may be provided to the deployment system. The deployment system unwraps the release bundle and provides each job to deployment agents executing on VMs. The deployment agents apply the jobs to their respective VM (e.g., launching applications), thereby deploying the cloud computing platform application.
    Type: Grant
    Filed: March 23, 2012
    Date of Patent: May 26, 2015
    Assignee: Pivotal Software, Inc.
    Inventors: Vadim Spivak, Kent Skaar, Oleg Shaldibin
  • Patent number: 9038039
    Abstract: An apparatus and method for accelerating Java translation are provided. The apparatus includes a lookup table which stores an lookup table having arrangements of bytecodes and native codes corresponding to the bytecodes, a decoder which generates pointer to the native code corresponding to the feed bytecode in the lookup table, a parameterized bytecode processing unit which detects parameterized bytecode among the feed bytecode, and generating pointer to native code required for constant embedding in the lookup table, a constant embedding unit which embeds constants into the native code with the pointer generated by the parameterized bytecode processing unit, and a native code buffer which stores the native code generated by the decoder or the constant embedding unit.
    Type: Grant
    Filed: May 17, 2012
    Date of Patent: May 19, 2015
    Assignees: SAMSUNG ELECTRONICS CO., LTD., Board of Regents, The University of Texas System
    Inventors: Hyo-jung Song, Ciji Isen, Lizy K. John
  • Patent number: 9038038
    Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for just in time compilation. In one aspect, a method includes receiving an application on a mobile device, the mobile device including a processor for executing native code and an interpreter for interpreting intermediate code, wherein an application includes at least one machine instruction; receiving data characterizing prior actions of the application on the mobile device; determining a portion of intermediate code to be compiled into native code based at least in part on the data, wherein the portion includes some but not all of the application; sending the portion of intermediate code over a network to a compilation server; receiving native code corresponding to the portion of intermediate code from the compilation server; and executing the native code on the processor.
    Type: Grant
    Filed: April 29, 2011
    Date of Patent: May 19, 2015
    Assignee: Google Inc.
    Inventors: Benchiao Jai, Chia-Chi Yeh
  • Publication number: 20150135170
    Abstract: Methods and systems for providing compatibility of applications with multiple versions of an operating system are provided. The method may comprise receiving, by a device, a request to perform a function-call of an application that references features of a first version of an operating system. The method also includes determining whether a version of the operating system and a system library on the device supports the function-call of the application so as to be able to perform dynamic compilation of code in the system library for the function-call at run-time, and based on the determination, accessing a compatibility library associated with the application that includes pre-compiled code for execution by a given device having a given version of the operating system other than the first version of the operating system. The method also includes at run-time, performing the function-call using corresponding pre-compiled code from the compatibility library.
    Type: Application
    Filed: November 14, 2013
    Publication date: May 14, 2015
    Applicant: Google Inc.
    Inventors: Timothy Murray, Stephen Roderick Hines, Rudy Jason Sams
  • Patent number: 9032052
    Abstract: The deployment of a driver or an application on a client device having a write-filter is described. A deployment configuration file is obtained, wherein the deployment configuration file includes a plurality of deployment entries each having information for deployment of one of a driver and an application. A first deployment entry is retrieved from the deployment configuration file, and the deployment configuration file is modified to remove the first deployment entry from the deployment configuration file. The modified deployment configuration file is stored in a location of a memory of the client device that is exempt from a write-filter restriction, wherein the write-filter restriction prohibits a file stored on the client device with the write-filter enabled from persisting across a reboot of the client device. The one of the driver and the application of the first deployment entry is then deployed on the client device while the write-filter is disabled.
    Type: Grant
    Filed: November 21, 2013
    Date of Patent: May 12, 2015
    Assignee: Wyse Technology L.L.C.
    Inventors: Muralidhara Mallur, Jyothi Bandakka, Sanmati Tukol
  • Publication number: 20150128115
    Abstract: Techniques are described for unifying static and dynamic compiler optimizations in source code bases. In an embodiment, a first compiler compiles source code of a target function to generate ahead-of-time (AOT) compiled machine code. A second compiler compiles the source code to generate an intermediate representation (IR) of the target function. In response to determining that the target function should be just-in-time (JIT) compiled, the AOT-compiled machine code for the target function is linked to the IR of the target function. During runtime, a physical processor executes AOT-compiled machine code of an executable program. When the target function is encountered for the first time, a JIT compiler is invoked. The JIT compiler generates JIT-compiled machine code for the target function. The physical processor executes the JIT-compiled machine code in place of the AOT-compiled machine code for the target function.
    Type: Application
    Filed: January 12, 2015
    Publication date: May 7, 2015
    Inventors: Hassan Chafi, Mason Chang, Eric Sedlar
  • Patent number: 9027004
    Abstract: Application computer instructions can be provided to a publishing server. The publishing service can parse the application computer instructions to identify one or more locations where supplemental computer instructions can be inserted. Metadata about purchasable items can be obtained and the supplemental computer instructions can be written based on the item metadata. The supplemental computer instructions can be inserted into the application computer instructions. A publishable application can be created by compiling the application computer instructions with the inserted supplemental computer instructions.
    Type: Grant
    Filed: March 12, 2013
    Date of Patent: May 5, 2015
    Assignee: Amazon Technologies, Inc.
    Inventors: Stephen C. Johnson, Michael R. Siwapinyoyos
  • Patent number: 9027005
    Abstract: Embodiments of the claimed subject matter are directed to methods and a system that allows an application comprising a single code set under the COBOL Programming Language to execute in multiple platforms on the same multi-platform system (such as a mainframe). In one embodiment, a single code set is pre-compiled to determine specific portions of the code set compatible with the host (or prospective) platform. Once the code set has been pre-compiled to determine compatible portions, those portions may be compiled and executed in the host platform. According to these embodiments, an application may be executed from a single code set that is compatible with multiple platforms, thereby potentially reducing the complexity of developing the application for multiple platforms.
    Type: Grant
    Filed: June 6, 2014
    Date of Patent: May 5, 2015
    Assignee: Accenture Global Services Limited
    Inventor: Mark Neft
  • Patent number: 9027007
    Abstract: In one example, a device includes one or more processors configured to determine an allocated time for execution of an optimization pass for optimizing code for a software program, execute at least some instructions of the optimization pass on the code, and, in response to determining that an actual time for execution of the optimization pass has exceeded the allocated time for execution, preventing execution of subsequent instructions of the optimization pass.
    Type: Grant
    Filed: March 6, 2013
    Date of Patent: May 5, 2015
    Assignee: QUALCOMM Incorporated
    Inventors: David Samuel Brackman, Chu-Cheow Lim
  • Patent number: 9015027
    Abstract: Two or more processes for executing a source application are emulated using: a virtual trampoline memory in which each emulated process has a respective private trampoline memory; and a shared code heap memory. Each emulated process only sees the shared code heap and its respective private trampoline memory. A respective equivalent target instruction fragment for writing to the code heap is generated for each of multiple source instruction fragments from the application, each target instruction fragment being indexed by its physical address in the code heap. Each of at least one jump instruction in the fragment is replaced with a jump to a corresponding slot in the virtual trampoline memory. A trap is written to each corresponding private trampoline slot, each trap adapted to be replaced by a jump to an address in the code heap corresponding to the jump destination.
    Type: Grant
    Filed: April 5, 2012
    Date of Patent: April 21, 2015
    Assignee: International Business Machines Corporation
    Inventor: Geraint North
  • Publication number: 20150106796
    Abstract: A class loading device for a Java runtime environment, wherein the class loading device is configured to load predetermined source code written in R programming language to parse the R source code and, based on the parsed R source code, generate corresponding bytecode at least of a first Java class and transfer same to the Java runtime environment.
    Type: Application
    Filed: October 14, 2014
    Publication date: April 16, 2015
    Inventor: Michael Schuler
  • Patent number: 9009688
    Abstract: Type checking between an object class and a target class may comprise getting an object header from an object, and checking from the object header a result of a first time type checking between a class of the object and a target class specified by a hotspot in the first time type checking.
    Type: Grant
    Filed: December 30, 2005
    Date of Patent: April 14, 2015
    Assignee: Intel Corporation
    Inventors: Peng Guo, Xiaohua Shi
  • Patent number: 9003382
    Abstract: Systems and methods for just-in-time (JIT) code compilation by a computer system. An example method may comprise identifying a defined pattern in a byte stream, evaluating a conditional expression associated with the pattern, and compiling the byte stream into a native code, while excluding, in view of the evaluating, a portion of byte stream associated with the pattern.
    Type: Grant
    Filed: February 18, 2013
    Date of Patent: April 7, 2015
    Assignee: Red Hat, Inc.
    Inventors: Filip Eliás, Filip Nguyen
  • Patent number: 9003381
    Abstract: A computing device comprising a JIT compiler, an application, and a JavaScript Engine. The computing device is adapted to receive at least one identified portion of a JavaScript source code, replace original context specific reference values in the JavaScript with one or more placeholders, and generate a first JIT copy of the code. The computing device is adapted to create a description of the original context specific reference values having one or more requirements, store the description, access runtime information related to the original context specific reference values, compare the runtime information to the stored description, obtain new context-specific reference values, replace/update the placeholders with the new context-specific reference values, generate a second JIT copy of the at least one identified portion of the JavaScript source code comprising the new context-specific reference values, and execute the second JIT copy in the new execution context.
    Type: Grant
    Filed: August 14, 2012
    Date of Patent: April 7, 2015
    Inventors: Derek J. Conrod, Subrato K. De, Dineel D. Sule
  • Patent number: 9003380
    Abstract: Methods and devices for executing scripts written in a dynamic scripting language include parsing scripts in two stages, a pre-parse using a simplified grammar to generate script metadata regarding the high level structure of the script, and a full parse using the grammar and syntax of the dynamic scripting language and generated script metadata. The generated metadata may describe the high level structure that is present in the language of the script such as functions, object methods, and a top level call graph. The script metadata may be used during the full parse to determine the parts of the code to be fully parsed. The aspects minimize processing time spent in the parsing at run-time, and may eliminate processing required to interpret or compile sections of code that will not be executed. Script metadata as well as results of full parsing may also be cached to provide further processing efficiencies.
    Type: Grant
    Filed: August 24, 2010
    Date of Patent: April 7, 2015
    Assignee: QUALCOMM Incorporated
    Inventors: Gheorghe Calin Cascaval, Mehrdad H. Reshadi
  • Patent number: 8997067
    Abstract: A computer-implemented method for generating one or more build system build files using a unified build system configuration file includes: receiving the unified build system configuration file in a computer system, the unified build system configuration file comprising at least one platform-independent build system configuration; generating, using the computer system, at least one platform-specific build system configuration from the at least one platform-independent build system configuration; selecting at least one template for the unified build system configuration file, the template selected from among templates corresponding to each of multiple platforms; generating the one or more build system build files for at least one of the multiple platforms using the platform-specific build system configuration and the selected template; and providing the generated one or more build system build files in response to the unified build system configuration file.
    Type: Grant
    Filed: January 31, 2012
    Date of Patent: March 31, 2015
    Assignee: SAP SE
    Inventor: Or Igelka
  • Publication number: 20150089484
    Abstract: The various aspects provide a dynamic compilation framework that includes a machine-independent optimization module operating on a computing device and methods for optimizing code with the machine-independent optimization module using a single, combined-forwards-backwards pass of the code. In the various aspects, the machine-independent optimization module may generate a graph of nodes from the IR, optimize nodes in the graph using forwards and backwards optimizations, and propagating the forwards and backwards optimizations to nodes in a bounded subgraph recognized or defined based on the position of the node currently being optimized. In the various aspects, the machine-independent optimization module may optimize the graph by performing forwards and/or backwards optimizations during a single pass through the graph, thereby achieving an effective degree of optimization and shorter overall compile times.
    Type: Application
    Filed: September 24, 2013
    Publication date: March 26, 2015
    Applicant: Qualcomm Incorporated
    Inventors: Ashok HALAMBI, Gregory M. Wright, Christopher A. Vick