16th European Conference on Object-Oriented Programming
University of Málaga, Spain
June 10-14, 2002
Technical programme > Tutorials > Tutorial #4
General Information
Call for Contributions
Technical Programme
Useful Information
Social Programme

<< Site map >>
<< History file >>

Ecoop 2002 is organized in cooperation with:
Important dates
Oct 01
Nov 01
Dec 01
Jan 02
Feb 02
Apr 02
May 02
Jun 02

You are the visitor number

from 4th October 2001.


Tutorial #04 - Efficient Implementation of Object-Oriented Programming Languages

Morning T01 T02 T03 T05 T07 T09 T11 T13 T14 T15 T17 T19 T21 T23
Afternoon T04 T06 T08 T10 T12 T16 T18 T20 T22 T24


Efficient Implementation of Object-Oriented Programming Languages

Presenter :Craig Chambers (Univ. Washington, USA)
Duration :Half day
Day :Monday - afternoon
Level :Advanced






How are object-oriented languages implemented? What features of object-oriented languages are expensive? What compiler optimizations have been developed to make object-oriented languages more efficient? This tutorial addresses these questions. After identifying the main features of object-oriented languages that are challenging to implement efficiently, three classes of implementation techniques are presented. First, run-time system techniques such as virtual function dispatch tables (including complications due to multiple inheritance and virtual inheritance) and inline caches are described. Second, static intra- and interprocedural analyses are discussed that seek to identify at compile-time the possible classes of message receivers, in order to reduce or eliminate the overhead of dynamic binding. Third, ways in which dynamic execution profiles can be exploited to complement static analysis techniques are described. To assess the relative importance of the techniques, empirical measurements of the effectiveness of many of these techniques, as implemented in the Vortex optimizing compiler, are presented for large benchmarks written in Java, C++, and Cecil.


Required experience

Attendees should be familiar with the features of object-oriented languages and also with traditional compiler techniques such as procedure inlining and data flow analysis.


Expected audience

Attendees are expected to be interested in optimizing compiler strategies for OO languages. Attendees will become familiar with the issues and state-of-the-art techniques for implementing object-oriented languages efficiently.


Presenter's profile

Craig Chambers has been researching object-oriented language design and implementation since 1987, with publications in OOPSLA, ECOOP, ISOTAS, PLDI, POPL, PEPM, and TOPLAS on the topic. For his Ph.D. thesis at Stanford, he developed the first efficient implementation of the Self language, using optimizing dynamic compilation. Chambers is currently an Associate Professor of Computer Science & Engineering at the University of Washington, where he designed the Cecil language and co-designed the MultiJava and ArchJava languages, heads the Vortex whole-program optimizing compiler project and the Whirlwind staged compiler project, and co-leads the DyC selective dynamic compilation project.


















Tutorial #04 - Efficient Implementation of Object-Oriented Programming Languages
Last modified on Feb 14, 2002
Maintained by webmaster@2002.ecoop.org