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
We are happy to announce that the following paper has been
accepted for publication at the 5th International Workshop on
Verification and Evaluation of Computer and Communication
Systems (VECoS'11) that will take place in Tunis, Tunisia, on
September 15-16, 2011.
LTL Translation Improvements in Spot
A. Duret-Lutz
Laboratoire de Recherche et Développement de l'Epita (LRDE)
http://publis.lrde.epita.fr/201109-VECOS
Spot is a library of model-checking algorithms. This paper
focuses on the module translating LTL formulæ into automata. We
discuss improvements that have been implemented in the last four
years, we show how Spot's translation competes on various
benchmarks, and we give some insight into its implementation.
--
Alexandre Duret-Lutz
Hello,
I'm happy to announce that I will be writing a chapter for an upcoming
book on Domain Specific Languages. The chapter description is given
below:
Extensible languages -- blurring the distinction between DSLs and GPLs
Domain-specific language (DSL) design and implementation is inherently a
transversal activity. It usually requires from the application
developers knowledge and expertise in both the application domain and in
language design and implementation, two completely orthogonal areas of
expertise. The difficulty is that either one needs to find people with
such dual competence, which is rare, or one needs to add manpower to the
project by means of different teams which in turn need to coordinate
their efforts and communicate together, something not easy to do either.
>From the programming language perspective, one additional complication
is that being an expert developer in one specific programming language
does not make you an expert in language design and implementation --
only in using one of them. DSLs, however, are most of the time
completely different from the language in which the embedding
application is written. A general-purpose programming language (GPL),
suitable to write a large application, is generally not suited to
domain-specific modeling, precisely because it is too general. Using a
GPL for domain-specific modeling would require too much expertise from
the end-users and wouldn't be expressive enough for the very specific
domain the application is supposed to focus on.
As a consequence, it is often taken for granted that your application's
DSL has to be completely different from your application's GPL. But what
if this assumption was wrong in the first place ?
The need for designing a DSL as a completely new language often comes
from the lack of extensibility of your GPL of choice. By imposing a
rigid syntax, a set of predefined operators and data structures on you,
the traditional GPL approach gives you no choice but to implement your
application's DSL as a different language, with its own lexical and
syntactic parser, semantic analyzer and possibly its own brand new
interpreter or even compiler.
A much less widely accepted view, however, is that some GPLs are
extensible, or customizable enough to let you implement a DSL merely as
either a subset or an extension of your original language. The result is
that your final application, as a whole, is now written in a completely
unified language. While the end-user does not have access to the whole
backstage infrastructure and hence does not really see a difference with
the traditional approach, the gain for the developer is substantial.
Since the DSL is now just another entry point for the same original GPL,
there is essentially only one application written in only one language
to maintain. Moreover, no specific language infrastructure (parser,
interpreter, compiler etc.) is required for the DSL anymore, since it is
simply expressed in terms of the original GPL. The already existing GPL
infrastructure is all that is needed.
--
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
Bonjour,
nous avons le plaisir de vous présenter le n°21 du bulletin du LRDE.
C'est un numéro spécial consacré au séminaire des élèves CSI organisé le
4 juillet 2011 avec les résumés de toutes les présentations. Les
étudiants des promos 2012 et 2013 y présenteront leur travail.
Vous trouverez également les dernières publications et sorties de
logiciels du LRDE dans ce numéro.
Et une autre date à retenir : le 6 juillet aura lieu le séminaire LRDE.
Vous pouvez télécharger le bulletin en couleur à la page suivante :
http://publis.lrde.epita.fr/201107-l-air-de-rien-21
--
Daniela Becker
Responsable administrative du LRDE