I'm happy to announce that my contribution to TUG 2011, the next TeX
Users Group International conference, has been accepted. Please find the
title and abstract below.
LaTeX Coding Standards
Because LaTeX (and ultimately TeX) is only a macro-expansion system, the
language does not impose any kind of good software engineering practice,
program structure or coding style whatsoever. As a consequence, writing
beautiful code (for some definition of "beautiful") requires a lot of
self-discipline from the programmer.
Maybe because in the LaTeX world, collaboration is not so widespread
(most packages are single-authored), the idea of some LaTeX Coding
Standards is not so pressing as with other programming languages. Some
people may, and probably have developed their own programming habits,
but when it comes to the LaTeX world as a whole, the situation is close
to anarchy.
Over the years, the permanent flow of personal development experiences
contributed to shape my own taste in terms of coding style. The issues
involved are numerous and their spectrum is very large: they range from
simple code layout (formatting, indentation, naming schemes etc.),
mid-level concerns such as modularity and encapsulation, to very
high-level concerns like package interaction/conflict management and
even some rules for proper social behavior.
In this talk, I will report on all these experiences and describe what I
think are good (or at least better) programming practices. I believe
that such practices do help in terms of code readability,
maintainability and extensibility, all key factors in software
evolution. They help me, perhaps they will help you too.
--
Resistance is futile. You will be jazzimilated.
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
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 15 février 2012 (14h-17h). Nous sommes heureux de vous
annoncer qu'un second exposé est programmé !
Au programme:
* 14h: Des performances dans les nuages avec la virtualisation des langages
-- Yann Régis-Gianas
http://www.pps.jussieu.fr/~yrg/
«The effective exploitation of his powers of abstraction must be
regarded as one of the most vital activities of a competent programmer.»
disait Dijsktra.
En effet, pour aborder la complexité d'un problème, l'explicitation des
concepts utiles à sa formalisation et à sa résolution est bien souvent
une étape clé. Lorsque que l'on étend ce processus à une classe de
problèmes qui partagent les mêmes concepts, il est naturel de se doter
d'un langage le plus approprié possible pour manipuler ces abstractions
spécifiques à un domaine (en anglais, «Domain Specific Language»).
Comment implémenter ces DSLs? Une première approche classique reflète
les constructions du DSL sous la forme d'un jeu de fonctions de
bibliothèque. L'avantage de cette approche est d'utiliser directement
son langage généraliste préféré, et sa chaîne de compilation optimisée,
de façon à générer du code machine à moindre frais. Par contre, dans ce
cadre, l'écriture de passe d'optimisations spécifiques au DSL --- à
moins d'utiliser des techniques pointues de méta-programmation --- est a
priori impossible.
Une seconde approche, opposée, consiste à écrire un compilateur pour le
DSL à partir de zéro. Toute liberté est alors donnée à l'implémenteur
d'intégrer à son compilateur des passes d'optimisation spécifiques… mais
au prix d'une réimplémentation de passes de compilation déjà présentes,
et certainement plus abouties, dans le compilateur de son langage
généraliste favori.
Dans cet exposé, je présenterai les travaux de Martin Odersky et son
équipe sur la virtualisation de DSLs à l'intérieur du langage de
programmation Scala. La virtualisation de langage utilise intensivement
le polymorphisme et la composition mixin de Scala ainsi que des
techniques de génération de code à l'exécution pour embarquer des
langages spécifiques dans Scala dont la compilation peut réutiliser des
modules du compilateur mais aussi étendre ces derniers par des
optimisations spécifiques au domaine.
-- Yann Régis-Gianas est un ancien élève de l'EPITA, promo CSI 2003. À sa
sortie de l'école, il a poursuivi un troisième cycle en passant un DEA à
l'Université Paris Diderot et une thèse à l'INRIA Rocquencourt. Il est
aujourd'hui maître de conférence à Paris Diderot et travaille sur le
design des langages de programmation et de preuve.
* 15h30: Certification d'annotations de coût dans les compilateurs
-- Nicolas Ayache
Nous traitons du problème de la conception d'un compilateur où des
informations sur le coût à l'exécution du code objet sont retournées en
tant qu'annotations de coût sur le code source, et ce de façon certifiée
correcte. Pour cela, nous avons besoin d'une idée souple et précise :
(i) du sens donné aux annotations de coût, (ii) de la méthode pour les
prouver correctes et précises, et (iii) de la manière d'en composer les
preuves. Nous proposons ce que nous appelons une approche par étiquetage
pour répondre à ces trois questions. Dans un premier temps, nous
montrons son application sur un compilateur jouet. L'étude formelle qui
en découle suggère que l'approche par étiquetage a de bonnes propriétés
de compositionnalité et de passage à l'échelle. Afin de s'en convaincre
davantage, nous rapportons notre retour d'expérience sur
l'implémentation d'un compilateur prototype écrit en ocaml pour un large
sous-ensemble du langage C.
-- Nicolas Ayache, ancien doctorant Université Paris-Sud / CEA-LIST, est
actuellement Post-doc au laboratoire PPS (Preuves, Programmes et
Systèmes) à l'université Paris Diderot.
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.
_______________________________________________
Seminaire mailing list
Seminaire(a)lrde.epita.fr
https://www.lrde.epita.fr/mailman/listinfo/seminaire
Hello,
we are pleased to inform you that the paper entitled
"Motion compensation based on Tangent Distance prediction for video
compression"
J. Fabrizio(1), S. Dubuisson(2) and D. Béréziat(2)
(1) LRDE-EPITA, www.lrde.epita.fr
(2) UPMC-LIP6, www.lip6.fr
has just been published in Signal Processing: Image Communication
Réference : SP:IC 27(2), pages 153--171.
The abstract is given below:
We present a new algorithm for motion compensation that uses a motion
estimation method based on tangent distance. The method is compared with
a Block-Matching based approach in various common situations. Whereas
Block-Matching algorithms usually only predict positions of blocks over
time, our method also predicts the evolution of pixels into these
blocks. The prediction error is then drastically decreased. The method
is implemented into the Theora codec proving that this algorithm
improves the video codec performances.
--
Daniela Becker
Responsable administrative du LRDE
Bonjour,
nous avons le plaisir de vous présenter le n°24 du bulletin du LRDE.
Nous y parlons des deux nouveaux projets auxquels le LRDE participe :
"eTourisme Augmenté" et "TerraRush".
Vous lirez sur les activités d'Etienne Renault, doctorant, et de
Benjamin Raynal, post-doc, tous les deux chez nous depuis 6 mois.
Vous trouverez également les dernières publications et sorties de
logiciels du LRDE dans ce numéro.
Et une autre date à retenir : le mercredi 15 février aura lieu le
prochain Séminaire LRDE.
Vous pouvez télécharger le bulletin en couleur à la page suivante :
http://publis.lrde.epita.fr/201202-l-air-de-rien-24
--
Daniela Becker
Responsable administrative du LRDE