Guy L. Steele, Jr.

Summary

Guy L. Steele, Jr.,  Lambda: The Ultimate Declarative (1976)

“ This general scheme will produce much better code than a scheme which says that all LAMBDA expressions must, like the function FOO, take their arguments in certain registers.
Note too that no code whatsoever is generated for the variable bindings as such; the fact that we assign names to the results of the expressions (+ X Y) and (* Z W) rather than writing
(FOO 1 (* Z W) (+ X Y) )
makes no difference at all, which is as it should be.
Thus, compiler temporaries and simple user variables are treated on a completely equal basis.
”
Source: Wikisource

Guy L. Steele, Jr.,  Lambda: The Ultimate Declarative (1976)

“ Procedurally defined data structures may compile into code as good as would be expected for data defined by the more usual declarative means. Lambda-calculus-theoretic models of such constructs as GOTO, DO loops, call-by-name, etc. may be used directly as macros, the expansion of which may then compile into code as good as that produced by compilers which are designed especially to handle GOTO, DO, etc. The necessary characteristics of such a compiler designed according to this philosophy are discussed. Such a compiler is to be built in the near future as a testing ground for these ideas. ”
Source: Wikisource

Get perspective with Kwize: daily news enlightened by great literature