Efficient logic variables for distributed computing

Citation
S. Haridi et al., Efficient logic variables for distributed computing, ACM T PROGR, 21(3), 1999, pp. 569-626
Citations number
63
Categorie Soggetti
Computer Science & Engineering
Journal title
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS
ISSN journal
01640925 → ACNP
Volume
21
Issue
3
Year of publication
1999
Pages
569 - 626
Database
ISI
SICI code
0164-0925(199905)21:3<569:ELVFDC>2.0.ZU;2-Y
Abstract
We define a practical algorithm for distributed rational tree unification a nd 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 rea lize logic variables in the Mozart Programming System, which implements the Oz language (see http://www.mozart-oz.org). Oz appears to the programmer a s a concurrent object-oriented language with dataflow synchronization Logic variables implement the dataflow behavior. We show that logic variables ca n easily be added to the more restricted models of Java and ML, thus provid ing 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 a ble to handle uncommon cases that arise from the properties of latency tole rance and third-party independence. This is evidence that using logic varia bles in distributed computing is beneficial at both the system and language levels. At the system level, they improve latency tolerance and third-part y independence. At the language level, they help make network-transparent d istribution practical.