tutorials sunday morning

7

Efficient Implementation of Object-Oriented Programming Languages

Craig Chambers, University of Washington

Waterfront Centre Hotel
MacKenzie Room 1

How are object-oriented languages implemented? What features of object-oriented languages are expensive? What 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 difficult to implement efficiently, three classes of implementation techniques are presented. First, run-time system techniques such as virtual function dispatch tables and inline caches are described. Second, static intra- and interprocedural analyses are discussed. 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++, Smalltalk, Modula-3, and Cecil.

Attendees will become familiar with the issues and state-of-the-art techniques for implementing object-oriented languages efficiently.

Attendee Background: 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.

Craig Chambers has been researching object-oriented language design and implementation since 1987, with publications in OOPSLA, ECOOP, ISOTAS, PLDI, PEPM, and TOPLAS on the topic. He developed the first efficient implementation of the Self language, and he is the designer of the Cecil language and heads the Vortex optimizing compiler project. Chambers is currently an Associate Professor of Computer Science & Engineering at the University of Washington, and he is program chair of OOPSLA'98.

Other tutorials on advanced language-related topics are:

8: Using Subject-Oriented Programming to Overcome Common Problems in Object-Oriented Software Development and Evolution
41: Beyond Objects: Unleasing the Power of Adaptive Agents
50: Typing in Object-Oriented Languages: Achieving Expressiveness and Safety
65: Aspect-Oriented Programming with Aspect

Tutorials
by Title
Tutorials by
Category
Tutorials
by Thread
Full Description
of all Tutorials
Tutorial
Availability

OOPSLA'98 Home
Last edited 22 September 1998 13:39:14