Affiliation:
1. University of Washington, Seattle, WA
2. Sun Microsystems Laboratories, Mountain View, CA
Abstract
Dynamically-typed object-oriented languages please programmers, but their lack of static type information penalizes performance. Our new implementation techniques extract static type information from declaration-free programs. Our system compiles several copies of a given procedure, each
customized
for one receiver type, so that the type of the receiver is bound at compile time. The compiler
predicts
types that are statically unknown but likely, and inserts run-time type tests to verify its predictions. It
splits
calls, compiling a copy on each control path, optimized to the specific types on that path. Coupling these new techniques with compile-time message lookup, aggressive procedure inlining, and traditional optimizations has doubled the performance of dynamically-typed object-oriented languages.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software