Manipulating accumulative functions by swapping call-time and return-time computations

Akimasa Morihata, Kazuhiko Kakehi, Zhenjiang Hu, Masato Takeichi

研究成果: Article査読

1 被引用数 (Scopus)

抄録

Functional languages are suitable for transformational developments of programs. However, accumulative functions, or in particular tail-recursive functions, are known to be less suitable for manipulation. In this paper, we propose a program transformation named "IO swapping" that swaps call-time and return-time computations. It moves computations in accumulative parameters to results and thereby enables interesting transformations. We demonstrate effectiveness of IO swapping by several applications: deforestation, higher order removal, program inversion, and manipulation of circular programs.

本文言語English
ページ(範囲)275-299
ページ数25
ジャーナルJournal of Functional Programming
22
3
DOI
出版ステータスPublished - 2012 5月

ASJC Scopus subject areas

  • ソフトウェア

フィンガープリント

「Manipulating accumulative functions by swapping call-time and return-time computations」の研究トピックを掘り下げます。これらがまとまってユニークなフィンガープリントを構成します。

引用スタイル