Theory and Practice of Logic Programming

Regular Papers

Applying Prolog to develop distributed systems

NUNO P. LOPESa1, JUAN A. NAVARROa2, ANDREY RYBALCHENKOa2 and ATUL SINGHa3

a1 INESC-ID, Instituto Superior Técnico – Technical University of Lisbon, Portugal

a2 Technische Universität München, Munich, Germany

a3 NEC Research Labs, Princeton, NJ, USA

Abstract

Development of distributed systems is a difficult task. Declarative programming techniques hold a promising potential for effectively supporting programmer in this challenge. While Datalog-based languages have been actively explored for programming distributed systems, Prolog received relatively little attention in this application area so far. In this paper we present a Prolog-based programming system, called DAHL, for the declarative development of distributed systems. DAHL extends Prolog with an event-driven control mechanism and built-in networking procedures. Our experimental evaluation using a distributed hash-table data structure, a protocol for achieving Byzantine fault tolerance, and a distributed software model checker—all implemented in DAHL—indicates the viability of the approach.

(Received February 07 2010)

(Revised April 11 2010)

(Accepted May 18 2010)

KEYWORDS:

  • distributed systems;
  • logic programming;
  • Prolog