Metamorphisms: Streaming Representation−Changers

<em>Unfolds</em> generate data structures, and <em>folds</em> consume them. A <em>hylomorphism</em> is a fold after an unfold, generating then consuming a <em>virtual data structure</em>. A <em>metamorphism</em> is the opposite composition,...

Full description

Bibliographic Details
Main Author: Gibbons, J
Format: Journal article
Published: 2007
_version_ 1826306337023197184
author Gibbons, J
author_facet Gibbons, J
author_sort Gibbons, J
collection OXFORD
description <em>Unfolds</em> generate data structures, and <em>folds</em> consume them. A <em>hylomorphism</em> is a fold after an unfold, generating then consuming a <em>virtual data structure</em>. A <em>metamorphism</em> is the opposite composition, an unfold after a fold; typically, it will convert from one data representation to another. In general, metamorphisms are less interesting than hylomorphisms: there is no automatic <em>fusion</em> to <em>deforest</em> the intermediate virtual data structure. However, under certain conditions fusion is possible: some of the work of the unfold can be done before all of the work of the fold is complete. This permits <em>streaming metamorphisms</em>, and among other things allows conversion of <em>infinite data representations</em>. We present the theory of metamorphisms and outline some examples.
first_indexed 2024-03-07T06:46:25Z
format Journal article
id oxford-uuid:faff3bb5-aa0d-4d64-b16c-6b323c20f1f8
institution University of Oxford
last_indexed 2024-03-07T06:46:25Z
publishDate 2007
record_format dspace
spelling oxford-uuid:faff3bb5-aa0d-4d64-b16c-6b323c20f1f82022-03-27T13:10:33ZMetamorphisms: Streaming Representation−ChangersJournal articlehttp://purl.org/coar/resource_type/c_dcae04bcuuid:faff3bb5-aa0d-4d64-b16c-6b323c20f1f8Department of Computer Science2007Gibbons, J<em>Unfolds</em> generate data structures, and <em>folds</em> consume them. A <em>hylomorphism</em> is a fold after an unfold, generating then consuming a <em>virtual data structure</em>. A <em>metamorphism</em> is the opposite composition, an unfold after a fold; typically, it will convert from one data representation to another. In general, metamorphisms are less interesting than hylomorphisms: there is no automatic <em>fusion</em> to <em>deforest</em> the intermediate virtual data structure. However, under certain conditions fusion is possible: some of the work of the unfold can be done before all of the work of the fold is complete. This permits <em>streaming metamorphisms</em>, and among other things allows conversion of <em>infinite data representations</em>. We present the theory of metamorphisms and outline some examples.
spellingShingle Gibbons, J
Metamorphisms: Streaming Representation−Changers
title Metamorphisms: Streaming Representation−Changers
title_full Metamorphisms: Streaming Representation−Changers
title_fullStr Metamorphisms: Streaming Representation−Changers
title_full_unstemmed Metamorphisms: Streaming Representation−Changers
title_short Metamorphisms: Streaming Representation−Changers
title_sort metamorphisms streaming representation changers
work_keys_str_mv AT gibbonsj metamorphismsstreamingrepresentationchangers