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
Bonjour,
nous avons le plaisir de vous annoncer la sortie du n°25 du bulletin du
LRDE.
C'est un numéro spécial dédié aux parcours professionnels d'anciens
élèves du LRDE depuis la promo 2000 jusqu'à celle de 2011.
Vous y trouverez également les dernières publications et nouvelles du LRDE.
Vous pouvez télécharger le bulletin en couleur à la page suivante :
http://publis.lrde.epita.fr/201205-l-air-de-rien-25
--
Daniela Becker
Responsable administrative du LRDE
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 20 juin 2012 (14h00-16h00).
Au programme:
* 14h00: GPU Computing : début d'une ère ou fin d'une époque ?
-- Eric Mahé, responsable du projet OpenGPU
L'arrivée des GPU (Graphics Processing Unit) a profondément changé la
manière de concevoir la notion de coprocesseur. A moins de 500€, il est
désormais possible d'avoir à sa disposition une puissance de calcul qui
n'était réservée jusqu'à un passé récent qu'aux grands centres de
calcul. La société Nvidia, en mettant au point l'environnement CUDA, a
fourni à la communauté des développeurs des moyens simples et efficaces
pour rendre cette puissance de calcul accessible au plus grand nombre.
Depuis, sous l'impulsion de la société Apple, le standard OpenCL est
venu ouvrir la voie d'une véritable parallélisation des applications sur
l'ensemble des ressources processeur offertes aux développeurs.
Cet exposé décrira les différentes technologies permettant la
programmation parallèle des GPU en mettant l'accent sur les contraintes
actuelles et les progrès à venir des futures architectures comme le
processeur Kepler. Des démonstrations ainsi que des exemples de code
viendront compléter cet exposé.
-- Eric Mahé a été responsable des nouvelles technologies au sein de
l'équipe marketing de Sun France pendant 20 ans après avoir occupé
différents postes de chef de projet dans le domaine du nucléaire et de
la défense. Son rôle fut d'évangéliser les choix technologiques et
stratégiques de Sun auprès des communautés concernées par le langage
Java, les développements du Logiciel Libre et les applications
citoyennes de la fédération d'identité basées sur le projet Liberty
Alliance. Diplômé de plusieurs troisièmes cycles en marketing, biologie
et informatique, Eric Mahé est administrateur de l'association Silicon
Sentier, expert auprès du pôle de compétitivité CAP Digital et
professeur de communication à l'université René Descartes – Paris V.
-- Eric Mahé assure depuis 2009 la direction du projet OpenGPU dont
l'objectif est la mise au point de nouvelles chaînes de compilation à
destination des architectures hybrides GPU/CPU et a fondé la société
MassiveRand spécialisée dans les nombres aléatoires dans le domaine de
la sécurité.
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.
--
Akim Demaille
Akim.Demaille(a)lrde.epita.fr
_______________________________________________
Seminaire mailing list
Seminaire(a)lrde.epita.fr
https://www.lrde.epita.fr/mailman/listinfo/seminaire
CALL FOR PAPERS
SAC'13 - ACM 2013 SYMPOSIUM ON APPLIED COMPUTING
Technical Track on "Programming Languages"
March 18-22, 2013
Coimbra, Portugal
SAC '13
Over the past 27 years, the ACM Symposium on Applied Computing has become a
primary forum for applied computer scientists,
computer engineers, software engineers, and application developers from around
the world to interact and present their work.
SAC 2013 is sponsored by the ACM Special Interest Group on Applied Computing
(SIGAPP). For additional information, please
check the SAC web page: http://www.acm.org/conferences/sac/sac2013/. This
document is also available at:
http://www.cse.unt.edu/~bryant/sac2013/PL-SAC13-CFP.pdf
PROGRAMMING LANGUAGES (PL) TRACK
A technical track on Programming Languages will be held at SAC'13. It will be
a forum for engineers, researchers and practitioners throughout the world to
share technical ideas and experiences relating to implementation and
application of programming languages. Original papers and experience reports
are invited in all areas of programming languages. Major topics of interest
include but are not limited to the following:
− Compiling Techniques,
− Domain-Specific Languages,
− Formal Semantics and Syntax,
− Garbage Collection,
− Language Design and Implementation,
− Languages for Modeling,
− Model-Driven Development and Model Transformation,
− New Programming Language Ideas and Concepts,
− New Programming Paradigms,
− Practical Experiences with Programming Languages,
− Program Analysis and Verification,
− Program Generation and Transformation,
− Programming Languages from All Paradigms (Agent-Oriented, Aspect-Oriented,
Functional, Logic, Object-Oriented, etc.),
− Visual Programming Languages.
GUIDELINES FOR SUBMISSION
Paper submissions must be original, unpublished work. Submissions should be in
electronic format, via the START site:
https://www.softconf.com/c/sac2013/.
Author(s) name(s) and address(es) must not appear in the body of the paper,
and self-reference should be avoided and made
in the third person. Submitted papers will undergo a blind review process.
Authors of accepted papers should submit an
editorial revision of their papers that fits within six two-column pages (an
extra two pages, to a total of eight pages,
may be available at a charge). Please comply with this page limitation already
at submission time. For accepted papers,
registration for the conference is required and allows accepted papers to be
printed in the conference proceedings.
For each accepted paper, an author or a proxy attending SAC MUST present the
paper. This is a requirement for the paper
to be included in the ACM/IEEE digital library. A set of selected papers,
which did not get accepted as full papers,
will be accepted as poster papers and will be published as extended 2-page
abstracts in the symposium proceedings.
After the conference, selected accepted papers will be invited to a special
issue of the Computer Languages, Systems and
Structures journal
(http://www.journals.elsevier.com/computer-languages-systems-and-structures/).
IMPORTANT DATES
September 21, 2012: Full Paper Submissions
November 10, 2012: Author Notification
November 30, 2012: Camera-Ready Copy
The SAC 2013 Programming Language Track Program Committee Members
Vasco Amaral, Universidade Nova de Lisboa, Portugal
Roberto da Silva Bigonha, Universidade Federal de Minas Gerais, Brasil
Haiming Chen, Chinese Academy of Sciences, China
Johan Fabry, University of Chile, Chile
Sebastian Guenter, Vrije Universiteit Brussel, Belgium
Gopal Gupta, University of Texas at Dallas, USA
Christian Haack, University of Nijmegen, The Netherlands
Christian Hammer, Saarland University, Germany
Matthias Hauswirth, University of Lugano, Switzerland
Pedro Henriques, University of Minho, Portugal
Michael Hind, IBM, USA
Nigel Horspool, University of Victoria, Canada
Zoltan Horvath, Eotvos Lorand University, Hungary
Bo Huang, Intel, China
Geylani Kardas, Ege University, Turkey
Shih Hsi "Alex" Liu, California State University, Fresno, USA
Hanspeter Moessenboeck, Johannes Kepler Universitat Linz, Austria
Jesús García Molina, University of Murcia, Spain
Nikolaos Papaspyrou, National Technical University of Athens, Greece
Corneliu Popeea, Technical University of Munich, Germany
Andre Santos, Universidade Federal de Pernambuco, Brazil
Bostjan Slivnik, University of Ljubljana, Slovenia
Didier Verna, EPITA, France
Wuu Yang, National Chiao-Tung University, Taiwan
Youtao Zhang, University of Pittsburgh, USA
Track Chairs
Marjan Mernik, University of Maribor, Slovenia, marjan.mernik(a)uni-mb.si
Barrett Bryant, University of North Texas, USA, Barrett.Bryant(a)unt.edu
--
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 pleased to announce the release of Spot 0.9.
Spot is a model-checking library developed collaboratively by LRDE and
LIP6. It provides algorithms and data structures to implement the
automata-theoretic approach to LTL model checking.
You can find the new release here:
http://spot.lip6.fr/dl/spot-0.9.tar.gz (11MB)
The major news in this release are all related to the
logic-to-Büchi-automaton translation engine:
1. The linear-time fragment of PSL is supported.
This first implementation, enough to experiment with the
logic, shall be improved in future versions.
(Feedback most welcome.)
2. The LTL simplification code has been overhauled and
augmented with new rules.
3. A new simulation-based post-processing can be used
to simplify the TGBA constructed.
For more details about the first two points (supported operators, and
rewritings performed), please read the file doc/tl/tl.pdf included in
spot-0.9.tar.gz.
A consequence of the last two points is that Spot 0.9 is faster than
Spot 0.8.3 and can produce even smaller automata. For some
comparative benchmarks, please download
http://spot.lip6.fr/dl/bench-0.9.pdf
Please direct any feedback and questions to <spot(a)lrde.epita.fr>.
(Subscribe at https://www.lrde.epita.fr/mailman/listinfo/spot if you wish.)
A more detailed list of new features follows.
New in spot 0.9 (2012-05-09):
* New features:
- Operators from the linear fragment of PSL are supported. This
basically extends LTL with Sequential Extended Regulat
Expressions (SERE), and a couple of operators to bridge SERE and
LTL. See doc/tl/tl.pdf for the list of operators and their
semantics.
- Formula rewritings have been completely revamped, and augmented
with rules for PSL operators (and some new LTL rules as well).
See doc/tl/tl.pdf for the list of the rewritings implemented.
- Some of these rewritings that may produce larger formulas
(for instance to rewrite "{a;b;c}" into "a & X(b & Xc)")
may be explicitely disabled with a new option.
- The src/ltltest/randltl tool can now generate random SEREs
and random PSL formulae.
- Only one translator (ltl2tgba_fm) has been augmented to
translate the new SERE and PSL operators. The internal
translation from SERE to DFA is likely to be rewriten in a
future version.
- A new function, length_boolone(), computes the size of an
LTL/PSL formula while considering that any Boolean term has
length 1.
- The LTL/PSL parser recognizes some UTF-8 characters (like ◇ or
∧) as operators, and some output routines now have an UTF-8
output mode. Tools like randltl and ltl2tgba have gained an -8
option to enable such output. See doc/tl/tl.pdf for the list
of recognized codepoints.
- A new direct simulation reduction has been implemented. It
works directly on TGBAs. It is in src/tgbaalgos/simlation.hh,
and it can be tested via ltl2tgba's -RDS option.
- unabbreviate_wm() is a function that rewrites the W and M operators
of LTL formulae using R and U. This is called whenever we output
a formula in Spin syntax. By combining this with the aforementioned
PSL rewriting rules, many PSL formulae that use simple SERE can be
converted into LTL formulae that can be feed to tools that only
understand U and R. The web interface will let you do this.
- changes to the on-line translator:
+ SVG output is available
+ can display some properties of a formula
+ new options for direct simulation, larger rewritings, and
utf-8 output
- configure --without-included-lbtt will prevent LBTT from being
configured and built. This helps on systems (such as MinGW)
where LBTT cannot be built. The test-suite will skip any
LBTT-based test if LBTT is missing.
* Interface changes:
- Operators ->, <->, U, W, R, and M are now parsed as
right-associative to better match the PSL standard.
- The constructors for temporal formulae will perform some trivial
simplifications based on associativity, commutativity,
idempotence, and neutral elements. See doc/tl/tl.pdf for the
list of such simplifications.
- Formula instances now have many methods to inspect their
properties (membership to syntactic classes, absence of X
operator, etc...) in constant time.
- LTL/PSL formulae are now handled everywhere as 'const formula*'
and not just 'formula*'. This reflects the true nature of these
(immutable) formula objects, and cleanups a lot of code.
Unfortunately, it is a backward incompatible change: you may have
to add 'const' to a couple of lines in your code, and change
'ltl::const_vistitor' into 'ltl::visitor' if you have written a
custom visitor.
- The new entry point for LTL/PSL simplifications is the function
ltl_simplifier::simplify() declared in src/ltlvisit/simplify.hh.
The ltl_simplifier class implements a cache.
Functions such as reduce() or reduce_tau03() are deprecated.
- The old game-theory-based implementations for direct and delayed
simulation reductions have been removed. The old direct
simulation would only work on degeneralized automata, and yet
produce results inferior to the new direct simulation introduced
in this release. The implementation of delayed simulation was
unreliable. The function reduc_tgba_sim() has been kept
for compatibility (it calls the new direct simulation whatever
the type of simulation requested) and marked as deprecated.
ltl2tgba's options -Rd, -RD are gone. Options -R1t, -R1s,
-R2s, and -R2t are deprecated and all made equivalent to -RDS.
- The tgba_explicit hierarchy has been reorganized in order to
make room for sba_explicit classes that share most of the code.
The main consequence is that the tgba_explicit type no longuer
exists. However the tgba_explicit_number,
tgba_explicit_formula, and tgba_explicit_string still do.