Shortcut fusion rules for the derivation of circular and higher-order monadic programs

Functional programs often combine separate parts using intermediate data structures for communicating results. Programs so defined are modular, easier to understand and maintain, but suffer from inefficiencies due to the generation of those gluing data structures. To eliminate such redundant data st...

Full description

Bibliographic Details
Main Author: Pardo, Alberto (author)
Other Authors: Fernandes, João Paulo (author), Saraiva, João Alexandre (author)
Format: conferencePaper
Language:eng
Published: 2009
Subjects:
Online Access:http://hdl.handle.net/1822/36154
Country:Portugal
Oai:oai:repositorium.sdum.uminho.pt:1822/36154
Description
Summary:Functional programs often combine separate parts using intermediate data structures for communicating results. Programs so defined are modular, easier to understand and maintain, but suffer from inefficiencies due to the generation of those gluing data structures. To eliminate such redundant data structures, some program transformation techniques have been proposed. One such technique is shortcut fusion, and has been studied in the context of both pure and monadic functional programs. In this paper, we study several shortcut fusion extensions, so that, alternatively, circular or higher-order programs are derived. These extensions are also provided for effect-free programs and monadic ones. Our work results in a set of generic calculation rules, that are widely applicable, and whose correctness is formally established.