WO2000010081A3 - Method and apparatus of translating and executing native code in a virtual machine environment - Google Patents

Method and apparatus of translating and executing native code in a virtual machine environment Download PDF

Info

Publication number
WO2000010081A3
WO2000010081A3 PCT/US1999/018158 US9918158W WO0010081A3 WO 2000010081 A3 WO2000010081 A3 WO 2000010081A3 US 9918158 W US9918158 W US 9918158W WO 0010081 A3 WO0010081 A3 WO 0010081A3
Authority
WO
WIPO (PCT)
Prior art keywords
native code
virtual machine
memory access
system calls
scheduling
Prior art date
Application number
PCT/US1999/018158
Other languages
French (fr)
Other versions
WO2000010081A2 (en
Inventor
David Ungar
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to KR1020017001898A priority Critical patent/KR20010072477A/en
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Priority to AU53474/99A priority patent/AU5347499A/en
Priority to JP2000565460A priority patent/JP4880121B2/en
Priority to AT99939131T priority patent/ATE282854T1/en
Priority to DE69922015T priority patent/DE69922015T2/en
Priority to EP99939131A priority patent/EP1104564B1/en
Publication of WO2000010081A2 publication Critical patent/WO2000010081A2/en
Publication of WO2000010081A3 publication Critical patent/WO2000010081A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)
  • Machine Translation (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Computer And Data Communications (AREA)

Abstract

A method and apparatus of translating and executing native code in a virtual machine environment. Debugging of a virtual machine implementation is made easier through binary translation of native code, which permits greater platform independence and greater control over thread management and scheduling, and provides for identification of memory access errors in the native code. When native code is to be executed within a virtual machine environment, the native code is translated into an intermediate from. This intermediate form is processed to determine where memory access and blocking system calls occur. Validity checks are inserted into memory accessed calls to determine whether the portion of memory to be accessed by each call is within a permitted range. Wild pointers and other sources of memory access errors associated with the native code may thus be identified. Blocking system calls are replaced with non-blocking variants, and 'yield' operations may be inserted into system calls and loops. The revised native code incorporating memory access validity checks and non-blocking system calls is compiled or interpreted by the virtual machine to execute the routines defined by the native code. Because the revised native code does not block other threads, threads scheduling may be managed by the virtual machine rather than the underlying operating system, and cooperative scheduling may be performed.
PCT/US1999/018158 1998-08-13 1999-08-10 Method and apparatus of translating and executing native code in a virtual machine environment WO2000010081A2 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020017001898A KR20010072477A (en) 1998-08-13 1998-08-10 Method and apparatus of translating and executing native code in a virtual machine environment
AU53474/99A AU5347499A (en) 1998-08-13 1999-08-10 Method and apparatus of translating and executing native code in a virtual machine environment
JP2000565460A JP4880121B2 (en) 1998-08-13 1999-08-10 Method and apparatus for translating and executing native code in a virtual machine environment
AT99939131T ATE282854T1 (en) 1998-08-13 1999-08-10 METHOD AND APPARATUS FOR TRANSLATING AND EXECUTING PROPRIETARY CODE IN A VIRTUAL MACHINES ENVIRONMENT
DE69922015T DE69922015T2 (en) 1998-08-13 1999-08-10 METHOD AND DEVICE FOR TRANSLATING AND EXECUTING AN ARTEY CODE IN AN ENVIRONMENT WITH VIRTUAL MACHINES
EP99939131A EP1104564B1 (en) 1998-08-13 1999-08-10 Method and apparatus of translating and executing native code in a virtual machine environment

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/134,073 1998-08-13
US09/134,073 US6282702B1 (en) 1998-08-13 1998-08-13 Method and apparatus of translating and executing native code in a virtual machine environment

Publications (2)

Publication Number Publication Date
WO2000010081A2 WO2000010081A2 (en) 2000-02-24
WO2000010081A3 true WO2000010081A3 (en) 2000-06-15

Family

ID=22461658

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1999/018158 WO2000010081A2 (en) 1998-08-13 1999-08-10 Method and apparatus of translating and executing native code in a virtual machine environment

Country Status (8)

Country Link
US (1) US6282702B1 (en)
EP (1) EP1104564B1 (en)
JP (1) JP4880121B2 (en)
KR (1) KR20010072477A (en)
AT (1) ATE282854T1 (en)
AU (1) AU5347499A (en)
DE (1) DE69922015T2 (en)
WO (1) WO2000010081A2 (en)

Families Citing this family (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324685B1 (en) 1998-03-18 2001-11-27 Becomm Corporation Applet server that provides applets in various forms
DE69924857T2 (en) * 1998-10-10 2006-03-02 Transitive Ltd., Hanging Ditch PROGRAM CODE CONVERSION
JP3470948B2 (en) * 1999-01-28 2003-11-25 インターナショナル・ビジネス・マシーンズ・コーポレーション Dynamic compilation timing determination method, bytecode execution mode selection method, and computer
US6341338B1 (en) * 1999-02-04 2002-01-22 Sun Microsystems, Inc. Protocol for coordinating the distribution of shared memory
US6543011B1 (en) * 1999-07-15 2003-04-01 International Business Machines Corporation Method for event recording in java
US6854114B1 (en) * 1999-10-21 2005-02-08 Oracle International Corp. Using a virtual machine instance as the basic unit of user execution in a server environment
EP1109374A3 (en) * 1999-12-13 2001-06-27 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Method and apparatus for performing network operations
US6738976B1 (en) * 1999-12-17 2004-05-18 Hewlett-Packard Development Company, L.P. Method, system, and apparatus to minimize exception handling overhead from invoked functions
US6484188B1 (en) * 1999-12-30 2002-11-19 Intel Corporation Optimization of garbage collection code in the context of raw native interface function calls in the java programming language
WO2001057654A2 (en) * 2000-02-07 2001-08-09 Insignia Solutions Plc Preprocessing of interfaces to allow fast call of native elements
US6813762B1 (en) * 2000-02-22 2004-11-02 Freescale Semiconductor, Inc. Method for processing program files in a programming language capable of dynamic loading
US6996829B2 (en) * 2000-02-25 2006-02-07 Oracle International Corporation Handling callouts made by a multi-threaded virtual machine to a single threaded environment
US7073033B2 (en) * 2000-02-25 2006-07-04 Oracle International Corporation Memory model for a run-time environment
AU2001255808A1 (en) * 2000-03-15 2001-09-24 Arc Cores, Inc. Method and apparatus for debugging programs in a distributed environment
US6802057B1 (en) 2000-05-03 2004-10-05 Sun Microsystems, Inc. Automatic generation of fortran 90 interfaces to fortran 77 code
US6986130B1 (en) 2000-07-28 2006-01-10 Sun Microsystems, Inc. Methods and apparatus for compiling computer programs using partial function inlining
US6910107B1 (en) 2000-08-23 2005-06-21 Sun Microsystems, Inc. Method and apparatus for invalidation of data in computer systems
US6754889B1 (en) * 2000-10-04 2004-06-22 Compuware Corporation Java automation, testing, and analysis
US7406681B1 (en) 2000-10-12 2008-07-29 Sun Microsystems, Inc. Automatic conversion of source code from 32-bit to 64-bit
US7103877B1 (en) * 2000-11-01 2006-09-05 International Business Machines Corporation System and method for characterizing program behavior by sampling at selected program points
US6775820B2 (en) * 2000-11-29 2004-08-10 International Business Machines Corporation Web based application re-coded for OS/2 compatibility
US20040205705A1 (en) * 2000-12-14 2004-10-14 International Business Machines Corporation System support code
US7080373B2 (en) * 2001-03-07 2006-07-18 Freescale Semiconductor, Inc. Method and device for creating and using pre-internalized program files
US7543288B2 (en) 2001-03-27 2009-06-02 Sun Microsystems, Inc. Reduced instruction set for Java virtual machines
US6993751B2 (en) * 2001-05-14 2006-01-31 Microsoft Corporation Placing exception throwing instructions in compiled code
US6934946B2 (en) * 2001-05-15 2005-08-23 Sun Microsystems, Inc. Lightweight native method invocation interface for java computing environments
US7082597B2 (en) * 2001-06-20 2006-07-25 Sun Microsystems, Inc. Representation of objects in a Java programming environment
US7036120B2 (en) * 2001-07-31 2006-04-25 Sun Microsystems, Inc. Two tier clusters for representation of objects in Java programming environments
US7228533B2 (en) * 2001-08-24 2007-06-05 Sun Microsystems, Inc. Frameworks for generation of Java macro instructions for performing programming loops
US7058934B2 (en) * 2001-08-24 2006-06-06 Sun Microsystems, Inc. Frameworks for generation of Java macro instructions for instantiating Java objects
US6778194B2 (en) * 2001-10-09 2004-08-17 International Business Machines Corporation Method, apparatus and computer program product for eliminating unnecessary dialog box pop-ups
US20030093508A1 (en) * 2001-10-18 2003-05-15 Seiko Epson Corporation System for installing and launching network applications
GB0125176D0 (en) * 2001-10-19 2001-12-12 Koninkl Philips Electronics Nv A method of compiling bytecode to native code
CN1575451A (en) * 2001-10-25 2005-02-02 皇家飞利浦电子股份有限公司 Low overhead exception checking
US20030088860A1 (en) * 2001-11-02 2003-05-08 Fu-Hwa Wang Compiler annotation for binary translation tools
CA2376327C (en) * 2002-03-12 2009-04-28 Ibm Canada Limited-Ibm Canada Limitee Executing native code in place of non-native code
US7039911B2 (en) * 2002-05-17 2006-05-02 Naturalbridge, Inc. Hybrid threads for multiplexing virtual machine
US6912617B2 (en) * 2002-07-17 2005-06-28 Sun Microsystems, Inc. Altering virtual machine execution parameters at runtime
US7234080B2 (en) * 2002-10-18 2007-06-19 Computer Associates Think, Inc. Locating potential sources of memory leaks
US7086048B1 (en) 2002-11-04 2006-08-01 Savaje Technologies, Inc. Method and apparatus for combining operating system resource data and application program resource data in a shared object
US7082600B1 (en) * 2002-11-04 2006-07-25 Savaje Technologies, Inc. Method and apparatus for integrating a computer application programming language runtime environment with an operating system kernel
US7051324B2 (en) * 2003-01-16 2006-05-23 International Business Machines Corporation Externalized classloader information for application servers
US7360206B1 (en) * 2003-03-13 2008-04-15 Network Appliance, Inc. Method for an interpreter to control a native function call based on a signature of the native function
US20040221272A1 (en) * 2003-04-30 2004-11-04 Gansha Wu Apparatus and methods for desynchronizing object-oriented software applications in managed runtime environments
US7818729B1 (en) * 2003-09-15 2010-10-19 Thomas Plum Automated safe secure techniques for eliminating undefined behavior in computer software
CA2442800A1 (en) * 2003-09-26 2005-03-26 Ibm Canada Limited - Ibm Canada Limitee Transforming locks in software loops
US7313820B2 (en) * 2003-12-29 2007-12-25 International Business Machines Corporation Method and system for providing an authorization framework for applications
US7917898B2 (en) * 2004-02-02 2011-03-29 Intel Corporation Methods and apparatus to provide a modular native method invocation system
US7788653B2 (en) * 2004-03-02 2010-08-31 Intel Corporation Apparatus and methods for performing generational escape analysis in managed runtime environments
US20070266370A1 (en) * 2004-09-16 2007-11-15 Myers Glenford J Data Plane Technology Including Packet Processing for Network Processors
US7685574B2 (en) * 2004-09-29 2010-03-23 Microsoft Corporation Constrained execution regions
KR100580071B1 (en) 2004-10-05 2006-05-16 주식회사 팬택앤큐리텔 Detcting method for memory error
MY135555A (en) * 2004-12-14 2008-05-30 Axiomatic Solutions Sdn Bhd Compile time linking via hashing technique
US7581216B2 (en) * 2005-01-21 2009-08-25 International Business Machines Corporation Preserving platform independence with native accelerators for performance critical program objects
US7634768B2 (en) * 2005-02-17 2009-12-15 Intel Corporation Methods and apparatus to support mixed-mode execution within a single instruction set architecture process of a virtual machine
US7415701B2 (en) * 2005-02-17 2008-08-19 Intel Corporation Methods and apparatus to support mixed-mode execution within a single instruction set architecture process of a virtual machine
US7530059B2 (en) * 2005-02-18 2009-05-05 International Business Machines Corporation Method for inlining native functions into compiled java code
KR100703743B1 (en) * 2005-02-18 2007-04-05 삼성전자주식회사 Apparatus and method for converting character code
US7490320B2 (en) * 2005-02-18 2009-02-10 International Business Machines Corporation Method and apparatus for transforming Java Native Interface function calls into simpler operations during just-in-time compilation
US7562349B2 (en) * 2005-04-25 2009-07-14 Sap Ag Version adaptation interface for integration of different virtual machines
US20060253271A1 (en) * 2005-04-26 2006-11-09 Newisys, Inc. Method for facilitating transformation of multi-threaded process-oriented object code to event-based object code
DE102005026384A1 (en) * 2005-06-08 2006-12-14 Giesecke & Devrient Gmbh Validation of a program intended for native execution by a processor of a data carrier
US20070016893A1 (en) * 2005-07-14 2007-01-18 International Business Machines Corporation Tracking resource usage by applications
AU2006292506B2 (en) * 2005-09-15 2010-04-22 Fourthwall Media, Inc Self-contained mini-applications system and method for digital television
US7769964B2 (en) * 2006-08-21 2010-08-03 Intel Corporation Technique to perform memory reference filtering
KR100790304B1 (en) * 2006-11-10 2008-01-02 주식회사 대우일렉트로닉스 Method for executing of java virtual machine scheduling and operating system scheduling
US8321849B2 (en) 2007-01-26 2012-11-27 Nvidia Corporation Virtual architecture and instruction set for parallel thread computing
US8918772B1 (en) * 2007-07-25 2014-12-23 Google Inc. Statically analyzing program correctness for a dynamic programming language
US20090070752A1 (en) * 2007-09-06 2009-03-12 International Business Machines Corporation Method and system for optimization of an application
US8185876B2 (en) * 2008-02-26 2012-05-22 International Business Machines Corporation Method and implementation for constructing of corrected java native code
US8266582B2 (en) * 2008-03-31 2012-09-11 Oracle America, Inc. Method for creating unified binary files
US20090249311A1 (en) * 2008-03-31 2009-10-01 International Business Machines Corporation Sharing a native module of compiled code using an abstraction module of interpreted code in a virtual machine environment
US9063765B2 (en) * 2008-04-28 2015-06-23 Kaazing Corporation System and methods for distributed execution of computer executable programs utilizing asymmetric translation
US8424082B2 (en) 2008-05-08 2013-04-16 Google Inc. Safely executing an untrusted native code module on a computing device
US9058483B2 (en) * 2008-05-08 2015-06-16 Google Inc. Method for validating an untrusted native code module
US9594670B2 (en) * 2008-07-03 2017-03-14 International Business Machines Corporation Managing software dependencies during software testing and debugging
US9176754B2 (en) 2008-07-16 2015-11-03 Google Inc. Method and system for executing applications using native code modules
US20100088686A1 (en) * 2008-10-06 2010-04-08 Microsoft Corporation Programming language with extensible syntax
US8302076B2 (en) 2008-11-12 2012-10-30 Landmark Graphics Corporation Systems and methods for improved parallel ILU factorization in distributed sparse linear systems
DE102009006882A1 (en) * 2009-01-30 2010-08-05 Advanced Micro Devices, Inc., Sunnyvale Application of platform-dependent routines in virtual machines by embedding a native encoding in class files
CN101539868B (en) * 2009-04-10 2010-12-08 北京大学 Client operating system nucleus code dynamic replacement method of virtual machine manager
FR2953612A1 (en) * 2009-12-03 2011-06-10 Flexycore METHOD FOR DEVELOPING SOFTWARE APPLICATION, SYSTEM AND CORRESPONDING COMPUTER PROGRAM PRODUCT.
US8959496B2 (en) * 2010-04-21 2015-02-17 Microsoft Corporation Automatic parallelization in a tracing just-in-time compiler system
US8813051B2 (en) * 2011-04-14 2014-08-19 International Business Machines Corporation Running multiple copies of native code in a Java Virtual Machine
US9183113B2 (en) 2011-09-29 2015-11-10 Oracle International Corporation Debugging analysis in running multi-user systems
US9027075B2 (en) * 2011-09-29 2015-05-05 Oracle International Corporation Enforcing security rules at runtime
CN102455938B (en) * 2011-11-16 2013-04-24 中标软件有限公司 Method for operating Windows application software on Linux operating system of million instructions per second (MIPS) version
US9043586B2 (en) 2011-12-20 2015-05-26 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Memory training results corresponding to a plurality of memory modules
US8782620B2 (en) * 2012-06-12 2014-07-15 International Business Machines Corporation Processing reified generics in object-based programming environments
US9122794B2 (en) 2012-10-30 2015-09-01 Oracle International Corporation System and method for debugging domain specific languages
US9274819B2 (en) * 2013-03-19 2016-03-01 Hewlett Packard Enterprise Development Lp Performing garbage collection using a virtual thread in operating system without kernel thread support
US9213530B2 (en) * 2013-08-15 2015-12-15 Oracle International Corporation Runtime memory throttling
US9146834B2 (en) 2013-08-22 2015-09-29 Oracle International Corporation Targeted cloud-based debugging
US9223550B1 (en) 2013-10-17 2015-12-29 Google Inc. Portable handling of primitives for concurrent execution
US9934128B2 (en) * 2013-11-14 2018-04-03 Red Hat, Inc. Dynamic per-method probing during runtime
US9542211B2 (en) * 2014-03-26 2017-01-10 Intel Corporation Co-designed dynamic language accelerator for a processor
US9348625B2 (en) * 2014-05-23 2016-05-24 Google Inc. Application access to native and bundled libraries
EP4002097B1 (en) 2016-03-11 2024-05-01 LZLabs GmbH Load module compiler
US11200048B2 (en) * 2020-05-14 2021-12-14 International Business Machines Corporation Modification of codified infrastructure for orchestration in a multi-cloud environment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0372835A2 (en) * 1988-12-06 1990-06-13 AT&T Corp. Translation technique
EP0644484A2 (en) * 1993-09-21 1995-03-22 Microsoft Corporation Pre-emptive multi-tasking with co-operative groups of tasks
WO1997012508A2 (en) * 1995-10-04 1997-04-10 Platinum Technology, Inc. Transforming and manipulating program object code
WO1997031309A1 (en) * 1996-02-23 1997-08-28 Advanced Micro Devices, Inc. A computer system configured to translate a computer program into a second computer program prior to executing the computer program

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5339422A (en) * 1991-03-07 1994-08-16 Digital Equipment Corporation System and method for jacketing cross-domain calls in a multi-code execution and debugging system within a multi-architecture environment
TW313282U (en) * 1991-03-07 1997-08-11 Digital Equipment Corp Apparatus for automatically interfacing call conventions between two dissimilar program units
US5428786A (en) * 1991-03-07 1995-06-27 Digital Equipment Corporation Branch resolution via backward symbolic execution
US5561785A (en) * 1992-10-29 1996-10-01 International Business Machines Corporation System for allocating and returning storage and collecting garbage using subpool of available blocks
JPH06231003A (en) * 1993-02-05 1994-08-19 Sharp Corp Debugger for feasible file
JPH06242942A (en) * 1993-02-15 1994-09-02 Nec Corp Source code level debugging device
JPH08161179A (en) * 1994-12-09 1996-06-21 Hitachi Software Eng Co Ltd Method for executing one sentence
US5761477A (en) * 1995-12-04 1998-06-02 Microsoft Corporation Methods for safe and efficient implementations of virtual machines
JPH09171467A (en) * 1995-12-21 1997-06-30 Nec Corp Emulation device and method therefor
US5805895A (en) * 1996-06-09 1998-09-08 Motorola, Inc. Method and apparatus for code translation optimization
US5946487A (en) * 1996-06-10 1999-08-31 Lsi Logic Corporation Object-oriented multi-media architecture
US5937187A (en) * 1996-07-01 1999-08-10 Sun Microsystems, Inc. Method and apparatus for execution and preemption control of computer process entities
US5923878A (en) * 1996-11-13 1999-07-13 Sun Microsystems, Inc. System, method and apparatus of directly executing an architecture-independent binary program
US5875336A (en) * 1997-03-31 1999-02-23 International Business Machines Corporation Method and system for translating a non-native bytecode to a set of codes native to a processor within a computer system
US5974256A (en) * 1997-09-29 1999-10-26 International Business Machines Corporation Method for translating graphical user interface (GUI) resource data into native java code

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0372835A2 (en) * 1988-12-06 1990-06-13 AT&T Corp. Translation technique
EP0644484A2 (en) * 1993-09-21 1995-03-22 Microsoft Corporation Pre-emptive multi-tasking with co-operative groups of tasks
WO1997012508A2 (en) * 1995-10-04 1997-04-10 Platinum Technology, Inc. Transforming and manipulating program object code
WO1997031309A1 (en) * 1996-02-23 1997-08-28 Advanced Micro Devices, Inc. A computer system configured to translate a computer program into a second computer program prior to executing the computer program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Java Native Interface Specification 1.1", 16 May 1997, SUN MICROSYSTEMS, INC., MOUNTAIN VIEW, CA, XP002129468 *

Also Published As

Publication number Publication date
DE69922015T2 (en) 2005-12-01
ATE282854T1 (en) 2004-12-15
EP1104564B1 (en) 2004-11-17
US6282702B1 (en) 2001-08-28
JP4880121B2 (en) 2012-02-22
KR20010072477A (en) 2001-07-31
JP2002522844A (en) 2002-07-23
AU5347499A (en) 2000-03-06
DE69922015D1 (en) 2004-12-23
WO2000010081A2 (en) 2000-02-24
EP1104564A2 (en) 2001-06-06

Similar Documents

Publication Publication Date Title
WO2000010081A3 (en) Method and apparatus of translating and executing native code in a virtual machine environment
CA1273126A (en) Instruction for implementing a secure computer system
EP0648352B1 (en) System and method for dynamic run-time binding of software modules in a computer system
US6332216B1 (en) Hybrid just-in-time compiler that consumes minimal resource
EP0509623A2 (en) Program processing system and method
WO2000022505A3 (en) Extending program languages with source-program attributes
US6658657B1 (en) Method and apparatus for reducing the overhead of virtual method invocations
TW341687B (en) System and method for runtime optimization of private variable function calls in a secure interpreter
EP1618474B1 (en) Apparatus and methods for desynchronizing object-oriented software applications in managed runtime environments
WO2002041143A2 (en) Method of byte code quickening
WO2001022213A3 (en) Optimized bytecode interpreter of virtual machine instructions
CN106557350B (en) JAVA byte code conversion method, device and equipment in application program installation package
JPS6488661A (en) Virtual memory control and management system
US5241634A (en) Method of handling system calls to an operating system of a computer by system service routines stored as firmware
CN110990018B (en) Compiling method and compiling system of embedded system
CN112199217B (en) Software and hardware cooperative thread private data access optimization method
US5640514A (en) Synchronization method for automation systems
CN112783573A (en) SELinux strategy configuration system and method for multiple user-defined services
ES2181476T3 (en) APPLICATION MANAGER WITH VARIABLE MANAGEMENT INSTRUCTION SET.
US20040243792A1 (en) Efficiently releasing locks when an exception occurs
CA2365687A1 (en) Mechanism for invocation of user-defined routines in a multi-threaded database environment
Hoppe Another approach to the implementation of synchronization primitives
US4455603A (en) System for resolving pointers in a digital data processing system
CA2294469A1 (en) Chip card for executing non-modifiable system program routines and their associated replacement program routines, and a method for operating the chip card
Griswold Pattern Matching in Icon

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW SD SL SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: A3

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW SD SL SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

WWE Wipo information: entry into national phase

Ref document number: 1020017001898

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 1999939131

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1999939131

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWP Wipo information: published in national office

Ref document number: 1020017001898

Country of ref document: KR

WWW Wipo information: withdrawn in national office

Ref document number: 1020017001898

Country of ref document: KR

WWG Wipo information: grant in national office

Ref document number: 1999939131

Country of ref document: EP