Abstract
We propose that the Common Lisp standard be extended by adding to the language specification a short program, itself written in Common Lisp, to implement the EVAL function. We call this Common EVAL. The interpreters for every correct implementation of Common Lisp would be required to match the semantics of Common EVAL on valid Common Lisp expressions. It should treat other expressions as errors or as implementation dependent extensions.
There are three cogent reasons for including a Common EVAL in the standard: First, since EVAL definitively specifies the behavior of Lisp programs, Common EVAL would insure uniformity of program semantics across implementations. Second, it would aid validation efforts, since the behavior of a particular implementation could always be compared to the behavior of Common EVAL. Third, it would facilitate the creation of debuggers and other program-manipulating programs that could be ported across Common Lisp implementations.
- Linda deMichiel and Richard Gabriel. The Common Lisp Object System. In ECOOP-87: European Conference on Object-Oriented Programming. Springer Verlag, Paris, France, June, 1987. Google ScholarDigital Library
- Henry Lieberman. Steps Toward Better Debugging Tools for Lisp. In Proceedings of the Fourth ACM Conference on Lisp and Functional Programming. Austin, Texas, USA, August, 1984. Google ScholarDigital Library
- Henry Lieberman. Reversible Object-Oriented Interpreters. In ECOOP-87: European Conference on Object-Oriented Programming. Springer Verlag, Paris, France, June, 1987. Google ScholarDigital Library
- John McCarthy. Lisp 1.5 Programmer's Manual. MIT Press, Cambridge, Mass., 1963. Google ScholarDigital Library
- Guy Steele (and a cast of thousands). Common Lisp: The Language. Digital Press, Maynard, Mass., 1985. Google ScholarDigital Library
Recommendations
Foreign functions and common Lisp
The language Common Lisp is a standard dialect of Lisp which has been implemented on a wide range of machines by a variety of commercial and academic groups. One serious flaw in the Common Lisp standard, at least to many Common Lisp users on "general-...
What we eval in the shadows: a large-scale study of eval in R programs
Most dynamic languages allow users to turn text into code using various functions, often named <tt>eval</tt>, with language-dependent semantics. The widespread use of these reflective functions hinders static analysis and prevents compilers from ...
Comments