Designing Agora: A Shared Multi-User Programming Environment

Thomas A Kennell, Purdue University

Abstract

Shared programming systems typically fall into one of two categories: systems to distribute code between users, and systems to allow shared access to editing or debugging facilities. Version-control systems allow distribution of code and are often more than adequate for large-scale software development occurring over a long period of time, but they can become unwieldy for fast iterative or exploratory development in which multiple users wish to participate. In these situations, shared editors or pair programming tools may suffice, with the caveat that any user of the system can typically modify any of the code at will. Rather than connecting several users to the same editor session, it would be more effective to allow users to maintain separate sessions while quickly sharing selected chunks of code at will. To enable this paradigm, we have designed a new interpreter to allow distributed users to selectively share code and data at run-time. Our solution consists of a bytecode virtual machine back-end with access to a shared environment and a management mechanism to control creation and usage of these resources. By providing access to interpreter sessions over a network connection, we do not tie our interpreter to executing code from any one particular programming language, allowing any conforming front-endcompiler and user interface to be used. This solution allows the development burden of shared programs to be distributed dynamically between users at run-time through the shared environment while still affording control over what and when to share, thereby facilitating more effective incremental or experimental multi-user programming.

Degree

M.Sc.

Advisors

Kulkarni, Purdue University.

Subject Area

Design|Communication|Computer science|Logic|Translation studies

Off-Campus Purdue Users:
To access this dissertation, please log in to our
proxy server
.

Share

COinS