Publications

Stats

View publication

Title Abstracting Gradual References
Authors Matías Toro, Éric Tanter
Publication date October 2020
Abstract Gradual typing is an effective approach to integrate
static and
dynamic typing, which supports the smooth transition between both extremes
via the imprecision of type annotations. Gradual typing has been applied in
many scenarios such as objects, subtyping, effects, ownership, typestates,
information-flow typing, parametric polymorphism, etc. In particular, the
combination of gradual typing and mutable references has been explored by
different authors, giving rise to four different semantics-invariant,
guarded, monotonic and permissive references. These semantics were
specially
crafted to reflect different design decisions with respect to precision and
efficiency tradeoffs. Since then, progress has been made in the formulation
of methodologies to systematically derive gradual counterparts of
statically-typed languages, but these have not been applied to study
mutable
references.
\n\n
In this article, we explore how the Abstracting Gradual Typing (AGT)
methodology, which has been shown to be effective in a variety of settings,
applies to mutable references. Starting from a standard statically-typed
language with references, we systematically derive with AGT a novel gradual
language, called Lref. We establish the properties of Lref; in particular,
it is the first gradual language with mutable references that is proven to
satisfy the gradual guarantee. We then compare with the main four existing
approaches to gradual references, and show that the application of AGT does
justify one of the proposed semantics: we formally prove that the treatment
of references in Lref corresponds to the guarded semantics, by presenting a
bisimilation with the coercion semantics of Herman et al. In the process,
we
uncover that any direct application of AGT yields a gradual language that
is
not space-efficient. We consequently adjust the dynamic semantics of Lref
to
recover space efficiency. We then show how to extend Lref to support both
monotonic and permissive references as well. Finally, we provide the first
proof of the dynamic gradual guarantee for monotonic references. As a
result, this paper sheds further light on the design space of gradual
languages with mutable references and contributes to deepening the
understanding of the AGT methodology.
Downloaded 7 times
Pages 1-65
Volume 197
Journal name Science of Computer Programming
Publisher Elsevier Science (Amsterdam, The Netherlands)
PDF View PDF
Reference URL View reference page