Oppgaven er ikke lenger tilgjengelig

Collaborative editing in emacs

The task is to design, implement, and validate a collaborative editing facilities in emacs.


Background and motivation:

A collaborative editor is an editing application which allows multiple
users to jointly work on common texts or documents. Being distributed, a
collaborative editor poses challenges wrt. maintaining an appropriate form
consistency of shared documents, resp. offering graceful behavior and
support in case of conflicting edits. In this work, collaborative editing
facilities will be incorporated into emacs, a widely used, powerful, and
extensible general-purpose text-editor.


Problem setting:


The work includes conceptual and implementation work. On the conceptual
side, an appropriate ``memory consistency model'' will be chosen. The
corresponding distributed algorithm, maintaining the corresponding document
consistency, will be abstractly described and modelled, and ideally
validated by means of model checking.

The implementation will offer the mentioned collaborative editing feature
inside emacs. The tool will be designed as a \emph{client/server}
architecture (as opposed to a fully symmetric peer-to-peer solution). As
language for the server-code and the core functionality,
Clojure is planned, a Lisp dialect, offering modern concurrency abstractions,
including transactions.




Emneord: collaborative editor, concurrent and distributed programming
Publisert 2. jan. 2015 12:03 - Sist endret 13. apr. 2018 10:27


  • Lars Tveito

Omfang (studiepoeng)