Clean-CORBA Interface for Parallel Functional Programming on Clusters

The presented Clean-CORBA interface opens the way for de- veloping parallel and distributed applications consisting of components written in a functional programming language, Clean. The interface de- fines a language mapping from the IDL language used by CORBA to Clean. It contains an IDL-to-Clean compiler which generates the nec- essary stub and skeleton routines from the IDL files. The interface is a general tool for connecting functional Clean programs and programs written in any language using a CORBA interface via the network. We focus on a specific application of this tool in this paper, we build a software architecture for programming clusters using the functional programming language Clean. We design and implement an abstract communication layer based on CORBA server objects. Using this ar- chitecture we can build up applications consisting components written in several programming languages, some components written in pure functional style in Clean, while other components written in an object- oriented language like Java or C#. Based on this software architecture the field of skeletal programming is studied, which suits very well with the functional programming. A skeleton for pipeline computing is chosen as an example to present the main features of this approach.