Write a Blog >>
PLDI 2020
Mon 15 - Fri 19 June 2020
Wed 17 Jun 2020 13:40 - 14:00 at PLDI Research Papers live stream - Language Implementation Chair(s): Chris Seaton

The efficient implementation of function calls and non-local control transfers is a critical part of modern language implementations and is important in the implementation of everything from recursion, higher-order functions, concurrency and coroutines, to task-based parallelism. In a compiler, these features can be supported by a variety of mechanisms, including call stacks, segmented stacks, and heap-allocated continuation closures.

An implementor of a high-level language with advanced control features might ask the question ``what is the best choice for my implementation?'' Unfortunately, the current literature does not provide much guidance, since previous studies suffer from various flaws in methodology and are outdated for modern hardware. In the absence of recent, well-normalized measurements and a holistic overview of their implementation specifics, the path of least resistance when choosing a strategy is to trust folklore, but the folklore is also suspect.

This paper attempts to remedy this situation by providing an ``apples-to-apples'' comparison of six different approaches to implementing call stacks and continuations. This comparison uses the same source language, compiler pipeline, LLVM-backend, and runtime system, with the only differences being those required by the differences in implementation strategy. We compare the implementation challenges of the different approaches, their sequential performance, and their suitability to support advanced control mechanisms, including supporting heavily threaded code. In addition to the comparison of implementation strategies, the paper's contributions also include a number of useful implementation techniques that we discovered along the way.

Wed 17 Jun
Times are displayed in time zone: Pacific Time (US & Canada) change

13:00 - 13:20
Compiler and Runtime Support for Continuation Marks
PLDI Research Papers
Matthew FlattUniversity of Utah, USA, R. Kent DybvigCisco Systems, USA
13:20 - 13:40
Crafty: Efficient, HTM-Compatible Persistent Transactions
PLDI Research Papers
Kaan GençOhio State University, USA, Michael D. BondOhio State University, USA, Guoqing Harry XuUniversity of California at Los Angeles, USA
13:40 - 14:00
From Folklore to Fact: Comparing Implementations of Stacks and Continuations
PLDI Research Papers
Kavon FarvardinUniversity of Chicago, USA, John ReppyUniversity of Chicago, USA