Abstract
A problem common to many powerful programming languages arises when one has to determine what values to assign to free variables in functions. Different implementational approaches which attempt to solve the problem are considered. The discussion concentrates on LISP implementations and points out why most current LISP systems are not as general as the original LISP 1.5 system. Readers not familiar with LISP should be able to read this paper without difficulty since we have tried to couch the argument in ALGOL-like terms as much as possible.
- Daniel G. Bobrow and Daniel L. Murphy, "Structure of a LISP System Using Two-level Storage", CACM, vol.10, no.3, March 1967, pp. 155--159. (Note especially the footnote on p.158.) Google ScholarDigital Library
- J. McCarthy et al., LISP 1.5 Programmer's Manual, MIT Press, 1965. (Note especially pp.70--71). Google ScholarDigital Library
- P. J. Landin, "The Next 700 Programming Languages", CACM, vol.9, no.3, March 1966, pp.157--165. Google ScholarDigital Library
- P. J. Landin, "A λ-Calculus Approach", in Advances in Programming and Non-Numerical Computation, Pegamon Press, 1966, pp.77--141.Google Scholar
- J. Weizenbaum, "Recovery of Reentrant List Structures in SLIP", CACM, vol.12, no.7, July 1969, pp.370--372. Google ScholarDigital Library
- J. Weizenbaum, "The FUNARG Problem Explained", unpublished memorandum, MIT, 1968.Google Scholar
Index Terms
- The function of FUNCTION in LISP or why the FUNARG problem should be called the environment problem
Recommendations
A proposed solution to the FUNARG problem
This paper is a response to Joel Moses's recent paper, "The Function of FUNCTION in LISP, or ... ". We give some examples where the FUNARG feature of LISP 1. 5 is relative useful, and suggest a computationally efficient implementation of FUNARG. The ...
Optimiizing Static Scope Lisp by Repetitive Interpretation of Recursive Function Calls
This paper presents some recent results in interpreter optimization. The techniques of shallow binding and repetitive interpretation of tail recursive functions are adapted to Lisp with static scoping as the binding method for-all identifiers. Then a ...
A Foreign Function Interface for Pallene
SBLP '22: Proceedings of the XXVI Brazilian Symposium on Programming LanguagesPallene is a statically typed subset of the Lua programming language, designed to act as a system-language counterpart to Lua’s scripting, and used to write lower-level libraries and extension modules for Lua. In this sense, Pallene is a companion ...
Comments