https://doi.org/10.71352/ac.37.019
Rapid prototyping for distributed D-Clean using
C++ templates
Abstract.
Earlier we have designed two coordination languages, \(\sf{D}\)-\(\sf{Clean}\) and \(\sf{D}\)-\(\sf{Box}\) for
high-level process description
and communication coordination of functional programs distributed over a cluster. \(\sf{D}\)-\(\sf{Clean}\) is the high level
coordination language for functional distributed computations. The language coordinates the pure functional computational
nodes required by language primitives, and it controls the dataflow in a
distributed process-network. In order to achieve parallel features, \(\sf{D}\)-\(\sf{Clean}\)
extends the lazy functional programming language
\(\sf{Clean}\) with new language primitives. Every \(\sf{Clean}\) construct generates a \(\sf{D}\)-\(\sf{Box}\) expression.
\(\sf{D}\)-\(\sf{Box}\) is an intermediate level language
and describes in details the computational nodes hiding the low level implementation details and enabling direct control over the
process-network. Practical experiences of the two language usage showed the difficulties of distributed program development,
especially in testing and debugging. This paper aims to provide software comprehension application for a better way of understanding
and utilizing the \(\sf{D}\)-\(\sf{Clean}\) language. Here we provide a new modeling approach of the coordination
language elements and a new view of the
\(\sf{D}\)-\(\sf{Clean}\) distributed system behaviour using \(\sf{C}\)++ templates.
The strong type system of \(\sf{C}\)++ templates guarantees the correctness of the model.
Using templates we can achieve impressive efficiency by avoiding run-time overhead.
