MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Type Feedback vs. Concrete Type Inference: A Comparison of Optimization Techniques for Object-Oriented Languages (1995) [28 citations — 2 self]

by Ole Agesen ,  Urs Hölzle
In Proceedings of the 1995 ACM Conference on Object Oriented Programming Systems, Languages, and Applications
Add To MetaCart

Abstract:

Two promising optimization techniques for object-oriented languages are type feedback (dynamic) and concrete type inference (static). We directly compare the two techniques, evaluating their effectiveness on a suite of 23 SELF programs while keeping other factors constant. Our results show that both systems inline >95% of all sends and deliver similar overall performance with one exception: SELF's automatic coercion of machine integers to arbitrary-precision integers upon overflow confounds type inference and slows down arithmetic-intensive benchmarks. We discuss several other issues which, given the comparable run-time performance, may influence the choice between type feedback and type inference.

Citations

481 Self: The power of simplicity – Ungar, Smith - 1987
276 Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis – Dean, Grove, et al. - 1995
202 Efficient implementation of the Smalltalk-80 system – Deutsch, Schiffman - 1984
195 Object-oriented type inference – Palsberg, Schwartzbach - 1991
155 Precise concrete type inference for object-oriented languages – Plevyak, Chien - 1994
145 An efficient implementation of self - a dynamically-typed object-oriented language based on prototypes – Chambers, Ungar, et al. - 1989
135 Optimizing dynamically-dispatched calls with run-time type feedback – Holze, Ungar - 1994
116 Iterative Type Analysis and Extended Message Splitting: Optimizing Dynamically-Typed Object-Oriented – Chambers, Ungar - 1990
91 The Cartesian Product Algorithm: Simple and Precise Type Inference of Parametric Polymorphism – Agesen - 1995
78 Quantifying Behavioral Differences Between C and C++ Programs – Calder, Grunwald, et al. - 1994
77 Type Inference of SELF: Analysis of Objects with Dynamic and Multiple Inheritance – Agesen, Palsberg, et al. - 1993
71 Making type inference practical – Oxhj, Palsberg, et al. - 1992
48 TS: An Optimizing Compiler for Smalltalk – Johnson, Graver, et al. - 1988
47 Inferring Types in Smalltalk – Suzuki - 1981
46 Obtaining Sequential Efficiency for Concurrent Object-Oriented Languages – Plevyak, Zhang, et al. - 1995
43 Constraint-Based Type Inference and Parametric Polymorphism – Agesen - 1994
33 Compile-time Analysis of Object-Oriented Programs – Vitek, Horspool, et al. - 1992
31 Sifting Out the Gold: Delivering Compact Applications from an ObjectOriented Exploratory Programming Environment – Agesen, Ungar - 1994
30 Compilation and delayed evaluation in APL – Guibas, Wyatt - 1978
28 Static Type Determination and Aliasing for C – Pande, Ryder - 1994
18 The Dynamic Incremental Compiler of APL\3000 – Johnston - 1979
17 Measurement and application of dynamic receiver class distributions – Garrett, Dean, et al. - 1994
16 Optimizing Dynamically-Typed Object-Oriented Languages with Polymorphic Inline Caches – Hlzle, Chambers, et al. - 1991
15 Adaptive Optimization for SELF: Reconciling High Performance with Exploratory Programming – Hlzle - 1994
15 Design and Construction of Flexible and Efficient Interactive Programming Systems – Mitchell - 1970
10 A dynamic incremental compiler for an interpretative language – Dyke - 1977
6 A Third-Generation SELF Implementation: Reconciling Responsiveness with Performance – Hlzle, Ungar - 1994
5 Efficient Cloning to Eliminate Dynamic Dispatch in ObjectOriented Languages. Unpublished report – Plevyak, Chien - 1994
2 Precise Concrete Type Inference and its Use in Program Optimization. Unpublished report – Plevyak, Chien - 1994