The following message is a courtesy copy of an article
that has been posted to lrde.annonce,epita.adm.adm,epita.adm,iit.adm,fr.comp.developpement,fr.comp.lang.c++,fr.comp.lang.general,fr.comp.objet as well.
Chers collègues,
La prochaine session du séminaire Performance et Généricité du LRDE
(Laboratoire de Recherche et Développement de l'EPITA) aura lieu le
Mercredi 27 mai 2009 (14h-17h).
Au programme:
* 14h: VMKit, LLVM et Clang: les prochaines générations de compilateurs
-- Nicolas Geoffray, Lip6/INRIA/Regal
http://pagesperso-systeme.lip6.fr/Nicolas.Geoffray/
La Low-Level Virtual Machine (LLVM) est un ensemble de bibliothèques et
d'outils qui facilitent le développement et l'optimisation de
compilateurs, de générateurs de code et de machines virtuelles. Clang et
VMKit utilisent LLVM pour leur générateur de code à différents niveaux:
l'un pour la compilation statique de langages de la famille C
(C/C++/ObjectiveC), et l'autre pour la compilation dynamique
d'applications Java ou .Net.
Dans cet exposé, je présenterai ces trois projets, et rentrerai dans les
détails de VMKit, que j'ai développée dans le cadre de ma thèse. Je
finirai par montrer les exemples de recherche auxquels nous nous
adressons avec l'aide de VMKit, au sein de l'équipe de recherche
INRIA/Regal.
-- Nicolas Geoffray est doctorant à l'université Pierre et Marie Curie
dans l'équipe mixte Lip6/INRIA Regal. Sa thèse porte sur les machines
virtuelles applicatives et la manière dont elles sont utilisées dans les
projets de recherche. La soutenance est prévue à la fin de l'année
universitaire 2009.
* 15h15: AutoVM: repousser les frontières de la généricité
-- Gaël Thomas, REGAL/Lip6/Inria
http://pagesperso-systeme.lip6.fr/Gael.Thomas/
Avec l'avènement du Web et des applications réparties, les machines
virtuelles applicatives sont devenues le support d'exécution de choix
pour la plupart des applications. Développer et optimiser une machine
virtuelle est un travail long et difficile qui requiert plusieurs
années. Il s'avère que la plupart des machines virtuelles possèdent des
composants communs: compilateur à la volée, ramasse-miettes, vérifieur
de type, gestionnaire de threads, gestionnaire d'entrées/sorties,
éditeur de liens paresseux, chargeur dynamique de code.
AutoVM est une machine virtuelle générique qui factorise ces composants
communs et facilite le développement de nouvelles machines virtuelles,
ou l'amélioration de machines virtuelles existantes.
Dans cet exposé, je présenterai l'architecture logicielle de notre
prototype AutoVM et montrerai sa généricité et son extensibilité.
-- Gaël Thomas est maître de conférences à l'université Pierre et Marie
Curie dans l'équipe mixte Regal/Lip6/Inria depuis trois ans. Ses travaux
de recherche portent sur la gestion des ressources, l'isolation et la
gestion de la concurrence dans les machines virtuelles.
Pour plus de renseignements, consultez http://seminaire.lrde.epita.fr/.
L'entrée du séminaire est libre. Merci de bien vouloir diffuser cette
information le plus largement possible.
Apologies for multiple reception.
Please forward, to any person you think might be interested.
+------------------------------------------------------------+
| CALL FOR PARTICIPATION |
| 6th European Lisp Workshop |
| July 6, Genova, Italy - co-located with ECOOP 2009 |
| http://elw.bknr.net/2009 |
+------------------------------------------------------------+
Important Dates
===============
ECOOP early registration deadline: May 20, 2009
ECOOP late registration deadline: July 03, 2009
6th European Lisp Workshop: July 06, 2009
Please note that registration must be done with ECOOP itself.
There is a reduced registration fee for workshop-only attendance.
The early registration deadline is in two days, so register now!
See http://ecoop09.disi.unige.it/ for details.
2009 Special News
=================
* Edi Weitz will give a keynote address on the use of his notorious
open source libraries in commercial / industrial application.
* The workshop is sponsored by ITA Software, Inc.
Please visit them at http://www.itasoftware.com/
* This year, and for the first time, the workshop proceedings
will be published in the ACM Digital Library.
Overview
========
"...Please don't assume Lisp is only useful for Animation and
Graphics, AI, Bio-informatics, B2B and E-Commerce, Data Mining,
EDA/Semiconductor applications, Expert Systems, Finance, Intelligent
Agents, Knowledge Management, Mechanical CAD, Modeling and Simulation,
Natural Language, Optimization, Research, Risk Analysis, Scheduling,
Telecom, and Web Authoring just because these are the only things they
happened to list."
-- Kent Pitman
Lisp, one of the eldest computer languages still in use today, is
gaining momentum again. The structure of Lisp makes it easy to extend
the language or even to implement entirely new dialects without
starting from scratch, making it the ideal candidate for writing
Domain Specific Languages. Common Lisp, with the Common Lisp Object
System (CLOS), was the first object-oriented programming language to
receive an ANSI standard and retains the most complete and advanced
object system of any programming language, while influencing many
other object-oriented programming languages that followed.
This workshop will address the near-future role of Lisp-based
languages in research, industry and education. We solicit
contributions that discuss the opportunities Lisp provides to capture
and enhance the possibilities in software engineering. We want to
promote lively discussion between researchers proposing new approaches
and practitioners reporting on their experience with the strengths and
limitations of current Lisp technologies.
Programme
=========
In addition to Edi Weitz's keynote address, the workshop will feature:
- technical papers on tools to interface modelling in biology, an
infrastructure for offline work in web applications and a denotational
semantics for modelling the class relationships of CLOS and its MOP,
- tutorials on filtered dispatch and SWCLOS, a semantic web processor.
Please visit the workshop's website in the next few days for a more detailed
description.
Organizers
==========
Didier Verna, EPITA Research and Development Laboratory, Paris
Charlotte Herzeel, Programming Technology Lab, Vrije Universiteit, Brussel
Robert Strandh, LaBRI, University of Bordeaux I, France
Christophe Rhodes, Goldsmiths College, University of London
Hans Hübner, Software Developer, Berlin
--
Scientific site: http://www.lrde.epita.fr/~didier
Music (Jazz) site: http://www.didierverna.com
EPITA/LRDE, 14-16 rue Voltaire, 94276 Le Kremlin-Bicêtre, France
Tel. +33 (0)1 44 08 01 85 Fax. +33 (0)1 53 14 59 22
Bonjour,
nous avons le plaisir de vous inviter à la deuxième session du séminaire
des étudiants CSI qui aura lieu le mercredi 20 mai 2009 à 14 heures en
Amphi 2 au KB.
-----------------------------------------------------------------------
Le programme :
VAUCANSON
* 14h00 : Hiérarchie par propriétés du module Algebra de Vaucanson -–
Alex Hamelin
OLENA
* 14h30 : Histogrammes -– Etienne Folio
* 15h00 : Les arbres de composantes dans Milena -– Edwin Carlinet
SPOT
* 15h45 : Nondéterminisation d’automates alternants dans SPOT -– Samuel
Da Mota
LISP
16h15 : CLIMB : Une approche dynamique du traitement générique d’images
–- Loïc Denuzière
-----------------------------------------------------------------------
Les Résumés des exposés :
**************************
VAUCANSON
14h00 : Hiérarchie par propriétés du module Algebra de Vaucanson -– Alex
Hamelin
Le module de structures algébriques de Vaucanson, Algebra, sert de base
à la définition mathématique des automates finis. Cependant la
modélisation actuelle est inexacte du point de vue théorique : les
relations d’héritages entre certaines classes sont fausses (l’héritage
entre les semi-anneaux et les monoïdes en est le parfait exemple).
D’autre part, nous ne pouvons facilement l’étendre avec de nouvelles
structures algébriques. Ainsi, afin de doter Algebra d’une plus grande
granularité dans sa définition des concepts algébriques, il est
nécessaire de retravailler sa structure globale en introduisant un
système de hiérarchie par propriétés similaire à celui présenté dans
SCOOP. En se basant sur les propriétés des opérateurs et des ensembles
mathématiques pour définir la nature des structures algébriques, et non
sur une hiérarchie de classes classique, nous pourrons nous permettre
une spécialisation plus précise des algorithmes grâce à la garantie de
propriétés sur ces structures, entraînant ainsi un gain de performance
et d’expressivité important au coeur de Vaucanson.
OLENA
14h30 : Histogrammes -– Etienne Folio
Un histogramme est une représentation de la distribution de données dans
une image, par exemple des niveaux de gris ou des couleurs. Cette
caractéristique essentielle doit être implémentée génériquement dans la
bibliothèque MILENA. Durant ce séminaire nous proposons d’enregistrer
les données d’histogrammes dans des conteneurs d’images. Pour cela, nous
avons besoin d’adapter la définition des types de valeurs. Plus
spécifiquement, nous proposons d’augmenter les traits associés aux types
de valeurs, d’ajouter de nouveaux types de valeurs utiles et de
construire de nouvelles abstractions au-dessus. Enfin nous présenterons
comment traiter des données circulaires comme les valeurs de teinte
(encodées par des angles dans l’espace de couleurs HSL) ; dans ce cas
"l’image histogramme" deviendrait aussi circulaire.
15h00 : Les arbres de composantes dans Milena -– Edwin Carlinet
La détection des formes et la reconnaissance d’objets font partie des
enjeux les plus importants du traitement d’images. Différentes
stratégies ont déjà vu le jour ; néanmoins celle basée sur l’utilisation
des arbres de composantes semble particulièrement prometteuse. En effet,
l’arbre de composantes permet d’établir puis de mettre en relation les
composantes à différents niveaux de gris de l’image. À partir de cet
arbre, il devient alors possible d’appliquer des attributs qui serviront
de critères pour filtrer ces composantes et mettre en évidence les
objets de l’image. Nous présenterons donc l’implémentation de ces
arbres, l’utilisation des attributs et des politiques de propagation
pour filtrer les composantes, ainsi que la chaîne de traitement qui
permettra d’identifier ces objets.
SPOT
15h45 : Nondéterminisation d’automates alternants dans SPOT -– Samuel Da
Mota
SPOT est une bibliothèque de model checking basée sur l’approche par
automates et sur les automates de Büchi généralisés basés sur les
transitions (TGBA) pour la vérification de systèmes exprimés sous forme
de formules logiques. L’approche automate consiste à traduire une
formule logique LTL en un automate qui reconnaît le même language. Dans
l’état actuel des choses, il existe deux algorithmes dans SPOT de
traduction de formules LTL vers des TGBA. Un troisième algorithme y sera
rajouté. Ce dernier convertira dans un premier temps la formule LTL en
un automate alternant, puis appliquera un algorithme de
nondéterminisation sur celui-ci pour obtenir un TGBA. Le but de cette
nouvelle implémentation est de mener une comparaison avec les deux
autres déjà en place. Pour mener à bien cette tâche, la structure des
automates alternants sera intégrée dans SPOT, puis ce sera au tour de
l’algorithme de nondéterminisation d’automates alternants vers des TGBA
et enfin la traduction de formules LTL sous forme d’automates alternants.
LISP
16h15 : CLIMB : Une approche dynamique du traitement générique d’images
–- Loïc Denuzière
Olena est l’une des bibliothèques de traitement d’images dont la
généricité est la plus poussée. Son modèle entièrement statique permet
de très bonnes performances, au prix d’une syntaxe alourdie et de temps
de compilation importants. Ces aspects la rendent moins efficace pour le
développement incrémental, l’expérimentation et le prototypage rapide.
Nous présenterons une approche différente du traitement d’images
générique qui utilise la même modélisation du domaine qu’Olena mais se
concentre sur les aspects dynamiques, offrant ainsi une utilisation
totalement différente de la bibliothèque. La pierre angulaire est le
langage Common Lisp qui permet une utilisation interactive, la création
à la volée de nouveaux types d’images ou de nouveaux algorithmes, tout
en offrant une syntaxe claire, personnalisable et extensible pour les
opérations courantes.
--
Daniela Becker
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