MCORBA: A CORBA Binding for Mercury

  • David Jeffery
  • Tyson Dowd
  • Zoltan Somogyi
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1551)


MCORBA is a binding to the CORBA distributed object framework for the purely declarative logic/functional language Mercury. The binding preserves the referential transparency of the language, and has several advantages over similar bindings for other strongly typed declarative languages. As far as we know, it is the first such binding to be bidirectional; it allows a Mercury program both to operate upon CORBA components and to provide services to other CORBA components. Whereas the Haskell binding for COM maps COM interfaces onto Haskell types, MCORBA maps CORBA interfaces onto Mercury type classes. Our approach simplifies the mapping, makes the implementation of CORBA’s interface inheritance straightforward, and makes it trivial for programmers to provide several different implementations of the same interface. It uses existential types to model the operation of asking CORBA for an object that satisfies a given interface but whose representation is unknown.


Type Class Object Management Group Common Object Request Broker Architecture Object Request Broker Declarative Language 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    Sigbjorn Finne, Daan Leijen, Erik Meijer, and Simon Peyton Jones. H/Direct: a binary foreign language interface for Haskell. In Proceedings of the 1998 International Conference on Functional Programming, September 1998.Google Scholar
  2. [2]
    Object Management Group. The Common Object Request Broker: Architecture and Specification, Revision 2.0. Object Management Group, 492 Old Connecticut Path, Framingham, MA 01701, U.S.A., July 1996.Google Scholar
  3. [3]
    Fergus Henderson, Thomas Conway, Zoltan Somogyi, and David Jeffery. The Mercury language reference manual. Technical Report 96/10, Department of Computer Science, University of Melbourne, Melbourne,Australia, 1996.Google Scholar
  4. [4]
    David Jeffery, Fergus Henderson, and Zoltan Somogyi. Type classes in Mercury. TechnicalReport 98/13, Department of Computer Science, University of Melbourne, Melbourne,Australia, 1998.Google Scholar
  5. [5]
    Simon Peyton Jones, Mark Jones, and Erik Meijer. Type classes: an exploration of the design space. In Proceedings of the Haskell Workshop, volume 788 of Lecture Notes in Computer Science. Springer Verlag, June 1997.Google Scholar
  6. [6]
    Simon Peyton Jones, Erik Meijer, and Daan Leijen. Scripting COM components from Haskell. In Proceedings of the Fifth International Conference on Software Reuse, June 1998.Google Scholar
  7. [7]
    Konstantin Läufer. Type classes with existential types. Journal of Functional Programming, 6(3):485–517, May 1996.Google Scholar
  8. [8]
    Sai-Lai Lo. The omniORB2 User’s Guide. Olivetti and Oracle Research Laboratory, March 1997.Google Scholar
  9. [9]
    E. G. J. M. H. Nöcker, J. E.W. Smetsers, M. C. J. D. Eekelen, and M. J. Plasmeijer. Concurrent Clean. In Proceedings of the Conference on Parallel Architectures and Languages Europe, pages 202–219, Eindhoven, The Netherlands, June 1991.Google Scholar
  10. [10]
    Dale Rogerson. Inside COM. Microsoft Press, 1998.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Authors and Affiliations

  • David Jeffery
    • 1
  • Tyson Dowd
    • 1
  • Zoltan Somogyi
    • 1
  1. 1.Department of Computer Science and Software EngineeringUniversity of MelbourneParkville

Personalised recommendations