Show simple item record

Authordc.contributor.authorLabrada Deniz, Elizabeth
Authordc.contributor.authorToro Ipinza, Matías
Authordc.contributor.authorTanter, Eric Pierre
Authordc.contributor.authorDevriese, Dominique
Admission datedc.date.accessioned2022-06-23T16:25:11Z
Available datedc.date.available2022-06-23T16:25:11Z
Publication datedc.date.issued2022
Cita de ítemdc.identifier.citationProc. ACM Program. Lang., Vol. 6, No. OOPSLA1, Article 70es_ES
Identifierdc.identifier.other10.1145/3527314
Identifierdc.identifier.urihttps://repositorio.uchile.cl/handle/2250/186213
Abstractdc.description.abstractGraduality and parametricity have proven to be extremely challenging notions to bring together. Intuitively, enforcing parametricity gradually requires possibly sealing values in order to detect violations of uniform behavior. Toro et al. (2019) argue that the two notions are incompatible in the context of System F, where sealing is transparently driven by potentially imprecise type information, while New et al. (2020) reconcile both properties at the cost of abandoning the syntax of System F and requiring user-provided sealing annotations that are not subject to graduality guarantees. Furthermore, all current proposals rely on a global form of dynamic sealing in order to enforce parametric behavior at runtime, which weakens parametric reasoning and breaks equivalences in the static language. Based on the observation that the tension between graduality and parametricity comes from the early commitment to seal values based on type information, we propose plausible sealing as a new intermediate language mechanism that allows postponing such decisions to runtime. We propose an intermediate language for gradual parametricity, Funky, which supports plausible sealing in a simplified setting where polymorphism is restricted to instantiations with base and variable types. We prove that Funky satisfies both parametricity and graduality, mechanizing key lemmas in Agda. Additionally, we avoid global dynamic sealing and instead propose a novel lexically-scoped form of sealing realized using a representation of evidence inspired by the category of spans. As a consequence, Funky satisfies a standard formulation of parametricity that does not break System F equivalences. In order to show the practicality of plausible sealing, we describe a translation from Funk, a source language without explicit sealing, to Funky, that takes care of inserting plausible sealing forms. We establish graduality of Funk, subject to a restriction on type applications, and explain the source-level parametric reasoning it supports. Finally, we provide an interactive prototype along with illustrative examples both novel and from the literature.es_ES
Patrocinadordc.description.sponsorshipANID FONDECYT, Chile 1190058 3200583es_ES
Lenguagedc.language.isoenes_ES
Publisherdc.publisherAssoc Computing Machineryes_ES
Type of licensedc.rightsAttribution-NonCommercial-NoDerivs 3.0 United States*
Link to Licensedc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/3.0/us/*
Sourcedc.sourceProceedings of The ACM on Programming Languages-PACMPLes_ES
Keywordsdc.subjectGradual typinges_ES
Keywordsdc.subjectPolymorphismes_ES
Keywordsdc.subjectParametricityes_ES
Títulodc.titlePlausible sealing for gradual parametricityes_ES
Document typedc.typeArtículo de revistaes_ES
dc.description.versiondc.description.versionVersión publicada - versión final del editores_ES
dcterms.accessRightsdcterms.accessRightsAcceso abiertoes_ES
Catalogueruchile.catalogadorcrbes_ES
Indexationuchile.indexArtículo de publícación WoSes_ES


Files in this item

Icon

This item appears in the following Collection(s)

Show simple item record

Attribution-NonCommercial-NoDerivs 3.0 United States
Except where otherwise noted, this item's license is described as Attribution-NonCommercial-NoDerivs 3.0 United States