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
T3 - Conference Record of the Annual ACM Symposium on Principles of Programming Languages
SP - 143
EP - 154
BT - Conference Record of POPL 2007
T2 - 34th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Y2 - 17 January 2007 through 19 January 2007
ER -