Compiling functional languages for von Neumann machines
暂无分享,去创建一个
Functional programming languages based on the lambda calculus provide a powerful programming tool. Much of this power derives from the ability to use higher order functions, that means functions having either functional arguments or a functional result. However, attempts to implement such higher order functions without any restrictions have always been expensive, both in storage and time (e.g. [Bo/We]).
ALGOL-like languages only have functions with functional arguments (e.g. ALGOL 60 or, with some mode restrictions, PASCAL) and a run time stack can be used for managing function and procedure calls. Using Dijkstra's “display-technique” we can obtain a simple and efficient implementation.
[1] Joel Moses. The function of FUNCTION in LISP or why the FUNARG problem should be called the environment problem , 1970, SIGS.
[2] Wolfram-Manfred Lippe,et al. Semantics for LISP without Reference to an Interpreter , 1980, Symposium on Programming.
[3] Daniel G. Bobrow,et al. A model and stack implementation of multiple environments , 1973, CACM.