WO2002025426A3 - Lazy compilation of template-generated classes in dynamic compilation execution environments - Google Patents

Lazy compilation of template-generated classes in dynamic compilation execution environments Download PDF

Info

Publication number
WO2002025426A3
WO2002025426A3 PCT/US2001/028468 US0128468W WO0225426A3 WO 2002025426 A3 WO2002025426 A3 WO 2002025426A3 US 0128468 W US0128468 W US 0128468W WO 0225426 A3 WO0225426 A3 WO 0225426A3
Authority
WO
WIPO (PCT)
Prior art keywords
compilation
template
lazy
generated
class
Prior art date
Application number
PCT/US2001/028468
Other languages
French (fr)
Other versions
WO2002025426A2 (en
Inventor
Mathew J Hostetter
David Kranz
Original Assignee
Curl Corp
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 Curl Corp filed Critical Curl Corp
Priority to AU2001289021A priority Critical patent/AU2001289021A1/en
Priority to EP01968801A priority patent/EP1374044A2/en
Publication of WO2002025426A2 publication Critical patent/WO2002025426A2/en
Publication of WO2002025426A3 publication Critical patent/WO2002025426A3/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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Abstract

Template-generated classes in program code are compiled efficiently through a process of lazy compilation resulting in improved compilation times. Lazy compilation includes the generation of objects representing a class template and a template-generated class as well as the selective compilation of class methods that are invoked in the program code. Code sharing is a further enhancement for increasing compilation speed by providing a system and method for sharing executable object code for compatible methods among different classes generated from the same class template.
PCT/US2001/028468 2000-09-21 2001-09-12 Lazy compilation of template-generated classes in dynamic compilation execution environments WO2002025426A2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
AU2001289021A AU2001289021A1 (en) 2000-09-21 2001-09-12 Lazy compilation of template-generated classes in dynamic compilation execution environments
EP01968801A EP1374044A2 (en) 2000-09-21 2001-09-12 Lazy compilation of template-generated classes in dynamic compilation execution environments

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/666,708 US6760905B1 (en) 2000-09-21 2000-09-21 Lazy compilation of template-generated classes in dynamic compilation execution environments
US09/666,708 2000-09-21

Publications (2)

Publication Number Publication Date
WO2002025426A2 WO2002025426A2 (en) 2002-03-28
WO2002025426A3 true WO2002025426A3 (en) 2003-10-02

Family

ID=24675110

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/028468 WO2002025426A2 (en) 2000-09-21 2001-09-12 Lazy compilation of template-generated classes in dynamic compilation execution environments

Country Status (4)

Country Link
US (2) US6760905B1 (en)
EP (1) EP1374044A2 (en)
AU (1) AU2001289021A1 (en)
WO (1) WO2002025426A2 (en)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7275250B1 (en) 2001-05-01 2007-09-25 Microsoft Corporation Method and apparatus for correlating events
US7100167B2 (en) * 2001-05-01 2006-08-29 Microsoft Corporation Method and apparatus for creating templates
JP4187107B2 (en) * 2002-02-25 2008-11-26 ロマ リンダ ユニヴァーシティ A system for building interactive computations on web pages
US7062755B2 (en) * 2002-10-16 2006-06-13 Hewlett-Packard Development Company, L.P. Recovering from compilation errors in a dynamic compilation environment
US20040117778A1 (en) * 2002-12-16 2004-06-17 Sehr David C. Optimization of software code using N-bit pointer conversion
US20050055682A1 (en) * 2003-09-08 2005-03-10 Microsoft Corporation Authoring and using generic classes in JAVA language code
US7543271B2 (en) * 2003-09-08 2009-06-02 Microsoft Corporation Compiling source code using generic classes
JP2005141380A (en) * 2003-11-05 2005-06-02 Matsushita Electric Ind Co Ltd Template compile method
US7539678B2 (en) * 2004-01-30 2009-05-26 Microsoft Corporation Systems and methods for controlling access to an object
US20100011018A1 (en) * 2004-03-16 2010-01-14 Vision Genesis, Inc. Custom database system and method of building the same
US20080022258A1 (en) * 2004-08-27 2008-01-24 Mark Pomponio Custom database system and method of building and operating the same
US8631393B2 (en) * 2004-03-16 2014-01-14 Vision Genesis, Inc. Custom database system and method of building and operating the same
US7644402B1 (en) * 2004-03-17 2010-01-05 Sun Microsystems, Inc. Method for sharing runtime representation of software components across component loaders
US7721271B2 (en) * 2004-04-22 2010-05-18 Microsoft Corporation Language localization and intercepting data using translation tables
US20060048095A1 (en) * 2004-08-31 2006-03-02 Microsoft Corporation Local type alias inference system and method
JP4768984B2 (en) * 2004-12-06 2011-09-07 パナソニック株式会社 Compiling method, compiling program, and compiling device
US20070136366A1 (en) * 2005-10-13 2007-06-14 Serge Brie Method and system for structured object modeling
US9424051B2 (en) * 2005-10-13 2016-08-23 Serge Brie Method and system for modeling and naming a software class
US10031830B2 (en) * 2006-10-13 2018-07-24 International Business Machines Corporation Apparatus, system, and method for database management extensions
US8713546B2 (en) * 2006-12-18 2014-04-29 Oracle International Corporation System and method for redundant array copy removal in a pointer-free language
US8352925B2 (en) * 2007-01-16 2013-01-08 Oracle America, Inc. Mechanism for enabling a set of code intended for a first platform to be executed on a second platform
KR101407629B1 (en) * 2007-06-04 2014-06-13 더 보드 오브 리젠츠 오브 더 유니버시티 오브 텍사스 시스템 Apparatus and method for accelerating java translation
US8145655B2 (en) * 2007-06-22 2012-03-27 International Business Machines Corporation Generating information on database queries in source code into object code compiled from the source code
WO2009089477A1 (en) * 2008-01-11 2009-07-16 The Mathworks, Inc. Enumeration classes
US7516448B1 (en) * 2008-06-30 2009-04-07 International Business Machines Corporation Method for improving irreducible region commoning compile speed
US8321846B2 (en) * 2008-11-13 2012-11-27 Oracle International Corporation Executable template
US8799877B2 (en) * 2009-03-27 2014-08-05 Optumsoft, Inc. Interpreter-based program language translator using embedded interpreter types and variables
EP2417543A4 (en) 2009-04-10 2012-10-31 Vision Genesis Inc Software database system and process of building and operating the same
CA2678767A1 (en) 2009-09-30 2009-12-09 Ibm Canada Limited-Ibm Canada Limitee Optimization of meta-template instantiations
US8365156B2 (en) * 2010-04-17 2013-01-29 Microsoft Corporation Intermediate language support for change resilience
US8375373B2 (en) 2010-04-19 2013-02-12 Microsoft Corporation Intermediate language support for change resilience
US20120124551A1 (en) * 2010-11-11 2012-05-17 General Electric Company Template inheritance in a configuration object model
US9411566B2 (en) 2010-12-08 2016-08-09 Oracle International Corporation System and method for removal of arraycopies in java by cutting the length of arrays
JP5605228B2 (en) * 2011-01-07 2014-10-15 富士ゼロックス株式会社 Image processing apparatus and program
US9081893B2 (en) 2011-02-18 2015-07-14 Microsoft Technology Licensing, Llc Dynamic lazy type system
US9274772B2 (en) 2012-08-13 2016-03-01 Microsoft Technology Licensing, Llc. Compact type layouts
JP2014197291A (en) * 2013-03-29 2014-10-16 株式会社日立製作所 Program processing method and program
US11050820B2 (en) * 2013-04-29 2021-06-29 Sap Se Cloud sharing system
US20170139689A1 (en) * 2015-11-12 2017-05-18 International Business Machines Corporation Caching method types created from method descriptor strings on a per class loader basis
US10133559B2 (en) 2016-06-03 2018-11-20 International Business Machines Corporation Generating executable files through compiler optimization
CN106293849B (en) * 2016-08-18 2020-01-31 华为技术有限公司 application updating method and terminal
CN110869906A (en) 2017-07-07 2020-03-06 区块链控股有限公司 Method for controlling stream execution of generated scripts for blockchain transactions
US10884719B2 (en) * 2017-10-27 2021-01-05 Synchrony Bank Dynamic model reflection
US10901715B1 (en) * 2019-09-26 2021-01-26 Jonathan RAIMAN Lazy compilation and kernel fusion in dynamic computation graphs

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5361351A (en) * 1990-09-21 1994-11-01 Hewlett-Packard Company System and method for supporting run-time data type identification of objects within a computer program
US5297274A (en) * 1991-04-15 1994-03-22 International Business Machines Corporation Performance analysis of program in multithread OS by creating concurrently running thread generating breakpoint interrupts to active tracing monitor
US5600838A (en) * 1994-01-18 1997-02-04 Sybase, Inc. Object oriented dispatch and supercall process and arrangement
US5761511A (en) * 1994-01-28 1998-06-02 Sun Microsystems, Inc. Method and apparatus for a type-safe framework for dynamically extensible objects
DE19535519C2 (en) * 1995-09-25 1999-03-04 Ibm Processes for reducing the size of computer programs
US5960197A (en) * 1996-05-09 1999-09-28 Sun Microsystems, Inc. Compiler dispatch function for object-oriented C
US6151703A (en) * 1996-05-20 2000-11-21 Inprise Corporation Development system with methods for just-in-time compilation of programs
US5940616A (en) * 1996-05-31 1999-08-17 International Business Machines Corporation Tracker class for object-oriented programming environments
CA2178898C (en) * 1996-06-12 2000-02-01 David Joseph Streeter Sequencing and error detection of template instantiations during compilation of c++ programs
US6041179A (en) * 1996-10-03 2000-03-21 International Business Machines Corporation Object oriented dispatch optimization
US6078744A (en) * 1997-08-01 2000-06-20 Sun Microsystems Method and apparatus for improving compiler performance during subsequent compilations of a source program
US6185609B1 (en) * 1997-10-24 2001-02-06 Sun Microsystems, Inc. Method, apparatus and program to provide client access to a management information service residing on a server in a computer network system
US6073129A (en) * 1997-12-29 2000-06-06 Bull Hn Information Systems Inc. Method and apparatus for improving the performance of a database management system through a central cache mechanism
US6032152A (en) * 1997-12-31 2000-02-29 Intel Corporation Object factory template

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
GRANT B ET AL: "The benefits and costs of DyC's run-time optimizations", ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, SEPT. 2000, ACM, USA, vol. 22, no. 5, pages 932 - 972, XP001159776, ISSN: 0164-0925 *
INTERSIMONE, DAVIDI: "Borland Appaccelerator/Latte - Interview with Regis Crelier", SUMMARY OF JAVA JUST-IN-TIME COMPILERS, 23 July 1996 (1996-07-23), pages 1 - 5, XP002247454, Retrieved from the Internet <URL:http://a1.cs.ua.edu/~jones/jit.html> [retrieved on 20030714] *
KRALL A ET AL: "CACAO EIN 64BIT - JAVAVM - JUST-IN-TIME - COMPILER", DIPLOMARBEIT CACAO EIN 64BIT- JAVAVM - JUST-IN-TIME - COMPILER, XX, XX, January 1997 (1997-01-01), pages 1 - 88, XP001013736 *
MORRISON, MICHAEL: "Java 1.1 Unleashed, Professional Reference Edition Chapter 53", 12 April 1997, SAMS, US, ISBN: ISBN 1575210495, XP002247456 *

Also Published As

Publication number Publication date
US20050060695A1 (en) 2005-03-17
WO2002025426A2 (en) 2002-03-28
US7225438B2 (en) 2007-05-29
AU2001289021A1 (en) 2002-04-02
US6760905B1 (en) 2004-07-06
EP1374044A2 (en) 2004-01-02

Similar Documents

Publication Publication Date Title
WO2002025426A3 (en) Lazy compilation of template-generated classes in dynamic compilation execution environments
WO1998039698A3 (en) Software development tool with object modeling language
EP0841614A3 (en) System and method for building, testing and integrating a graphical touch user interface
ATE248403T1 (en) SYSTEM AND METHOD FOR CONVERTING GRAPHIC PROGRAMS INTO HARDWARE IMPLEMENTATIONS
WO2001063412A3 (en) Small memory footprint system and method for separating applications within a single virtual machine
WO2000041075A3 (en) Generating compiled programs for interpretive runtime environments
EP0926592A3 (en) Software emulation system
WO2002077822A3 (en) Dynamic software code instrumentation method and system
WO2002041146A3 (en) Instruction processor systems and methods
AU2001261386A1 (en) Migrating processes using data representation language representations of the processes in a distributed computing environment
CA2191522A1 (en) System and method for generating trusted, architecture specific, compiled versions of architecture neutral programs
WO2007021704A3 (en) Application acceleration using heterogeneous processors
EP0399822A3 (en) Method and apparatus for computer program encapsulation
EP1156429A3 (en) Server-side code generation from a dynamic web page content file
CA2232671A1 (en) Systems, methods and computer program products for building frameworks in an object oriented environment
AU2003275972A1 (en) Xml interfaces in unified rendering
EP1248211A3 (en) Data processing system and design system
WO2000077617A3 (en) Method and system for dynamic proxy classes
ATE257611T1 (en) DESIGN SYSTEM AND METHODS FOR COMBINED DESIGN OF HARDWARE AND SOFTWARE
EP1016963A3 (en) Run-time addition of interfaces
WO2005024631A3 (en) Creating and checking runtime data types
EP0953899A3 (en) Apparatus and method for object-oriented memory system
IL135810A0 (en) Method for the generation if isa simulators and assemblers from a machine description
WO2004099944A3 (en) Apparatus and methods for desynchronizing object-oriented software applications in managed runtime environments
WO2003032157A1 (en) Compiler

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 BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE 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 NO NZ PH PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE 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
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2001968801

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWP Wipo information: published in national office

Ref document number: 2001968801

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Ref document number: 2001968801

Country of ref document: EP