WO2004066147A3 - Linking of virtual methods - Google Patents

Linking of virtual methods Download PDF

Info

Publication number
WO2004066147A3
WO2004066147A3 PCT/US2004/000678 US2004000678W WO2004066147A3 WO 2004066147 A3 WO2004066147 A3 WO 2004066147A3 US 2004000678 W US2004000678 W US 2004000678W WO 2004066147 A3 WO2004066147 A3 WO 2004066147A3
Authority
WO
WIPO (PCT)
Prior art keywords
virtual method
program
linking
virtual
overridden
Prior art date
Application number
PCT/US2004/000678
Other languages
French (fr)
Other versions
WO2004066147A2 (en
Inventor
Jong Eduard K De
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
Publication of WO2004066147A2 publication Critical patent/WO2004066147A2/en
Publication of WO2004066147A3 publication Critical patent/WO2004066147A3/en

Links

Classifications

    • 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

Abstract

Linking a virtual method comprises receiving a program comprising multiple program units, enumerating classes of the program, determining whether a virtual method of the program has been overridden at least once, creating a virtual method jump table indexed by a type indicator if the virtual method has been overridden and rewriting at least one call instruction that calls the virtual method. The at least one call instruction is rewritten to include the type indicator of a called object. The table comprises at least one entry including an address of a virtual method.
PCT/US2004/000678 2003-01-16 2004-01-12 Linking of virtual methods WO2004066147A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/346,579 US7222331B2 (en) 2003-01-16 2003-01-16 Linking of virtual methods
US10/346,579 2003-01-16

Publications (2)

Publication Number Publication Date
WO2004066147A2 WO2004066147A2 (en) 2004-08-05
WO2004066147A3 true WO2004066147A3 (en) 2005-09-09

Family

ID=32712180

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2004/000678 WO2004066147A2 (en) 2003-01-16 2004-01-12 Linking of virtual methods

Country Status (2)

Country Link
US (1) US7222331B2 (en)
WO (1) WO2004066147A2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7155703B2 (en) * 2003-07-18 2006-12-26 Microsoft Corporation Virtual method protection
DE10357257A1 (en) * 2003-12-08 2005-06-30 Giesecke & Devrient Gmbh Java smart card chip with memory area reserved for global variables
FR2871366A1 (en) 2004-06-09 2005-12-16 Ceravic Soc Par Actions Simpli PROSTHETIC EXPANSIBLE BONE IMPLANT
KR100763199B1 (en) * 2006-02-20 2007-10-04 삼성전자주식회사 Method for calling a method in virtual machine environment and system including a virtual machine processing the method
WO2009089477A1 (en) * 2008-01-11 2009-07-16 The Mathworks, Inc. Enumeration classes
FR3015221B1 (en) 2013-12-23 2017-09-01 Vexim EXPANSIBLE INTRAVERTEBRAL IMPLANT SYSTEM WITH POSTERIOR PEDICULAR FIXATION

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0751459A2 (en) * 1995-06-30 1997-01-02 Canon Kabushiki Kaisha Object oriented coding compiler
WO2000046667A2 (en) * 1999-02-02 2000-08-10 Sun Microsystems, Inc. Token-based linking
US20020144243A1 (en) * 1999-06-11 2002-10-03 William Preston Alexander Iii Process and system for java virtual method invocation
US6487714B1 (en) * 1999-05-24 2002-11-26 International Business Machines Corporation Mechanism for dynamic selection of an object's method

Family Cites Families (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5421016A (en) * 1991-12-12 1995-05-30 International Business Machines Corporation System and method for dynamically invoking object methods from an application designed for static method invocation
US6131159A (en) * 1992-05-08 2000-10-10 Paradyne Corporation System for downloading programs
US5390325A (en) * 1992-12-23 1995-02-14 Taligent, Inc. Automated testing system
ATE152539T1 (en) * 1994-02-08 1997-05-15 Belle Gate Invest Bv DATA EXCHANGE SYSTEM WITH PORTABLE DATA PROCESSING UNITS
US6006033A (en) * 1994-08-15 1999-12-21 International Business Machines Corporation Method and system for reordering the instructions of a computer program to optimize its execution
US5748964A (en) * 1994-12-20 1998-05-05 Sun Microsystems, Inc. Bytecode program interpreter apparatus and method with pre-verification of data type restrictions
US6948070B1 (en) * 1995-02-13 2005-09-20 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
PT757336E (en) * 1995-08-04 2001-04-30 Belle Gate Invest B V DATA EXCHANGE SYSTEM INCLUDING PORTAL DATA PROCESSING UNITS
US5721781A (en) * 1995-09-13 1998-02-24 Microsoft Corporation Authentication system and method for smart card transactions
US5812662A (en) * 1995-12-18 1998-09-22 United Microelectronics Corporation Method and apparatus to protect computer software
US5930509A (en) * 1996-01-29 1999-07-27 Digital Equipment Corporation Method and apparatus for performing binary translation
US6466947B2 (en) * 1998-03-20 2002-10-15 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
US5889999A (en) * 1996-05-15 1999-03-30 Motorola, Inc. Method and apparatus for sequencing computer instruction execution in a data processing system
EP0904581B1 (en) 1996-05-24 2003-02-12 Eduard Karel De Jong System and method of cryptographically protecting communications
US5781723A (en) * 1996-06-03 1998-07-14 Microsoft Corporation System and method for self-identifying a portable information device to a computing unit
US5761513A (en) * 1996-07-01 1998-06-02 Sun Microsystems, Inc. System and method for exception handling in dynamically linked programs
US6463581B1 (en) * 1996-10-03 2002-10-08 International Business Machines Corporation Method for determining reachable methods in object-oriented applications that use class libraries
WO1998019237A1 (en) 1996-10-25 1998-05-07 Schlumberger Systemes Using a high level programming language with a microcontroller
US6202060B1 (en) * 1996-10-29 2001-03-13 Bao Q. Tran Data management system
US6367012B1 (en) * 1996-12-06 2002-04-02 Microsoft Corporation Embedding certifications in executable files for network transmission
US6081800A (en) * 1997-02-28 2000-06-27 Oracle Corporation Creating bitmaps from multi-level identifiers
US6141681A (en) * 1997-03-07 2000-10-31 Advanced Micro Devices, Inc. Method of and apparatus for transferring and interpreting a data package
US5950009A (en) * 1997-03-10 1999-09-07 International Business Machines Coporation Method and apparatus for profile-based reordering of program portions in a computer program
WO1998043212A1 (en) * 1997-03-24 1998-10-01 Visa International Service Association A system and method for a multi-application smart card which can facilitate a post-issuance download of an application onto the smart card
US6092147A (en) * 1997-04-15 2000-07-18 Sun Microsystems, Inc. Virtual machine with securely distributed bytecode verification
US5910988A (en) * 1997-08-27 1999-06-08 Csp Holdings, Inc. Remote image capture with centralized processing and storage
US6314562B1 (en) * 1997-09-12 2001-11-06 Microsoft Corporation Method and system for anticipatory optimization of computer programs
US6233733B1 (en) * 1997-09-30 2001-05-15 Sun Microsystems, Inc. Method for generating a Java bytecode data flow graph
US5991774A (en) * 1997-12-22 1999-11-23 Schneider Automation Inc. Method for identifying the validity of an executable file description by appending the checksum and the version ID of the file to an end thereof
US5999732A (en) * 1998-03-23 1999-12-07 Sun Microsystems, Inc. Techniques for reducing the cost of dynamic class initialization checks in compiled code
US6332218B1 (en) 1998-06-30 2001-12-18 Sun Microsystems, Inc. System and method for automatically instantiating classes in a virtual machine
US6205465B1 (en) * 1998-07-22 2001-03-20 Cisco Technology, Inc. Component extensible parallel execution of multiple threads assembled from program components specified with partial inter-component sequence information
US6574618B2 (en) * 1998-07-22 2003-06-03 Appstream, Inc. Method and system for executing network streamed application
GB2341249A (en) * 1998-08-17 2000-03-08 Connected Place Limited A method of generating a difference file defining differences between an updated file and a base file
US6161217A (en) * 1998-09-14 2000-12-12 Sun Microsystems, Inc. Accurate method for inlining virtual calls
US6223340B1 (en) * 1998-10-09 2001-04-24 Sun Microsystems, Inc. Method for directly inlining virtual calls without on-stack replacement
US6481632B2 (en) * 1998-10-27 2002-11-19 Visa International Service Association Delegated management of smart card applications
AU3109200A (en) * 1998-12-04 2000-06-26 Technology Enabling Company, Llc Systems and methods for organizing data
US6272674B1 (en) * 1998-12-14 2001-08-07 Nortel Networks Limited Method and apparatus for loading a Java application program
EP1022638A3 (en) 1999-01-12 2001-05-02 International Business Machines Corporation Method and system for securely handling information between two information processing devices
US6961664B2 (en) * 1999-01-19 2005-11-01 Maxygen Methods of populating data structures for use in evolutionary simulations
US20010037454A1 (en) 2000-05-01 2001-11-01 Botti John T. Computer networked system and method of digital file management and authentication
US6526571B1 (en) * 1999-03-16 2003-02-25 International Business Machines Corporation Method for identifying calls in java packages whose targets are guaranteed to belong to the same package
FI114434B (en) * 1999-05-11 2004-10-15 Nokia Corp communication equipment
US6981212B1 (en) * 1999-09-30 2005-12-27 International Business Machines Corporation Extensible markup language (XML) server pages having custom document object model (DOM) tags
US6792536B1 (en) * 1999-10-20 2004-09-14 Timecertain Llc Smart card system and methods for proving dates in digital files
JP2001143999A (en) * 1999-11-16 2001-05-25 Nikon Corp Charged particle beam transferring apparatus and device manufacturing method using same
US6595856B1 (en) 2000-01-04 2003-07-22 Sigma Game, Inc. Electronic security technique for gaming software
US6643652B2 (en) * 2000-01-14 2003-11-04 Saba Software, Inc. Method and apparatus for managing data exchange among systems in a network
US6974437B2 (en) * 2000-01-21 2005-12-13 Medtronic Minimed, Inc. Microprocessor controlled ambulatory medical apparatus with hand held communication device
FR2805059A1 (en) * 2000-02-10 2001-08-17 Bull Cp8 METHOD FOR LOADING A SOFTWARE PART IN A CHIP CARD, PARTICULARLY OF THE TYPE SAID "APPLET"
US6895581B1 (en) * 2000-03-30 2005-05-17 Microsoft Corporation Replaceable classes and virtual constructors for object-oriented programming languages
FR2809200B1 (en) * 2000-05-17 2003-01-24 Bull Cp8 METHOD FOR SECURING A LANGUAGE OF THE TYPE TYPE, IN PARTICULAR IN AN ON-BOARD SYSTEM AND ON-BOARD SYSTEM FOR IMPLEMENTING THE METHOD
US6880086B2 (en) * 2000-05-20 2005-04-12 Ciena Corporation Signatures for facilitating hot upgrades of modular software components
WO2002005061A2 (en) * 2000-07-06 2002-01-17 David Paul Felsher Information record infrastructure, system and method
US20030028811A1 (en) * 2000-07-12 2003-02-06 Walker John David Method, apparatus and system for authenticating fingerprints, and communicating and processing commands and information based on the fingerprint authentication
JP3707727B2 (en) * 2000-10-30 2005-10-19 インターナショナル・ビジネス・マシーンズ・コーポレーション Program optimization method and compiler using the same
US6985956B2 (en) * 2000-11-02 2006-01-10 Sun Microsystems, Inc. Switching system
US7506175B2 (en) * 2000-11-06 2009-03-17 International Business Machines Corporation File language verification
US6807561B2 (en) * 2000-12-21 2004-10-19 Gemplus Generic communication filters for distributed applications
US7263597B2 (en) 2001-04-19 2007-08-28 Ciena Corporation Network device including dedicated resources control plane
US6836884B1 (en) * 2001-06-04 2004-12-28 Microsoft Corporation Method and system for editing software programs
WO2003003694A2 (en) 2001-06-26 2003-01-09 Versada Networks, Inc. Detecting and transporting dynamic presence information over a wireless and wireline communications network
US6828960B2 (en) * 2001-09-28 2004-12-07 Hewlett-Packard Development Company, L.P. Electronic writing instrument with fingerprint scanner
US20030095690A1 (en) * 2001-11-16 2003-05-22 Acer Inc. Wireless fingerprint identity apparatus and method
US6865659B2 (en) * 2002-06-07 2005-03-08 Sun Microsystems, Inc. Using short references to access program elements in a large address space
US20040083469A1 (en) * 2002-10-23 2004-04-29 Ping-Sheng Chen Method for updating firmware of optical disk system
US20040088562A1 (en) * 2002-10-31 2004-05-06 Schlumberger Malco, Inc. Authentication framework for smart cards

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0751459A2 (en) * 1995-06-30 1997-01-02 Canon Kabushiki Kaisha Object oriented coding compiler
WO2000046667A2 (en) * 1999-02-02 2000-08-10 Sun Microsystems, Inc. Token-based linking
US6487714B1 (en) * 1999-05-24 2002-11-26 International Business Machines Corporation Mechanism for dynamic selection of an object's method
US20020144243A1 (en) * 1999-06-11 2002-10-03 William Preston Alexander Iii Process and system for java virtual method invocation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SUNDARESAN V ET AL: "Practical virtual method call resolution for Java", OOPSLA 2000. CONFERENCE ON OBJECT-ORIENTED PROGRAMMING SYSTEMS, LANGUAGES AND APPLICATIONS, 31 October 2000 (2000-10-31), Minneapolis, MN, USA, pages 264 - 280, XP002336235 *

Also Published As

Publication number Publication date
WO2004066147A2 (en) 2004-08-05
US20040143827A1 (en) 2004-07-22
US7222331B2 (en) 2007-05-22

Similar Documents

Publication Publication Date Title
WO2005031510A3 (en) Table-oriented application development environment
EP1077404A3 (en) System and method for programmatically creating a graphical program
EP0996059A3 (en) Class loading model
WO2007059172A3 (en) Systems and methods for editing a model of a physical system for a simulation
WO2007070073A3 (en) System and method for efficiently generating native code calls from byte code in virtual machines
TW200620114A (en) Debug module, method for stepping over function calls and method for stepping out of function calls in a program executing on a target processor
EP0953898A3 (en) A processor for executing Instructions from memory according to a program counter, and a compiler, an assembler, a linker and a debugger for such a processor
AU2002337829A1 (en) Video tripwire
WO2004061659A3 (en) Methods and systems to manage machine state in virtual machine operations
EP1701259A3 (en) Systems and methods for multi-level intercept processing in a virtual machine environment
TW200710729A (en) Execution control during program code conversion
CA2292123A1 (en) Method and system for modifying executable code to add additional functionality
EP1349063A3 (en) Program simulation with just-in-time compilation
WO2007139612A3 (en) Evaluating performance of software application
AU5801294A (en) An apparatus for executing a plurality of program segments having different object code types in a single program or processor environment
EP1785850A3 (en) High-level program interface for graphic operations
WO2003003215A3 (en) Method and apparatus to facilitate debugging a platform-independent virtual machine
EP1594061A3 (en) Methods and systems for grouping and managing memory instructions
WO2004066147A3 (en) Linking of virtual methods
EP1662762A3 (en) Mobile terminal, content setting method therefor, content setting system and computer program for a mobile terminal
EP1669853A3 (en) Enabling inter-subsystem resource sharing
CN105005484B (en) Event distribution method of cross-platform game development tool
WO2004107153A3 (en) Multi-focal plane user interface system and method
WO2004114570A3 (en) Method of rebooting a multi-device cluster while maintaining cluster operation
WO2003019362A3 (en) Upgrading software held in read-only storage

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 BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG 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 NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

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

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: 170554

Country of ref document: IL

122 Ep: pct application non-entry in european phase