Blogs (9) >>
SPLASH 2016
Sun 30 October - Fri 4 November 2016 Amsterdam, Netherlands

First-class functions dramatically increase expressiveness,
at the expense of static guarantees.
In ALGOL or PASCAL, functions could be passed as arguments
but never escape their defining scope.
Therefore, function arguments could serve as temporary access
tokens or capabilities, enabling callees to perform some
action, but only for the duration of the call.
In modern languages, such programming patterns are
no longer available.

The central thrust of this paper is to re-introduce
second-class functions and other values alongside
first-class entities in modern languages.
We formalize second-class values with stack-bounded
lifetimes as an extension to simply-typed $\lambda$ calculus,
and for richer type systems such as F$_{<:}$ and systems
with path-dependent types.
We generalize the binary first- vs second-class
distinction to arbitrary privilege lattices, with the
underlying type lattice as a special case. In this setting,
abstract types naturally enable privilege parametricity.
We prove type soundness and lifetime properties in Coq.

We implement our system as an extension of Scala,
and present several case studies.
First, we modify the Scala Collections library and add
privilege annotations to all higher-order functions.
Privilege parametricity is key to retain the high degree
of code-reuse between sequential and parallel as well as
lazy and eager collections.
Second, we use scoped capabilities to introduce a model
of checked exceptions in the Scala library, with
only few changes to the code.
Third, we employ second-class capabilities for memory
safety in a region-based off-heap memory library.

Wed 2 Nov

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

13:30 - 15:10
Language Design and Programming Models IOOPSLA at Matterhorn 1
Chair(s): Roberto Ierusalimschy PUC-Rio
13:30
25m
Talk
Extensible Access Control with Authorization Contracts
OOPSLA
Scott Moore Harvard University, Christos Dimoulas Harvard University, Robby Findler Northwestern University, Matthew Flatt University of Utah, Stephen Chong Harvard University
DOI
13:55
25m
Talk
Gentrification Gone too Far? Affordable 2nd-Class Values for Fun and (Co-)EffectAEC
OOPSLA
Leo Osvald , Gregory Essertel , Xilun Wu Purdue University, Lilliam I Gonzalez Alayon Purdue University, Tiark Rompf Purdue University, USA
DOI
14:20
25m
Talk
Incremental Forest: A DSL for Efficiently Managing FilestoresAEC
OOPSLA
Jonathan DiLorenzo Cornell University, Richard Zhang University of Pennsylvania, Erin Menzies , Kathleen Fisher Tufts University, Nate Foster Cornell University
DOI
14:45
25m
Talk
LaCasa: Lightweight Affinity and Object Capabilities in Scala
OOPSLA
Philipp Haller KTH Royal Institute of Technology, Alex Loiko Google Stockholm, Sweden
DOI Pre-print