| Efficient dynamic dispatch without virtual function tables: the SmallEiffel compiler |
| Full text |
Pdf
(2.10 MB)
|
| Source
|
Conference on Object Oriented Programming Systems Languages and Applications
archive
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
table of contents
Atlanta, Georgia, United States
Pages: 125 - 141
Year of Publication: 1997
ISBN:0-89791-908-4
Also published in ...
|
|
Authors
|
|
Olivier Zendra
|
Centre de Recherche en Informatique de Nancy, Campus Scientifique, Bâtiment LORIA, 54506 Vandoeuvre-lès-Nancy BP 239 Cedex, France
|
|
Dominique Colnet
|
Centre de Recherche en Informatique de Nancy, Campus Scientifique, Bâtiment LORIA, 54506 Vandoeuvre-lès-Nancy BP 239 Cedex, France
|
|
Suzanne Collin
|
Centre de Recherche en Informatique de Nancy, Campus Scientifique, Bâtiment LORIA, 54506 Vandoeuvre-lès-Nancy BP 239 Cedex, France
|
|
| Sponsor |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 6, Downloads (12 Months): 31, Citation Count: 14
|
|
|
ABSTRACT
SmallEiffel is an Eiffel compiler which uses a fast simple type inference mechanism to remove most late binding calls, replacing them by static bindings. Starting from the system's entry point, it compiles only statically living code, which saves compiling and then removing dead code. As the whole system is analyzed at compile time, multiple inheritance and genericity do not cause any overhead.SmallEiffel features a coding scheme which eliminates the need for virtual function tables. Dynamic dispatch is implemented without any array access but uses a simple static binary branch code. We show that this implementation makes it possible to use modern hardware very efficiently. It also allows us to inline more calls even when dynamic dispatch is required. Some more dispatch sites are removed after the type inference algorithm has been performed, if the different branches of a dispatch site lead to the same code.The advantage of this approach is that it greatly speeds up execution time and considerably decreases the amount of generated code.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
Age95
|
|
| |
Age96
|
|
 |
AH95
|
Ole Agesen , Urs Hölzle, Type feedback vs. concrete type inference: a comparison of optimization techniques for object-oriented languages, Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications, p.91-107, October 15-19, 1995, Austin, Texas, United States
|
| |
AH96
|
|
| |
APS93
|
|
| |
AU77
|
Alfred V. Ah0 and Jeffrey D. Ullman. Principles o/Compiler Design. Addison-Wesley, eading~ Massachusetts, 1977. ~ '
|
 |
BS96
|
David F. Bacon , Peter F. Sweeney, Fast static analysis of C++ virtual function calls, Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.324-341, October 06-10, 1996, San Jose, California, United States
|
| |
CCZ97
|
|
 |
CF91
|
|
 |
CG94a
|
|
| |
CG94b
|
|
 |
CU89
|
|
 |
DDG+96
|
Jeffrey Dean , Greg DeFouw , David Grove , Vassily Litvinov , Craig Chambers, Vortex: an optimizing compiler for object-oriented languages, Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.83-100, October 06-10, 1996, San Jose, California, United States
|
| |
DGC95
|
|
 |
DH96
|
Karel Driesen , Urs Hölzle, The direct cost of virtual function calls in C++, Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.306-323, October 06-10, 1996, San Jose, California, United States
|
 |
Dha91
|
|
| |
DHV95
|
|
 |
DMM96
|
Amer Diwan , J. Eliot B. Moss , Kathryn S. McKinley, Simple and effective analysis of statically-typed object-oriented programs, Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.292-305, October 06-10, 1996, San Jose, California, United States
|
 |
DS84
|
|
 |
EST95
|
Jonathan Eifrig , Scott Smith , Valery Trifonov, Sound polymorphic type inference for objects, Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications, p.169-184, October 15-19, 1995, Austin, Texas, United States
|
 |
GJ90
|
|
| |
GR83
|
|
| |
HCU91
|
|
| |
HU95
|
|
| |
JGS96
|
|
 |
KRS94
|
Jens Knoop , Oliver Rüthing , Bernhard Steffen, Partial dead code elimination, Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation, p.147-158, June 20-24, 1994, Orlando, Florida, United States
|
| |
Mey88
|
|
| |
Mey94
|
|
| |
Mil78
|
R. Milner. A Theory of Type Polymorphism in Programming. In Journal of Computer and System Sciences, pages 348-375, 1978.
|
| |
MNC+91
|
G. Masini, A. Napoli, D. Colnet, D. L6onard, and K. Tombre. Object Oriented Languages. Academic Press Limited, London, 1991.
|
 |
PC94
|
John Plevyak , Andrew A. Chien, Precise concrete type inference for object-oriented languages, Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications, p.324-340, October 23-28, 1994, Portland, Oregon, United States
|
 |
PS91
|
Jens Palsberg , Michael I. Schwartzbach, Object-oriented type inference, Conference proceedings on Object-oriented programming systems, languages, and applications, p.146-161, October 06-11, 1991, Phoenix, Arizona, United States
|
| |
PS92
|
|
 |
Ros88
|
|
 |
ST84
|
|
| |
Str86
|
|
 |
Suz81
|
|
| |
UP87
|
|
 |
US87
|
David Ungar , Randall B. Smith, Self: The power of simplicity, Conference proceedings on Object-oriented programming systems, languages and applications, p.227-242, October 04-08, 1987, Orlando, Florida, United States
|
| |
VHU92
|
|
|