Central article: Luca Cardelli, "A Language With Distributed Scope", Computing System, vol. 8(1), 27-59, 1995. Questions: 1. How can the concept of private fields of an object be simulated in Obliq? 2. Explain the difference between clone(o) and copy(o). 3. Explain how the Prime Number Sieve example works. 4. A procedures is transmitted over the network as a closure consisting of a piece of code and a table mapping free variables in the code to (network) locations. Would this work in a dynamically scoped language? 5. Consider the implicit mutex associated with a serialized object. What is the difference between a reentrant mutex and a mutex that allows self-inflicted operations to pass without acquiring the mutex? 6. The description of signal indicates that at least one waiting thread is signalled (and hence allowed to continue provided its guard is true). Would it be okay to signal all waiting threads? If so why? If not, why not? 7. Protected objects cannot be externally cloned in Obliq. When migrating an object (using migrateProc), the object are cloned from a different site from where the object is allocated. Why does this not violate the protection condition if the object is protected?