Lightweight fusion by fixed point promotion

Atsushi Ohori, Isao Sasano

Research output: Chapter in Book/Report/Conference proceedingConference contribution

25 Citations (Scopus)

Abstract

This paper proposes a lightweight fusion method for general recursive function definitions. Compared with existing proposals, our method has several significant practical features: it works for general recursive functions on general algebraic data types; it does not produce extra runtime overhea (except for possible code size increase due to the success of fusion); and it is readily incorporated in standard inlining optimization. This is achieved by extending the ordinary inlining process with a new fusion law that transforms a term of the form f o (fixgx.E) to a new fixed point term fixhx.E′ by promoting the function f through the fixed point operator. This is a sound syntactic transformation rule that is not sensitive to the types of f and g. This property makes our method applicable to wide range of functions including those with multi-parameters in both curried and uncurried forms. Although this method does not guarantee any form of completeness, it fuses typical examples discussed in the literature and others that involve accumulating parameters, either in the tt foldl-like specific forms or in general recursive forms, without any additional machinery. In order to substantiate our claim, we have implemented our method in a compiler. Although it is preliminary, it demonstrates practical feasibility of this method.

Original languageEnglish
Title of host publicationConference Record of the Annual ACM Symposium on Principles of Programming Languages
Pages143-154
Number of pages12
DOIs
Publication statusPublished - 2007
Externally publishedYes
Event34th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages - Nice
Duration: 2007 Jan 172007 Jan 19

Other

Other34th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
CityNice
Period07/1/1707/1/19

Fingerprint

Recursive functions
Fusion reactions
Electric fuses
Syntactics
Machinery
Mathematical operators
Acoustic waves

Keywords

  • Fixed point
  • Fusion
  • Inlining

ASJC Scopus subject areas

  • Software

Cite this

Ohori, A., & Sasano, I. (2007). Lightweight fusion by fixed point promotion. In Conference Record of the Annual ACM Symposium on Principles of Programming Languages (pp. 143-154) https://doi.org/10.1145/1190216.1190241

Lightweight fusion by fixed point promotion. / Ohori, Atsushi; Sasano, Isao.

Conference Record of the Annual ACM Symposium on Principles of Programming Languages. 2007. p. 143-154.

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Ohori, A & Sasano, I 2007, Lightweight fusion by fixed point promotion. in Conference Record of the Annual ACM Symposium on Principles of Programming Languages. pp. 143-154, 34th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Nice, 07/1/17. https://doi.org/10.1145/1190216.1190241
Ohori A, Sasano I. Lightweight fusion by fixed point promotion. In Conference Record of the Annual ACM Symposium on Principles of Programming Languages. 2007. p. 143-154 https://doi.org/10.1145/1190216.1190241
Ohori, Atsushi ; Sasano, Isao. / Lightweight fusion by fixed point promotion. Conference Record of the Annual ACM Symposium on Principles of Programming Languages. 2007. pp. 143-154
@inproceedings{16c3999ddaec4f35b0b97c99985df579,
title = "Lightweight fusion by fixed point promotion",
abstract = "This paper proposes a lightweight fusion method for general recursive function definitions. Compared with existing proposals, our method has several significant practical features: it works for general recursive functions on general algebraic data types; it does not produce extra runtime overhea (except for possible code size increase due to the success of fusion); and it is readily incorporated in standard inlining optimization. This is achieved by extending the ordinary inlining process with a new fusion law that transforms a term of the form f o (fixgx.E) to a new fixed point term fixhx.E′ by promoting the function f through the fixed point operator. This is a sound syntactic transformation rule that is not sensitive to the types of f and g. This property makes our method applicable to wide range of functions including those with multi-parameters in both curried and uncurried forms. Although this method does not guarantee any form of completeness, it fuses typical examples discussed in the literature and others that involve accumulating parameters, either in the tt foldl-like specific forms or in general recursive forms, without any additional machinery. In order to substantiate our claim, we have implemented our method in a compiler. Although it is preliminary, it demonstrates practical feasibility of this method.",
keywords = "Fixed point, Fusion, Inlining",
author = "Atsushi Ohori and Isao Sasano",
year = "2007",
doi = "10.1145/1190216.1190241",
language = "English",
isbn = "1595935754",
pages = "143--154",
booktitle = "Conference Record of the Annual ACM Symposium on Principles of Programming Languages",

}

TY - GEN

T1 - Lightweight fusion by fixed point promotion

AU - Ohori, Atsushi

AU - Sasano, Isao

PY - 2007

Y1 - 2007

N2 - This paper proposes a lightweight fusion method for general recursive function definitions. Compared with existing proposals, our method has several significant practical features: it works for general recursive functions on general algebraic data types; it does not produce extra runtime overhea (except for possible code size increase due to the success of fusion); and it is readily incorporated in standard inlining optimization. This is achieved by extending the ordinary inlining process with a new fusion law that transforms a term of the form f o (fixgx.E) to a new fixed point term fixhx.E′ by promoting the function f through the fixed point operator. This is a sound syntactic transformation rule that is not sensitive to the types of f and g. This property makes our method applicable to wide range of functions including those with multi-parameters in both curried and uncurried forms. Although this method does not guarantee any form of completeness, it fuses typical examples discussed in the literature and others that involve accumulating parameters, either in the tt foldl-like specific forms or in general recursive forms, without any additional machinery. In order to substantiate our claim, we have implemented our method in a compiler. Although it is preliminary, it demonstrates practical feasibility of this method.

AB - This paper proposes a lightweight fusion method for general recursive function definitions. Compared with existing proposals, our method has several significant practical features: it works for general recursive functions on general algebraic data types; it does not produce extra runtime overhea (except for possible code size increase due to the success of fusion); and it is readily incorporated in standard inlining optimization. This is achieved by extending the ordinary inlining process with a new fusion law that transforms a term of the form f o (fixgx.E) to a new fixed point term fixhx.E′ by promoting the function f through the fixed point operator. This is a sound syntactic transformation rule that is not sensitive to the types of f and g. This property makes our method applicable to wide range of functions including those with multi-parameters in both curried and uncurried forms. Although this method does not guarantee any form of completeness, it fuses typical examples discussed in the literature and others that involve accumulating parameters, either in the tt foldl-like specific forms or in general recursive forms, without any additional machinery. In order to substantiate our claim, we have implemented our method in a compiler. Although it is preliminary, it demonstrates practical feasibility of this method.

KW - Fixed point

KW - Fusion

KW - Inlining

UR - http://www.scopus.com/inward/record.url?scp=34548219002&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=34548219002&partnerID=8YFLogxK

U2 - 10.1145/1190216.1190241

DO - 10.1145/1190216.1190241

M3 - Conference contribution

AN - SCOPUS:34548219002

SN - 1595935754

SN - 9781595935755

SP - 143

EP - 154

BT - Conference Record of the Annual ACM Symposium on Principles of Programming Languages

ER -