Efficient logic variables for distributed computing

  • Authors:
  • Seif Haridi;Peter Van Roy;Per Brand;Michael Mehl;Ralf Scheidhauer;Gert Smolka

  • Affiliations:
  • Swedish Institute of Computer Science, Kista, Sweden;Univ. Catholique de Louvain, Louvain-la-Neuve, Belgium/ and Swedish Institute of Computer Science, Kista, Sweden;Swedish Institute of Computer Science, Kista, Sweden;German Research Center for Artificial Intelligence;German Research Center for Artificial Intelligence;Univ. des Saarlandes, Saarbrü/cken, Germany/ and German Research Center for Artificial Intelligence

  • Venue:
  • ACM Transactions on Programming Languages and Systems (TOPLAS)
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

We define a practical algorithm for distrubuted rational tree unification and prove its correctness in both the off-line and on-line cases. We derive the distributed algorithm from a centralized one, showing clearly the trade-offs between local and distributed execution. The algorithm is used to realize logic variables in the Mozart Programming System, which implements the Oz language (see http://www/mozart-oz.org). Oz appears to the programmer as a concurrent object-oriented language with dataflow synchronization. Logic variables implement the dataflow behavior. We show that lohgic variables can easily be added to the more restricted models of Java and ML, thus providing an alternative way to do concurent programming in these languages. We present common distributed programming idioms in a network-transparent way using logic variables. We show that in common cases the algorithm maintains the same message latency as explicit message passing. In addition, it is able to handle uncommon cases that arise from the properties of latency tolerance and third-party independence. This is evidence that using logic variables in distributed computing is beneficial at both the system and language levels. At the system level, they improve latency tolerance and third-party independence. At the language level, they help make network-transparent distribution practical.