[Haskell-cafe] Re: What is the current state of affairs with supercompilation?

Peter A. Jonsson pj at csee.ltu.se
Sun Oct 25 14:32:55 EDT 2009


Hi Eugene,

here are some answers:

> I'm mainly interested in the following:
>  - What supercompilers do exist, except for the ones mentioned above?

We have prototype implementations of supercompilers for both GHC and  
the Timber compiler, but they are not yet in a suitable form for  
public inspection. Neil Mitchell has the source code to Supero  
available on his homepage [1], which I think uses yhc as frontend and  
ghc as backend.

>  - What academic organizations do research in the area?

Looking at where the authors of some publications on supercompilation  
were at the time of the publication gives some hints:

- University of York: Neil Mitchell, Colin Runciman
- University of Copenhagen: Morten Heine Sørensen, Robert Glück, Jens  
Peter Secher, Neil Jones
- University of Liverpool: Alexei Lisitsa
- Russian Academy of Sciences: Sergei Romanenko, Ilya Klyuchnikov
- Luleå University of Technology: myself and Johan Nordlander

>  - What papers should be read by someone eager to learn about
> supercompilation and maybe to make research contributions?

If you are interested in program optimization, here's two pointers:

- A Positive Supercompiler [2]
- An Algorithm of Generalization in Positive Supercompilation.[3]

Combine these two and you have a positive supercompiler for a first- 
order functional language, using the notation that is familiar to the  
functional programming community.

More recent work on program optimization:

- Neil's thesis [4]
- There's a number of tutorials available from the group at  
University of Copenhagen, all worth a read.

Alexei Lisitsa, Sergei Romanenko, and Ilya Klyuchnikov have used  
supercompilation to do verification:

- Verification as a parameterized testing (experiments with the SCP4  
supercompiler). [5]
- Proving the equivalence of higher-order terms by means of  
supercompilation. [6]

>  - What are some solved problems and some open problems in  
> supercompilation?

The algorithms are quite well-studied with respect to correctness.  
There's less material available on actual implementations, and how to  
get them to perform well. I haven't seen anything discussing code  
explosion and similar practical issues. I don't think anyone has  
mechanically verified the correctness of supercompilation.

This is by no means an exhaustive list of everything, but it's  
something to start with. I hope it helps.

Kind Regards,

Peter

[1] http://community.haskell.org/~ndm/supero/
[2] ftp://ftp.diku.dk/pub/diku/semantics/papers/D-300.ps.gz
[3] http://citeseerx.ist.psu.edu/viewdoc/download? 
doi=10.1.1.49.1869&rep=rep1&type=pdf
[4] http://community.haskell.org/~ndm/thesis/
[5] http://www.springerlink.com/content/c8623847257w22j9/
[6] http://pat.keldysh.ru/~roman/doc/Klyuchnikov,Romanenko-2009-- 
Proving.the.Equivalence.of.Higher- 
Order.Terms.by.Means.of.Supercompilation.pdf



More information about the Haskell-Cafe mailing list