Scripting COM Components in Haskell

Authors
Simon Peyton Jones, Erik Meijer and Daan Leijen

Date
December 1997

Abstract
Designers of advanced languages such as ML, Prolog, or Haskell, face an unphill struggle to persuade potential users of the merits of their approach. In fact, it has hitherto been impossible to find other than niche applications because (foreing languages interfaces notwithstanding) it has been too difficult to integrate software components written in new languages with large bodies of existing code.

Microsoft's Component Object Model (COM) offers this community a new opportunity. Because the interface between objects is by design language independent and armslength, it is possible either to write glue programs that integrate existing COM objects, or to write software components whose services can be used by clients written in more conventional languages.

We describe our experience of exploiting this opportunity in the purely-functional language Haskell. We describe a design for integrating COM components into Haskell programs, and we demonstrate why someone might want to script their COM components in this way.

Full Text
[pdf]