@ARTICLE{Toplas:99,
  title = {Efficient Logic Variables for Distributed Computing},
  year = {1999},
  author = {Seif Haridi and Peter Van Roy and Per Brand and Michael Mehl and Ralf Scheidhauer and Gert Smolka},
  abstract = {We define a practical algorithm for distributed 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 logic variables can easily be added to the more restricted
 models of Java and ML, thus providing an alternative way to do
 concurrent 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.},
  volume = 21,
  journal = {ACM Transactions on Programming Languages and Systems},
  number = 3,
  month = may,
  pages = {569--626},
  sline = {3111},
  project-key = {C1},
  label = {TOPLAS99}
}


