Skip to main content
    • Aa
    • Aa

Applying Prolog to develop distributed systems


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.

Linked references
Hide All

This list contains references from the content that can be linked to their source. For a full set of references and notes please see the PDF or HTML where available.

P. Alvaro , T. Condie , N. Conway , J. M. Hellerstein and R. Sears 2010. I Do Declare: Consensus in a Logic Language. ACM SIGOPS Operating Systems Review 43, 4, 2530.

H. E. Bal 1993. Evaluation of KL1 and the inference machine. Future Generation Computer Systems 9, 2, 119125.

S. Banerjee , B. Bhattacharjee and C. Kommareddy 2002. Scalable Application Layer Multicast. In SIGCOMM '02: Proceedings of the 2002 Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications. ACM, New York, 205217.

E. Biagioni , R. Harper and P. Lee 2001. A network protocol stack in standard ML. Higher Order Symbolic Computation 14, 4, 309356.

M. Castro , P. Druschel , A.-M. Kermarrec , A. Nandi , A. Rowstron and A. Singh 2003. SplitStream: High-bandwidth multicast in cooperative environments. In SOSP '03: Proceedings of the Nineteenth ACM Symposium on Operating Systems Principles. ACM, New York, 298313.

D. Chu , L. Popa , A. Tavakoli , J. M. Hellerstein , P. Levis , S. Shenker and I. Stoica 2007. The design and implementation of a declarative sensor network system. In SenSys '07: Proceedings of the 5th International Conference on Embedded Networked Sensor Systems. ACM, New York, 175188.

G. Gupta , E. Pontelli , K. A. Ali , M. Carlsson and M. V. Hermenegildo 2001. Parallel execution of prolog programs: A survey. ACM Transactions on Programming Languages and Systems 23, 4, 472602.

C. E. Killian , J. W. Anderson , R. Braud , R. Jhala , and A. M. Vahdat 2007. Mace: Language support for building distributed systems. In PLDI '07: Proceedings of the 2007 ACM SIGPLAN Conference on Programming Language Design and Implementation. ACM, New York, 179188.

R. Kotla , L. Alvisi , M. Dahlin , A. Clement and E. Wong 2007. Zyzzyva: Speculative Byzantine fault tolerance. ACM SIGOPS Operating Systems Review 41, 6, 4558.

B. T. Loo , T. Condie , M. Garofalakis , D. E. Gay , J. M. Hellerstein , P. Maniatis , R. Ramakrishnan , T. Roscoe and I. Stoica 2006. Declarative networking: Language, execution and optimization. In SIGMOD '06: Proceedings of the 2006 ACM SIGMOD International Conference on Management of Data. ACM, New York, 97108.

B. T. Loo , T. Condie , J. M. Hellerstein , P. Maniatis , T. Roscoe and I. Stoica 2005. Implementing declarative overlays. ACM SIGOPS Operating Systems Review 39, 5, 7590.

A. Madhavapeddy , A. Ho , T. Deegan , D. Scott and R. Sohan 2007. Melange: Creating a “Functional” Internet. In EuroSys '07: Proceedings of the 2nd ACM SIGOPS/EuroSys European Conference on Computer Systems. ACM, New York, 101114.

Y. Mao 2010. On the declarativity of declarative networking. ACM SIGOPS Operating Systems Review 43, 4, 1924.

I. Stoica , R. Morris , D. Karger , M. F. Kaashoek , and H. Balakrishnan 2001. Chord: A scalable peer-to-peer lookup service for Internet applications. ACM SIGCOMM Computer Communication Review 31, 4, 149160.

A. Vahdat , K. Yocum , K. Walsh , P. Mahadevan , D. Kostić , J. Chase and D. Becker 2002. Scalability and accuracy in a large-scale network emulator. ACM SIGOPS Operating Systems Review 36, SI, 271284.

B. White , J. Lepreau , L. Stoller , R. Ricci , S. Guruprasad , M. Newbold , M. Hibler , C. Barb and A. Joglekar 2002. An integrated experimental environment for distributed systems and networks. ACM SIGOPS Operating Systems Review 36, SI, 255270.

M. Yabandeh , N. Knežević , D. Kostić and V. Kuncak 2010. Predicting and preventing inconsistencies in deployed distributed systems. ACM Transactions on Computer Systems 28, 1, 149.

Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Theory and Practice of Logic Programming
  • ISSN: 1471-0684
  • EISSN: 1475-3081
  • URL: /core/journals/theory-and-practice-of-logic-programming
Please enter your name
Please enter a valid email address
Who would you like to send this to? *



Full text views

Total number of HTML views: 0
Total number of PDF views: 5 *
Loading metrics...

Abstract views

Total abstract views: 81 *
Loading metrics...

* Views captured on Cambridge Core between September 2016 - 30th May 2017. This data will be updated every 24 hours.