@INPROCEEDINGS{Hanus99PPDP,
author = "Hanus, M.",
title = "Distributed Programming in a Multi-Paradigm Declarative Language",
year = "1999",
pages = "376-395",
publisher = "Springer LNCS 1702",
booktitle = "Proc.\ of the International Conference on Principles and Practice
of Declarative Programming (PPDP'99)"
abstract = {
Curry is a multi-paradigm declarative language covering
functional, logic, and concurrent programming paradigms.
Curry's operational semantics is based on lazy reduction of expressions
extended by a possibly non-deterministic binding of free variables
occurring in expressions. Moreover, constraints
can be executed concurrently which provides for
concurrent computation threads that are synchronized
on logical variables.
In this paper, we extend Curry's basic computational model by
a few primitives to support distributed applications where
a dynamically changing number of different program units must
be coordinated. We develop these primitives as a special case
of the existing basic model so that the new
primitives interact smoothly with the existing features for
search and concurrent computations. Moreover, programs
with local concurrency can be easily transformed into
distributed applications. This supports a simple development
of distributed systems that are executable on local networks
as well as on the Internet. In particular, sending
partially instantiated messages containing logical variables
is quite useful to implement reply messages.
We demonstrate the power of these primitives by various programming examples.
}
}

