Commit eecd573e authored by Troels Henriksen's avatar Troels Henriksen
Browse files

Removed a bunch of no longer needed and possibly outdated HTML files.

parent bacefa22
<HTML lang=en>
<head><TITLE> Second semester master </TITLE></head>
<BODY>
<p><a href="buffer.html">Version française</a></p>
<h1> Programming project 2004 - 2005 </h1>
<hr>
<ul>
<li> <h3> Title: </h3>
Implementation of a buffer protocol for Emacs
<br>
<li><h3> Name of person proposing the project</h3>
Robert Strandh
<br>
<li><h3>Address, Telephone, email: </h3>
<p> Bureau 323, Bâtiment du LaBRI (A30), 0540 00 60 84,
strandh@labri.fr</p>
<br>
<li><h3> Description of the work to be accomplished: </h3>
<p> The purpose of the project is to implement a protocol (the
definition of which will be supplied) for managing a buffer of text
(Unicode) efficiently. The protocol contains functionality for
modifying and accessing the contents of the buffer, and for
maintaining a certain number of marks corresponding to positions in
the buffer.</p>
<p>In order to allow a compact representation of the characters in the
buffer when few of them are outside of the range defined by
ISO-latin-1, while still allowing all Unicode characters to be
present, the physical representation consists of a 2-3-tree (which
might be supplied) of lines of text, each line being represented by a
flexichain of characters (the implementation of which will be supplied).</p>
<li><h3> Required hardware and software:</h3>
<p>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.</p>
<br>
<li> <h3> Bibliographic- and web references: :</h3>
<ul>
<li><a href="climacs-en.html">Description of the Climacs project</a>
<li><a href="buffer.text">Description of the "buffer" protocol</a></li>
<li><a href="undo.text">Description of the "undo" protocol</a></li>
<li><a href="syntax.text">Description of the "syntax" protocol</a></li>
<li><a href="climacs.tar.gz">Lisp code</a></li>
<li><a href="http://www.cliki.net/SBCL">SBCL</a></li>
<li><a href="http://www.cliki.net/SLIME">SLIME</a></li>
<li><a href="http://www.cliki.net/McCLIM">McCLIM</a></li>
<li><a href="http://www.cliki.net">Cliki, a Common Lisp wiki</a></li>
<li><a href="http://www.finseth.com/craft/">The Craft of Text Editing
by Craig A. Finseth</a></li>
</ul>
</ul>
</BODY></HTML>
<HTML lang=fr><HEAD><TITLE> Master 2ème semestre</TITLE></HEAD>
<BODY>
<p><a href="buffer-en.html">English version</a></p>
<h1> Projets de Programmation 2004 - 2005 </h1>
<hr>
<ul>
<li> <h3> Titre du Sujet: </h3>
Implémentation d'un protocole de tampon pour Emacs
<br>
<li><h3> Nom(s) du (des) responsables</h3>
Robert Strandh
<br>
<li><h3>Adresse, Tél, courrier-E: </h3>
<p> Bureau 323, Bâtiment du LaBRI (A30), 0540 00 60 84,
strandh@labri.fr</p>
<br>
<li><h3> Description du travail souhaité: </h3>
<p> Il s'agit d'implémenter un protocole (qui sera fourni) pour gérer un
tampon de texte (Unicode) de manière efficace. Le protocole
contient des fonctionnalités pour modifier et récupérer le contenu du
tampon, et pour maintenir un certain nombre de marqueurs correspondant
à des positions dans le tampon. </p>
<p>Afin de permettre une représentation compacte des caractères dans
le cas où peu de caractère en dehors de la plaque ISO-latin-1 sont
utilisés, en même temps de permettre l'ensemble des caractères de la
norme Unicode, la représentation physique fera intervenir un arbre 2-3
(éventuellement fourni) de lignes de texte, chacun représentée sous la
forme d'une "flexichaine" de caractères (dont l'implémentation sera
fornie).</p>
<br>
<li> <h3> Moyens matériels et logiciels nécessaires:</h3>
<p>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</p>
<br>
<li> <h3> Références bibliographiques et http: :</h3>
<ul>
<li><a href="climacs.html">Description du projet Climacs</a>
<li><a href="buffer.text">Description du protocole "buffer"</a></li>
<li><a href="undo.text">Description du protocole "undo"</a></li>
<li><a href="syntax.text">Description du protocole "syntax"</a></li>
<li><a href="climacs.tar.gz">Code Lisp</a></li>
<li><a href="http://www.cliki.net/SBCL">SBCL</a></li>
<li><a href="http://www.cliki.net/SLIME">SLIME</a></li>
<li><a href="http://www.cliki.net/McCLIM">McCLIM</a></li>
<li><a href="http://www.cliki.net">Cliki, un wiki pour Common Lisp</a></li>
<li><a href="http://www.finseth.com/craft/">The Craft of Text Editing
by Craig A. Finseth</a></li>
</ul>
</ul>
</BODY></HTML>
<HTML lang=en>
<HEAD><TITLE>Climacs, a modern version of the Emacs editor</TITLE></HEAD>
<BODY>
<p><a href="climacs.html">Version française.</a></p>
<h1>Climacs, a modern version of the Emacs editor</h1>
<h2>Motivation</h2>
<p>GNU Emacs is an excellent text editor, but was designed more than
20 years ago now, and the technical choices of the time create some
problems today. :</p>
<ul>
<li>Emacs Lisp is a language that was specially designed in order to
implement Emacs. Since the design of GNU Emacs and of Emacs Lisp,
Common Lisp has been standardized, and gives both better
performance than that of Emacs Lisp (because Emacs Lisp is
implemented as an interpreter written in C) and more sophisticated
functionalities (macros, CLOS, etc). The natural choice for
implementing Emacs today is thus Common Lisp.</li>
<li>GNU Emacs was designed before the existence of the Unicode
standard. Unfortunately, the internal representation of a buffer
does not allow the representation of all Unicode characters in a
compact way. An internal representation allowing both all of
Unicode and a compact representation for the ISO-latin-1 subset is
desirable.</li>
<li>Twenty years ago, graphic user interfaces practically did not
exist. GNU Emacs was designed for a text-only terminal. Today
better modes of interaction exist. In particular, with CLIM
(Common LIsp Interface Manager) it is both possible and desirable
to have an interface based on the concept of "presentation types".</li>
<li>Because of the limited power of computers at the time, GNU Emacs
uses a certain number of approximations in order to analyze the
contents of a buffer, in particular when that contents is the text
of a program. These approximations are no longer necessary, and
with current technology, it is possible to maintain a complete
syntactic analysis of the buffer text. </li>
</ul>
<h2>Suggested projects</h2>
<p>The ultimate goal of the project being the replacement of GNU Emacs
with a modern version written entirely in Common Lisp, we propose a
certain number of student projects around this project, the
preliminary name of which is "Climacs" :</p>
<p>Here is a list of the suggested projects :</p>
<ul>
<li> <a href="buffer-en.html">An efficient implementation of a new
protocol for representing the buffer of Emacs</a></li>
<li> <a href="undo-en.html">Implementation of a sophisticated "undo"
protocol</a></li>
<li> <a href="redisplay-en.html">Implementation of the redisplay
module</a></li>
</ul>
<p>Useful links:</p>
<ul>
<li><a href="buffer.text">Description of the "buffer" protocol</a></li>
<li><a href="undo.text">Description of the "undo" protocol</a></li>
<li><a href="syntax.text">Description of the "syntax" protocol</a></li>
<li><a href="climacs.tar.gz">Lisp code</a></li>
</ul>
</body>
</HTML>
\ No newline at end of file
<HTML lang=fr>
<HEAD><TITLE>Climacs, une version moderne de l'éditeur Emacs</TITLE></HEAD>
<BODY>
<p><a href="climacs-en.html">English version.</a></p>
<h1>Climacs, une version moderne de l'éditeur Emacs</h1>
<h2>Motivation</h2>
<p>GNU Emacs est un excellent éditeur de texte, mais il a été
construit il y a plus de 20 ans maintenant, et les choix techniques de
l'époque posent quelques problèmes aujourd'hui :</p>
<ul>
<li>Emacs Lisp est un langage spécialement conçu pour implémenter
Emacs. Depuis la conception de GNU Emacs et du langage Emacs
Lisp, Common Lisp a été normalisé et propose à la fois une
efficacité bien supérieure à celle de Emacs Lisp (car Emacs Lisp
est implémenté sous la forme d'un interpréteur écrit en C) et des
fonctionnalités plus sophistiqués (macros, CLOS, etc). Le choix
naturelle pour implémenter Emacs aujourd'hui est donc Common
Lisp.</li>
<li>GNU Emacs a été conçu avant l'existence de la norme
Unicode. Malheureusement, la représentation interne d'un
tampon (buffer) permet difficilement de représenter des
caractères Unicode de manière compacte et efficace. Une
représentation interne permettant à la fois l'ensemble des
caractères Unicode et une représentation compacte du sous ensemble
ISO-latin-1 est souhaitable.</li>
<li>Il y a 20 ans, les interfaces graphiques n'existait pratiquement
pas. GNU Emacs a été conçu pour un terminal texte.
D'autres modes d'interaction sont possibles aujourd'hui. En
particulier, avec CLIM (Common Lisp Interface Manager) une
interface basée sur la notion de "types de présentation" est à la
fois possible et souhaitable. </li>
<li>Pour des raisons de la performance limitée des ordinateurs de
l'époque, GNU Emacs se sert d'un certain nombre d'approximations
pour analyser le contenu d'un tampon, en particulier lorsque ce
contenu est un programme. Ces approximations n'ont plus raison
d'être, et avec la technologie d'aujourd'hui, il est possible de
maintenir un analyseur syntaxique incrémental et complet.</li>
</ul>
<h2>Projets proposés</h2>
<p>Dans le but ultime de remplacer GNU Emacs par une version plus
moderne écrite en Common Lisp, nous proposons un certain nombre de
projets d'étudiants autour de ce projet don le nom préliminaire est
"Climacs". </p>
<p>Voici la liste de projets proposés :</p>
<ul>
<li> <a href="buffer.html">Implémentation efficace d'un nouveau
protocole pour la représentation du tampon Emacs.</a></li>
<li> <a href="undo.html">Implémentation d'un protocole "undo"
sophistiqué.</a></li>
<li> <a href="redisplay.html">Implémentation du module de réaffichage
(redisplay)</a></li>
</ul>
<p>Liens utiles :</p>
<ul>
<li><a href="buffer.text">Description du protocole "buffer"</a></li>
<li><a href="undo.text">Description du protocole "undo"</a></li>
<li><a href="syntax.text">Description du protocole "syntax"</a></li>
<li><a href="climacs.tar.gz">Code Lisp</a></li>
</ul>
</body>
</HTML>
\ No newline at end of file
<HTML><HEAD><TITLE>Climacs, une version moderne de l'éditeur Emacs</TITLE></HEAD>
<BODY>
<a href="climacs-en.html">English version.</a>
<h1>Climacs, une version moderne de l'éditeur Emacs</h1>
<h2>Motivation</h2>
<p>GNU Emacs est un excellent éditeur de texte, mais il a été
construit il y a plus de 20 ans maintenant, et les choix techniques de
l'époque posent quelques problèmes aujourd'hui :</p>
<ul>
<li>Emacs Lisp est un langage spécialement conçu pour implémenter
Emacs. Depuis la conception de GNU Emacs et du langage Emacs
LIsp, Common Lisp a été normalisé et propose à la fois une
efficacité bien supérieure à celle de Emacs Lisp (car Emacs Lisp
est implémenté sous la forme d'un interpréteur écrit en C) et des
fonctionnalités plus sophistiqués (macros, CLOS, etc). Le choix
naturelle pour implémenter Emacs aujourd'hui est donc Common
Lisp.</li>
<li>GNU Emacs a été conçu avant l'existence de la norme
Unicode. Malheureusement, la représentation interne d'un
tampon (buffer) permet difficilement de représenter des
caractères Unicode de manière compacte et efficace. Une
représentation interne permettant à la fois l'ensemble des
caractères Unicode et une représentation compacte du sous ensemble
ISO-latin-1 est souhaitable.</li>
<li>Il y a 20 ans, les interfaces graphiques n'existait pratiquement
pas. GNU Emacs a été conçu pour un terminal texte.
D'autres modes d'interaction sont possibles aujourd'hui. En
particulier, avec CLIM (Common Lisp Interface Manager) une
interface basée sur la notion de "types de présentation" est à la
fois possible et souhaitable. </li>
<li>Pour des raisons de la performance limitée des ordinateurs de
l'époque, GNU Emacs se sert d'un certain nombre d'approximations
pour analyser le contenu d'un tampon, en particulier lorsque ce
contenu est un programme. Ces approximations n'ont plus raison
d'être, et avec la technologie d'aujourd'hui, il est possible de
maintenir un analyseur syntaxique incrémental et complet.
</ul>
<h2>Projets proposés</h2>
<p>Dans le but ultime de remplacer GNU Emacs par une version plus
moderne écrite en Common Lisp, nous proposons un certain nombre de
projets d'étudiants autour de ce projet don le nom préliminaire est
"Climacs". </p>
<p>Voici la liste de projets proposés :</p>
<ul>
<li> <a href="buffer.html">Implémentation efficace d'un nouveau
protocole pour la représentation du tampon Emacs.</a></li>
<li> <a href="undo.html">Implémentation d'un protocole "undo"
sophistiqué.</a></li>
<li> <a href="redisplay.html">Implémentation du module de réaffichage
(redisplay)</a></li>
</ul>
<p>Liens utiles :</p>
<ul>
<li><a href="buffer.text">Description du protocole "buffer"</a></li>
<li><a href="undo.text">Description du protocole "undo"</a></li>
<li><a href="syntax.text">Description du protocole "syntax"</a></li>
<li><a href="climacs.tar.gz">Code Lisp</a></li>
</ul>
</HTML>
\ No newline at end of file
<HTML>
<TITLE> Master 2ème semestre </TITLE>
<h1> Projets de Programmation 2004 - 2005 </h1>
<br><hr><br>
<ul>
<li> <h3> Titre du Sujet: </h3>
********Insérer titre
<br><br>
<li><h3> Nom(s) du (des) responsables</h3>
********Insérer les noms
<br><br>
<li><h3>Adresse, Tél, courrier-E: </h3>
<p>
********Insérer adresse, etc...
</p>
<br><br>
<li><h3> Description du travail souhaité: </h3>
<p>
********Insérer Description du travail
</p>
<br><br>
<li> <h3> Moyens matériels et logiciels nécessaires:</h3>
<p>
********Insérer Moyens materiels
</p>
<br><br>
<li> <h3> Références bibliographiques et http: :</h3>
<p>
********Insérer Références
</p>
</ul>
</BODY></HTML>
<HTML><TITLE> Second semester master </TITLE>
<BODY>
<h1> Programming project 2004 - 2005 </h1>
<br><hr><br>
<ul>
<li> <h3> Title: </h3>
Implementation of a redisplay module for Emacs.
<br>
<li><h3> Name of person proposing the project</h3>
Robert Strandh
<br>
<li><h3>Address, Telephone, email </h3>
<p> Bureau 323, Bâtiment du LaBRI (A30), 0540 00 60 84,
strandh@labri.fr</p>
<br>
<li><h3> Description of the work to be accomplished: </h3>
<p>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.</p>
<p>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).</p>
<br>
<li><h3> Required hardware and software:</h3>
<p>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.</p>
<br>
<li> <h3> Bibliographic- and web references: :</h3>
<P>
<ul>
<li><a href="climacs-en.html">Description of the Climacs project</a>
<li><a href="buffer.text">Description of the "buffer" protocol</a></li>
<li><a href="undo.text">Description of the "undo" protocol</a></li>
<li><a href="syntax.text">Description of the "syntax" protocol</a></li>
<li><a href="climacs.tar.gz">Lisp code</a></li>
<li><a href="http://www.cliki.net/SBCL">SBCL</a></li>
<li><a href="http://www.cliki.net/SLIME">SLIME</a></li>
<li><a href="http://www.cliki.net/McCLIM">McCLIM</a></li>
<li><a href="http://www.cliki.net">Cliki, a Common Lisp wiki</a></li>
<li><a href="http://www.finseth.com/craft/">The Craft of Text Editing
by Craig A. Finseth</a></li>
</ul>
</p>
</ul>
</BODY></HTML>
<HTML><TITLE> Master 2ème semestre </TITLE>
<BODY>
<a href="undo-en.html">English version</a>
<h1> Projets de Programmation 2004 - 2005 </h1>
<br><hr><br>
<ul>
<li> <h3> Titre du Sujet: </h3>
Implémentation d'un module de réaffichage (redisplay) pour Emacs.
<br>
<li><h3> Nom(s) du (des) responsables</h3>
Robert Strandh
<br>
<li><h3>Adresse, Tél, courrier-E: </h3>
<p> Bureau 323, Bâtiment du LaBRI (A30), 0540 00 60 84,
strandh@labri.fr</p>
<br>
<li><h3> Description du travail souhaité: </h3>
<p>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.</p>
<p>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).</p>
<br>
<li> <h3> Moyens matériels et logiciels nécessaires:</h3>
<p>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</p>
<br>
<li> <h3> Références bibliographiques et http: :</h3>
<P>
<ul>
<li><a href="climacs.html">Description du projet Climacs</a>
<li><a href="buffer.text">Description du protocole "buffer"</a></li>
<li><a href="undo.text">Description du protocole "undo"</a></li>
<li><a href="syntax.text">Description du protocole "syntax"</a></li>
<li><a href="climacs.tar.gz">Code Lisp</a></li>
<li><a href="http://www.cliki.net/SBCL">SBCL</a></li>
<li><a href="http://www.cliki.net/SLIME">SLIME</a></li>
<li><a href="http://www.cliki.net/McCLIM">McCLIM</a></li>
<li><a href="http://www.cliki.net">Cliki, un wiki pour Common Lisp</a></li>
<li><a href="http://www.finseth.com/craft/">The Craft of Text Editing
by Craig A. Finseth</a></li>
</ul>
</p>
</ul>
</BODY></HTML>
<HTML><TITLE> Second semester master </TITLE>
<BODY>
<h1> Programming project 2004 - 2005 </h1>
<br><hr><br>
<ul>
<li> <h3> Title: </h3>
*************** title here
<br>
<li><h3> Name of person proposing the project</h3>
Robert Strandh
<br>
<li><h3>Address, Telephone, email </h3>
<p> Bureau 323, Btiment du LaBRI (A30), 0540 00 60 84,
strandh@labri.fr</p>
<br>
<li><h3> Description of the work to be accomplished: </h3>
****************** description
<br>
<li><h3> Required hardware and software:</h3>
<p>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.</p>
<br>
<li> <h3> Bibliographic- and web references: :</h3>
<P>
<ul>
<li><a href="climacs-en.html">Description of the Climacs project</a>
<li><a href="buffer.text">Description of the Climacs protocols</a></li>
<li><a href="http://www.cliki.net/SBCL">SBCL</a></li>
<li><a href="http://www.cliki.net/SLIME">SLIME</a></li>
<li><a href="http://www.cliki.net/McCLIM">McCLIM</a></li>
<li><a href="http://www.cliki.net">Cliki, a Common Lisp wiki</a></li>
<li><a href="http://www.finseth.com/craft/">The Craft of Text Editing
by Craig A. Finseth</a></li>
</ul>
</p>
</ul>
</BODY></HTML>
<HTML><TITLE> Master 2me semestre </TITLE>
<BODY>
<h1> Projets de Programmation 2004 - 2005 </h1>
<br><hr><br>
<ul>
<li> <h3> Titre du Sujet: </h3>
*************** titre ici
<br>
<li><h3> Nom(s) du (des) responsables</h3>
Robert Strandh
<br>
<li><h3>Adresse, Tl, courrier-E: </h3>
<p> Bureau 323, Btiment du LaBRI (A30), 0540 00 60 84,
strandh@labri.fr</p>
<br>
<li><h3> Description du travail souhait: </h3>
****************** description
<br>
<li> <h3> Moyens matriels et logiciels ncessaires:</h3>
<p>Un PC avec GNU/Linux. Une version rcente (au moins 0.8.17) du systme
SBCL (une implmentation libre de Common Lisp), GNU Emacs, SLIME
(Superior Lisp Interaction Mode for Emacs) et ventuellement
McCLIM</p>
<br>
<li> <h3> Rfrences bibliographiques et http: :</h3>
<P>
<ul>
<li><a href="buffer.text">Description des protocoles Climacs</a></li>
<li><a href="http://www.cliki.net/SBCL">SBCL</a></li>
<li><a href="http://www.cliki.net/SLIME">SLIME</a></li>
<li><a href="http://www.cliki.net/McCLIM">McCLIM</a></li>