Just-in-time Compiling Or Dynamic Compiling (e.g., Compiling Java Bytecode On A Virtual Machine) Patents (Class 717/148)
  • Patent number: 8020143
    Abstract: An aspect-oriented system includes a way to access both local and remote advice that is consistent with the modularity concerns of an aspect-oriented program. During compilation of the aspect-oriented program, a weaver determines whether advice referenced by an aspect is local or remote. If the advice is local, the weaver applies the local advice to the base program. If the advice is remote, the weaver generates remote invocation code that may include client stubs and server code to handle the marshalling and unmarshalling of parameters. Invocations to the client stub are then inserted into the join points of the base program. At run-time, the server name and number that has the remote aspect is determined. When the client stub is invoked, the remote advice on the specified server may be accessed. The result is an improved weaver that may generate code to access remote advice in a different JVM.
    Type: Grant
    Filed: January 10, 2007
    Date of Patent: September 13, 2011
    Assignee: International Business Machines Corporation
    Inventors: Cheng-chieh Cheng, Teresa Chung Kan, Jian Tang
  • Patent number: 8020156
    Abstract: A method and system for providing an efficient and convenient mechanism for class loading is presented. A present system and method virtual machine includes a bulk class loading component, normal class loader and execution engine. The bulk class loading component performs bulk loading of classes in a single pass of respective code sources. The normal class loader performs normal class loading activities, including normal class hierarchy tree searches and single class loading with multiple search traversals. In one embodiment, a bulk class identification component identifies classes for bulk loading. Classes can be identified for bulk class loading based upon designated characteristics or attributes. For example, a designated characteristic can include a class that is loaded between two points in time (e.g., from startup to a predetermined time after startup).
    Type: Grant
    Filed: September 12, 2005
    Date of Patent: September 13, 2011
    Assignee: Oracle International Corporation
    Inventors: Bryan Atsatt, David Leibs, Jasen Minton
  • Patent number: 8010954
    Abstract: A computing device-implemented method includes receiving a program created by a technical computing environment, analyzing the program, generating multiple program portions based on the analysis of the program, dynamically allocating the multiple program portions to multiple software units of execution for parallel programming, receiving multiple results associated with the multiple program portions from the multiple software units of execution, and providing the multiple results or a single result to the program.
    Type: Grant
    Filed: May 15, 2007
    Date of Patent: August 30, 2011
    Assignee: The MathWorks, Inc.
    Inventors: John N. Little, Joseph F. Hicklin, Jocelyn Luke Martin, Nausheen B. Moulana, Halldor N. Stefansson, Loren Dean, Roy E. Lurie, Stephen C. Johnson, Penelope L. Anderson, Michael E. Karr, Jason A. Kinchen
  • Publication number: 20110202907
    Abstract: In modern multi-threaded environments, threads often work cooperatively toward providing collective or aggregate throughput for an application as a whole. Optimizing in the small for “thread local” common path latency is often but not always the best approach for a concurrent system composed of multiple cooperating threads. Some embodiments provide a technique for augmenting traditional code emission with thread-aware policies and optimization strategies for a multi-threaded application. During operation, the system obtains information about resource contention between executing threads of the multi-threaded application. The system analyzes the resource contention information to identify regions of the code to be optimized. The system recompiles these identified regions to produce optimized code, which is then stored for subsequent execution.
    Type: Application
    Filed: February 18, 2010
    Publication date: August 18, 2011
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: David Dice, Virendra J. Marathe, Mark S. Moir
  • Publication number: 20110202908
    Abstract: A method and an apparatus for dynamically generating a machine code is provided, including: sequentially storing generated instructions in a first buffer; sequentially storing data in a second buffer, when the generated instructions reference data; and flushing the first buffer and the second buffer to executable code when a distance between an instruction referencing the data and the data has reached a limit of an offset range of the data-referencing instruction.
    Type: Application
    Filed: February 18, 2011
    Publication date: August 18, 2011
    Applicants: Samsung Electronics Co., Ltd., Seoul National University Industry Foundation
    Inventors: Gyu-young Kim, Je-hyung Lee, Jin-Seok Oh, Seong-won Lee, Won-ki Jung, Soo-mook Moon
  • Patent number: 7996826
    Abstract: A method is provided for receiving a digital broadcast, which contains a virtual machine application program that is to be executed. The method includes receiving a virtual machine application program signal, downloading a virtual machine application program, ahead-of-time (AOT) compiling virtual machine instruction code included in the downloaded virtual machine application program before executing the downloaded virtual machine application program, and executing the compiled virtual machine instruction code using a virtual machine.
    Type: Grant
    Filed: September 16, 2005
    Date of Patent: August 9, 2011
    Assignee: Samsung Electronics Co., Ltd.
    Inventors: Chong-mok Park, Seung-bum Chung, Duke-man Hur
  • Publication number: 20110191848
    Abstract: A method disclosed herein includes acts of receiving code at a Just-in-Time compiler executing in an application on a computing device and compiling the code to generate machine code and causing the machine code to be placed on at least one page that is accessible by at least one processor on the computing device, wherein the Just-in-Time compiler compiles the code utilizing at least one technique for preventing a Just-in-Time spraying attack.
    Type: Application
    Filed: February 3, 2010
    Publication date: August 4, 2011
    Applicant: Microsoft Corporation
    Inventors: Benjamin Goth Zorn, Benjamin Livshits, Reid Borsuk, John Joseph Lambert, Matthew Ryan Miller, Louis Lafreniere, Peter Stuart Beck, Joshua Theodore Goodman, Timothy William Burrell, Steven Edward Lucco
  • Patent number: 7992138
    Abstract: A method and apparatus for executing different Java methods are provided. The method of executing different Java methods, includes when a first method calls a second method, storing information for returning to the first method in a first stack frame, adding a second stack frame for the second method to a stack, and storing information for executing the second method in the second stack frame, wherein the first stack frame and the second stack frame are included in the same stack in a same format.
    Type: Grant
    Filed: September 23, 2005
    Date of Patent: August 2, 2011
    Assignee: Samsung Electronics Co., Ltd.
    Inventors: Alexei Romanovski, Chong-mok Park
  • Patent number: 7987473
    Abstract: Determining a class of an object is disclosed. A pointer of the object is obtained. One or more bits that are not implemented as address bits are extracted from the pointer. The one or more bits are interpreted as an identifier of the class of the object. The class of the object is determined to correspond to the identifier.
    Type: Grant
    Filed: September 14, 2005
    Date of Patent: July 26, 2011
    Assignee: Azul Systems, Inc.
    Inventors: Gil Tene, Murali Sundaresan, Michael A. Wolf
  • Publication number: 20110179402
    Abstract: A method for compiling source code, involving: obtaining a statement of the source code comprising a method call, where the source code is composed in a statically-typed programming language; determining whether the method call is a dynamic method call; upon determining that the method call is a dynamic method call, compiling a dynamic method invocation without performing type checking on the method call; upon determining that the method call is not a dynamic method call: performing type checking on the method call, selecting a target method to invoke, and compiling a static method invocation to invoke the target method.
    Type: Application
    Filed: January 15, 2010
    Publication date: July 21, 2011
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Alexander R. Buckley, John Rose, Joseph D. Darcy
  • Publication number: 20110173597
    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: Application
    Filed: August 24, 2010
    Publication date: July 14, 2011
    Inventors: Gheorghe Calin Cascaval, Mehrdad H. Reshadi
  • Patent number: 7966608
    Abstract: A method of providing a compiler interface, the method comprising receiving compiler requirement data; selecting a machine in accordance with the compiler requirement data; and sending source code to the selected machine for compilation.
    Type: Grant
    Filed: July 26, 2006
    Date of Patent: June 21, 2011
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Soumitra Chatterjee
  • Patent number: 7966607
    Abstract: One embodiment of the present invention provides a system that facilitates managing compiled program methods in a unified heap. The system partitions the unified heap into a first area and a second area. This allows the system to store objects other than compiled program methods and temporary compiler data structures in the first area, and to store compiled program methods and temporary compiler data structures in the second area.
    Type: Grant
    Filed: December 22, 2004
    Date of Patent: June 21, 2011
    Assignee: Oracle America, Inc.
    Inventors: Ioi K. Lam, Frank N. Yellin, Oleg A. Pliss
  • Publication number: 20110145502
    Abstract: A technique for prefetching data into a cache memory system includes prefetching data based on meta information indicative of data access patterns. A method includes tagging data of a program with meta information indicative of data access patterns. The method includes prefetching the data from main memory at least partially based on the meta information, by a processor executing the program. In at least one embodiment, the method includes generating an executable at least partially based on the meta information. The executable includes at least one instruction to prefetch the data. In at least one embodiment, the method includes inserting one or more instructions for prefetching the data into an intermediate form of program code while translating program source code into the intermediate form of program code.
    Type: Application
    Filed: December 14, 2009
    Publication date: June 16, 2011
    Inventors: Shrinivas B. Joshi, Thomas M. Deneau
  • Patent number: 7958493
    Abstract: Systems and methods of representing and extracting type information from typeless and dynamically-typed programming languages are provided. These systems and methods can be immune to source file edits and the order in which those edits are executed. Deriving type information from these languages allows tools to perform operations, for example, refactoring, intellisense, recognition of semantic errors, etc. These systems and methods can be implemented using processes that, implicitly or explicitly, gather type information for the program, and can also accept user input as well.
    Type: Grant
    Filed: January 19, 2007
    Date of Patent: June 7, 2011
    Inventors: Kevin Edward Lindsey, Paul Colton, Robin Sean Debreuil, Donald Arthur Washburn
  • Patent number: 7958499
    Abstract: When a home appliance equipped with a processor implementing a conventional JVM with a JIT compiler executes uncompiled methods, the execution speed is slower because the methods are compiled at runtime. To suppress the execution speed reduction, a program execution control device judges, on invocation of a method during program execution, whether a method invoked has previously been compiled. If the method is uncompiled, the device executes the method by interpreting associated bytecodes, and also issues a compilation request for the method. If the method is compiled, the device executes native code having been generated by compiling the method. Compilation of a method requested is executed as a separate task from tasks of instruction execution such as interpreter execution or native code execution.
    Type: Grant
    Filed: May 28, 2004
    Date of Patent: June 7, 2011
    Assignee: Panasonic Corporation
    Inventors: Shigenori Doi, Hiroshi Aoki, Yuko Imanishi
  • Patent number: 7954096
    Abstract: A virtual machine method and system that includes shared loader importation and selective searching. For example, shared loader is stored for importation into a loader tree by executing a shared loader process. In one exemplary implementation, a shared loader search includes determining if a class is in the cache. If not in the cache, a determination is made if the class is in the parent. If the class is not in the parent, previously imported shared loaders of the child are searched. Finally, if the class is not in the shared loaders a determination is made if the class is in a local code source. In one exemplary implementation, an annotated class not found exception is produced if the class is not in a local code source. Shared loaders are selectively imported.
    Type: Grant
    Filed: September 12, 2005
    Date of Patent: May 31, 2011
    Assignee: Oracle International Corporation
    Inventor: Bryan Atsatt
  • Publication number: 20110119659
    Abstract: A computer system includes a disk space comprising at least one type of memory and an operating system for controlling allocations and access to the disk space. A runtime machine runs applications through at least one of the operating system or directly on at least one processor of the computer system. In addition, the runtime machine manages a selected runtime disk space allocated to the runtime machine by the operating system and manages a separate method cache within the selected virtual disk space. The virtual machine controls caching within the method cache of a separate result of at least one method of the application marked as cache capable. For a next instance of the method detected by the runtime machine, the runtime machine accesses the cached separate result of the method in lieu of executing the method again.
    Type: Application
    Filed: January 24, 2011
    Publication date: May 19, 2011
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: ROBERT R. PETERSON
  • Patent number: 7941792
    Abstract: A system is disclosed for compiling program code. The system provides a compiler that includes a static verifier and a runtime verifier. The static verifier performs static checks on the program code and produces object code corresponding to the program code. The runtime verifier receives the object code and performs dynamic checks on the object code in a platform dependent environment. The resulting object code can subsequently be executed.
    Type: Grant
    Filed: July 22, 2005
    Date of Patent: May 10, 2011
    Assignee: Red Hat, Inc.
    Inventor: Thomas Joseph Tromey
  • Patent number: 7941793
    Abstract: A system and method for mitigating problems associated with automatic execution of initialization code is provided. The system includes an initialization method activator that can call a class initialization method at a pre-determined execution point. The system also includes a deadlock analyzer that can determine whether calling the initialization method will create a deadlock, and, if a deadlock is detected that can resolve such a deadlock. The system also includes a semantic analyzing component that can analyze a semantic type associated with the initialization method and a domain uniqueness analyzer that can analyze the uniqueness of the domain with which the class will interact, to facilitate determining where to place code that will check whether a class is initialized, and if the class is not initialized that will invoke the class initializing method.
    Type: Grant
    Filed: August 16, 2006
    Date of Patent: May 10, 2011
    Assignee: Microsoft Corporation
    Inventors: Gopala Krishna R. Kakivaya, Christopher W. Brumme, James S. Miller, Vance P. Morrison, David S. Mortenson, Sean E. Trowbridge
  • Patent number: 7937698
    Abstract: The illustrative embodiments provide a computer implemented method, apparatus, and computer usable program code for automatically migrating a resource adapter component. In one embodiment, information describing a development and runtime environment associated with a first version of a resource adapter is collected by a migration framework to form real environment information. A specification of requirements associated with a second version of the resource adapter is received from the second version of the resource adapter to form a required environment specification. The migration framework compares the real environment information with the required environment specification. In response to identifying incompatibilities between the real environment information and the required environment specification, the migration framework automatically executes a migration scenario to resolve the incompatibilities.
    Type: Grant
    Filed: August 2, 2007
    Date of Patent: May 3, 2011
    Assignee: International Business Machines Corporation
    Inventors: Ella Belisario, Jason Nathaniel Lacombe, Adriana M. Loghin, Pravesh Kirit Patel, Vadim S. Semenov, Suraksha Vidyarthi
  • Patent number: 7937565
    Abstract: The method and system for data speculation of multicore systems are disclosed. In one embodiment, a method includes dynamically determining whether a current speculative load instruction and an associated store instruction have same memory addresses in an application thread in compiled code running on a main core using a dynamic helper thread running on a idle core substantially before encountering the current speculative load instruction. The instruction sequence associated with the current speculative load instruction is then edited by the dynamic helper thread based on the outcome of the determination so that the current speculative load instruction becomes a non-speculative load instruction.
    Type: Grant
    Filed: February 21, 2008
    Date of Patent: May 3, 2011
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Sandya Srivilliputtur Mannarswamy, Hariharan Sandanagobalane
  • Patent number: 7930686
    Abstract: A handle for a trace is provided that is memory indifferent. The handle is created using contents of the trace rather than memory location of the trace. This enables the trace to be easily identified in subsequent runs of an application associated with the trace.
    Type: Grant
    Filed: June 19, 2009
    Date of Patent: April 19, 2011
    Assignee: International Business Machines Corporation
    Inventors: Marcel Mitran, Ali L. Sheikh
  • Patent number: 7926042
    Abstract: A system and method for dynamic instrumentation of an interpreted application. The method includes the operation of loading an interpreted code unit into a virtual machine. Testing instrumentation can then be inserted into the interpreted code unit using the virtual machine while the interpreted application continues executing. Another operation is executing the interpreted code unit with the testing instrumentation.
    Type: Grant
    Filed: October 31, 2005
    Date of Patent: April 12, 2011
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Virendra Kumar Mehta, Sandya S. Mannarswamy
  • Patent number: 7917898
    Abstract: Methods and apparatus to provide a modular native method invocation (NMI) system are described herein. In an example method, first NMI information associated with a first NMI call from a first virtual machine is received and second NMI information associated with a second NMI call from a second virtual machine different from the first virtual machine is received. The first NMI information and the second NMI information is translated via an NMI adapter. To generate a native stub, the translated NMI information is provided to a modular NMI component.
    Type: Grant
    Filed: February 2, 2004
    Date of Patent: March 29, 2011
    Assignee: Intel Corporation
    Inventors: Hai Zhao, Highland Mary Mountain, Kirk Dunsavage, Guangyu Zhu
  • Publication number: 20110071816
    Abstract: A selected group of Guest machine instructions in an emulation environment are translated to a semantic routine of Host machine instructions, wherein Guest cells corresponding to an opcode portion of a Guest instruction are mapped to corresponding Host cells, wherein the semantic routine of Host machine instructions are patched into a Host cell corresponding to the first Guest cell of the group of Guest machine instructions, wherein other Host cells of the corresponding Host cells are patched with semantic routines for emulating single instructions associated with the corresponding Guest cell.
    Type: Application
    Filed: September 18, 2009
    Publication date: March 24, 2011
    Applicant: International Business Machines Corporation
    Inventors: Theodore J. Bohizic, Reid T. Copeland, Marcel Mitran, Ali I. Sheikh
  • Patent number: 7913265
    Abstract: The invention relates to a method for loading a software having several modules loadable in the non-volatile memory of a portable digital device. The loading of at least one module includes testing the existence of a data structure associated with the module in the non-volatile memory and, when necessary, to create the data structure indicating it as empty. The method further includes resolving links for totality of internal elements and, afterwards, in marking the structure as loaded. The existence of an associated data structure is determined for each other module referenced in the loadable module and, when necessary, the structure is created and indicated as empty. The invention makes it possible to reduce the space occupied by the on-board software during loading of modules.
    Type: Grant
    Filed: June 7, 2005
    Date of Patent: March 22, 2011
    Assignee: Gemalto SA
    Inventors: Gilles Grimaud, Jean-Jacques Vandewalle
  • Patent number: 7913236
    Abstract: A method for managing a transaction includes determining that an optimistically immutable field in the transaction is written to. Invaliding a method in response to determining that the method in the transaction reads is the optimistically immutable field. Other embodiments are disclosed and claimed.
    Type: Grant
    Filed: September 29, 2006
    Date of Patent: March 22, 2011
    Assignee: Intel Corporation
    Inventors: Ali-Reza Adl-tabatabai, Vijay Menon, Richard L. Hudson, Bratin Saha, Tatiana Shpeisman
  • Patent number: 7913240
    Abstract: A method, apparatus, and computer instructions for transforming JAVA Native Interface function calls to constants, internal just-in-time (JIT) compiler operations or simpler intermediate representation. A compiler generates plurality of intermediate representations for a plurality of native interface function calls. During inlining of native code, matching is performed on each native function call (against this list) and a list of native interface function calls is generated. For each native interface function call, a (JIT) call transformer attempts to replace the native interface function call with a constant, internal JIT compiler operation or a simpler intermediate representation depending on the type of native interface function call.
    Type: Grant
    Filed: February 5, 2009
    Date of Patent: March 22, 2011
    Assignee: International Business Machines Corporation
    Inventors: Allan Henry Kielstra, Levon Sassoon Stepanian, Kevin Alexander Stoodley
  • Publication number: 20110067013
    Abstract: A software development method defers certain implementation details until load time. A programmer first annotates, in source code, a selected set of software components using metadata (such as Java-style annotations) that define one or more criteria—e.g., criteria relating to the state of the target hardware platform, the capabilities of the platform, or arbitrary user input. The annotated source code files are then compiled to create one or more intermediate code files (e.g., Java bytecode files). During load time of the resulting intermediate code files, one or more of the selected set of software components are loaded from the intermediate code files based on the criteria.
    Type: Application
    Filed: September 15, 2009
    Publication date: March 17, 2011
    Applicant: ADVANCED MICRO DEVICES, INC.
    Inventors: Gary FROST, Shrinivas JOSHI
  • Patent number: 7908596
    Abstract: Automatic inspection of compiled code. In response to revising a compiler, the functionality of that compiler is verified. Specific code is compiled using a first version of the compiler, as well as a second version of the compiler. Each compiled code is then applied to machine state to obtain multiple machine states. The machine states are then compared to determine if they are equal.
    Type: Grant
    Filed: January 5, 2007
    Date of Patent: March 15, 2011
    Assignee: International Business Machines Corporation
    Inventors: Marcel Mitran, Alexander Vasilevskiy
  • Patent number: 7904881
    Abstract: Embodiments of a system and method for facilitating the use of stack cutting to be used in programming languages in a safe fashion even when composed with constructs that require destructor operations are described. For stack-based operations that require resolution through destructor operations (such as transactions, synchronization operations, deallocations, unlock operations, and the like), the destructor objects are stored in a virtual stack that is associated with the system stack, for use when a stack cut operation is performed. A container data structure stores an instantiation of the execution state at the cut back point. A virtual stack head pointer stores the location of the last destructor in the virtual stack. During a stack cut operation, the virtual stack is first unwound to execute the destructor operations until the stack frame of the container is reached. Other embodiments are described and claimed.
    Type: Grant
    Filed: July 26, 2006
    Date of Patent: March 8, 2011
    Assignee: Intel Corporation
    Inventor: James M. Stichnoth
  • Patent number: 7904893
    Abstract: A compiler with power and/or energy optimization, a complementary runtime manager, and system having the compiler and/or the runtime manager are described herein.
    Type: Grant
    Filed: March 17, 2004
    Date of Patent: March 8, 2011
    Assignee: Marvell International Ltd.
    Inventors: Joel D. Munter, Murthi Nanja, Jin J. Xu, Zhiguo Gao
  • Patent number: 7895588
    Abstract: A method is described by defining one or more classes within a software application as being in scope, any class not defined as being in scope are defined as being out of scope, all classes comprise at least one method. The method further determines an amount of allocated memory for each of said in scope classes and said out of scope classes. Lastly, if one of said methods from one of said out of scope classes are called as a result of the calling of one of the in scope classes, adding said allocated memory from said out of scope class to said allocated memory of said in scope class.
    Type: Grant
    Filed: December 20, 2004
    Date of Patent: February 22, 2011
    Assignee: SAP AG
    Inventor: Albert P. Rossmann
  • Patent number: 7895582
    Abstract: Various technologies and techniques facilitate stack read and write operations in a software transactional memory system. If the compiler determines that an address for a variable in a code segment is a stack location, the stack location is live on entry, and the address of the variable has not been taken and passed to another thread, the code is changed to ensure failure atomicity. One example includes modifying the code so a shadow copy is saved for local variables that are live on entry. If the same prior criteria are true except the stack location is not live on entry, the code is optimized by ensuring code for logging and software transactional memory operations are not included. If the compiler does not know the address is the stack location or that the address is not passed to another thread, the code is changed to ensure failure and concurrency atomicity.
    Type: Grant
    Filed: August 4, 2006
    Date of Patent: February 22, 2011
    Assignee: Microsoft Corporation
    Inventors: John Joseph Duffy, Michael M. Magruder, Goetz Graefe, David Detlefs
  • Publication number: 20110035735
    Abstract: A bytecode construction, a method, and a system for optimizing just in time compilation. The bytecode includes several regions wherein a region is a logical sequence of one or more bytecode blocks and the bytecode is annotated with region hints embedded therein. The region hints have a bytecode structure and are designed for instructing a just-in-time, or JIT, runtime environment for JIT compilation of the regions by JIT compilers implemented at nodes of a network. A method and a system for implementing the bytecode construction are also presented.
    Type: Application
    Filed: August 3, 2010
    Publication date: February 10, 2011
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Thorsten Kramp, Tamas Visegrady
  • Patent number: 7885997
    Abstract: If a program is to be transmitted/received by message transmission/reception using SOAP, the program description part goes out of the framework of XML, and the message contents contain an uninterpretable part. A SOAP message (M1) includes a data part (D1), a virtual service part (R1) indicating specifications to process the data part (D1), and a program part (P1). A server (S1) processes the data part (D1) by the specifications indicated by the virtual service part (R1) if the virtual service part (R1) in the SOAP message (M1) indicates the specification of processing to be executed by the instruction executed when executing the instruction contained in the program part (P1) of the SOAP message (M1).
    Type: Grant
    Filed: September 8, 2006
    Date of Patent: February 8, 2011
    Assignee: Canon Kabushiki Kaisha
    Inventors: Kenichi Fujii, Masaki Shitano, Takashi Hirata
  • Patent number: 7877740
    Abstract: Embodiments of the invention relate to exceptions. In a Java embodiment, if the count of a program statement that causes the exception reaches a threshold, then the Java Virtual Machine (JVM) searches for the throw statement corresponding to that program statement. The JVM then identifies the catch clause corresponding to the throw statement, and depending on implementations, the JVM may replace the throw statement with the catch block or replace the throw statement with a jump to the catch block. As a result, in both situations, program execution, when being supposed to execute the throw statement, executes instructions of the catch block, and avoids execution of the throw statement that would invoke the exception handler, which improves system performance.
    Type: Grant
    Filed: June 13, 2005
    Date of Patent: January 25, 2011
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Virendra Kumar Mehta
  • Patent number: 7877741
    Abstract: A method and corresponding apparatus for compiling high-level languages into specific processor architectures are provided. In this embodiment, the specific processor is encapsulated in a virtual processor interface with simple instruction set architecture, and a compiler translates application programs into corresponding assembly codes. Further, the difficulty of the compiler design is reduced.
    Type: Grant
    Filed: October 11, 2005
    Date of Patent: January 25, 2011
    Assignee: Industrial Technology Research Institute
    Inventors: Tay-Jyi Lin, Chie-Min Chao, Chih-Wei Liu, Chein-Wei Jen, I-Tao Liao, Po-Han Huang
  • Patent number: 7865573
    Abstract: A method, system and devices for communicating between a network server and a computer having an Internet browser and a communicatively attached electronic device are described.
    Type: Grant
    Filed: May 29, 2008
    Date of Patent: January 4, 2011
    Assignee: Research In Motion Limited
    Inventors: Timothy Richard Tyhurst, Salim Hayder Omar
  • Publication number: 20100318978
    Abstract: A method is described that comprises receiving from a classfile registration information. The registration information comprises a class name and a different method name for each of the class's methods. Each of the methods are modified with at least one additional byte code instruction to cause, for its respective method, a plug-in module's handler method to provide output function treatment for the respective method. Also, a plug-in pattern is referred to in order to determine which of a plurality of plug-in modules are appropriate for each of the class's methods. The plug-in pattern lists for each of the plug-in modules those of the methods that are to be handled with its corresponding output function treatment.
    Type: Application
    Filed: June 18, 2010
    Publication date: December 16, 2010
    Inventors: Nikolai G. Nikolov, Mario Kabadiyski
  • Publication number: 20100318977
    Abstract: A multiprocessor computing system includes a direct memory access (DMA) engine, a main memory and a host processor including a just-in-time compiler (JIT) that converts bytecode into machine code in discrete executable superblocks (XSBs). The system also includes a system bus coupled to the host processor, the DMA engine and the main memory and allowing communication there between and an auxiliary processing unit (APU) coupled to the system bus and having a local memory, the APU receiving a first XSB from the JIT and storing it in the local memory and loading the one or more next XSBs for execution found in the header of the first XSB into the local memory via the DMA engine.
    Type: Application
    Filed: June 10, 2009
    Publication date: December 16, 2010
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Utz Bacher, Markus Deuling, Hartmut Penner
  • Patent number: 7853742
    Abstract: An embodiment of the present invention is a system and method relating to shrinking, or optimizing, executable images resulting is a savings of storage space. In at least one embodiment, the present invention removes unnecessary fields, or information, from an executable image header before storing the image on a flash for a target platform. The removal of information that is irrelevant to the target platform allows the executable to take up less space on the flash memory. When loaded, the image is interpreted based on the optimized header information. In an embodiment, the image may be further compressed by known methods, to save additional space. Other embodiments are described and claimed.
    Type: Grant
    Filed: April 26, 2004
    Date of Patent: December 14, 2010
    Assignee: Intel Corporation
    Inventors: Michael A. Rothman, Vincent J. Zimmer, Greg P. McGrath
  • Patent number: 7853934
    Abstract: Embodiments of the invention relate to hot-swapping a live dynamic code generator. In an embodiment, hot-swapping is done in the Java execution environment. The dynamic code generator to be hot-swapped is stored in a module of a shared library separated from other components of the Java environment such as the garbage collector, the class loader, the Java Native Interface, the threading and synchronization package, etc. A graphical user interface (GUI) is provided so that the user can interact with the execution environment to control and perform hot-swapping.
    Type: Grant
    Filed: June 23, 2005
    Date of Patent: December 14, 2010
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Noubar Partamian
  • Publication number: 20100313189
    Abstract: A method and an apparatus that provide secure executable codes generated during run time via a trusted compiler server are described. An application can send a service request to the compiler server to request executable codes. The compiler server can determine whether the service request is permitted to be served based on a security policy imposed and the security settings associated with the service request. Availability of certain compilers can be allowed if the application is authorized according to the service request.
    Type: Application
    Filed: June 3, 2009
    Publication date: December 9, 2010
    Inventors: Robert Beretta, Nicholas William Burns, Nathaniel Begeman, Phillip Kent Miller, Geoffrey Grant Stahl
  • Publication number: 20100313079
    Abstract: A method and an apparatus that instructs a compiler server to build or otherwise obtain a compiled code corresponding to a compilation request received from an application are described. The compiler server may be configured to compile source codes for a plurality of independent applications, each running in a separate process, using a plurality of independent compilers, each running in a separate compiler process. A search may be performed in a cache for a compiled code that satisfies a compilation request received from an application. A reply message including the compiled code can be provided for the application, wherein the compiled code is compiled in direct response to the request, or is obtained from the cache if the search identifies in the cache the compiled code that satisfies the compilation request.
    Type: Application
    Filed: June 3, 2009
    Publication date: December 9, 2010
    Inventors: Robert Beretta, Nicholas William Burns, Nathaniel Begeman, Phillip Kent Miller, Geoffrey Grant Stahl
  • Patent number: 7849451
    Abstract: A dynamic delegation chain of executor objects can, at runtime, adapt code units to be executed as isolated computations prior to their execution to comport with current state of an environment. A dynamic delegation chain performs the dynamic runtime adaptation of the code unit in accordance with isolated computations that host the executor objects of the delegation chain. Adapting a code unit prior to execution of the code unit allows adaptation of the code unit to a current state, as well as at least reducing concerns of program integrity.
    Type: Grant
    Filed: March 2, 2006
    Date of Patent: December 7, 2010
    Assignee: Oracle America Inc.
    Inventors: Krzysztof Palacz, Grzegorz J. Czajkowski, Laurent P. Daynès
  • Patent number: 7844960
    Abstract: A mechanism is provided for optimizing computer program execution during class loading phase. As a code method of the program is received for compiling prior to execution, a check is performed whether program execution is in class loading phase. Program execution is in class loading phase where the class loading rate exceeds a pre-determined level during a pre-determined interval. If the program is in class loading phase, then compiling is reduced by lowering frequency of just-in-time (JIT) compilation, lowering optimization level of just-in-time compilation, or a combination of the two. The code method may also be passed to an interpreter to be interpreted.
    Type: Grant
    Filed: September 14, 2005
    Date of Patent: November 30, 2010
    Assignee: International Business Machines Corporation
    Inventors: Derek Bruce Inglis, Marius Pirvu
  • Publication number: 20100299660
    Abstract: A static type, called “dynamic”, is introduced into a statically bound programming language. An expression or subexpression that is defined as a static type called “dynamic” in the source code of a program written in the statically bound programming language, is bound based on its runtime type instead of on its compile time type. Binding can be performed based on a mixture of compile time and runtime types that are based on the specification of types of expressions in source code. This type of binding is called hybrid binding. Operations are bound using the runtime type of constituent expressions (i.e., the runtime type of a receiver, an argument, or an operand) typed as dynamic and the compile time type of static constituents. If any constituent expression of an operation is dynamic, binding occurs at runtime instead of at compile time.
    Type: Application
    Filed: May 21, 2009
    Publication date: November 25, 2010
    Applicant: Microsoft Corporation
    Inventors: Mads Torgersen, Anders Hejlsberg, James J. Hugunin, Matthew J. Warren, Neal Gafter, Lucian Jules Wischik, Robert Eric Lippert, Samuel Y. Ng, Christopher Joseph Burrows, Alex C. Turner
  • Patent number: 7840951
    Abstract: One embodiment of the present invention provides a system that reduces the overhead involved in executing a native code method in an application running on a virtual machine. During operation, the system selects a call to a native code method to be optimized within the virtual machine, decompiles at least part of the native code method into an intermediate representation, and obtains an intermediate representation associated with the application. Next, the system combines the intermediate representation for the native code method with the intermediate representation associated with the application running on the virtual machine to form a combined intermediate representation, and generates native code from the combined intermediate representation, wherein the native code generation process optimizes interactions between the application running on the virtual machine and the native code method. A variation on this embodiment involves optimizing callbacks by the native code method into the virtual machine.
    Type: Grant
    Filed: August 22, 2003
    Date of Patent: November 23, 2010
    Assignee: Oracle America, Inc.
    Inventors: Gregory M. Wright, Mario I. Wolczko, Matthew L. Seidl