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
US8527942B2 (en) * 2008-01-11 2013-09-03 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
DE69402955T2 (en) * 1994-02-08 1997-08-14 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
ES2153455T3 (en) * 1995-08-04 2001-03-01 Belle Gate Invest B V DATA EXCHANGE SYSTEM THAT INCLUDES PORTABLE 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
ES2193247T3 (en) 1996-05-24 2003-11-01 Jong Eduard Karel De SYSTEM AND METHOD OF CRYPTOGRAPHIC COMMUNICATIONS PROTECTION.
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
MY126363A (en) 1996-10-25 2006-09-29 Gemalto Sa 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
ATE281680T1 (en) * 1997-03-24 2004-11-15 Visa Int Service Ass SYSTEM AND METHOD FOR A MULTIPURPOSE CHIP CARD WHICH ALLOWS SUBSEQUENT STORAGE OF AN APPLICATION ON THIS 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
CA2347684A1 (en) * 1998-10-27 2000-05-04 Visa International Service Association Delegated management of smart card applications
EP1129417A4 (en) * 1998-12-04 2004-06-30 Technology Enabling Company Ll 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
US6427088B1 (en) * 2000-01-21 2002-07-30 Medtronic Minimed, Inc. Ambulatory medical apparatus and method using telemetry system with predefined reception listening periods
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
AU7182701A (en) * 2000-07-06 2002-01-21 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
AU2002315458A1 (en) 2001-06-26 2003-03-03 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
US20040143827A1 (en) 2004-07-22
US7222331B2 (en) 2007-05-22
WO2004066147A2 (en) 2004-08-05

Similar Documents

Publication Publication Date Title
WO2005031510A3 (en) Table-oriented application development environment
EP1465063A3 (en) Enhanced runtime hosting
EP1376372A3 (en) Process-mode independent driver model
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
WO2008030514A3 (en) Methods, systems, and computer program products for flexible call jumping
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
TW200519628A (en) Method and system of controlling a context menu
AU2002337829A1 (en) Video tripwire
TW200710729A (en) Execution control during program code conversion
WO2007139612A3 (en) Evaluating performance of software application
EP1033648A3 (en) Mechanism by which platform independent software may bind to and access platform dependent software
WO2003003215A3 (en) Method and apparatus to facilitate debugging a platform-independent virtual machine
TW200516497A (en) Method and apparatus for partitioning code in program code conversion
EP1594061A3 (en) Methods and systems for grouping and managing memory instructions
WO2004066147A3 (en) Linking of virtual methods
WO2007038470A3 (en) Methods and apparatus for metering computer-based media presentation
WO2006013279A3 (en) Processor time-sharing method
CN105005484B (en) Event distribution method of cross-platform game development tool
WO2003042547A3 (en) Controlled program execution by a portable data carrier
WO2004107153A3 (en) Multi-focal plane user interface system and method
WO2004114570A3 (en) Method of rebooting a multi-device cluster while maintaining cluster operation
WO2001063410A3 (en) System and method for implementing a project facility

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