2001 · 23 citations · 9 references
ComputingComputer ScienceOperating SystemsProgramming LanguagesSystems ProgrammingCpu SchedulingKernel ProgrammingApplication-level PerformanceDispatch LatencyPolymorphic TypesScheduling OverheadVirtual Machine Performance Optimization
Mainstream object-oriented languages, such as C++ and Java, provide only a restricted form of polymorphic methods, namely single-receiver dispatch. In common programming situations, programmers must work-around this limitation. We detail how to extend the Java Virtual Machine to support multiple-dispatch and examine the complications that Java imposes on multiple-dispatch in practice. Our technique avoids changes to the Java programming language itself, maintains source-code and library compatibility, and isolates the performance penalty and semantic changes of multiple-dispatch to the program sections which use it. We have micro-benchmark and applicationlevel performance results for a dynamic Most Specic Applicable (MSA) dispatcher, two table-based dispatchers (Mul- tiple Row Displacement (MRD) and Single Receiver Projections (SRP)), and a tuned SRP dispatcher. Our generalpurpose technique provides smaller dispatch latency than equivalent programmer-written double-dispatch code. 1...
9
Dynamic class loading in the Java virtual machine
Gilad Bracha · 1998 · 385 citations · Full text
Curtis Clifton, Gary T. Leavens, Craig Chambers et al. · 2000 · 283 citations · Full text
Kim B. Bruce, Luca Cardelli, Giuseppe Castagna et al. · Theory and Practice of Object Systems · 1995 · 197 citations
John Boyland, Giuseppe Castagna · 1997 · 68 citations
Efficient multiple and predicated dispatching
Craig Chambers, Weimin Chen · 1999 · 66 citations