CA2245611A1 - Method and apparatus for efficient operations on primary type values without static overloading - Google Patents

Method and apparatus for efficient operations on primary type values without static overloading

Info

Publication number
CA2245611A1
CA2245611A1 CA002245611A CA2245611A CA2245611A1 CA 2245611 A1 CA2245611 A1 CA 2245611A1 CA 002245611 A CA002245611 A CA 002245611A CA 2245611 A CA2245611 A CA 2245611A CA 2245611 A1 CA2245611 A1 CA 2245611A1
Authority
CA
Canada
Prior art keywords
data
type
optimizations
variable
access
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
CA002245611A
Other languages
French (fr)
Other versions
CA2245611C (en
Inventor
David M. Ungar
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
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 CA2245611A1 publication Critical patent/CA2245611A1/en
Application granted granted Critical
Publication of CA2245611C publication Critical patent/CA2245611C/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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution
    • G06F9/4491Optimising based on receiver type

Abstract

Apparatus, methods, and computer program products are disclosed for providing optimized access to pointer or externally-tagged primitive type data-values. The invention maintains a type identifier external to the variable that contains the data-value. The invention determines the type distribution of data-values stored in the variable and optimizes access to the variable accordingly. Some of these optimizations are targeted towards called routines and the call sites for the called routines. Other optimizations are targeted towards object-oriented programming language implementations. These optimizations generate optimized versions of a class/map. Objects are linked to the optimized versions of the class/map depending on the type configuration of the data-values stored in the object. Thus, the invention optimizes access to variables in the object when the object contains commonly used type configurations.
CA002245611A 1997-09-09 1998-08-20 Method and apparatus for efficient operations on primary type values without static overloading Expired - Fee Related CA2245611C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/926,060 US6085035A (en) 1997-09-09 1997-09-09 Method and apparatus for efficient operations on primary type values without static overloading
US08/926,060 1997-09-09

Publications (2)

Publication Number Publication Date
CA2245611A1 true CA2245611A1 (en) 1999-03-09
CA2245611C CA2245611C (en) 2001-06-12

Family

ID=25452684

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002245611A Expired - Fee Related CA2245611C (en) 1997-09-09 1998-08-20 Method and apparatus for efficient operations on primary type values without static overloading

Country Status (5)

Country Link
US (1) US6085035A (en)
EP (1) EP0902363B1 (en)
JP (1) JPH11161502A (en)
CA (1) CA2245611C (en)
DE (1) DE69800686T2 (en)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6728771B2 (en) * 1998-03-20 2004-04-27 Siemens Information And Communication Networks, Inc. Generic transport option for transporting messages in relay or broadcast mode via combinations of ISDN B-channels or D-channels
US6704927B1 (en) * 1998-03-24 2004-03-09 Sun Microsystems, Inc. Static binding of dynamically-dispatched calls in the presence of dynamic linking and loading
US6427234B1 (en) * 1998-06-11 2002-07-30 University Of Washington System and method for performing selective dynamic compilation using run-time information
US6415434B1 (en) * 1999-06-18 2002-07-02 Hewlett-Packard Company Apparatus and method for a runtime method overloading resolver
JP3838825B2 (en) * 1999-09-27 2006-10-25 富士通株式会社 System analysis apparatus and method, and storage medium storing analysis program
EP1228404A1 (en) * 1999-10-05 2002-08-07 Togethersoft Corporation Method for generating and defining a pattern
JP3640081B2 (en) * 1999-12-27 2005-04-20 日本電気株式会社 Optimization method for compiling MPI programs
US6823507B1 (en) * 2000-06-06 2004-11-23 International Business Machines Corporation Detection of memory-related errors in computer programs
US6925638B1 (en) 2000-09-21 2005-08-02 International Business Machines Corporation Mutability analysis in Java
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
US7062756B2 (en) * 2001-11-30 2006-06-13 Sun Microsystems, Inc. Dynamic object usage pattern learning and efficient caching
US20040221272A1 (en) * 2003-04-30 2004-11-04 Gansha Wu Apparatus and methods for desynchronizing object-oriented software applications in managed runtime environments
US7086041B2 (en) * 2003-06-27 2006-08-01 Microsoft Corporation Extensible type system for representing and checking consistency of program components during the process of compilation
US7367023B2 (en) * 2003-07-10 2008-04-29 International Business Machines Corporation Method and apparatus for generating computer programming code selectively optimized for execution performance and not optimized for serviceability
US7356802B2 (en) * 2003-09-29 2008-04-08 International Business Machines Corporation Automatic customization of classes
US7409678B2 (en) * 2004-01-28 2008-08-05 International Business Machines Corporation Compiler, compilation and storage
US7861234B1 (en) * 2005-02-23 2010-12-28 Oracle America, Inc. System and method for binary translation to improve parameter passing
US7913241B2 (en) * 2006-06-13 2011-03-22 Oracle International Corporation Techniques of optimizing XQuery functions using actual argument type information
US8601456B2 (en) * 2006-08-04 2013-12-03 Microsoft Corporation Software transactional protection of managed pointers
US8185914B2 (en) * 2006-12-21 2012-05-22 International Business Machines Corporation User-configurable variables
US8006227B2 (en) * 2007-06-01 2011-08-23 Microsoft Corporation Efficiently locating transactional code blocks in a transactional memory system
US8099719B2 (en) * 2007-06-19 2012-01-17 Microsoft Corporation Transactional debugger for a transactional memory system and detecting conflicts
US8032870B2 (en) * 2007-06-25 2011-10-04 Microsoft Corporation Transacting accesses via unmanaged pointers
US8196123B2 (en) 2007-06-26 2012-06-05 Microsoft Corporation Object model for transactional memory
US7941411B2 (en) 2007-06-29 2011-05-10 Microsoft Corporation Memory transaction grouping
US8312438B2 (en) * 2007-08-02 2012-11-13 Sap Ag Low impact debugging protocol
US8302076B2 (en) * 2008-11-12 2012-10-30 Landmark Graphics Corporation Systems and methods for improved parallel ILU factorization in distributed sparse linear systems
US8201155B2 (en) * 2009-01-09 2012-06-12 Microsoft Corporation Handling multiple definition of types
US8473900B2 (en) * 2009-07-01 2013-06-25 Advanced Micro Devices, Inc. Combining classes referenced by immutable classes into a single synthetic class
JP4959781B2 (en) * 2009-12-22 2012-06-27 インターナショナル・ビジネス・マシーンズ・コーポレーション Object generation point recording method and program
US8732211B2 (en) * 2011-01-28 2014-05-20 International Business Machines Corporation Method, computer system, and physical computer storage medium for organizing data into data structures
US9495139B2 (en) * 2011-04-11 2016-11-15 University Of Florida Research Foundation, Inc. Elastic computing
WO2013096894A1 (en) * 2011-12-23 2013-06-27 The Arizona Board Of Regents On Behalf Of The University Of Arizona Methods of micro-specialization in database management systems
US10365900B2 (en) 2011-12-23 2019-07-30 Dataware Ventures, Llc Broadening field specialization
US9146750B2 (en) 2012-08-10 2015-09-29 The Mathworks, Inc. Mechanism for replacing an array creation routine within code
US9244667B2 (en) 2012-08-10 2016-01-26 The Mathworks, Inc. Mechanism for transforming between type-independent and type-specific code
US9015681B1 (en) 2012-08-10 2015-04-21 The Mathworks, Inc. Creating and using array creation routines or a family of routines separate from algorithmic code
US9772827B2 (en) 2013-04-22 2017-09-26 Nvidia Corporation Techniques for determining instruction dependencies
US9766866B2 (en) * 2013-04-22 2017-09-19 Nvidia Corporation Techniques for determining instruction dependencies
US9355132B1 (en) * 2015-09-30 2016-05-31 Semmle Limited Tiered arrays
US10733099B2 (en) 2015-12-14 2020-08-04 Arizona Board Of Regents On Behalf Of The University Of Arizona Broadening field specialization
US10901658B2 (en) 2018-12-28 2021-01-26 Micron Technology, Inc. Host adaptive memory device optimization

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276880A (en) * 1989-12-15 1994-01-04 Siemens Corporate Research, Inc. Method for parsing and representing multi-versioned computer programs, for simultaneous and synchronous processing of the plural parses
IL100989A (en) * 1991-02-27 1995-10-31 Digital Equipment Corp Analyzing inductive expressions in a multilanguage optimizing compiler
US5659753A (en) * 1991-02-27 1997-08-19 Digital Equipment Corporation Interface for symbol table construction in a multilanguage optimizing compiler
US5261098A (en) * 1991-08-28 1993-11-09 Sun Microsystems, Inc. Method and apparatus for deriving object type and obtaining object type attribute values
JP3178151B2 (en) * 1993-03-19 2001-06-18 富士ゼロックス株式会社 Message Oriented Message Compiling Device
US5630066A (en) * 1994-12-20 1997-05-13 Sun Microsystems, Inc. System and method for locating object view and platform independent object
US5748964A (en) * 1994-12-20 1998-05-05 Sun Microsystems, Inc. Bytecode program interpreter apparatus and method with pre-verification of data type restrictions
US5696973A (en) * 1995-02-17 1997-12-09 International Business Machines Corporation Index-based method for supporting multimethod function overloading with compile-time type checking and run-time dispatch
US5748963A (en) * 1995-05-12 1998-05-05 Design Intelligence, Inc. Adaptive binding
US5649179A (en) * 1995-05-19 1997-07-15 Motorola, Inc. Dynamic instruction allocation for a SIMD processor

Also Published As

Publication number Publication date
US6085035A (en) 2000-07-04
DE69800686T2 (en) 2001-11-22
DE69800686D1 (en) 2001-05-17
JPH11161502A (en) 1999-06-18
CA2245611C (en) 2001-06-12
EP0902363A1 (en) 1999-03-17
EP0902363B1 (en) 2001-04-11

Similar Documents

Publication Publication Date Title
CA2245611A1 (en) Method and apparatus for efficient operations on primary type values without static overloading
CA2134059A1 (en) Method and system for generating a computer program
TW332268B (en) Protected programmable memory cartridge and computer system using same
MX9800004A (en) Television system with downloadable features.
CA2093451A1 (en) Method and Mechanism for Calling 32-Bit Functions from 16-Bit Functions
AU3858295A (en) Method and system for accessing data
WO1998033104A3 (en) Method and apparatus for attribute selection
EP0597316A3 (en) Computer simulation system and method for specifying the behavior of graphical operator interfaces.
CA2093815A1 (en) Method and apparatus for providing down-loaded instructions for execution by a peripheral controller
AU3415595A (en) An object-oriented computer environment and related method
AU5896999A (en) Adaptive countermeasure selection method and apparatus
CA2256044A1 (en) Method and apparatus for automated design of complex structures using genetic programming
AP9701018A0 (en) Squalene synthetase inhibitor compounds.
WO1998033075A3 (en) Random number generator based on directional randomness associated with naturally occurring random events, and method therefor
AU5441796A (en) Software anti-virus facility
AU7752994A (en) A method of generating a spread code
DE69624839T2 (en) SUBSTITUTED INDENYL CONTAINING METAL COMPLEXES AND OLEFIN POLYMERIZATION PROCESS.
CY2343B1 (en) Ophthalmic compositions containing cyclodextrins and quaternary ammonium compounds.
EP0661628A3 (en) Multi-phase commit processing for creation and deletion of managed objects.
NZ331118A (en) Method for modifying the function of an instruction in an instruction set of a processor of a smart card
IL135810A0 (en) Method for the generation if isa simulators and assemblers from a machine description
EP0950967A3 (en) Method and apparatus for generating co-simulation and production executables from a single source
AU2348897A (en) Application software distributing system, application software distributing method and computer-readable medium storing application software distributing program
CA2016396A1 (en) Initial program load (ipl) based on an object abstraction for a data processing system
BG103139A (en) Liquid form of ethyl-(z)-2-chloro-3[2-chlor-5-(4,5,6,7-tetrahydro-1,3-dioxyisoind oldion-2-yl)phenyl]acrylate

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed
MKLA Lapsed

Effective date: 20060821