DESIGNING AGORA: A SHARED MULTI-USER PROGRAMMING ENVIRONMENT
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 overa network connection, we do not tie our interpreter to executing code from any one particular programming language, allowing any conforming front-end compiler 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.
- Master of Science in Electrical and Computer Engineering
- Electrical and Computer Engineering
- West Lafayette