Optimizing Direct Threaded Code By Selective Inlining (1998) [60 citations — 1 self]
Abstract:
Achieving good performance in bytecoded language interpreters is difficult without sacrificing both simplicity and portability. This is due to the complexity of dynamic translation ("just-in-time compilation") of bytecodes into native code, which is the mechanism employed universally by highperformance interpreters. We demonstrate that a few simple techniques make it possible to create highly-portable dynamic translators that can attain as much as 70% the performance of optimized C for certain numerical computations. Translators based on such techniques can offer respectable performance without sacrificing either the simplicity or portability of much slower "pure" bytecode interpreters. Keywords: bytecode interpretation, threaded code, inlining, dynamic translation, just-in-time compilation. 1 Introduction Bytecoded languages such as Smalltalk [Gol83], Caml [Ler97] and Java [Arn96, Lin97] offer significant engineering advantages over more conventional languages: higher levels of abst...
Citations
| 1138 | Smalltalk-80: The Language and Its Implementation – Goldberg, Robson - 1983 |
| 912 | The Java Virtual Machine Specification – Lindholm, Yellin |
| 706 | The Java Programming Language – Arnold, Gosling - 1996 |
| 108 | vcode: A retargetable, extensible, very fast dynamic code generation system – Engler - 1996 |
| 98 | Threaded code – Bell - 1973 |
| 74 | Optimizing an ANSI C interpreter with superoperators – Proebsting - 1995 |
| 16 | A portable Forth engine – Ertl - 1993 |
| 16 | BrouHaHa - A Portable Smalltalk Interpreter, in proceedings of OOPSLA'87, special issue – Miranda - 1987 |
| 10 | The Objective Caml system release 1.05 – Leroy - 1997 |
| 6 | Back to the Future: the Story of Squeak, a Usable Smalltalk Written – Ingalls, Kaehler, et al. - 1997 |
| 6 | private communication – Leroy - 1996 |
| 6 | Understanding Language – Moore - 1970 |
| 2 | personal communication – Miranda |
| 1 | Portable Fast Direct Threaded Code – Miranda |
| 1 | Building the Better Virtual CPU, Byte Magazine – Thompson - 1995 |

