Bonjour,
nous avons le plaisir de vous inviter au séminaire des étudiants du LRDE
qui aura lieu le mercredi 13 mai 2009 à 14 heures en Amphi 2 au KB.
-----------------------------------------------------------------------
Le programme :
*Vaucanson, Transformers et Spot*
http://publis.lrde.epita.fr/Seminar-2009-05-13
VAUCANSON
* 14h00 : Analyse de performances pour projets C++ -- Florent D'Halluin
* 14h30 : Traitement curatif pour Vaucanson: un renforcement du concept
d'automate -- Jérôme Galtier
TRANSFORMERS
* 15h15 : Ajout de la programmation par contrats au C++ avec
Transformers -- Vincent Ordy
* 15h45 : Une implémentation des conteneurs C++ avec SCOOL -- Warren Seine
SPOT
* 16h30 : Traduction d'une LTL étendue en TGBA dans Spot -- Damien Lefortier
* 17h00 : La complémentation d'automates de Büchi -- Guillaume Sadegh
-----------------------------------------------------------------------
Les Résumés des exposés :
**************************
VAUCANSON
14h00 : Analyse de performances pour projets C++ -- Florent D'Halluin
Vaucanson est une bibliothèque C++ de manipulation d'automates finis.
Par rapport à son concurrent principal, OpenFST?, Vaucanson souffre
d'importants problèmes de performances. Afin d'améliorer les
performances de Vaucanson, il est nécessaire d'avoir des outils
appropriés pour analyser le comportement de la bibliothèque en termes
d'utilisation de temps CPU et de gestion de la mémoire. Jusqu'en Mars
2009, il n'existait pas d'outils de ce type pratiques à utiliser avec
Vaucanson. CBS (C++ Benchmarking Suite) est une suite d'outils d'analyse
de performances pour projets C++. Ces outils permettent de mesurer,
d'afficher, et de comparer l'utilisation de ressources (temps, mémoire),
dans un format accessible à l'utilisateur. Ils sont utilisés pour
analyser Vaucanson afin de réécrire les algorithmes les moins efficaces.
14h30 : Traitement curatif pour Vaucanson: un renforcement du concept
d'automate -- Jérôme Galtier
Vaucanson permet de manipuler des automates finis. La modélisation de
ces objets occupe donc une place centrale dans la généricité de la
bibliothèque. Nous voulons pouvoir étendre cette modélisation pour
supporter de nouveaux types et spécialiser des comportements afin
d'améliorer les performances. Nous exposerons ce qui peut être considéré
comme un véritable nud gordien dans la modélisation actuelle: Vaucanson
est par exemple incapable de choisir une implémentation pour un automate
en fonction d'une de ses propriétés. La solution apportée restaure alors
une modélisation saine et empêchera des erreurs de conceptions lors de
la recherche de spécifications des algorithmes. Finalement, nous
exposerons, entre autre, une série de spécialisations du concept
d'automate, ainsi qu'un ensemble d'améliorations du modèle qui étaient
autrefois trop couteuses à mettre en place.
TRANSFORMERS
15h15 : Ajout de la programmation par contrats au C++ avec Transformers
-- Vincent Ordy
La programmation par contrats est un paradigme permettant de réduire le
temps de débogage des programmes, en spécifiant des conditions qui
doivent être vérifiées à l'entrée d'une fonction (préconditions) ou à sa
sortie (postconditions). Dans les languages orientés objet, il est
également possible de vérifier un ensemble de contraintes à chaque appel
ou sortie d'une fonction membre (invariants de classe), et les
conditions sont héritées à partir des classes parentes.
Le projet Transformers a pour but de faire de la transformation source à
source sur des sources C et C++. Une extension pour introduire les
contrats dans le C a déjà été écrite alors que l'analyse syntaxique du
C++ n'était pas encore fonctionnelle.
Nous allons montrer comment écrire une extension de la grammaire du C++
dans le projet Transformers pour introduire le principe de contrat dans
le C++, puis transformer le code étendu en C++ standard.
15h45 : Une implémentation des conteneurs C++ avec SCOOL -- Warren Seine
SCOOL est un langage dédié conçu pour faciliter le développement C++ de
haut-niveau. Fondé sur le paradigme SCOOP mélangeant programmation
générique et orientée-objet, il se démarque par une résolution statique
des appels de fonctions membres et un système de concepts puissant.
Précédemment, une bibliothèque de conteneurs standards a été réalisée en
C++ grâce à SCOOL. Cette implémentation demandait cependant une forte
maitrise des méchanismes de SCOOP. Avec SCOOL, nous pouvons y arriver
sans se préoccuper des détails, laissés au traducteur C++.
En se concentrant sur le développement de la bibliothèque en SCOOL et
sur les changements nécessaires au langage et à son compilateur, nous
comparerons les solutions originales et DSL et déterminerons si SCOOL
est adapté au prototypage d'applications génériques.
SPOT
16h30 : Traduction d'une LTL étendue en TGBA dans Spot -- Damien Lefortier
Spot est une bibliothèque de model checking qui permet de vérifier des
propriétés exprimées en logique temporelle à temps linéaire (LTL) sur
des modéles représentés par des automates de Büchi généralisés basés sur
les transitions (TGBA). Spot propose actuellement deux algorithmes de
traduction de LTL en TGBA, une des étapes principales de l'approche
automate. Nous présentons une nouvelle traduction en TGBA d'une LTL
étendue dont les opérateurs sont représentés par des automates finis,
permettant ainsi à Spot de vérifier des propriétés qui n'étaient pas
exprimables auparavant. Nous présenterons aussi de quelles façons nous
pourrions intégrer certaines fonctionnalités de PSL (Property
Specification Language) à notre extension.
17h00 : La complémentation d'automates de Büchi -- Guillaume Sadegh
Le model checking est un domaine de la vérification formelle, qui permet
de vérifier le comportement d'un système à travers des formules
logiques. Spot est une bibliothèque de model checking qui repose sur une
des techniques du domaine : l'approche automate. Dans cette approche du
model checking, le système et les formules sont représentés sous forme
d'automates acceptant des mots de longueur infinie, et plus
particulièrement des automates de Büchi. Spot propose de nombreux
algorithmes aux utilisateurs de la bibliothèque pour manipuler ce type
d'automates, en vue d'applications au model checking. Pourtant, un
algorithme est manquant : celui de la complémentation d'automates de
Büchi (qui produit un automate reconnaissant la négation du langage
initialement reconnu). Cet algorithme est peu utilisé dans la pratique à
cause de sa forte complexité, mais il ne manque pas d'intérêt du point
de vue théorique. Nous présenterons une implémentation d'un tel
algorithme dans Spot.
--
Daniela Becker