Matches in SemOpenAlex for { <https://semopenalex.org/work/W808017860> ?p ?o ?g. }
- W808017860 abstract "In functional programming it is common practice to build modular programs by composing functions where the intermediate values are data structures such as lists or arrays. A desirable optimisation for programs written in this style is to fuse the composed functions and thereby eliminate the intermediate data structures and their associated runtime costs. Stream fusion is one such fusion optimisation that can eliminate intermediate data structures, including lists, arrays and other abstract data types that can be viewed as coinductive sequences. The fusion transformation can be applied fully automatically by a general purpose optimising compiler. The stream fusion technique itself has been presented previously and many practical implementations exist. The primary contributions of this thesis address the issues of correctness and optimisation: whether the transformation is correct and whether the transformation is an optimisation. Proofs of shortcut fusion laws have typically relied on parametricity by making use of free theorems. Unfortunately, most functional programming languages have semantics for which classical free theorems do not hold unconditionally; additional side conditions are required. In this thesis we take an approach based not on parametricity but on data abstraction. Using this approach we prove the correctness of stream fusion for lists -- encompassing the fusion system as a whole, not merely the central fusion law. We generalise this proof to give a framework for proving the correctness of stream fusion for any abstract data type that can be viewed as a coinductive sequence and give as an instance of the framework, a simple model of arrays. The framework requires that each fusible function satisfies a simple data abstraction property. We give proofs of this property for several standard list functions. Previous empirical work has demonstrated that stream fusion can be an optimisation in many cases. In this thesis we take a more universal view and consider the issue of optimisation independently of any particular implementation or compiler. We make a semi-formal argument that, subject to certain syntactic conditions on fusible functions, stream fusion on lists is strictly an improvement, as measured by the number of allocations of data constructors. This detailed analysis of how stream fusion works may be of use in writing fusible functions or in developing new implementations of stream fusion." @default.
- W808017860 created "2016-06-24" @default.
- W808017860 creator A5064250078 @default.
- W808017860 date "2011-01-01" @default.
- W808017860 modified "2023-09-28" @default.
- W808017860 title "Stream fusion : practical shortcut fusion for coinductive sequence types" @default.
- W808017860 cites W113285063 @default.
- W808017860 cites W1480685649 @default.
- W808017860 cites W1480753098 @default.
- W808017860 cites W1554430589 @default.
- W808017860 cites W1556536463 @default.
- W808017860 cites W1564538666 @default.
- W808017860 cites W1576954726 @default.
- W808017860 cites W1963928257 @default.
- W808017860 cites W1975580206 @default.
- W808017860 cites W1980759357 @default.
- W808017860 cites W1990403418 @default.
- W808017860 cites W2006232221 @default.
- W808017860 cites W2020024606 @default.
- W808017860 cites W2043416466 @default.
- W808017860 cites W2048706733 @default.
- W808017860 cites W2077381627 @default.
- W808017860 cites W2089241138 @default.
- W808017860 cites W2101565274 @default.
- W808017860 cites W2105931791 @default.
- W808017860 cites W2117818027 @default.
- W808017860 cites W2118165414 @default.
- W808017860 cites W2144037748 @default.
- W808017860 cites W2159873760 @default.
- W808017860 cites W2161773169 @default.
- W808017860 cites W2166083622 @default.
- W808017860 cites W2208923056 @default.
- W808017860 cites W2295174177 @default.
- W808017860 cites W2914543322 @default.
- W808017860 cites W84930537 @default.
- W808017860 hasPublicationYear "2011" @default.
- W808017860 type Work @default.
- W808017860 sameAs 808017860 @default.
- W808017860 citedByCount "2" @default.
- W808017860 countsByYear W8080178602015 @default.
- W808017860 crossrefType "dissertation" @default.
- W808017860 hasAuthorship W808017860A5064250078 @default.
- W808017860 hasConcept C101468663 @default.
- W808017860 hasConcept C104317684 @default.
- W808017860 hasConcept C108710211 @default.
- W808017860 hasConcept C156325763 @default.
- W808017860 hasConcept C168773036 @default.
- W808017860 hasConcept C169590947 @default.
- W808017860 hasConcept C184337299 @default.
- W808017860 hasConcept C185592680 @default.
- W808017860 hasConcept C199360897 @default.
- W808017860 hasConcept C204241405 @default.
- W808017860 hasConcept C2524010 @default.
- W808017860 hasConcept C2778112365 @default.
- W808017860 hasConcept C2778361913 @default.
- W808017860 hasConcept C2779478453 @default.
- W808017860 hasConcept C33923547 @default.
- W808017860 hasConcept C40220748 @default.
- W808017860 hasConcept C41008148 @default.
- W808017860 hasConcept C42383842 @default.
- W808017860 hasConcept C54355233 @default.
- W808017860 hasConcept C55439883 @default.
- W808017860 hasConcept C55493867 @default.
- W808017860 hasConcept C80444323 @default.
- W808017860 hasConcept C86803240 @default.
- W808017860 hasConceptScore W808017860C101468663 @default.
- W808017860 hasConceptScore W808017860C104317684 @default.
- W808017860 hasConceptScore W808017860C108710211 @default.
- W808017860 hasConceptScore W808017860C156325763 @default.
- W808017860 hasConceptScore W808017860C168773036 @default.
- W808017860 hasConceptScore W808017860C169590947 @default.
- W808017860 hasConceptScore W808017860C184337299 @default.
- W808017860 hasConceptScore W808017860C185592680 @default.
- W808017860 hasConceptScore W808017860C199360897 @default.
- W808017860 hasConceptScore W808017860C204241405 @default.
- W808017860 hasConceptScore W808017860C2524010 @default.
- W808017860 hasConceptScore W808017860C2778112365 @default.
- W808017860 hasConceptScore W808017860C2778361913 @default.
- W808017860 hasConceptScore W808017860C2779478453 @default.
- W808017860 hasConceptScore W808017860C33923547 @default.
- W808017860 hasConceptScore W808017860C40220748 @default.
- W808017860 hasConceptScore W808017860C41008148 @default.
- W808017860 hasConceptScore W808017860C42383842 @default.
- W808017860 hasConceptScore W808017860C54355233 @default.
- W808017860 hasConceptScore W808017860C55439883 @default.
- W808017860 hasConceptScore W808017860C55493867 @default.
- W808017860 hasConceptScore W808017860C80444323 @default.
- W808017860 hasConceptScore W808017860C86803240 @default.
- W808017860 hasLocation W8080178601 @default.
- W808017860 hasOpenAccess W808017860 @default.
- W808017860 hasPrimaryLocation W8080178601 @default.
- W808017860 hasRelatedWork W1430647328 @default.
- W808017860 hasRelatedWork W1490422498 @default.
- W808017860 hasRelatedWork W1516211868 @default.
- W808017860 hasRelatedWork W1966981171 @default.
- W808017860 hasRelatedWork W1968455077 @default.
- W808017860 hasRelatedWork W1973678011 @default.
- W808017860 hasRelatedWork W1975580206 @default.
- W808017860 hasRelatedWork W2056325339 @default.
- W808017860 hasRelatedWork W2081124914 @default.