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 into 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.
Publication Year: 1998
Publication Date: 1998-01-01
Language: en
Type: article
Indexed In: ['crossref']
Access and Citation
Cited By Count: 27
AI Researcher Chatbot
Get quick answers to your questions about the article from our AI researcher chatbot