WO2001090885A3 - Method and apparatus for creating efficient native methods that extend a bytecode interpreter - Google Patents

Method and apparatus for creating efficient native methods that extend a bytecode interpreter Download PDF

Info

Publication number
WO2001090885A3
WO2001090885A3 PCT/US2001/017126 US0117126W WO0190885A3 WO 2001090885 A3 WO2001090885 A3 WO 2001090885A3 US 0117126 W US0117126 W US 0117126W WO 0190885 A3 WO0190885 A3 WO 0190885A3
Authority
WO
WIPO (PCT)
Prior art keywords
native
jvm
interface
special
interpreter loop
Prior art date
Application number
PCT/US2001/017126
Other languages
French (fr)
Other versions
WO2001090885A2 (en
Inventor
Dean R E Long
Christopher J Plummer
Nedim Fresko
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
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Priority to ES01939519T priority Critical patent/ES2376191T3/en
Priority to AU2001265028A priority patent/AU2001265028A1/en
Priority to AT01939519T priority patent/ATE534951T1/en
Priority to EP01939519A priority patent/EP1301854B1/en
Publication of WO2001090885A2 publication Critical patent/WO2001090885A2/en
Publication of WO2001090885A3 publication Critical patent/WO2001090885A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution
    • 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

Abstract

Methods, apparatus and computer program products are disclosed for a method of invoking a native in a Java virtual machine ('JVM'). A special-purpose fast interface, executing in conjunction with an interpreter loop, for native methods reduces C stack recursion in the JVM. The interface performs as an extension to the interpreter loop component in the JVM in that a native method, invoked via the special-purpose interface, is able to modify the interpreter loop state if necessary. This is done without adding new bytecode instructions. A method of executing a native method in a Java virtual machine is described. The JVM first determines whether a native method is to be handled by a special native interface or one of multiple other native interface. If it is determined that the method is to be handled by the special native interface, the method is invoked and passed arguments enabling it to access the state of the JVM. The method is then executed. The state of the JVM is adjusted based on the execution of the method such that transition between the interpreter loop and the native method via the special native interface is minimized.
PCT/US2001/017126 2000-05-25 2001-05-25 Method and apparatus for creating efficient native methods that extend a bytecode interpreter WO2001090885A2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
ES01939519T ES2376191T3 (en) 2000-05-25 2001-05-25 METHOD AND APPARATUS FOR CREATING EFFECTIVE NATIVE METHODS THAT EXTEND A BYTE CODE INTERPRETER.
AU2001265028A AU2001265028A1 (en) 2000-05-25 2001-05-25 Method and apparatus for creating efficient native methods that extend a bytecode interpreter
AT01939519T ATE534951T1 (en) 2000-05-25 2001-05-25 METHOD AND APPARATUS FOR GENERATING EFFICIENT NATIVE METHODS EXPANDING A BYTECODE INTERPRETER
EP01939519A EP1301854B1 (en) 2000-05-25 2001-05-25 Method and apparatus for creating efficient native methods that extend a bytecode interpreter

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US20748200P 2000-05-25 2000-05-25
US60/207,482 2000-05-25

Publications (2)

Publication Number Publication Date
WO2001090885A2 WO2001090885A2 (en) 2001-11-29
WO2001090885A3 true WO2001090885A3 (en) 2003-01-16

Family

ID=22770743

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/017126 WO2001090885A2 (en) 2000-05-25 2001-05-25 Method and apparatus for creating efficient native methods that extend a bytecode interpreter

Country Status (6)

Country Link
US (1) US6886157B2 (en)
EP (1) EP1301854B1 (en)
AT (1) ATE534951T1 (en)
AU (1) AU2001265028A1 (en)
ES (1) ES2376191T3 (en)
WO (1) WO2001090885A2 (en)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6915508B2 (en) * 2000-06-12 2005-07-05 Sun Microsystems, Inc. Method and apparatus for eliminating C recursion from a Java™ bytecode interpreter
US6604167B1 (en) * 2000-09-28 2003-08-05 International Business Machines Corporation Method and apparatus traversing stacks for just-in-time compilers for Java virtual machines
ATE516537T1 (en) * 2002-10-01 2011-07-15 Sap Ag TESTING SCRIPTING LANGUAGES WITH INTERFACES USING ANNOTATIONS IN XML
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
GB0416259D0 (en) * 2004-07-21 2004-08-25 Ibm A method and system for enabling a server application to be executed in the same virtual machine as a client application using direct object oriented
KR100597413B1 (en) * 2004-09-24 2006-07-05 삼성전자주식회사 Method for translating Java bytecode and Java interpreter using the same
GB0424756D0 (en) * 2004-11-10 2004-12-08 Ibm Executing a native software routine in a virtual machine
US8578339B2 (en) * 2007-09-26 2013-11-05 Symantec Corporation Automatically adding bytecode to a software application to determine database access information
US8887141B2 (en) * 2007-09-28 2014-11-11 Symantec Corporation Automatically modifying a native code module accessed from virtual machine bytecode to determine execution information
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
US20090254881A1 (en) * 2008-04-04 2009-10-08 Microsoft Corporation Code generation techniques for administrative tasks
US8661407B2 (en) * 2008-06-26 2014-02-25 Microsoft Corporation Framework for programming embedded system applications
US9910688B2 (en) * 2008-11-28 2018-03-06 Red Hat, Inc. Implementing aspects with callbacks in virtual machines
CN101782868A (en) * 2009-01-21 2010-07-21 国际商业机器公司 Method and device for performance testing for local method call
US8776033B2 (en) * 2010-12-23 2014-07-08 International Business Machines Corporation Batch dispatch of java native interface calls
WO2014164987A1 (en) * 2013-03-12 2014-10-09 Bluebox Security Inc. Methods for dynamic mobile application behavior modification subject to a behavior policy
EP3082034A1 (en) * 2015-04-17 2016-10-19 Gemalto Sa Method for modifying the execution of a platform-independent method of an integrated circuit card
US11061703B2 (en) 2019-01-10 2021-07-13 International Business Machines Corporation Managed runtime data marshaling for native code access using a thread local native buffer
CN110888674B (en) * 2019-11-28 2022-08-09 支付宝(杭州)信息技术有限公司 Method and device for executing security calculation in Python virtual machine
US11875168B2 (en) 2020-03-19 2024-01-16 Oracle International Corporation Optimizing execution of foreign method handles on a virtual machine
US11513779B2 (en) * 2020-03-19 2022-11-29 Oracle International Corporation Modeling foreign functions using executable references
US11809839B2 (en) 2022-01-18 2023-11-07 Robert Lyden Computer language and code for application development and electronic and optical communication

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6735761B1 (en) * 1998-05-15 2004-05-11 International Business Machines Corporation Compile method frame detection method and device code discarding method and computer
US6205578B1 (en) * 1998-08-14 2001-03-20 Ati International Srl Interpreter for stack-based languages
US6295643B1 (en) * 1998-12-10 2001-09-25 International Business Machines Corporation Method and apparatus for improving java virtual machine performance using persistent execution information
CA2322950A1 (en) * 1999-01-06 2000-07-13 Koninklijke Philips Electronics N.V. Arrangement for executing program code with reduced memory requirements
US6173442B1 (en) * 1999-02-05 2001-01-09 Sun Microsystems, Inc. Busy-wait-free synchronization
US6675371B1 (en) * 1999-04-30 2004-01-06 Hewlett-Packard Development Company, L.P. Java and native application window integration
US6507946B2 (en) * 1999-06-11 2003-01-14 International Business Machines Corporation Process and system for Java virtual method invocation
US6704926B1 (en) * 2000-09-28 2004-03-09 International Business Machines Corporation Bimodal Java just-in-time complier

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CHI-CHAO CHANG ET AL: "Interfacing Java to the virtual interface architecture", PROCEEDINGS OF THE ACM 1999 JAVA GRANDE CONFERENCE, PROCEEDINGS OF THE 1999 ASSOCIATION FOR COMPUTING MACHINERY CONFERENCE ON JAVA GRANDE, SAN FRANCISCO, CA, USA, 12-14 JUNE 1999, 1999, New York, NY, USA, ACM, USA, pages 51 - 57, XP002203958, ISBN: 1-58113-161-5 *

Also Published As

Publication number Publication date
ES2376191T3 (en) 2012-03-09
WO2001090885A2 (en) 2001-11-29
EP1301854B1 (en) 2011-11-23
AU2001265028A1 (en) 2001-12-03
US20020066087A1 (en) 2002-05-30
EP1301854A2 (en) 2003-04-16
US6886157B2 (en) 2005-04-26
ATE534951T1 (en) 2011-12-15

Similar Documents

Publication Publication Date Title
WO2001090885A3 (en) Method and apparatus for creating efficient native methods that extend a bytecode interpreter
JP3894698B2 (en) A hybrid just-in-time compiler that minimizes resource consumption
WO2001044971A3 (en) Method and apparatus to invoke computer commands from within a mark-up language document
MY131818A (en) Data processing using multiple instruction sets.
WO2002073401A3 (en) Method and device for creating and using pre-internalized program files
US20030105888A1 (en) Method and apparatus for expedited file downloads in an applet environment
CA2300240A1 (en) Transparent loading resources from read-only memory for an application program
WO2001097029A3 (en) Method and apparatus for implementing an extended virtual machine
WO2000022492A3 (en) System and method for automatically and selectively promoting object variables to method fields and variables in a digital computer system
EP0962860A3 (en) Apparatus and method for increasing the performance of JAVA programs running on a server
WO2003019368A3 (en) Frameworks for generation of java macro instructions for storing values into local variables
WO2000020963A3 (en) Method and system for associating parameters of containers and contained objects
WO1999049431A3 (en) Apparatus and method for providing transaction services
EP0943990A3 (en) Method and system of providing dynamic optimization information in a code interpretive runtime environment
WO2005043335A3 (en) System for invoking a privileged function in a device
WO2004086220A3 (en) Controlled execution of a program used for a virtual machine on a portable data carrier
EP1306753A3 (en) Exception handling in Java computing environments
WO2002097609A3 (en) Unhandled operation handling in multiple instruction set systems
WO2000077611A3 (en) Method and system of deploying an application between computers
CA2448962C (en) A mobile communications device application processing system
WO2002037272A3 (en) Improved frameworks for invoking methods in virtual machines
US7500247B2 (en) Stack marshaler
WO1999044138A3 (en) Stack-based security requirements
WO2001097028A3 (en) Method and apparatus for rewriting bytecodes to minimize runtime checks
WO2002093366A2 (en) Lightweight native method invocation interface for java computing environments

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ 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 MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ 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 MZ SD SL SZ TZ 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 TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2001939519

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2001939519

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: JP