Gradually structured data
Artículo
Open/ Download
Access note
Acceso abierto
Publication date
2021
Abstract
Dynamically-typed languages offer easy interaction with ad hoc data such as JSON and S-expressions; staticallytyped
languages offer powerful tools for working with structured data, notably algebraic datatypes, which are
a core feature of typed languages both functional and otherwise. Gradual typing aims to reconcile dynamic
and static typing smoothly. The gradual typing literature has extensively focused on the computational aspect
of types, such as type safety, effects, noninterference, or parametricity, but the application of graduality
to data structuring mechanisms has been much less explored. While row polymorphism and set-theoretic
types have been studied in the context of gradual typing, algebraic datatypes in particular have not, which
is surprising considering their wide use in practice. We develop, formalize, and prototype a novel approach
to gradually structured data with algebraic datatypes. Gradually structured data bridges the gap between
traditional algebraic datatypes and flexible data management mechanisms such as tagged data in dynamic
languages, or polymorphic variants in OCaml. We illustrate the key ideas of gradual algebraic datatypes
through the evolution of a small server application from dynamic to progressively more static checking,
formalize a core functional language with gradually structured data, and establish its metatheory, including
the gradual guarantees.
Patrocinador
ANID FONDECYT Regular Project 1190058
Millennium Science Initiative Program ICN17_002
Harvard University
ANID/Scholarship Program/Beca de doctorado nacional/2021 21210982
Indexation
Artículo de publícación WoS Artículo de publicación SCOPUS
Quote Item
ACM Program. Lang., Vol. 5, No. OOPSLA, Article 126.
Collections
The following license files are associated with this item: