Interfacing haskell with object-oriented languages

  • Authors:
  • André T. H. Pang;Manuel M. T. Chakravarty

  • Affiliations:
  • School of Computer Science & Engineering, University of New South Wales, Sydney, Australia;School of Computer Science & Engineering, University of New South Wales, Sydney, Australia

  • Venue:
  • IFL'03 Proceedings of the 15th international conference on Implementation of Functional Languages
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

The interfacing of object-oriented languages with functional languages, in general, and with Haskell, in particular, has received a considerable amount of attention. Previous work, including Lambada, a Haskell to Java bridge, showed how an object-oriented class hierarchy can be modeled using Haskell type classes, such that Java libraries can be used conveniently from Haskell. The present paper extends this previous work in two major directions. Firstly, we describe a new implementation of object-oriented style method calls and overloading in Haskell, using multi-parameter type classes and functional dependencies. This enables calling of a foreign object’s methods in a syntactically convenient, type-safe manner. Secondly, we sketch an approach to automating the generation of library bindings using compile-time meta-programming for object-oriented frameworks featuring reflection. We have evaluated the practicality of our approach by implementing a Haskell binding to the Objective-C language on the Mac OS X platform.