EFFICIENT DYNAMIC DISPATCH WITHOUT VIRTUAL FUNCTION TABLES - THE SMALLEIFFEL COMPILER

Citation
O. Zendra et al., EFFICIENT DYNAMIC DISPATCH WITHOUT VIRTUAL FUNCTION TABLES - THE SMALLEIFFEL COMPILER, ACM SIGPLAN NOTICES, 32(10), 1997, pp. 125-141
Citations number
40
Categorie Soggetti
Computer Sciences","Computer Science Software Graphycs Programming
Journal title
Volume
32
Issue
10
Year of publication
1997
Pages
125 - 141
Database
ISI
SICI code
Abstract
SmallEiffel is an Eiffel compiler which uses a fast simple type infere nce mechanism to remove most late binding calls, replacing them by sta tic 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 inheri tance 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 si mple static binary branch code. We show that this implementation makes it possible to use modern hardware very efficiently. It also allows u s to inline more calls even when dynamic dispatch is required. Some mo re dispatch sites are removed after the type inference algorithm has b een performed, if the different branches of a dispatch site lead to th e same code. The advantage of this approach is that it greatly speeds up execution time and considerably decreases the amount of generated c ode.