|[4 earlier articles]|
|Re: gawk memory leak pfoxSPAMOFF@lehman.com (Paul David Fox) (1997-04-13)|
|Purify patent (was Re: gawk memory leak) email@example.com (Elan Feingold) (1997-05-04)|
|Re: Purify patent (was Re: gawk memory leak) firstname.lastname@example.org (Sailesh Krishnamurthy) (1997-05-08)|
|Re: Purify patent (was Re: gawk memory leak) email@example.com (Paul David Fox) (1997-05-13)|
|Re: Purify patent (was Re: gawk memory leak) firstname.lastname@example.org (Hans-Juergen Boehm) (1997-05-17)|
|Partial evaluation vs flow-graph analysis email@example.com (Christian Fabre) (1997-05-22)|
|Re: Partial evaluation vs flow-graph analysis firstname.lastname@example.org (1997-05-25)|
|Re: Partial evaluation vs flow-graph analysis Jacques.Noye@emn.fr (1997-05-25)|
|Re: Partial evaluation vs flow-graph analysis email@example.com (Tommy Thorn) (1997-05-27)|
|Partial evaluation in imperative languages. firstname.lastname@example.org (Charles Fiterman) (1997-05-30)|
|Re: Partial evaluation in imperative languages. email@example.com (Stefan Monnier) (1997-05-31)|
|Re: Partial evaluation in imperative languages. firstname.lastname@example.org (Cliff Click) (1997-06-02)|
|From:||email@example.com (Christian Mossin)|
|Date:||25 May 1997 12:47:37 -0400|
|Organization:||Department of Computer Science, U of Copenhagen|
|References:||97-03-165 97-04-020 97-04-022 97-04-037 97-04-070 97-05-019 97-05-090 97-05-162 97-05-216 97-05-254|
Christian Fabre <firstname.lastname@example.org> writes:
>Partial evaluation seems to be a hot topic in the compiler field
>nowaday. As far as we've understood, the basic idea is to partially
>evaluate (sic) a program based on the information we are able to
>gather about its arguments. This requires some sort of intrepreter
>(or is it a meta-interpreter?) to compute the simplified program.
>Did we miss something obvious so far?
I don't think so --- usually "the information we are able to gather
about its arguments" means the actual _values_ of some (static)
argument that are constant for a number of runs.
>This makes us think that the kind of tasks well suited for partial
>evaluation can also be done, for most of them, with "older" techniques
>such as flow-graph equations.
>So our question is what kind of optimisations will partial evaluation
>make possible that are out of reach of a classical optimizer (and
Conceptually, a partial evaluator is nothing but a powerful
interprocedural constant propagation transformation (where the values
of the static parameters are inserted as constants in the program
text), which allows loop unrolling, call unfolding, context
propagation, procedure cloning.
On the other hand, most program optimizations can be seen as special
instances of partial evaluation...
>Is there some paper comparing the two techniques?
In chapter 17 of the book "Partial Evaluation and Automatic Program
Transformation" by Jones, Gomard and Sestoft there is some discussion
of the relation to Fold/Unfold and to deforestation.
>Also, most of the papers talk about PE in the context of functional
>languages like ML or Haskell. Is this technique also usefull/usable
>for imperative languages like C, C++, Java or Eiffel?
for a partial evaluator for C. There is some research on PE of Java at
DIKU and (I believe) in France --- I wouldn't expect any conceptual
Christian Mossin E-mail: email@example.com
DIKU, Department of Computer Science Phones: Off: +45 35 32 14 06
Universitetsparken 1, DK-2100 Copenhagen East, DENMARK Fax: +45 35 32 14 01
Return to the
Search the comp.compilers archives again.