Show simple item record

Authordc.contributor.authorToro Ipinza, Matías 
Authordc.contributor.authorTanter, Éric Pierre 
Admission datedc.date.accessioned2021-01-04T19:58:57Z
Available datedc.date.available2021-01-04T19:58:57Z
Publication datedc.date.issued2020
Cita de ítemdc.identifier.citationScience of Computer Programming 197 (2020) 102496es_ES
Identifierdc.identifier.other10.1016/j.taap.2020.115104 10.1016/j.scico.2020.102496
Identifierdc.identifier.urihttps://repositorio.uchile.cl/handle/2250/178178
Abstractdc.description.abstractGradual 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. 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 lambda((REF) over tilde). We establish the properties of lambda((REF) over tilde); in particular, it is the first gradual language with mutable references that is proven to satisfy the gradual guarantee. We then compare lambda((REF) over tilde) 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 lambda((REF) over tilde) 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 lambda((REF) over tilde) to recover space efficiency. We then show how to extend lambda((REF) over tilde) 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.es_ES
Patrocinadordc.description.sponsorshipComisión Nacional de Investigación Científica y Tecnológica (CONICYT) CONICYT FONDECYT 1190058 3200583es_ES
Lenguagedc.language.isoenes_ES
Publisherdc.publisherElsevieres_ES
Type of licensedc.rightsAttribution 3.0 Chile*
Link to Licensedc.rights.urihttp://creativecommons.org/licenses/by/3.0/cl/*
Sourcedc.sourceScience of Computer Programminges_ES
Keywordsdc.subjectGradual typinges_ES
Keywordsdc.subjectMutable referenceses_ES
Keywordsdc.subjectAbstract interpretationes_ES
Títulodc.titleAbstracting gradual referenceses_ES
Document typedc.typeArtículo de revista
dcterms.accessRightsdcterms.accessRightsAcceso Abierto
Catalogueruchile.catalogadorctces_ES
Indexationuchile.indexArtículo de publicación ISIes_ES


Files in this item

Icon

This item appears in the following Collection(s)

Show simple item record

Attribution 3.0 Chile
Except where otherwise noted, this item's license is described as Attribution 3.0 Chile