Repo: An Interpreted Language for Exploratory Programming of Highly Interactive, Distributed Applications
In this paper we present Repo, an interpreted language for exploratory programming of distributed interactive applications. Repo is based on Obliq, a distributed language that supports client-server distribution semantics of all data items (objects, arrays and variables). Repo extends Obliqs type system uniformly so that all its data items can also be distributed with unsynchronized or synchronized replication semantics, both of which are needed by highly interactive applications. Since all of Repos data items can take on any distribution semantic and be mixed in arbitrary ways, a wide range of interesting data structures can be developed in Repo in a straightforward manner. Since Repo allows distributed applications to be developed in a few lines of interpreted code, it turns out to be an excellent language for exploratory programming of distributed interactive applications. We discuss the design and implementation of Repo, and provide illustrative examples taken from prototypes build using it.