Bureau 323, Bâtiment du LaBRI (A30), 0540 00 60 84, strandh@labri.fr
Chaque application interactive sophistiqué sépare d'un coté le module de représentation des données de l'utilisateur (le tampon dans le cas de Emacs) et de l'autre coté la présentation graphique de ces données. En particulier, on souhaite éviter des appels du module de représentation des données au module de présentation. Pour cela, le module de présentation doit déterminer quelle partie du tampon à afficher, afin d'éviter l'affichage de l'ensemble du tampon à chaque itération de la boucle d'interaction. Une partie du projet consiste à calculer quelle partie du tampon à afficher.
Un éditeur moderne doit pouvoir analyser le contenu du tampon de manière sophistiqué. S'il s'agit du texte d'un programme, l'éditeur doit contenir des connaissances sur la grammaire du langage afin de pouvoir mettre en évidence certaines partie du code, de pouvoir naviguer par unités de texte définies par le langage de programmation et de pouvoir calculer l'indentation souhaitée des lignes de texte. Une autre partie du projet consiste à implémenter cette connaissance syntaxique pour une version simple de Lisp, et ceci grâce à un analyseur syntaxique de type Earley (qui sera fourni).
Un PC avec GNU/Linux. Une version récente (au moins 0.8.17) du système SBCL (une implémentation libre de Common Lisp), GNU Emacs, SLIME (Superior Lisp Interaction Mode for Emacs) et éventuellement McCLIM