Utilize este identificador para referenciar este registo: https://hdl.handle.net/1822/36107

TítuloTools and libraries to model and manipulate circular programs
Autor(es)Fernandes, João Paulo
Saraiva, João Alexandre
Palavras-chaveMultiple traversal algorithms
Circular programming
Intermediate data structures
Traversal scheduling
Data2007
EditoraACM
Resumo(s)This paper presents techniques to model circular lazy programs in a strict, purely functional setting. Circular lazy programs model any algorithm based on multiple traversals over a recursive data structure as a single traversal function. Such elegant and concise circular programs are defined in a (strict or lazy) functional language and they are transformed into efficient strict and deforested, multiple traversal programs by using attribute grammars-based techniques. Moreover, we use standard slicing techniques to slice such circular lazy programs. We have expressed these transformations as an Haskell library and two tools have been constructed: the HaCirctool that refactors Haskell lazy circular programs into strict ones, and the OCirctool that extends Ocaml with circular definitions allowing programmers to write circular programs in Ocaml notation, which are transformed into strict Ocaml programs before they are executed. The first benchmarks of the different implementations are presented and show that for algorithms relying on a large number of traversals the resulting strict, deforested programs are more efficient than the lazy ones, both in terms of runtime and memory consumption.
TipoArtigo em ata de conferência
URIhttps://hdl.handle.net/1822/36107
ISBN1595936203
DOI10.1145/1244381.1244399
Versão da editorahttp://dl.acm.org/citation.cfm?doid=1244381.1244399
Arbitragem científicayes
AcessoAcesso aberto
Aparece nas coleções:HASLab - Artigos em atas de conferências internacionais (texto completo)

Ficheiros deste registo:
Ficheiro TamanhoFormato 
1282.pdf345,89 kBAdobe PDFVer/Abrir

Partilhe no FacebookPartilhe no TwitterPartilhe no DeliciousPartilhe no LinkedInPartilhe no DiggAdicionar ao Google BookmarksPartilhe no MySpacePartilhe no Orkut
Exporte no formato BibTex mendeley Exporte no formato Endnote Adicione ao seu ORCID