We de ne a practical algorithm for distributed rational tree uni cation and prove its correctness in both the o -line and on-line cases. We derive the distributed algorithm from a centralized one, showing clearly the trade-o s 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 data ow synchronization. Logic variables implement the data ow behavior. We show that logic variables can easily be added to the more restricted models of Java and ML, thus providing an alternative w ay to do concurrent programming in these languages. We present common distributed programming idioms in a network-transparent w ay 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 bene cial 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 networktransparent distribution practical. Permission to make digital hard copy of all or part of this material without fee is granted provided that the copies are not made or distributed for pro t or commercial advantage, the ACM copyright server notice, the title of the publication, and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery, Inc. ACM. To copy otherwise, to republish, to post on servers, or to redistribute to lists requires prior speci c permission and or a fee. Haridi et al. 1997;Smolka et al. 1995 . Logic variables express dependencies between computations without imposing an execution order. This property can be exploited in distributed computing: |Two basic concerns in distributed computing are latency tolerance and thirdparty independence. We s a y a program is third-party independent if its execution is una ected by sites that are not currently involved in the execution. We show that using logic variables instead of explicit message passing can reduce the e ect of both concerns with little programming e ort. |With logic variables we can express common distributed programming idioms in a network-transparent manner that results in optimal or near-optimal message latency. That is, the same idiom that works well in a centralized setting also works well in a distributed setting. The main contribution of this article is a practical algorithm for distributed rational tree uni cation that realizes these bene ts. The algorithm is used to implement logic variables in the Mozart system. We formally de ne the algorithm and prove that it satis es safety and liveness properties in both the o -line and on-line cases.From the programmer's point of view,...