Higher-order arity raising

John Hannan, Patrick Hicks

Research output: Contribution to conferencePaperpeer-review

9 Scopus citations

Abstract

Arity raising, also known as variable splitting or flattening, is the program optimization which transforms a function of one argument into a function of several arguments by decomposing the structure of the original one argument into individual components in that structure. This optimization eliminates the need for the structuring of the components and also allows more arguments to be passed in registers during a function call. We present a formal specification of arity raising for a higher-order functional language. This specification supports the general arity raising of functions, even for functions which are passed as arguments or returned as values. We define a practical algorithm, based on algorithm W, which implements arity raising, and we prove this algorithm sound with respect to the deductive system. These results provide a declarative framework for reasoning about arity raising and support a richer form of the transformation than is currently found in compilers for functional languages.

Original languageEnglish (US)
Pages27-38
Number of pages12
DOIs
StatePublished - 1998
EventProceedings of the 1998 3rd ACM SIGPLAN International Conference on Functional Programming, ICFP-98 - Baltimore, MD, USA
Duration: Sep 27 1998Sep 29 1998

Conference

ConferenceProceedings of the 1998 3rd ACM SIGPLAN International Conference on Functional Programming, ICFP-98
CityBaltimore, MD, USA
Period9/27/989/29/98

All Science Journal Classification (ASJC) codes

  • Software

Fingerprint Dive into the research topics of 'Higher-order arity raising'. Together they form a unique fingerprint.

Cite this