Curry (program transformation)

E839550

Curry (program transformation) is a program transformation technique in functional programming, named after logician Haskell Curry, that systematically converts higher-order functions into equivalent first-order forms.

All labels observed (1)

Label Occurrences
Curry (program transformation) canonical 1

How this entity was disambiguated

Statements (38)

Predicate Object
instanceOf program transformation technique ⓘ
technique in functional programming ⓘ
aimsTo convert higher-order functions to first-order functions ⓘ
appliesTo higher-order functions ⓘ
assumes source language supports higher-order functions ⓘ
basedOn ideas from combinatory logic ⓘ
representation of functions without variables ⓘ
benefit can improve performance on first-order execution platforms ⓘ
enables use of first-order model checkers ⓘ
enables use of first-order theorem provers ⓘ
category program analysis and transformation ⓘ
effect reduces need for closures at runtime ⓘ
removes higher-order values from runtime representation ⓘ
field functional programming ⓘ
programming languages ⓘ
goal facilitate reasoning about programs using first-order techniques ⓘ
make higher-order programs executable on first-order abstract machines ⓘ
influencedBy work of Haskell Curry on combinatory logic ⓘ
input higher-order program ⓘ
namedAfter Haskell Curry NERFINISHED ⓘ
output first-order program ⓘ
preserves observable behavior of programs ⓘ
program semantics ⓘ
relatedTo closure conversion ⓘ
defunctionalization ⓘ
lambda lifting ⓘ
requires systematic encoding of function spaces ⓘ
resultsIn first-order representations of functions ⓘ
targetLanguage first-order language ⓘ
typicalStep introducing explicit data structures for function values ⓘ
replacing function arguments with first-order encodings ⓘ
usedFor eliminating higher-order functions ⓘ
enabling first-order optimization techniques ⓘ
simplifying program analysis ⓘ
usedIn compilation of functional languages ⓘ
implementation of higher-order features ⓘ
usedInContext compilers for functional languages ⓘ
formal methods for program verification ⓘ

How these facts were elicited

Referenced by (1)

Full triples — surface form annotated when it differs from this entity's canonical label.

Haskell Curry → hasConceptNamedAfter → Curry (program transformation) ⓘ