Recursion patterns and time-analysis

Detalhes bibliográficos
Autor(a) principal: Barbosa, Manuel
Data de Publicação: 2005
Outros Autores: Cunha, Alcino, Pinto, Jorge Sousa
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/1822/2762
Resumo: This paper explores some ideas concerning the time-analysis of functional programs defined by instantiating typical recursion patterns such as folds, unfolds, and hylomorphisms. The concepts in this paper are illustrated through a rich set of examples in the Haskell programming language. We concentrate on unfolds and folds (also known as anamorphisms and catamorphisms respectively) of recursively defined types, as well as the more general hylomorphism pattern. For the latter, we use as case-studies two famous sorting algorithms, mergesort and quicksort. Even though time analysis is not compositional, we argue that splitting functions to expose the explicit construction of the recursion tree and its later consumption helps with this analysis.
id RCAP_c4d88b0f22576f5a2598fc817b7e6269
oai_identifier_str oai:repositorium.sdum.uminho.pt:1822/2762
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str
spelling Recursion patterns and time-analysisFunctional programmingTime analysisRecursion patternsScience & TechnologyThis paper explores some ideas concerning the time-analysis of functional programs defined by instantiating typical recursion patterns such as folds, unfolds, and hylomorphisms. The concepts in this paper are illustrated through a rich set of examples in the Haskell programming language. We concentrate on unfolds and folds (also known as anamorphisms and catamorphisms respectively) of recursively defined types, as well as the more general hylomorphism pattern. For the latter, we use as case-studies two famous sorting algorithms, mergesort and quicksort. Even though time analysis is not compositional, we argue that splitting functions to expose the explicit construction of the recursion tree and its later consumption helps with this analysis.Fundação do Ministério de Ciência e Tecnologia (FCT) - POSI/CHS/44304/2002.Association for Computing MachineryUniversidade do MinhoBarbosa, ManuelCunha, AlcinoPinto, Jorge Sousa2005-052005-05-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/articleapplication/pdfhttp://hdl.handle.net/1822/2762eng"ACM Sigplan Notices". ISSN 0362-1340. 40:5 (2005) 45-54.0362-134010.1145/1071221.1071226info: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:RCAAP2023-07-21T12:25:21ZPortal AgregadorONG
dc.title.none.fl_str_mv Recursion patterns and time-analysis
title Recursion patterns and time-analysis
spellingShingle Recursion patterns and time-analysis
Barbosa, Manuel
Functional programming
Time analysis
Recursion patterns
Science & Technology
title_short Recursion patterns and time-analysis
title_full Recursion patterns and time-analysis
title_fullStr Recursion patterns and time-analysis
title_full_unstemmed Recursion patterns and time-analysis
title_sort Recursion patterns and time-analysis
author Barbosa, Manuel
author_facet Barbosa, Manuel
Cunha, Alcino
Pinto, Jorge Sousa
author_role author
author2 Cunha, Alcino
Pinto, Jorge Sousa
author2_role author
author
dc.contributor.none.fl_str_mv Universidade do Minho
dc.contributor.author.fl_str_mv Barbosa, Manuel
Cunha, Alcino
Pinto, Jorge Sousa
dc.subject.por.fl_str_mv Functional programming
Time analysis
Recursion patterns
Science & Technology
topic Functional programming
Time analysis
Recursion patterns
Science & Technology
description This paper explores some ideas concerning the time-analysis of functional programs defined by instantiating typical recursion patterns such as folds, unfolds, and hylomorphisms. The concepts in this paper are illustrated through a rich set of examples in the Haskell programming language. We concentrate on unfolds and folds (also known as anamorphisms and catamorphisms respectively) of recursively defined types, as well as the more general hylomorphism pattern. For the latter, we use as case-studies two famous sorting algorithms, mergesort and quicksort. Even though time analysis is not compositional, we argue that splitting functions to expose the explicit construction of the recursion tree and its later consumption helps with this analysis.
publishDate 2005
dc.date.none.fl_str_mv 2005-05
2005-05-01T00:00:00Z
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/1822/2762
url http://hdl.handle.net/1822/2762
dc.language.iso.fl_str_mv eng
language eng
dc.relation.none.fl_str_mv "ACM Sigplan Notices". ISSN 0362-1340. 40:5 (2005) 45-54.
0362-1340
10.1145/1071221.1071226
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Association for Computing Machinery
publisher.none.fl_str_mv Association for Computing Machinery
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
repository.mail.fl_str_mv
_version_ 1777303753411526656