Ravi Chugh
Advisor: Benjamin Pierce


The view update problem -- where several users share data, make modifications, and reconcile differences to keep everyone's versions current and accurate -- has been traditionally studied in the context of relational data, and more recently, tree-structured data. Flat or purely textual data, however, is often used for lightweight data sets, reduced data store size, and simply ease of use. Consider a discussion group that uses email to coordinate which members will be responsible for leading discussion on a certain chapter. Or perhaps a small company that chooses to use mail-based meeting requests instead of a large and costly centralized exchange server. It is clear that using a large solution like a database or highly-structured tree document is not fit for all purposes. To this end, we investigate a system that will allow multiple users to make changes to shared text documents while maintaining the integrity of the data.

We build on previous work done in bi-directional programming in the contexts treestructured and relational data stores as well as languages that transform data from one format to another. We provide prototype implementations for a few variations of view update systems motivated by challenges and constraints that arise from practical applications. For each system extension discussed, we present an example application that motivates the design.