From: Tamas Papp
Subject: introduction to partial evaluation
Date: 
Message-ID: <876455fs9j.fsf@pu100877.student.princeton.edu>
Hi,

I have read a few tutorials on partial evaluation, and I found the
concept interesting, and potentially useful for my work.  However, to
implement it I need to learn more about it (I don't have a CS
background).

I wonder if the experts on this list could recommend tutorials or
articles on partial evaluation which are

- focused on number-crunching applications
- implemented in Common Lisp
- provide a good introduction

Thanks,

Tamas

From: Pascal Costanza
Subject: Re: introduction to partial evaluation
Date: 
Message-ID: <5enisgF399bjsU1@mid.individual.net>
Tamas Papp wrote:
> Hi,
> 
> I have read a few tutorials on partial evaluation, and I found the
> concept interesting, and potentially useful for my work.  However, to
> implement it I need to learn more about it (I don't have a CS
> background).
> 
> I wonder if the experts on this list could recommend tutorials or
> articles on partial evaluation which are
> 
> - focused on number-crunching applications
> - implemented in Common Lisp
> - provide a good introduction

If you don't get an answer here, try google. The terms "Common Lisp" and 
"partial evaluation" seems to yield at least one useful result.


Pascal


-- 
My website: http://p-cos.net
Common Lisp Document Repository: http://cdr.eurolisp.org
Closer to MOP & ContextL: http://common-lisp.net/project/closer/
From: Thomas F. Burdick
Subject: Re: introduction to partial evaluation
Date: 
Message-ID: <1183283790.808862.318630@o61g2000hsh.googlegroups.com>
On Jun 30, 4:09 pm, Tamas Papp <······@gmail.com> wrote:
> Hi,
>
> I have read a few tutorials on partial evaluation, and I found the
> concept interesting, and potentially useful for my work.  However, to
> implement it I need to learn more about it (I don't have a CS
> background).
>
> I wonder if the experts on this list could recommend tutorials or
> articles on partial evaluation which are
>
> - focused on number-crunching applications
> - implemented in Common Lisp
> - provide a good introduction

You'll have better luck looking for partial evaluation in Scheme.
There's quite a bit of overlap between implementing a partial
evaluation system and implementing an evaluator, so Scheme is an
easier target.  That's not to say you shouldn't be able to implement
something yourself in CL, particularly if you limit your PE support to
a manageable subset of the language.
From: Pascal Costanza
Subject: Re: introduction to partial evaluation
Date: 
Message-ID: <5epd5vF39c04lU1@mid.individual.net>
Thomas F. Burdick wrote:
> On Jun 30, 4:09 pm, Tamas Papp <······@gmail.com> wrote:
>> Hi,
>>
>> I have read a few tutorials on partial evaluation, and I found the
>> concept interesting, and potentially useful for my work.  However, to
>> implement it I need to learn more about it (I don't have a CS
>> background).
>>
>> I wonder if the experts on this list could recommend tutorials or
>> articles on partial evaluation which are
>>
>> - focused on number-crunching applications
>> - implemented in Common Lisp
>> - provide a good introduction
> 
> You'll have better luck looking for partial evaluation in Scheme.
> There's quite a bit of overlap between implementing a partial
> evaluation system and implementing an evaluator, so Scheme is an
> easier target.  That's not to say you shouldn't be able to implement
> something yourself in CL, particularly if you limit your PE support to
> a manageable subset of the language.

Jeffrey Mark Siskind has a partial evaluator for Common Lisp at 
http://cobweb.ecn.purdue.edu/~qobi/software.html

(This doesn't invalidate your remarks, it's just an additional note.)


Pascal

-- 
My website: http://p-cos.net
Common Lisp Document Repository: http://cdr.eurolisp.org
Closer to MOP & ContextL: http://common-lisp.net/project/closer/
From: Tamas Papp
Subject: Re: introduction to partial evaluation
Date: 
Message-ID: <87abugyvvh.fsf@pu100877.student.princeton.edu>
Pascal Costanza <··@p-cos.net> writes:

> Thomas F. Burdick wrote:
>>
>> You'll have better luck looking for partial evaluation in Scheme.
>> There's quite a bit of overlap between implementing a partial
>> evaluation system and implementing an evaluator, so Scheme is an
>> easier target.  That's not to say you shouldn't be able to implement
>> something yourself in CL, particularly if you limit your PE support to
>> a manageable subset of the language.

I just need basic arithmetic, so I might implement it in CL.

> Jeffrey Mark Siskind has a partial evaluator for Common Lisp at
> http://cobweb.ecn.purdue.edu/~qobi/software.html

Thanks!  But first I need to understand a lot about partial
evaluation...  If someone could suggest a good intro/tutorial, it
would help a lot.

Thanks,

Tamas
From: Paul Griffioen
Subject: Re: introduction to partial evaluation
Date: 
Message-ID: <AVRhi.2467$%q4.210@amstwist00>
"Tamas Papp" <······@gmail.com> schreef in bericht 
···················@pu100877.student.princeton.edu...
> Pascal Costanza <··@p-cos.net> writes:
>
>> Thomas F. Burdick wrote:
>>>
>>> You'll have better luck looking for partial evaluation in Scheme.
>>> There's quite a bit of overlap between implementing a partial
>>> evaluation system and implementing an evaluator, so Scheme is an
>>> easier target.  That's not to say you shouldn't be able to implement
>>> something yourself in CL, particularly if you limit your PE support to
>>> a manageable subset of the language.
>
> I just need basic arithmetic, so I might implement it in CL.
>
>> Jeffrey Mark Siskind has a partial evaluator for Common Lisp at
>> http://cobweb.ecn.purdue.edu/~qobi/software.html
>
> Thanks!  But first I need to understand a lot about partial
> evaluation...  If someone could suggest a good intro/tutorial, it
> would help a lot.
>
> Thanks,
>
> Tamas

Have you checked http://library.readscheme.org/page10.html?

I am no expert at partial evaluation, but I found the book "Partial 
Evaluation and Automatic Program Generation" by Neil D. Jones, Carsten K. 
Gomard and Peter Sestoft very helpful.

Paul Griffioen 
From: Rob Warnock
Subject: Re: introduction to partial evaluation
Date: 
Message-ID: <XbCdnXazNfrR0RXbnZ2dnUVZ_hCdnZ2d@speakeasy.net>
Paul Griffioen <········@chello.nl> wrote:
+---------------
| Have you checked http://library.readscheme.org/page10.html?
+---------------

Which now also mentions/redirects "the NEW, more comprehensive":

    http://partial-eval.org/
    Online Bibliography of Partial Evaluation Research


-Rob

-----
Rob Warnock			<····@rpw3.org>
627 26th Avenue			<URL:http://rpw3.org/>
San Mateo, CA 94403		(650)572-2607
From: Mark Hoemmen
Subject: Re: introduction to partial evaluation
Date: 
Message-ID: <f6ba92$1tjq$1@geode.berkeley.edu>
> On Jun 30, 4:09 pm, Tamas Papp <······@gmail.com> wrote:
>> I have read a few tutorials on partial evaluation, and I found the
>> concept interesting, and potentially useful for my work.  However, to
>> implement it I need to learn more about it (I don't have a CS
>> background).
>>
>> I wonder if the experts on this list could recommend tutorials or
>> articles on partial evaluation which are
>>
>> - focused on number-crunching applications
>> - implemented in Common Lisp
>> - provide a good introduction

It's interesting that a lot of how linear algebra is done nowadays is 
kind of like partial evaluation.  For example, when people solve Ax = b, 
often they first do a triangular factorization of A.  This gives them 
what is essentially an inverse operator that is much cheaper to evaluate 
than the actual inverse.  The operator can be applied to multiple 
right-hand sides and even saved for later (re-)use.

There's another technique for sparse factorizations which accelerates 
factorization of matrices with the same structure but perhaps different 
numerical values.  It evaluates the factorization structure first, and 
saves that structure calculation for reuse with different matrices.

mfh
From: Mark Hoemmen
Subject: Re: introduction to partial evaluation
Date: 
Message-ID: <f6balh$1tka$1@geode.berkeley.edu>
> On Jun 30, 4:09 pm, Tamas Papp <······@gmail.com> wrote:
>> I have read a few tutorials on partial evaluation, and I found the
>> concept interesting, and potentially useful for my work.  However, to
>> implement it I need to learn more about it (I don't have a CS
>> background).
>>
>> I wonder if the experts on this list could recommend tutorials or
>> articles on partial evaluation which are
>>
>> - focused on number-crunching applications
>> - implemented in Common Lisp
>> - provide a good introduction

It's interesting that a lot of how linear algebra is done nowadays is 
kind of like partial evaluation.  For example, when people solve Ax = b, 
often they first do a triangular factorization of A.  This gives them 
what is essentially an inverse operator that is much cheaper to evaluate 
than the actual inverse.  The operator can be applied to multiple 
right-hand sides and even saved for later (re-)use.

There's another technique for sparse factorizations which accelerates 
factorization of matrices with the same structure but perhaps different 
numerical values.  It evaluates the factorization structure first, and 
saves that structure calculation for reuse with different matrices.

mfh
From: Tamas Papp
Subject: Re: introduction to partial evaluation
Date: 
Message-ID: <87fy46pt4l.fsf@pu100877.student.princeton.edu>
Mark Hoemmen <············@gmail.com> writes:

> It's interesting that a lot of how linear algebra is done nowadays is
> kind of like partial evaluation.  For example, when people solve Ax =
> b, often they first do a triangular factorization of A.  This gives
> them what is essentially an inverse operator that is much cheaper to
> evaluate than the actual inverse.  The operator can be applied to
> multiple right-hand sides and even saved for later (re-)use.

Good point.

> There's another technique for sparse factorizations which accelerates
> factorization of matrices with the same structure but perhaps
> different numerical values.  It evaluates the factorization structure
> first, and saves that structure calculation for reuse with different
> matrices.

Do you know what this technique is called?

Tamas
From: Mark Hoemmen
Subject: Re: introduction to partial evaluation
Date: 
Message-ID: <f6bjoc$1vuc$2@geode.berkeley.edu>
Tamas Papp wrote:
>> There's another technique for sparse factorizations which accelerates
>> factorization of matrices with the same structure but perhaps
>> different numerical values.  It evaluates the factorization structure
>> first, and saves that structure calculation for reuse with different
>> matrices.
> 
> Do you know what this technique is called?

That is the "symbolic phase" of the factorization, in which the 
structure is calculated.  After that is the "numerical phase," which 
actually calculates the numerical values in the factors.

mfh