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

Bibliographic Details
Main Author: Caires, Luís Manuel Marques da Costa
Publication Date: 2019
Other Authors: Toninho, Bernardo Parente Coutinho Fernandes
Format: Article
Language: eng
Source: Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
Download full: http://hdl.handle.net/10362/107255
Summary: UID/CEC/04516/2019 PTDC/EEICTP/4293/2014
id RCAP_b8cbd244fa9ed0dbd6e989005ca73acf
oai_identifier_str oai:run.unl.pt:10362/107255
network_acronym_str RCAP
network_name_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository_id_str https://opendoar.ac.uk/repository/7160
spelling Refinement kinds: type-safe programming with practical type-level computationUID/CEC/04516/2019 PTDC/EEICTP/4293/2014This 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.NOVALincsRUNCaires, Luís Manuel Marques da CostaToninho, Bernardo Parente Coutinho Fernandes2020-11-16T23:58:58Z2019-10-102019-10-10T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/article30application/pdfhttp://hdl.handle.net/10362/107255eng2475-1421PURE: 20071720https://doi.org/10.1145/3360557info:eu-repo/semantics/openAccessreponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiainstacron:RCAAP2024-05-22T17:48:45Zoai:run.unl.pt:10362/107255Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-28T17:19:51.304684Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiafalse
dc.title.none.fl_str_mv Refinement kinds: type-safe programming with practical type-level computation
title Refinement kinds: type-safe programming with practical type-level computation
spellingShingle Refinement kinds: type-safe programming with practical type-level computation
Caires, Luís Manuel Marques da Costa
title_short Refinement kinds: type-safe programming with practical type-level computation
title_full Refinement kinds: type-safe programming with practical type-level computation
title_fullStr Refinement kinds: type-safe programming with practical type-level computation
title_full_unstemmed Refinement kinds: type-safe programming with practical type-level computation
title_sort Refinement kinds: type-safe programming with practical type-level computation
author Caires, Luís Manuel Marques da Costa
author_facet Caires, Luís Manuel Marques da Costa
Toninho, Bernardo Parente Coutinho Fernandes
author_role author
author2 Toninho, Bernardo Parente Coutinho Fernandes
author2_role author
dc.contributor.none.fl_str_mv NOVALincs
RUN
dc.contributor.author.fl_str_mv Caires, Luís Manuel Marques da Costa
Toninho, Bernardo Parente Coutinho Fernandes
description UID/CEC/04516/2019 PTDC/EEICTP/4293/2014
publishDate 2019
dc.date.none.fl_str_mv 2019-10-10
2019-10-10T00:00:00Z
2020-11-16T23:58:58Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/article
format article
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10362/107255
url http://hdl.handle.net/10362/107255
dc.language.iso.fl_str_mv eng
language eng
dc.relation.none.fl_str_mv 2475-1421
PURE: 20071720
https://doi.org/10.1145/3360557
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv 30
application/pdf
dc.source.none.fl_str_mv reponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron:RCAAP
instname_str FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron_str RCAAP
institution RCAAP
reponame_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
collection Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository.name.fl_str_mv Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
repository.mail.fl_str_mv info@rcaap.pt
_version_ 1833596617082535936