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
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.
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é).