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 application-level performance results for a dynamic Most Specific Applicable (MSA) dispatcher, two table-based dispatchers (Multiple Row Displacement (MRD) and Single Receiver Projections (SRP)), and a tuned SRP dispatcher. Our general-purpose technique provides smaller dispatch latency than equivalent programmer-written double-dispatch code.
主流的面向对象语言,例如C ++和Java,仅提供受限形式的多态方法,即单接收器分派。在常见的编程情况下,程序员必须变通解决此限制。我们将详细介绍如何扩展Java虚拟机以支持多重调度,并在实践中检查Java施加于多重调度的复杂性。我们的技术避免了对Java编程语言本身的更改,保持了源代码和库的兼容性,并将性能损失和多重调度的语义更改隔离到了使用它的程序部分。我们获得了动态最具体适用 I>(MSA)调度程序,两个基于表的调度程序(多行位移 I>(MRD)和< I> Single Receiver Projections I>(SRP))和经过调整的SRP调度程序。我们的通用技术提供的调度延迟比等效的程序员编写的双调度代码要短。 P>
机译:虚拟海报会话(短视频)
机译:感谢您邀请我参加派对:虚拟海报会话作为在断开连接时连接的方式
机译:评估Java本机接口(JNI):利用现有的本机代码,库和线程来运行Java虚拟机
机译:Java虚拟机中的多调度:设计和实现
机译:Java虚拟机中的多调度:设计,实现和评估。
机译:感谢您邀请我参加派对:虚拟海报会话作为在断开连接时连接的方式
机译:感谢您邀请我参加派对:虚拟海报会话作为在断开连接时连接的方式