Bureau 323, Bātiment du LaBRI (A30), 0540 00 60 84, firstname.lastname@example.org
Any sophisticated interactive application separates on the one hand the module that manages application data (the buffer in the case of Emacs) and on the other hand the graphical presentation of these data. In particular, one wishes to avoid calls from the module that manages application data to presentation module. In order to do that, the presentation module must determine what part of the buffer to present, so as to avoid displaying the entire buffer at each iteration of the interaction loop. One part of the project consists of computing which part of the buffer to present.
A modern editor must be able to analyze the contents of the buffer in a fairly advanced way. If the buffer contains the text of some program, the editor must possess some knowledge about the grammar of the programming language in order to highlight parts of the code, to be able to navigate by text unites defined by the programming language, and to be able to compute desired indentation of the text lines. Another part of the project consists of implementing this syntactic knowledge for a simplified version of Lisp, using a syntactic analyzer of type Earley (which will be supplied).
A PC with GNU/Linux. A recent version (at least 0.8.17) of the SBCL system (a free implementation of Common Lisp), GNU Emacs, SLIME (Superior Lisp Interaction Mode for Emacs), and possibly McCLIM.