,9iiltiif: A DISTRIBUTED REAL-TIME LOGIC LANGUAGE?

M. DfAZS, B. Rub, Jose María Troya · 1997

This paper presents a new language that integrates the real-time and distributed paradigms within the framework of a concurrent logic language. Concurrent logic languages (CLLs) are capable of expressing concurrence, communication and nondetenninism in a natural way. That is, the intrinsic parallel semantics of the concurrent logic languages makes them well-suited for distributed programming. The proposed language is particularly suitable for loosely coupled systems and it contains mechanisms for distributed and real-time process control. A new execution model for concurrent logic languages is presented, which enables efficient distributed execution and real-time control. The model is introduced by giving an operational semantics for the language and the new model's implementation is discussed, including the definition of a new abstract machine and its implementation on a network of Unix workstations. Although the sequential core is not optimized, some previous results are discussod, showing the feasibility of the language's execution model for distributed real-time systems. The language is currently being used as the kernel language for a distributed simulation and validation tool for communication protocols. 0 1997 Elsevier Science Ltd. All rights reserved Distributed real-time systems are very complex and they have very strict safety and reliability requirements. These systems are composed of collections of diverse computations, without central co-ordination and lacking total knowledge of each other. Moreover, most programming languages have not been designed to support such systems, but rather to describe tightly co-ordinated computations. In the last few years, many new proposals for distributed and real-time systems have emerged (l). Some of these models are based on traditional imperative languages, but others are intended to provide new paradigms suited to the characteristics of these kinds of systems (2). In this sense, many diierent approaches for the integration of distributed and real-time paradigms in declarative languages have been proposed (3,4). Concurrent logic languages have appeared as an attempt to adapt Prolog to parallel systems (5), and they have shown its suitability for distributed systems. In fact, CLLs have been used as kernel languages to construct declarative environments for distributed programming (6-81. These languages have evolved out of these inefficient environments into new languages more oriented towards the characteristics of distributed systems. Some languages which have come out of this evolution are RGDC (9), Strand (lo), Sandra (ll), and Janus (12), which despite being a language used for concurrent constraint programming, has the same basis of CLLs. Something that is common to all these proposals is that they try to overcome one of the drawbacks of CLLs in their use for distributed systems: their inefficiency. Distributed implementations of CLLs are not very efficient, mainly because the communication mechanism is based on sharing logic variables and its implementation on distributed environments involves very high costs. We propose a new approach to distributed programming based on Parlog (5) and oriented to coarse granularity parallelism: the .!%I.Y language. This language has been designed on the basis of extending CLLs to cover the different aspects of complex real-time distributed systems. In this sense, a new execution model for CLLs is presented which provides efficient distributed

Read the paper · More papers on PaperTik