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

Detalhes bibliográficos
Autor(a) principal: Caires, Luís Manuel Marques da Costa
Data de Publicação: 2019
Outros Autores: Toninho, Bernardo Parente Coutinho Fernandes
Tipo de documento: Artigo
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/10362/107255
Resumo: 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ório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 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ório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2024-03-11T04:51:56Zoai:run.unl.pt:10362/107255Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-20T03:40:54.075281Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
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ório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799138022680166400