Write a Blog >>
GPCE 2019
Sun 20 - Fri 25 October 2019 Athens, Greece
co-located with SPLASH 2019

In modern runtime systems, memory layout calculations are hand-coded in low-level systems languages. The primitives in these languages are not powerful enough to describe a rich set of layouts, leading developers to rely on ad-hoc macros as well as numerous interrelated static constants and other boilerplate code. A memory management policy must also carefully orchestrate all the different address calculations to modify memory cooperatively, a task ill-suited to the low-level systems languages at hand which do not provide the proper safety mechanisms.

In this paper we introduce Floorplan, a declarative language for specifying memory layouts at a high level. Constraints formerly implemented by describing how to compute locations are, in Floorplan, defined declaratively using explicit layout constructs. The challenge here was to discover layout constructs capable of sufficiently and soundly enabling the automatic generation of address calculations, including code deemed unsafe according to the memory safety paradigm of Rust. Floorplan is implemented as a compiler for generating a Rust library from a Floorplan specification. In a case study of an existing implementation of the immix garbage collection algorithm, Floorplan eliminates 55 out of the 63 unsafe lines of code: 100% of the unsafe lines of code pertaining to memory safety.

Tue 22 Oct

gpce-2019-papers
11:00 - 12:30: GPCE 2019 - Domain-specific languages and modeling at Ground floor conference room
Chair(s): Ulrik SchultzUniversity of Southern Denmark
gpce-2019-papers11:00 - 11:30
Talk
Michael NiekeTU Braunschweig, Germany, Adrian HoffTU Braunschweig, Christoph SeidlTechnische Universit├Ąt Braunschweig
gpce-2019-papers11:30 - 12:00
Talk
Karl CronburgTufts University, Sam GuyerTufts University
DOI Pre-print
gpce-2019-papers12:00 - 12:20
Talk
Amir ShaikhhaUniversity of Oxford, Vojin JovanovicOracle Labs, Christoph E. KochEPFL