{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,2,9]],"date-time":"2024-02-09T23:28:13Z","timestamp":1707521293312},"reference-count":38,"publisher":"Cambridge University Press (CUP)","issue":"4-6","license":[{"start":{"date-parts":[[2010,7,9]],"date-time":"2010-07-09T00:00:00Z","timestamp":1278633600000},"content-version":"unspecified","delay-in-days":8,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Theory and Practice of Logic Programming"],"published-print":{"date-parts":[[2010,7]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>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\u2014all implemented in DAHL\u2014indicates the viability of the approach.<\/jats:p>","DOI":"10.1017\/s1471068410000360","type":"journal-article","created":{"date-parts":[[2010,7,9]],"date-time":"2010-07-09T12:44:40Z","timestamp":1278679480000},"page":"691-707","source":"Crossref","is-referenced-by-count":13,"title":["Applying Prolog to develop distributed systems"],"prefix":"10.1017","volume":"10","author":[{"given":"NUNO P.","family":"LOPES","sequence":"first","affiliation":[]},{"given":"JUAN A.","family":"NAVARRO","sequence":"additional","affiliation":[]},{"given":"ANDREY","family":"RYBALCHENKO","sequence":"additional","affiliation":[]},{"given":"ATUL","family":"SINGH","sequence":"additional","affiliation":[]}],"member":"56","published-online":{"date-parts":[[2010,7,9]]},"reference":[{"key":"S1471068410000360_ref35","first-page":"61","volume-title":"PADL '09: Proceedings of the 11th International Symposium on Practical Aspects of Declarative Languages","author":"Wang","year":"2009"},{"key":"S1471068410000360_ref33","doi-asserted-by":"publisher","DOI":"10.1145\/964723.383071"},{"key":"S1471068410000360_ref32","first-page":"189","volume-title":"NSDI'08: Proceedings of the 5th USENIX Symposium on Networked Systems Design and Implementation","author":"Singh","year":"2008"},{"key":"S1471068410000360_ref31","first-page":"10","volume-title":"ATEC '04: Proceedings of the Annual Conference on USENIX Annual Technical Conference","author":"Rhea","year":"2004"},{"key":"S1471068410000360_ref30","doi-asserted-by":"crossref","first-page":"584","DOI":"10.1007\/978-3-642-02658-4_43","volume-title":"CAV '09: Proceedings of the 21st International Conference on Computer Aided Verification","author":"P\u00e9rez","year":"2009"},{"key":"S1471068410000360_ref29","first-page":"76","volume-title":"PADL '09: Proceedings of the 11th International Symposium on Practical Aspects of Declarative Languages","author":"Navarro","year":"2009"},{"key":"S1471068410000360_ref26","doi-asserted-by":"publisher","DOI":"10.1145\/1272996.1273009"},{"key":"S1471068410000360_ref24","doi-asserted-by":"publisher","DOI":"10.1145\/1095809.1095818"},{"key":"S1471068410000360_ref23","doi-asserted-by":"publisher","DOI":"10.1145\/1142473.1142485"},{"key":"S1471068410000360_ref20","doi-asserted-by":"publisher","DOI":"10.1145\/1323293.1294267"},{"key":"S1471068410000360_ref19","volume-title":"NSDI'07: Proceedings of the 4th USENIX Symposium on Networked Systems Design and Implementation","author":"Killian","year":"2007"},{"key":"S1471068410000360_ref18","doi-asserted-by":"publisher","DOI":"10.1145\/1250734.1250755"},{"key":"S1471068410000360_ref17","first-page":"14","volume-title":"OSDI'00: Proceedings of the 4th conference on Symposium on Operating System Design and Implementation","author":"Jannotti","year":"2000"},{"key":"S1471068410000360_ref14","first-page":"153","volume-title":"NSDI'09: Proceedings of the 6th USENIX Symposium on Networked Systems Design and Implementation","author":"Clement","year":"2009"},{"key":"S1471068410000360_ref11","doi-asserted-by":"publisher","DOI":"10.1145\/945445.945474"},{"key":"S1471068410000360_ref10","first-page":"651","volume-title":"ICLP '08: Proceedings of the 24th International Conference on Logic Programming","author":"Casas","year":"2008"},{"key":"S1471068410000360_ref9","doi-asserted-by":"publisher","DOI":"10.1023\/A:1014403914699"},{"key":"S1471068410000360_ref7","doi-asserted-by":"publisher","DOI":"10.1145\/633025.633045"},{"key":"S1471068410000360_ref6","doi-asserted-by":"publisher","DOI":"10.1016\/0167-739X(93)90004-9"},{"key":"S1471068410000360_ref4","doi-asserted-by":"crossref","unstructured":"Ashley-Rollman M. , Goldstein S. , Lee P. , Mowry T. and Pillai P. 2007. Meld: A declarative approach to programming ensembles. In IEEE\/RSJ International Conference on Intelligent Robots and Systems. 2794\u20132800.","DOI":"10.1109\/IROS.2007.4399480"},{"key":"S1471068410000360_ref12","doi-asserted-by":"publisher","DOI":"10.1145\/1322263.1322281"},{"key":"S1471068410000360_ref3","volume-title":"Concurrent Programming in ERLANG","author":"Armstrong","year":"1993"},{"key":"S1471068410000360_ref22","doi-asserted-by":"crossref","first-page":"1627","DOI":"10.1109\/JSAC.2007.071203","article-title":"An empirical study of the Coolstreaming+ System","volume":"25","author":"Li","year":"2007","journal-title":"IEEE Journal on Selected Areas in Communications"},{"key":"S1471068410000360_ref21","first-page":"185","volume-title":"NSDI'09: Proceedings of the 6th USENIX Symposium on Networked Systems Design and Implementation","author":"Leonini","year":"2009"},{"key":"S1471068410000360_ref5","first-page":"265","volume-title":"ICLP '09: Proceedings of the 25th International Conference on Logic Programming","author":"Ashley-Rollman","year":"2009"},{"key":"S1471068410000360_ref36","doi-asserted-by":"publisher","DOI":"10.1145\/844128.844152"},{"key":"S1471068410000360_ref8","unstructured":"Belaramani N. , Zheng J. , Nayate A. , Soul\u00e9 R. , Dahlin M. and Grimm R. 2008. PADRE: A policy architecture for building data REplication systems. Technical Report TR-08-25, University of Texas, Austin."},{"key":"S1471068410000360_ref15","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-11503-5_9"},{"key":"S1471068410000360_ref2","doi-asserted-by":"publisher","DOI":"10.1145\/1713254.1713261"},{"key":"S1471068410000360_ref16","doi-asserted-by":"publisher","DOI":"10.1145\/504083.504085"},{"key":"S1471068410000360_ref34","doi-asserted-by":"publisher","DOI":"10.1145\/844128.844154"},{"key":"S1471068410000360_ref1","unstructured":"Alvaro P. , Condie T. , Conway N. , Elmeleegy K. , Hellerstein J. M. and Sears R. C. 2009. BOOM: Data-Centric Programming in the Datacenter. Technical Report UCB\/EECS-2009-98, EECS Department, University of California, Berkeley."},{"key":"S1471068410000360_ref37","doi-asserted-by":"publisher","DOI":"10.1145\/1731060.1731062"},{"key":"S1471068410000360_ref13","first-page":"12","volume-title":"ATEC '04: Proceedings of the Annual Conference on USENIX Annual Technical Conference","author":"Chu","year":"2004"},{"key":"S1471068410000360_ref25","doi-asserted-by":"crossref","unstructured":"Lopes N. P. and Rybalchenko A. 2010. Distributed and predictable software model checking. Draft manuscript.","DOI":"10.1007\/978-3-642-18275-4_24"},{"key":"S1471068410000360_ref27","doi-asserted-by":"publisher","DOI":"10.1145\/1713254.1713260"},{"key":"S1471068410000360_ref34a","unstructured":"The Intelligent Systems Laboratory. 2009. SICStus Prolog User's Manual. Swedish Institute of Computer Science. Release 4.0.5."},{"key":"S1471068410000360_ref28","unstructured":"Mathewson N. and Provos N. 2009. libevent Documentation. Release 1.4.9."}],"container-title":["Theory and Practice of Logic Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S1471068410000360","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,4,28]],"date-time":"2019-04-28T19:31:59Z","timestamp":1556479919000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S1471068410000360\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2010,7]]},"references-count":38,"journal-issue":{"issue":"4-6","published-print":{"date-parts":[[2010,7]]}},"alternative-id":["S1471068410000360"],"URL":"https:\/\/doi.org\/10.1017\/s1471068410000360","relation":{},"ISSN":["1471-0684","1475-3081"],"issn-type":[{"value":"1471-0684","type":"print"},{"value":"1475-3081","type":"electronic"}],"subject":[],"published":{"date-parts":[[2010,7]]}}}