Blogs (61) >>
ECOOP and ISSTA
Sun 15 - Sat 21 July 2018 Amsterdam, Netherlands
Tue 17 Jul 2018 12:05 - 12:30 at Hanoi - Session 1

Virtual machines, besides the interpreter and just-in-time compiler optimization facilities, also include a set of primitive operations that the client language can use. Some of these are essential and cannot be performed in any other way. Others are optional: they can be expressed in the client language but are often implemented in the virtual machine to improve performance when the just-in-time compiler is unable to do so (start-up performance, speculative optimizations not implemented or not mature enough, etc.).

In a hybrid runtime, where code is executed by an interpreter and a just-in-time compiler, the implementor can choose to implement optional primitives in the client language, in the virtual machine implementation language (typically C or C++), or on top of the just-in-time compiler back-end. This raises the question of the maintenance and performance trade-offs of the different alternatives. As a case study, we implemented the String comparison optional primitive in each case. This paper describes the different implementations, discusses the maintenance cost of each of them and evaluates for different string sizes the execution time in Cog, a Smalltalk virtual machine.

Tue 17 Jul

ICOOOLPS-2018-papers
11:00 - 12:30: ICOOOLPS - Session 1 at Hanoi
ICOOOLPS-2018-papers11:00 - 12:00
Talk
ICOOOLPS-2018-papers12:05 - 12:30
Research paper
Sophie KalebaINRIA, Clément BéraRMOD - INRIA Lille Nord Europe, Stéphane Ducasse INRIA Lille