Vincent Le Maout

Doctorant en informatique

Institut Gaspard Monge
Université de Marne La Vallée
Bâtiment Copernic, bureau 4B069
5 bd Descartes, 77420 Champs-sur-Marne
France
01.60.95.75.50

lemaout@univ-mlv.fr



La programmation générique en C++

Les concepts de programmation générique introduits par David Musser et Alexander Stepanov constituent un cadre détaillé et rigoureux pour l'écriture de code efficace et réutilisable. Les quelques liens suivants permettront de vous familiariser avec ces concepts. Je rappelle qu'il est nécessaire d'avoir acquis les bases de la programmation en C++ pour s'attaquer à la librairie standard.

La page Web de David Musser (la programmation générique en général, les projets ouverts).

Une page sur « les librairies génériques orientées algorithmes » (D. Musser, A. Stepanov).

Un tutoriel sur la Standard Template Library du C++ avec exercices.

La documentation de référence de chez Silicon Graphics, plus quelques extensions intéressantes.

Une documentation complète de la librairie standard (STL ne représente que 20% de la librairie standard...) chez Dinkumware.

Safe STL facilite le debuggage en rajoutant une couche de vérification au code utilisant STL.

VTL pour View Template Library, implémente le concept de filtre de donnée souvent très pratique.

STLPort, une version de STL écrite pour être portable.



ASTL: Automaton Standard Template Library

ASTL est une librairie de manipulation d'automates écrite en C++ dont les caractéristiques sont l'efficacité et la généricité.

Elle a été conçue pour s'adapter à n'importe quels besoins ou contraintes (pattern matching, traitement des langues naturelles, dictionnaires, etc.) et repose sur le code et les concepts de STL (Standard Template Library).

Documentation en anglais et code source.

Inscrivez-vous à la mail list ASTL pour les mise à jour et autres évolutions



Les curseurs

Les curseurs sont une nouvelle abstraction de programmation permettant une plus grande modularité du code et une souplesse de programmation accrue. Ce concept généralise la notion d'itérateur, elle même une généralisation des pointeurs. Notre implémentation repose sur ASTL.

Article d'introduction en anglais (postscript gzippé).

Code source (le fichier cursor_interface.h contient la description des interfaces standard).

Installation:
Install cursors as a sub directory of the ASTL main include directory: the access path should be something like astl/include/cursors/. To compile it, give the ASTL main include directory and include each cursor file as a cursors sub directory entry: #include <cursors/cursor.h>
For instance with gcc, add -Iastl/include as command line option.

Une rapide introduction sous forme de transparents en anglais (postscript gzippé).




Et pour finir, la citation du jour à méditer:

« La pratique, c'est quand ça marche mais que l'on ne comprend pas. La théorie, c'est quand on comprend mais que ça ne marche pas. Souvent théorie et pratique se rejoignent : rien ne marche et on n'y comprend rien. »
Un programmeur d'automates en C++