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.

Try in SPARQL Jump to: Statements Referenced by

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

Referenced by (1)

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

Haskell Curry hasConceptNamedAfter Curry (program transformation)