PEP: XXX Title: Logic Variable Thread Synchronization Version: $Revision: 1.9 $ Last-Modified: $Date: 2002/08/26 16:29:31 $ Author: James A. Bowery Discuss-To: stackless@www.tismer.com. Status: Draft Type: Standards Track Requires: 219 Content-Type: text/plain Created: 16-May-2003 Python-Version: 2.4 Post-History: Abstract Stackless Python [1] is an ideal environment within which to implement logic variables for thread synchroniziation [2]. The 3 additions required for this are 1) the addition of the "unknown" keyword that declares a logic variable, 2) the "final" keyword that declares a logic variable to be single- assignment and 3) the "=:=" operator that performs a unification of a logic variable with an expression. Rationale Stackless Python promises to deliver microthreads. The semantics of threaded computations are unnecessarily complex. Logic variables can replace virtually all other synchronization semantics with the simple and intuitive notions of data flow. Furthermore, implementations of logic variables are stackless. While logic variables can be used to implement logic programming, logic programming is not required for the implementation of logic variables. For a full description of the benefits of logic variables in distributed concurrent constraint programming, see the paper "Efficient Logic Variables for Distributed Computing" [2]. For a description and examples of the new language features required: "unknown", "final" and "=:=", see Section 2.5.1 [ibid]. References [1] PEP 219, Stackless Python, McMillan http://www.python.org/peps/pep-0219.html [2] Efficient Logic Variables for Distributed Computing, by Haridi,van Roy, Brand, Mehl, Scheidhaur and Smolka http://www.mozart-oz.org/papers/abstracts/TOPLAS99.html Copyright This document has been placed in the public domain. Local Variables: mode: indented-text indent-tabs-mode: nil sentence-end-double-space: t fill-column: 70 End: