| tutorials | sunday morning |
7 |
Efficient Implementation of Object-Oriented Programming Languages |
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:
| Tutorials by Title |
Tutorials
by Category |
Tutorials by Thread |
Full
Description of all Tutorials |
Tutorial Availability |