[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Date: Thu, 12 May 88 21:36:45 PDT
From: Jon L White <email@example.com>
The very question as to whether such a declaration would be at all useful,
as well as the degree of its utility, depends on how an implementation does
function-to-function interfaces. Few people in the common lisp community
have been desirous of imposing particular Lisp-system implementation
techniques into the portable standard; thus it's not surprising that few
are interested in standardizing on implementation specific tricks.
Perhaps "block compilation" is a better line of pursuit since it has some
implications for "modularity" as well as potential for code efficienty.
I am getting the sneaking suspicion that what these various
proposals boil down to is the desire for super-compilation, a
subject that has been much on my mind lately.
A simple example would be:
(defun foo (bar)
(mapcar #'bletch bar))
where we know that bletch is purely functional, that is, it's
output is soley determined by it's arguments, and has no
We could then compile (third (foo mumble)) into (bletch (third
mumble)) which simply takes advantage of our "understanding"
of properties of foo and bletch.
This sort of thing seems to be an active research topic, and I
don't think it should have a bearing on a CL standard at this
For a reference: see "The Concept of a Supercompiler",
Turchin, Valentin F. in ACM Transaciont on Programming
Languages and Systems, July 1986, V8 N3.
Brad Miller U. Rochester Comp Sci Dept.