Besides its use as a compilation technique for higher-order functional languages, defunctionalization has also been studied (particularly by Olivier Danvy and collaborators) as a way of mechanically transforming interpreters into abstract machines.
Besides its use as a compilation technique for higher-order functional languages, defunctionalization is similar to the usage of function objects as alternatives to closures. It has also been studied (particularly by Olivier Danvy and collaborators) as a way of mechanically transforming interpreters into abstract machines.