[Ecls-list] Latest fixes

Gabriel Dos Reis gdr at integrable-solutions.net
Sun Nov 15 19:27:05 UTC 2009


On Sun, Nov 15, 2009 at 12:12 PM, Juan Jose Garcia-Ripoll
<juanjose.garciaripoll at googlemail.com> wrote:
> On Sun, Nov 15, 2009 at 5:10 PM, Gabriel Dos Reis
> <gdr at integrable-solutions.net> wrote:
>> On Sun, Nov 15, 2009 at 4:07 AM, Juan Jose Garcia-Ripoll
>> <juanjose.garciaripoll at googlemail.com> wrote:
>>> * APPEND must not copy the last argument.
>>>
>>> * MULTIPLE-VALUE-BIND is replaced with a LET form when it only defines
>>> a single variable. This leads to faster and simpler code.
>>
>> I have a related question.  What is the "cost" of using LET forms as
>> opposed to applying LAMBDAs?
>>
>> (The reason I'm asking is that I believe CCL turns LET forms into LAMBDA forms).
>> I was under the impression that LET forms were more efficient than application
>> of LAMBDAs but, I would actually welcome a clarification.
>
> CCL and SBCL probably used a compilation technique called continuation
> passing, or something like that, where every form is basically turned

Yes, I'm familiar with the CPS compilation technique.

> into a concatenated series of functions that receive an environment
> and performs a computation. In this format applying LAMBDAs is natural
> (it is the underlying representation), and LET is not.
>
> It think it is a cultural preference. There are many code
> transformations that have been developed for that representation and
> which are now being shown to exist, for instance, for SSA
> representations.

yes, there are several papers including that of Andrew Appel.

>  I personally find continuation passing formalism
> unintuitive and prefer plain code graphs, but I am just an old timer
> and have not received the proper education in that field.

You're in good company :-)

-- Gaby




More information about the ecl-devel mailing list