CA2191411A1 - System and method for runtime optimization of private variable function calls in a secure interpreter - Google Patents

System and method for runtime optimization of private variable function calls in a secure interpreter

Info

Publication number
CA2191411A1
CA2191411A1 CA002191411A CA2191411A CA2191411A1 CA 2191411 A1 CA2191411 A1 CA 2191411A1 CA 002191411 A CA002191411 A CA 002191411A CA 2191411 A CA2191411 A CA 2191411A CA 2191411 A1 CA2191411 A1 CA 2191411A1
Authority
CA
Canada
Prior art keywords
executed
interpreter
private variable
modified
program
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.)
Granted
Application number
CA002191411A
Other languages
French (fr)
Other versions
CA2191411C (en
Inventor
Frank Yellin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Frank Yellin
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 Frank Yellin, Sun Microsystems, Inc. filed Critical Frank Yellin
Publication of CA2191411A1 publication Critical patent/CA2191411A1/en
Application granted granted Critical
Publication of CA2191411C publication Critical patent/CA2191411C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • 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

A secure program interpreter performs a special check the first time itexecutes a method call to determine if the sole purpose of the called method is to access the value of private variable, modify the value of a private variable, or return a constant value. When this is the case, the interpreter's internal representation of the method being executed is modified so as to directly access the private variable of the called method, or to directly accessthe stored constant of the called method. The modified method representation uses special "privileged" load and store instructions, not available in normal source code programs, that access private variables and constants outside the method being executed without causing a security violation to be flagged. When the modified portion of the method is executed, the private variable or constant is accessed directly by the executed method using a privileged load or store instruction, the use of which avoids the flagging of a security violation by the program interpreter. When execution of the program is completed, the modified internal representation of the method is flushed, such that when the program is executed again said interpreter generates a new working representation of the aforementioned method.
CA002191411A 1995-12-08 1996-11-27 System and method for runtime optimization of private variable function calls in a secure interpreter Expired - Fee Related CA2191411C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/569,754 US5794044A (en) 1995-12-08 1995-12-08 System and method for runtime optimization of private variable function calls in a secure interpreter
US08/569,754 1995-12-08

Publications (2)

Publication Number Publication Date
CA2191411A1 true CA2191411A1 (en) 1997-06-09
CA2191411C CA2191411C (en) 2003-05-06

Family

ID=24276720

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002191411A Expired - Fee Related CA2191411C (en) 1995-12-08 1996-11-27 System and method for runtime optimization of private variable function calls in a secure interpreter

Country Status (10)

Country Link
US (1) US5794044A (en)
EP (1) EP0778521B1 (en)
JP (1) JPH1040107A (en)
KR (1) KR100478025B1 (en)
CN (1) CN1117318C (en)
AU (1) AU712005B2 (en)
CA (1) CA2191411C (en)
DE (1) DE69621751T2 (en)
SG (1) SG75109A1 (en)
TW (1) TW341687B (en)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5966534A (en) * 1997-06-27 1999-10-12 Cooke; Laurence H. Method for compiling high level programming languages into an integrated processor with reconfigurable logic
US6317796B1 (en) * 1997-10-06 2001-11-13 Sun Microsystems, Inc. Inline database for receiver types in object-oriented systems
US6385660B2 (en) 1997-10-06 2002-05-07 Sun Microsystems, Inc. Site specific message dispatch in object-oriented systems
US6295607B1 (en) * 1998-04-06 2001-09-25 Bindview Development Corporation System and method for security control in a data processing system
US6061520A (en) * 1998-04-07 2000-05-09 Sun Microsystems, Inc. Method and system for performing static initialization
US6681387B1 (en) 1999-12-01 2004-01-20 Board Of Trustees Of The University Of Illinois Method and apparatus for instruction execution hot spot detection and monitoring in a data processing unit
DE60142136D1 (en) * 2000-02-21 2010-07-01 Panasonic Corp Linking Java class files for embedded devices
US6978448B1 (en) * 2000-06-12 2005-12-20 Sun Microsystems, Inc. Method and apparatus for rewriting bytecodes to minimize runtime checks
US7086044B2 (en) * 2001-03-22 2006-08-01 International Business Machines Corporation Method, article of manufacture and apparatus for performing automatic intermodule call linkage optimization
US7028293B2 (en) * 2001-03-30 2006-04-11 Microsoft Corporation Constant return optimization transforming indirect calls to data fetches
FR2827974B1 (en) * 2001-07-26 2005-02-11 Trusted Logic PROCESS FOR THE COMPRESSION OF A CODE INTERPRETED BY SEMANTIC ANALYSIS
FR2828296B1 (en) * 2001-08-03 2003-12-12 Trusted Logic OBJECT CODE COMPRESSION METHOD INTERPRETED BY FACTORING TREE EXPRESSIONS
US20030131347A1 (en) * 2001-10-12 2003-07-10 Allison David S. Method and apparatus for runtime binding of object members
DE10216602A1 (en) * 2002-04-15 2003-10-30 Giesecke & Devrient Gmbh Optimization of compiler generated program code
US7181744B2 (en) * 2002-10-24 2007-02-20 International Business Machines Corporation System and method for transferring data between virtual machines or other computer entities
JP4012517B2 (en) * 2003-04-29 2007-11-21 インターナショナル・ビジネス・マシーンズ・コーポレーション Managing locks in a virtual machine environment
US20060059471A1 (en) * 2004-09-15 2006-03-16 Microsoft Corporation Calling non-public types
US7797690B2 (en) 2005-03-15 2010-09-14 International Business Machines Corporation System, method and program product to optimize code during run time
US20090007068A1 (en) * 2007-06-27 2009-01-01 Microsoft Corporation Accessing Non-Public Code
US8671456B2 (en) 2012-06-26 2014-03-11 Sap Portals Israel Ltd. Accessing restricted resources in computer programming
US10657262B1 (en) * 2014-09-28 2020-05-19 Red Balloon Security, Inc. Method and apparatus for securing embedded device firmware
TWI552781B (en) * 2014-09-30 2016-10-11 Liquid suction and discharge filter
US9729671B2 (en) * 2014-10-05 2017-08-08 YScope Inc. Systems and processes for computer log analysis
US9841972B2 (en) * 2014-12-17 2017-12-12 Cisco Technology, Inc. Securing secret information in source code verification and at runtime
CN108614702B (en) * 2016-12-28 2022-02-11 阿里巴巴集团控股有限公司 Byte code optimization method and device
CN109032572B (en) * 2017-06-08 2023-03-31 阿里巴巴集团控股有限公司 Method for Java program method internal connection based on byte code

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4775932A (en) * 1984-07-31 1988-10-04 Texas Instruments Incorporated Computer memory system with parallel garbage collection independent from an associated user processor
US5210874A (en) * 1988-03-22 1993-05-11 Digital Equipment Corporation Cross-domain call system in a capability based digital data processing system
US5093914A (en) * 1989-12-15 1992-03-03 At&T Bell Laboratories Method of controlling the execution of object-oriented programs
AU628264B2 (en) * 1990-08-14 1992-09-10 Oracle International Corporation Methods and apparatus for providing a client interface to an object-oriented invocation of an application
US5280614A (en) * 1990-08-21 1994-01-18 International Business Machines Corporation Apparatus and method for controlling access to data using domains
US5307499A (en) * 1990-11-30 1994-04-26 Singapore Computer Systems Limited Interpretive object-oriented facility which can access pre-compiled classes
JPH05257664A (en) * 1991-12-12 1993-10-08 Internatl Business Mach Corp <Ibm> System and method for generating version-independent object-oriented application program
US5319784A (en) * 1991-12-18 1994-06-07 International Business Machines Corp. System for automatic and selective compile-time installation of fastpath into program for calculation of function/procedure without executing the function/procedure
JP2794523B2 (en) * 1993-11-26 1998-09-10 日本アイ・ビー・エム株式会社 Inline expansion method in programming languages with array functions
US5590266A (en) * 1994-10-11 1996-12-31 International Business Machines Corporation Integrity mechanism for data transfer in a windowing system

Also Published As

Publication number Publication date
AU712005B2 (en) 1999-10-28
US5794044A (en) 1998-08-11
TW341687B (en) 1998-10-01
SG75109A1 (en) 2000-09-19
DE69621751D1 (en) 2002-07-18
KR100478025B1 (en) 2005-06-27
CN1158459A (en) 1997-09-03
EP0778521A3 (en) 1999-05-12
JPH1040107A (en) 1998-02-13
EP0778521B1 (en) 2002-06-12
AU7188996A (en) 1997-06-12
KR970049812A (en) 1997-07-29
DE69621751T2 (en) 2003-01-30
EP0778521A2 (en) 1997-06-11
CA2191411C (en) 2003-05-06
CN1117318C (en) 2003-08-06

Similar Documents

Publication Publication Date Title
CA2191411A1 (en) System and method for runtime optimization of private variable function calls in a secure interpreter
US4809160A (en) Privilege level checking instruction for implementing a secure hierarchical computer system
Hawblitzel et al. Implementing Multiple Protection Domains in Java.
PL342994A1 (en) Java runtime system with modified constant pool
CA2267482A1 (en) Report program language source code translation to object-oriented language source code which emulates report program language behaviour
Baker et al. Runtime aspect weaving through metaprogramming
Wagner et al. Leapfrogging: a portable technique for implementing efficient futures
CA2143488A1 (en) Dynamic Link Libraries Without Linker or Loader Support
EP1082654A1 (en) Referencing a method in object-based programming
US6101326A (en) Method and apparatus for frame elimination for simple procedures with tail calls
Chiba et al. Yet another java. lang. class
Hawblitzel et al. A case for language-based protection
WO2002037265A3 (en) Frameworks for loading and execution of object-based programs
US7246135B2 (en) Sharing classes between programs
PL325157A1 (en) Method of generating and storing an application software consisting of commands for a programmable memory control unit and operating method for such programmable memory control unit
KR20070041800A (en) The method of api hook by modifying call instructions in code sections of modules in address space of application
Liang A modular semantics for compiler generation
Breuel Implementing dynamic language features in Java using dynamic code generation
Budimlic et al. Static interprocedural optimizations in java
Dumortier Freeness and related analyses of constraint logic programs using abstract interpretation.
WO2001009715A3 (en) A single-compiler architecture
Sanders Eliminating the substitution axiom from UNITY logic
Pusch Proving the soundness of a Java bytecode verifier in Isabelle/HOL
Marti Compilation techniques for a control-flow concurrent LISP system
Läufer et al. Self-interpretation and reflection in a statically typed language

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed