Logo do repositório
 
Publicação

Refinement kinds: type-safe programming with practical type-level computation

dc.contributor.authorCaires, Luís Manuel Marques da Costa
dc.contributor.authorToninho, Bernardo Parente Coutinho Fernandes
dc.contributor.institutionNOVALincs
dc.contributor.pblACM - Association for Computing Machinery
dc.date.accessioned2020-11-16T23:58:58Z
dc.date.available2020-11-16T23:58:58Z
dc.date.issued2019-10-10
dc.descriptionUID/CEC/04516/2019 PTDC/EEICTP/4293/2014
dc.description.abstractThis work introduces the novel concept of kind refinement, which we develop in the context of an explicitly polymorphic ML-like language with type-level computation. Just as type refinements embed rich specifications by means of comprehension principles expressed by predicates over values in the type domain, kind refinements provide rich kind specifications by means of predicates over types in the kind domain. By leveraging our powerful refinement kind discipline, types in our language are not just used to statically classify program expressions and values, but also conveniently manipulated as tree-like data structures, with their kinds refined by logical constraints on such structures. Remarkably, the resulting typing and kinding disciplines allow for powerful forms of type reflection, ad-hoc polymorphism and type-directed meta-programming, which are often found in modern software development, but not typically expressible in a type-safe manner in general purpose languages. We validate our approach both formally and pragmatically by establishing the standard meta-theoretical results of type safety and via a prototype implementation of a kind checker, type checker and interpreter for our language.en
dc.description.versionpublishersversion
dc.description.versionpublished
dc.format.extent30
dc.format.extent488734
dc.identifier.doi10.1145/3360557
dc.identifier.issn2475-1421
dc.identifier.otherPURE: 20071720
dc.identifier.otherPURE UUID: 8494e099-ce99-4cc6-81e0-ad9446adbb7b
dc.identifier.otherORCID: /0000-0002-0746-7514/work/69939583
dc.identifier.urihttp://hdl.handle.net/10362/107255
dc.language.isoeng
dc.peerreviewedyes
dc.titleRefinement kinds: type-safe programming with practical type-level computationen
dc.typejournal article
degois.publication.issueOOPSLA
degois.publication.titleProceedings of the ACM on Programming Languages
degois.publication.volume3
dspace.entity.typePublication
rcaap.rightsopenAccess

Ficheiros

Principais
A mostrar 1 - 1 de 1
A carregar...
Miniatura
Nome:
3360557.pdf
Tamanho:
477.28 KB
Formato:
Adobe Portable Document Format