Exchanging sources between clean and Haskell: a double-edged front end for the clean compiler

  • Authors:
  • John van Groningen;Thomas van Noort;Peter Achten;Pieter Koopman;Rinus Plasmeijer

  • Affiliations:
  • Radboud University Nijmegen, Nijmegen, Netherlands;Radboud University Nijmegen, Nijmegen, Netherlands;Radboud University Nijmegen, Nijmegen, Netherlands;Radboud University Nijmegen, Nijmegen, Netherlands;Radboud University Nijmegen, Nijmegen, Netherlands

  • Venue:
  • Proceedings of the third ACM Haskell symposium on Haskell
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

The functional programming languages Clean and Haskell have been around for over two decades. Over time, both languages have developed a large body of useful libraries and come with interesting language features. It is our primary goal to benefit from each other's evolutionary results by facilitating the exchange of sources between Clean and Haskell and study the forthcoming interactions between their distinct languages features. This is achieved by using the existing Clean compiler as starting point, and implementing a double-edged front end for this compiler: it supports both standard Clean 2.1 and (currently a large part of) standard Haskell 98. Moreover, it allows both languages to seamlessly use many of each other's language features that were alien to each other before. For instance, Haskell can now use uniqueness typing anywhere, and Clean can use newtypes efficiently. This has given birth to two new dialects of Clean and Haskell, dubbed Clean* and Haskell*. Additionally, measurements of the performance of the new compiler indicate that it is on par with the flagship Haskell compiler GHC.