Bridging the Gulf: A Common Intermediate Language for
ML and Haskell
Simon Peyton Jones and John Launchbury and Mark Shields and Andrew Tolmach.
In Proceedings of the 25th Annual ACM SIGPLAN-SIGACT Symposium on
Principles of Programming Languages, San Diego, California,
pages 49-61, Jan 1998.
[A4 ps]
[bibtex]
Abstract
Compilers for ML and Haskell use intermediate languages that incorporate
deeply-embedded assumptions about order of evaluation and side-effects.
We propose an intermediate language in which one can compile both ML
and Haskell, thereby facilitating the sharing of ideas and infrastructure,
and supporting language developments that move each language in the
direction of the other. Achieving this goal without compromising the ability
to compile as good code as a more direct route turned out to be much more
subtle than we expected. We address this challenge using monads and
unpointed types, identify two alternative language designs, and explore the
choices they embody.
Note
A corrigendum for this paper was
distributed at the conference. Though I still agree with its overall
aims and approach, I have many reservations about the technical content
of this paper, and have since withdrawn my name from it.