Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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.
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.
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.
David Jeffery, Fergus Henderson, and Zoltan Somogyi. Type classes in Mercury. TechnicalReport 98/13, Department of Computer Science, University of Melbourne, Melbourne,Australia, 1998.
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.
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.
Konstantin Läufer. Type classes with existential types. Journal of Functional Programming, 6(3):485–517, May 1996.
Sai-Lai Lo. The omniORB2 User’s Guide. Olivetti and Oracle Research Laboratory, March 1997.
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.
Dale Rogerson. Inside COM. Microsoft Press, 1998.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1998 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Jeffery, D., Dowd, T., Somogyi, Z. (1998). MCORBA: A CORBA Binding for Mercury. In: Gupta, G. (eds) Practical Aspects of Declarative Languages. PADL 1999. Lecture Notes in Computer Science, vol 1551. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-49201-1_15
Download citation
DOI: https://doi.org/10.1007/3-540-49201-1_15
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-65527-5
Online ISBN: 978-3-540-49201-6
eBook Packages: Springer Book Archive