AU2001265028A1 - 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 interpreterInfo
- Publication number
- AU2001265028A1 AU2001265028A1 AU2001265028A AU6502801A AU2001265028A1 AU 2001265028 A1 AU2001265028 A1 AU 2001265028A1 AU 2001265028 A AU2001265028 A AU 2001265028A AU 6502801 A AU6502801 A AU 6502801A AU 2001265028 A1 AU2001265028 A1 AU 2001265028A1
- Authority
- AU
- Australia
- Prior art keywords
- native
- jvm
- interface
- special
- interpreter loop
- Prior art date
- Legal status (The legal status 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 status listed.)
- Abandoned
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
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)
Abstract
Methods, apparatus and computer program products are disclosed for a method of invoking a native method 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 interfaces. 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.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US20748200P | 2000-05-25 | 2000-05-25 | |
US60/207,482 | 2000-05-25 | ||
PCT/US2001/017126 WO2001090885A2 (en) | 2000-05-25 | 2001-05-25 | Method and apparatus for creating efficient native methods that extend a bytecode interpreter |
Publications (1)
Publication Number | Publication Date |
---|---|
AU2001265028A1 true AU2001265028A1 (en) | 2001-12-03 |
Family
ID=22770743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
AU2001265028A Abandoned AU2001265028A1 (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)
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)
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 |
KR20010083781A (en) * | 1999-01-06 | 2001-09-01 | 요트.게.아. 롤페즈 | 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 |
-
2001
- 2001-05-25 WO PCT/US2001/017126 patent/WO2001090885A2/en active Application Filing
- 2001-05-25 EP EP01939519A patent/EP1301854B1/en not_active Expired - Lifetime
- 2001-05-25 ES ES01939519T patent/ES2376191T3/en not_active Expired - Lifetime
- 2001-05-25 AT AT01939519T patent/ATE534951T1/en active
- 2001-05-25 AU AU2001265028A patent/AU2001265028A1/en not_active Abandoned
- 2001-05-25 US US09/865,963 patent/US6886157B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
ATE534951T1 (en) | 2011-12-15 |
US6886157B2 (en) | 2005-04-26 |
ES2376191T3 (en) | 2012-03-09 |
WO2001090885A2 (en) | 2001-11-29 |
WO2001090885A3 (en) | 2003-01-16 |
US20020066087A1 (en) | 2002-05-30 |
EP1301854B1 (en) | 2011-11-23 |
EP1301854A2 (en) | 2003-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2001265028A1 (en) | Method and apparatus for creating efficient native methods that extend a bytecode interpreter | |
MY131818A (en) | Data processing using multiple instruction sets. | |
JP3894698B2 (en) | A hybrid just-in-time compiler that minimizes resource consumption | |
US6381737B1 (en) | Automatic adapter/stub generator | |
US6718364B2 (en) | Method and apparatus for expedited file downloads in an applet environment | |
WO2001044971A3 (en) | Method and apparatus to invoke computer commands from within a mark-up language document | |
US8370531B1 (en) | Method and system for accessing objects defined within an external object-oriented environment | |
WO2001097029A3 (en) | Method and apparatus for implementing an extended virtual machine | |
EP1376351A3 (en) | Method of improving performance of computer programs | |
CA2300240A1 (en) | Transparent loading resources from read-only memory for an application program | |
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 | |
EP1677190A3 (en) | Systems and methods for virtualizing graphics subsystems | |
WO2000068816A3 (en) | Method for migrating from one computer to another | |
EP1271313A3 (en) | Performing secure and insecure computing operations in a compartmented operating system | |
WO2005043335A3 (en) | System for invoking a privileged function in a device | |
EP1306753A3 (en) | Exception handling in Java computing environments | |
WO2004086220A3 (en) | Controlled execution of a program used for a virtual machine on a portable data carrier | |
MY127346A (en) | Unhandled operation handling 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 | |
EP1830255A3 (en) | Method execution in a computing environment | |
US7500247B2 (en) | Stack marshaler | |
US6978448B1 (en) | Method and apparatus for rewriting bytecodes to minimize runtime checks |