DLS 2016
Tue 1 Nov 2016 Amsterdam, Netherlands
co-located with SPLASH 2016
Tue 1 Nov 2016 14:20 - 14:45 at Matterhorn 1 - Session 3 Chair(s): Laurence Tratt

Compiling MATLAB—a dynamic, array-based language—to JavaScript
is an attractive proposal: the output code can be deployed on a
platform used by billions and can leverage the countless hours that
have gone into making JavaScript JIT engines fast. But before that
can happen, the original MATLAB code must be properly translated,
making sure to bridge the semantic gaps of the two languages.

An important area where MATLAB and JavaScript differ is in their
handling of arrays: for example, in MATLAB, arrays are one-indexed
and writing at an index beyond the end of an array extends it; in
JavaScript, typed arrays are zero-indexed and writing out of bounds
is a no-op. A MATLAB-to-JavaScript compiler must address these
mismatches. Another salient and pervasive difference between the
two languages is the assignment of arrays to variables: in MATLAB,
this operation has value semantics, while in JavaScript is has
reference semantics.

In this paper, we present MatJuice — a source-to-source,
ahead-of-time compiler back-end for MATLAB — and how it deals
efficiently with this last issue. We present an intra-procedural
data-flow analysis to track where each array variable may point to
and which variables are possibly aliased. We also present the
associated copy insertion transformation that uses the points-to
information to insert explicit copies when necessary. The resulting
JavaScript program respects the MATLAB value semantics and we show
that it performs fewer run-time copies than some alternative
approaches.

Tue 1 Nov

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

13:30 - 15:10
Session 3DLS at Matterhorn 1
Chair(s): Laurence Tratt King's College London
13:30
25m
Talk
Parallel Virtual Machines with RPython
DLS
Remigius Meier ETH Zurich, Switzerland, Armin Rigo PyPy.org, Switzerland, Thomas Gross ETH Zurich
DOI
13:55
25m
Talk
Building Efficient and Highly Run-Time Adaptable Virtual Machines
DLS
Guido Chari University of Buenos Aires, Argentina, Diego Garbervetsky University of Buenos Aires, Argentina, Stefan Marr Johannes Kepler University Linz
DOI Pre-print
14:20
25m
Talk
Efficiently Implementing the Copy Semantics of MATLAB's Arrays in JavaScript
DLS
Vincent Foley-Bourgon McGill University, Canada, Laurie Hendren McGill University, Canada
DOI
14:45
25m
Talk
Optimizing R Language Execution via Aggressive Speculation
DLS
Lukas Stadler Oracle Labs, Austria, Adam Welc Oracle Labs, USA, Christian Humer Oracle Labs, Switzerland, Mick Jordan Oracle Labs, USA
DOI