Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 135

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 135

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 187

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 188

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 189

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 194

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 195

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 196

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 197

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 241

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 264

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 269

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 275

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 285

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 286

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 296

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 297

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 298

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 308

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 309

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 310

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 311

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 321

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 322

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 323

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 324

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 325

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 497

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 527

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 540

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 587

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 626

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 668

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 668

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 670

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 673

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 682

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 688

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 693

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/ on line 699

Deprecated: Function get_magic_quotes_gpc() is deprecated in /home/didierve/ on line 410

Deprecated: Function get_magic_quotes_gpc() is deprecated in /home/didierve/ on line 410

Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/ in /home/didierve/ on line 272

Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/ in /home/didierve/ on line 274

Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/ in /home/didierve/ on line 274

Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/ in /home/didierve/ on line 274

Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/ in /home/didierve/ on line 110

Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/ in /home/didierve/ on line 130

Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/ in /home/didierve/ on line 295
Miscellaneous - Didier Verna's Scientific Blog
About Lectures Research Software Blog
Musical Site

Moods Blog

Dojo Shin Kaï

RSS Feed
Thank you!

XHTML 1.0 conformant
CSS 2.0 conformant
Didier Verna's scientific blog: Lisp, Emacs, LaTeX and random stuff.


Entries feed - Comments feed

Wednesday, March 11 2020

How Deep Learning may change the face of customer support

Today, I was browsing the support forum of a software product I own a license for, and I suddenly realized something which is probably not obvious at all, especially if you're not yourself a computer scientist. For some time now, I've been noticing something I found rather odd in various threads on this forum. In many situations, one of the product developers (I guess), a very active, kind, and responsive person ends up replying "well, the product can't be perfect". This is a response I felt very uncomfortable with, right from the start. Why? Well, I don't think anyone expects any product (especially software) to be perfect. People on the forum just report bugs, and expect some form of acknowledgement that the bug is there, is reproducible, and that a workaround or a fix is on its way, or will be soon. But why does this developer feel the need for confessing that the product is "not perfect", and why so often? It almosts sounds like an embarassed apology.

The product in question is in fact a real-time audio signal analysis application. In order to remain not too specific, let's just say that you feed it with some music, and it spits out the notes as it recognizes them. With my CS background, I'm used to signal processing application using Fourier transforms and whatnot to perform deterministic computation on the processed signal. But recently, I found out that this product uses Deep Learning technologies, and then I suddenly understood what's going on.

Imagine you get a complaint that your "legacy" signal processing software is unable to recognize a C2 in a bunch of simultaneous notes. You could probably figure out (and reply) that there's a bug in your Fourier transform implementation, or that you got the amplitude computation wrong, and the note is below the activation threshold, or you have a low-cut filter that was not configured properly, or whatever.

But now imagine that your software is a (correct) gigantic neural net. What can you say? Not only there isn't a specific algorithm to debug. On top of that, you're also completely incapable of deciphering what's really going on in the net. So you need to re-train your system, probably. But what can you say to your customer? There is no specific bug to acknowledge, let alone a specific workaround or imminent "bugfix". Besides, who knows what previously fine situation could degrade after the new training? So yes, I suppose, you're a bit stuck on how and what exactly you can reply to your customer. Apart maybe from what computer scientists know very well about that kind of technology: it can never be perfect.

Now that I've come to realize this, it seems to me that as Deep technologies continue to spread to a variety of applications, the face of customer support may change drastically, in the sense that while users continue to experience very specific problems, it will no longer be possible to provide them with very specific answers.

Tuesday, March 3 2020

Onward! Essays 2020 Call for Papers

			    Onward! Essays 2020
    ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and
		  Reflections on Programming and Software

		     Renaissance Chicago Downtown Hotel
				Chicago, USA

			    November 18--20 2020

			    Part of SPLASH 2020
	      Systems, Programming Languages and Applications:
			   Software for Humanity

Onward! is a premier multidisciplinary conference focused on everything to
do with programming and software: including processes, methods, languages,
communities, applications and education.

Compared to other conferences, Onward! is more radical, more visionary, and
more open to ideas that are well-argued but not yet proven. It is not
looking for research-as-usual papers. To allow room for bigger, bolder
and/or less mature ideas, it accepts less exact methods of validation, such
as compelling arguments, exploratory implementations, and substantial

Onward! Essays is looking for clear and compelling pieces of writing about
topics important to the software community (there is also a parallel Papers
track with a seperate announcement).

An essay can be an exploration of the topic and its impact, or a story about
the circumstances of its creation; it can present a personal view of what
is, explore a terrain, or lead the reader in an act of discovery; it can be
a philosophical digression or a deep analysis. It can describe a personal
journey, perhaps the one the author took to reach an understanding of the
topic. The subject area—software, programming, and programming
languages—should be interpreted broadly and can include the relationship of
software to human endeavors, or its philosophical, sociological,
psychological, historical, or anthropological underpinnings.

Format and Selection:

Onward! essays must describe unpublished work that is not currently
submitted for publication elsewhere as described by SIGPLAN's Republication
Policy. Submitters should also be aware of ACM's Policy and Procedures on
Plagiarism. Onward! essays should use the ACM SIGPLAN Conference acmart
format. Please refer to the conference's website above for full details.

The Onward! Essays track follows a two-phase review process. Essays are
peer-reviewed in a single-blind manner. Accepted essays will appear in the
Onward! Proceedings in the ACM Digital Library, and must be presented at the
conference. Submissions will be judged on the potential impact of the ideas
and the quality of the presentation.

Important dates:

All deadlines are midnight, anywhere on Earth.

Essay submission:         23 April
First-round notification: 11 June
Second-round submission:  15 July
Final notification:       30 July
Conference:               18--20 November

Programme Committee:

Didier Verna, EPITA Research lab, France (Program Chair)

Anya Helene Bagge, University of Bergen, Norway
Alexandre Bergel, University of Chile
Jean Bresson, Ableton, Germany
Maxime Chevalier-Boisvert, Université de Montréal, Québec
Elisa Gonzalez Boix, Vrije Universiteit Brussel, Belgium
Hidehiko Masuhara, Tokyo Institute of Technology, Japan
Kent Pitman, PTC, USA
Donya Quick, Stevens Institute of Technology, USA
Gordana Rakić, University of Novi Sad, Serbia

Friday, June 3 2016

Comment faire plaisir à son vieux prof

L’enseignement ne doit pas, ou ne devrait pas être juste un métier. Pour que ça marche, il faut que ce soit une vocation. Il faut aimer transmettre ce que l’on sait, il faut aimer faire le clown sur scène pour capturer et conserver l’attention d’un auditoire pas toujours à ce qu’il fait... Un enseignement réussi, pour moi, c’est tout simplement du théâtre. Il faut s’amuser, et alors les étudiants s’amuseront aussi. C’est d’ailleurs pourquoi la manière de transmettre est certainement plus importante que la matière transmise.

Les systèmes d’exploitation n’ont jamais été une matière favorite pour moi, et pourtant je me suis amusé comme un fou à en parler pendant plus de 10 ans...

Pour bien enseigner, il faut aimer transmettre ce que l’on sait, donc, mais il faut aussi avoir l’aplomb de ne pas transmettre ce que l’on ne sait pas. Croyez-moi, les étudiants ne sont pas dupes d’un prof qui brode laborieusement pour faire semblant de savoir répondre à une question. Au contraire, en répondant « je ne sais pas » quand c’est tout simplement la vérité, on continue à transmettre, mais autre chose. On transmet l’idée qu’aucun humain n’est infaillible, que l’on ne sait jamais tout sur tout. On transmet l’idée que même un prof est susceptible de passer à côté de choses importantes (quand on est enseignant-chercheur de surcroît, on ne le sait que trop bien !). On peut aussi du même coup transmettre l’idée que la curiosité est une qualité, que les questions sont au moins aussi intéressantes que les réponses, et, cerise sur le gâteau, transmettre un sentiment gratifiant de respect et de considération envers l’étudiant qui pose une question pertinente, voire pointue. On ne gagnera jamais le respect de son auditoire en faisant semblant de tout savoir. Le respect (et par voie de conséquence, l’autorité) se gagne en étant soi-même.

Mais je m’égare, car mon objectif n’était pas du tout celui-ci quand j’ai commencé à écrire ce blog... Comment faire plaisir à son vieux prof ? En fait, c’est très facile: si un prof a mis tout son coeur à faire le clown sur scène pour transmettre en s’amusant, rappelez-vous tout simplement de la pièce de théâtre, et dites-lui que vous avez aimé !

Il y a un an jour pour jour, je postais le message qui suit sur Facebook.


Rien ne laissait présager alors du flot de commentaires chaleureux qui s’en suivirent, et de l’émotion qui me rempli à l’intérieur de moi-même...


Il n’en faut pas beaucoup pour combler son vieux prof de joie. Facebook m’a ressorti ce post aujourd’hui, et afin d’éviter qu’il se perde à nouveau dans un océan d’autres messages, j’ai décidé d’en sauvegarder précieusement la substantifique moelle ici...

   Et voilà, c'est officiel. Après plus de 10 ans de bons et loyaux services,
   je passe définitivement la main sur le cours de Systèmes d'Exploitation.
   Mais pour compenser, il y aura dès la rentrée prochaine un cours de
   Programmation Fonctionnelle enrichi, et un nouveau cours (surprise pour l'instant) !
   Au moins 13 ans, je t'avais en cours en 2001 sur cette matière.
   J'ai like, mais non je ne devrais pas...
   Ça me fait tout drôle quand même !
   Oh noooo !
   Une grande perte pour les 2018 ... Jamais ils ne connaîtront Auguste Pignard
   ou encore les processus découpés comme des saucissons ... :(
   J'essaye de recycler mes blagues les plus célèbres dans le cours de fonctionnel,
   mais faut dire que c'est beaucoup plus difficile...
   Et les enfants sur le tourniquet qui se font dégager dans le "round robin"
   Putain, mais arrêtez les mecs, vous allez me faire regretter !!
   Et les chèques de Montgallet ... Si on tue son père on devient un Démon... :'(.
   Sans oublier la méthode Bayrousienne ...
   Ça y est. JE VEUX CONTINUER CE COUUUUUUURS !!! On se marrait tellement !
   C'était l'un des rares moments de joie et de bonheur au S1 :(
   Et la mamie avec ses courses... et les centaines de mamies avec UNE course !
   Oh mon dieu j'avais oublié les pénuries :'(
   C'était un très bon cours et en effet dommage que ça s'arrête.
   Mais il y a un temps pour tout! Bonne continuation a toi Didier.

Alors mes chers anciens élèves, je vous promets de continuer à faire vivre par tous les moyens possibles, Auguste Pignard, François Bayroux, la p’tite vieille avec son paquet de biscottes, les enfants qui se font éjecter du tourniquet et les rondelles de saucisson. Je promets également aux générations futures d’inventer de nouveaux personnages rigolos, afin que transmission continue à rimer avec théâtre (ah merde, ça rime pas en fait).

Merci à tous du fond du coeur; je vous aime !

Tuesday, May 19 2015

DSL 2015 Call for Papers

                        C A L L   F O R   P A P E R S

                        ======== DLS 2015 ===========
                   11th Dynamic Languages Symposium 2015
                               October, 2015
                   Pittsburgh, Pennsylvania, United States

                        Co-located with SPLASH 2015
                      In association with ACM SIGPLAN

The 11th Dynamic Languages Symposium (DLS) at SPLASH 2015 is the
premier forum for researchers and practitioners to share knowledge and
research on dynamic languages, their implementation, and
applications. The influence of dynamic languages -- from Lisp to
Smalltalk to Python to Javascript -- on real-world practice and
research continues to grow.

DLS 2015 invites high quality papers reporting original research,
innovative contributions, or experience related to dynamic languages,
their implementation, and applications. Accepted papers will be
published in the ACM Digital Library, and freely available for 2 weeks
before and after the event itself.  Areas of interest include but are
not limited to:

    Innovative language features and implementation techniques
    Development and platform support, tools
    Interesting applications
    Domain-oriented programming
    Very late binding, dynamic composition, and run-time adaptation
    Reflection and meta-programming
    Software evolution
    Language symbiosis and multi-paradigm languages
    Dynamic optimization
    Hardware support
    Experience reports and case studies
    Educational approaches and perspectives
    Semantics of dynamic languages

== Invited Speaker ==

DLS is pleased to announce a talk by the following invited speaker:

  Eelco Visser: Declare your Language.

== Submissions and proceedings ==

Submissions should not have been published previously nor under review
at other events. Research papers should describe work that advances
the current state of the art. Experience papers should be of broad
interest and should describe insights gained from substantive
practical applications. The program committee will evaluate each
contributed paper based on its relevance, significance, clarity,
length, and originality.

Papers are to be submitted electronically at in PDF
format. Submissions must be in the ACM format (see and not exceed 12
pages. Authors are reminded that brevity is a virtue.

DLS 2015 will run a two-phase reviewing process to help authors make
their final papers the best that they can be. After the first round of
reviews, papers will be rejected, conditionally accepted, or
unconditionally accepted. Conditionally accepted papers will be given
a list of issues raised by reviewers. Authors will then submit a
revised version of the paper with a cover letter explaining how they
have or why they have not addressed these issues. The reviewers will
then consider the cover letter and revised paper and recommend final
acceptance or rejection.

Accepted papers will be published in the ACM Digital Library.
Important dates

    Abstract Submissions: Sun 7 Jun 2015
    Full Submissions: Sun 15 Jun 2015
    First phase notification: Mon 27 Jul 
    Revisions due: Mon 3 Aug
    Final notification: Mon 17 Aug
    Camera ready: Fri 21 21 Aug

Program chair

    Manuel Serrano, Inria Sophia-Antipolis,

Program committee

    Carl Friedrich Bolz, DE
    William R. Cook, UTexas, USA
    Jonathan Edwards, MIT, USA
    John Field, Google, USA
    Matt Flatt, USA
    Elisa Gonzalez Boix, Vrije Universiteit, BE
    Robert Hirschfeld, Hasso-Plattner-Institut Potsdam, DE
    Benjamin Livshits, Microsoft, USA
    Crista Lopes, UC Irvine, USA
    Kevin Millikin, Google, DN
    James Noble, Victoria University of Wellington, NZ
    Manuel Serrano, Inria, FR (General chair)
    Didier Verna, EPITA, FR
    Jan Vitek, Purdue, USA
    Joe Politz, Brown University, USA
    Olivier Tardieu, IBM, USA

Tuesday, November 12 2013

JBBE: Fake Academic Journal, the Next Generation

If you work in the academy, you are surely already getting a lot of spam from fake conferences asking for papers, PC participation etc. You also know that several years ago, a new form of harassment appeared: fake academic journals. There seems to be more and more of those everyday.

Sometimes, they're a bit hard to spot, especially if their focus seems to be in accordance with your activities. A hint is that you've never heard of them before, though. And sometimes, they're not hard to spot... at all. Meet the stupidest fake academic journal ever: the Journal of Bioinformatics and Biological Engineering.

Here's what I recieved yesterday:

We recently noticed your outstanding paper “Lisp: Report on the 5th workshop ELW at ECOOP 2008” and it well suits the focus and scope of Journal of Bioinformatics and Biological Engineering(JBBE). Considering that we share the same interests in Bioinformatics and Biological Engineering, we are now sending this message to you and sincerely invite you to share your new research or updated results in JBBE.

So, here are a couple of remarks:

  1. It's cool that you have noticed this paper "recently", although it's almost 6 years old now.
  2. The paper in question is actually not a paper. It's a conference proceedings for which I was programme chair, so basically, I wrote only the cover in it.
  3. Finally, there is nothing related to Biology in there. It's about a dynamic programming language.

Well done, guys. You almost got me! Ah, one more thing: I do have some interest in Computer Science and Biology, and I even wrote two papers in this area. Apparently, you failed to spot them, though...

Here's the end of the message:

Please kindly forward this email to your colleagues and students. We shall be greatly appreciated to hear from you at any time.

No, I won't forward this email to my colleagues. And no, you shan't be "greatly appreciated" to hear from me at any time!

Monday, September 23 2013

Keynote at ACCU 2014

I am thrilled to announce that I will be a keynote speaker at the next ACCU conference. The abstract of my keynote is given below. Looking forward to see you there!

Biological Realms in Computer Science

In biology, evolution is usually seen as a tinkering process, different from what an engineer does when he plans the development of his systems. Recently, studies have shown that even in biology, there is a part of good engineering. As computer scientists, we have much more difficulty to admit that there is also a great deal of tinkering in what we do, and that our software systems behave more and more like biological realms every day.

This keynote will take you to a journey through the bonds between biology and computer science. Starting with an epistemological and historical view, we will see how these bonds developed over the years, but we will also ask ourselves whether these bonds were intentionally created, or whether they already existed, before we even found them. We will also meet the Engineer and the Tinkerer, and see that they are not necessarily different persons. Finally, through such notions as Determinism, Predictability and Control, we will envision and explain a possible future for our software systems seen as living organisms; a future that's in fact already here, but that we are reluctant to accept.

Tuesday, May 14 2013

So long, TweetDeck

In a recent blog full of marketting crap, Twitter announced that they are dropping all versions of TweetDeck except for the web-based app, and that they are also dropping support for Facebook integration. Well, that's too bad because these were the only two things that made me use it.

The annoucement starts like this:

To continue to offer a great product that addresses your unique needs ...

Yeah, right. Great product? Not so much. For starters, it would have been really great if it had gotten support for Google Plus at some point. Something that many of us were desperately hoping for.

As for my "unique needs", thank you very much but you don't know squat about them obviously, and besides, they're not even "unique". Again, for many of us, what were the 2 crucial features of TweetDeck, compared to the other alternatives?

  1. Social net aggregation (including Twitter and Facebook) plus sorting and filtering facilities; something that many other tools (such as HootSuite) do,
  2. Social net merging, something that to the best of my knowledge, no other tool does.

This second feature was absolutely crucial to me. The ability to have the "Home" column displaying all social feeds all at once, all in one place. The "Interactions" column displaying a merge of all my interactions on both Facebook and Twitter all at once, all in one place. Boy, did I wish Google Plus was there as well. And now this is all gone.

So I guess I'm back to the stone age now. One freaking web page for every social net. Or I could finally switch to HootSuite, with its so ugly and so much bloated interface. Correct me if I'm wrong, but I don't think HootSuite does social merging (is there a tool left that does it now?). But at least, it has some partial support for Google Plus (only pages; let's hope that this will change soon).

The annoucement starts like this:

From the whole TweetDeck team, we’re excited about what the future holds. We hope you are too.

Well, you know, not so much, really.

So long, TweetDeck, and thanks for your help until today.

Hint: the next social net killer app will need to do social merging, sorting and filtering, with at least Twitter, Facebook and Google Plus. Now, to your keyboards, you geeks.

Sunday, March 24 2013

COP'13 - 5th international workshop on context-oriented programming

			   Call for Papers

     Fifth International Workshop on Context-Oriented Programming
      Worokshop in conjunction with ECOOP, ECMFA, and ECSA 2013
		 Montpellier, France, July 2nd, 2013


Context information plays an increasingly important role in our
information-centric world. Software systems must adapt to changing
contexts over time, and must change even while they are
running. Unfortunately, mainstream programming languages and
development environments do not support this kind of dynamic change
very well, leading developers to implement complex designs to
anticipate various dimensions of variability. Starting from this
observation, Context-Oriented Programming (COP) has emerged as a
solution to directly support variability depending on a wide range of
dynamic attributes, making it possible to dispatch run-time behaviour
on any property of the execution context.

The goal of the 5th International Workshop on Context-Oriented
Programming (COP’13) is to further establish context orientation as a
common thread to language design, application development, and system
support. Several researchers are working on Context-Oriented
Programming and related ideas, and implementations ranging from
prototypes to mature platform extensions used in commercial
deployments have illustrated how multi-dimensional dispatch can indeed
be supported effectively to achieve expressive run-time behavioural

Topics of interest include but are not limited to:

- Interesting application domains and scenarios
- Programming language abstractions for context-oriented programming
  (e.g. dynamic scoping, roles, traits, prototype-based extensions)
- Theoretical foundations for context-oriented programming (e.g.,
  semantics, type systems)
- Configuration languages (e.g. feature description interpreters,
  transformational approaches)
- Interaction between non-functional programming concerns and
  context-oriented programming (e.g. security, persistence,
  concurrency, distribution)
- Modularization approaches for context-oriented programming
  (e.g. aspects, modules, layers, plugins)
- Guidelines to include context-oriented programming in programs
  (e.g. best practices, patterns)
- Runtime support for context-oriented programming (e.g. reflection,
  dynamic binding)
- Tool support

Important dates

 * Paper submission:   April 19, 2013
 * Notification:       May 8, 2013
 * Final papers due:   May 22, 2013 (to be confirmed)
 * Early registration: May 31, 2013

Submission guidelines

COP invites submissions of high-quality papers reporting original
research, or describing innovative contributions to, or experience
with context-oriented programming, its implementation, and
application. Papers that depart significantly from established ideas
and practices are particularly welcome.  Submissions must not have
been published previously and must not be under review for any another
refereed event or publication. The program committee will evaluate
each contributed paper based on its relevance, significance, clarity,
and originality.  

It is planned to publish accepted papers in the ACM Digital Library,
unless the authors choose not to. In case of publication in the ACM
Digital Library, authors must transfer copyright to ACM upon
acceptance (for government work, to the extent transferable), but
retain various rights (see ACM Copyright Policy. Authors are
encouraged to publish auxiliary material with their paper (source
code, test data, etc.); they retain copyright of auxiliary material.

Papers should be submitted electronically via EasyChair (URL TBA) in
PDF format.  Submissions must be written in English (the official
language of the workshop) and must not exceed 6 pages. They should use
the ACM SIGPLAN 10 point format, templates for which are available at

Program Committee

  Tomoyuki Aotani, Japan Advanced Institute of Science and Technology, Japan
  Pascal Costanza, Intel, USA
  Carl Friedrich Bolz, Heinrich-Heine-Universität Düsseldorf, Germany
  Sebastián González, UCLouvain, Belgium
  Atsushi Igarashi (Chair), Kyoto University, Japan
  David Lorenz, Open University of Israel, Israel
  Didier Verna, EPITA Research and Development Laboratory (LRDE), France

Organising committee

  Malte Appeltauer, SAP Innovation Center, Germany
  Sebastián González, UCLouvain, Belgium
  Robert Hirschfeld, Hasso-Plattner-Institut, Germany
  Atsushi Igarashi, Kyoto University, Japan (primary contact)
  Hidehiko Masuhara, University of Tokyo, Japan

More information

See the workshop website at 

Tuesday, February 26 2013

Dyla'13, 7th Workshop on Dynamic Languages and Applications

Dyla'13, 7th Workshop on Dynamic Languages and Applications
Colocated with ECOOP, ECMFA and ECSA
1–5 July, Montpellier, France

!! Important dates

- Submission deadline:  April 19th
- Notification: mid-May
- Workshop: July 1st
- Ecoop early registration: mid-May

!! Abstract

The advent of Java and C# has been a major breakthrough in the adoption of
some important object-oriented language characteristics. This breakthrough
turned academic features like interfaces, garbage collection, and
meta-programming into technologies generally accepted by
industry. Nevertheless, the massive adoption of these languages now also gives
rise to a growing awareness of their limitations. A number of reactions from
industry testify this: invokedynamic bytecode instruction has been included in
latest Java virtual machine release; the dynamic language runtime (DLR) is
gaining popularity; C# adopted dynamic as a valid static type. Gartner
prognoses further growth ( of
dynamic languages.

Researchers and practitioners struggle with static type systems, overly
complex abstract grammars, simplistic concurrency mechanisms, limited
reflection capabilities, and the absence of higher-order language constructs
such as delegation, closures and continuations. Dynamic languages such as
Ruby, Python, JavaScript and Lua are a step forward in addressing these
problems while getting more and more popular. Making these languages
mainstream requires practitioners to look back and pick mechanisms up in
existing dynamic languages such as Lisp, Scheme, Smalltalk and
Self. Practitioners also need to further explore discover new dynamic
approaches in the context of new challenging fields such as pervasive

The goal of this workshop is to act as a forum where practitioners can discuss
new advances in the design, implementation and application of dynamically
typed languages that, sometimes radically, diverge from the statically typed
class-based mainstream. Another objective is to discuss new as well as older
"forgotten" languages and features in this context. Topics of interest
include, but are not limited to:

- programming language extensions
- programming environment extensions
- executing environments
- static and dynamic analyses
- optional type-checking
- meta-object protocols
- reserve engineering
- domain-specific languages/tooling
- testing environments
- live programming

!! Targeted audience

The expected audience of this workshop is practitioners and researchers
sharing the same interest in dynamically typed languages. Lua, Python, Ruby,
Scheme and Smalltalk are gaining a significant popularity both in industry and
academia. Nevertheless, each community has the tendency to only look at what
it produces. Broadening the scope of each community is the goal of the
workshop. To achieve this goal we will form a PC with leading persons from all
languages mentioned above, fostering participation from all targeted

!! Workshop Format and Submission Information

The workshop will have a demo-oriented style. The idea is to allow
participants to demonstrate new and interesting features and discuss what they
feel is relevant for the dynamic-language community. To participate to the
workshop, you can either

- submit (before __April 19th 2013__) an article (ACM Tighter Alternate style describing your
presentation and/or tool. Articles whose length ranges from 2 to 15 pages will
be carefully reviewed by a program committee including but not limited to the
organizers. Each accepted paper will be presented for 20 to 30 minutes and be
published to the ACM Digital Library (at the option of each author) and the
workshop's web site. The submission website is

- or give a 10-minute lightning demo of your work. A dedicated session will be
allocated for this, provided there is ample time available.

A session on pair programming is also planned. People will then get a chance
to share their technologies by interacting with other participants.

!! Program committee

- Carl Friedrich Bolz, Heinrich-Heine-Universität Düsseldorf, Germany
- Camillo Bruni, Inria Lille-Nord Europe, France
- Adrian Kuhn, University of British Columbia, Canada
- Lukas Renggli, Google, Switzerland (
- Juan Pablo Sandoval Alcocer, University of Chile
- Bastian Steinert, Hasso-Plattner-Institute, Germany
- Veronica Uquillas Gomez, Vrije Universiteit Brussel, Belgium
- Simon Urli, University of Nice-Sophia Antipolis, France
- Didier Verna, EPITA Research and Development Laboratory, France
- the 4 workshop organizers

!! Workshop Organizers

- Alexandre Bergel (
- Damien Cassou (
- Jorge Ressia (
- Serge Stinckwich (

!! News feed

Follow us on twitter:
For further information:

Tuesday, May 22 2012

Call for Papers: ACM SAC'13 PL: ACM Symposium on Applied Computing, Programming Languages track


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: This
document is also available at:


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.


Paper submissions must be original, unpublished work. Submissions should be in
electronic format, via the START site:
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

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,
Barrett Bryant, University of North Texas, USA,

Tuesday, January 31 2012

JSPP: Morphing C++ into JavaScript

I'm happy to announce the publication of a new technical report entitled JSPP: Morphing C++ into JavaScript. The abstract is given below.

In a time where the differences between static and dynamic languages are starting to fade away, this report brings one more element to the "convergence" picture by showing that thanks to the novelties from its recent 0x standard, it is relatively easy to implement a JavaScript layer on top of C++. By that, we not only mean to implement the language features, but also to preserve as much of its original notation as possible. In doing so, we provide the programmer with a means to freely incorporate highly dynamic JavaScript-like code into a regular C++ program.

Tuesday, January 3 2012

ACCU 2012 session on language extensibility

I'm pleased to announce that I will hold a 90 minutes session on language extensibility at the next ACCU conference. A shortened abstract is given below (a longer one is available at the conference website).

Impact of Extensibility on Domain Specific Language Design and Implementation

Domain-specific languages (DSLs) are usually very different from the general purpose language (GPL) in which the embedding application is written. The need for designing a DSL as a completely new language often comes from the lack of extensibility of the chosen GPL. By imposing a rigid syntax, a set of predefined operators and data structures, the traditional GPL approach leaves no choice but to implement a DSL as a different language, with its own lexical and syntactic parser, semantic analyzer and possibly its own brand new interpreter or even compiler.

Some GPLs, however, are extensible or customizable enough to let one implement a DSL merely as either a subset or an extension of the original language. While the end-user does not 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 purpose of this presentation is to illustrate the most important factors that make a language truly extensible, and to show how extensibility impacts the process of DSL design and implementation.

Monday, May 30 2011

[CfP] ACM Symposium on Applied Computing: Separation of Concerns

Programming for Separation of Concerns (PSC) at ACM Symposium on Applied Computing (SAC) March 25-29, 2012 Riva del Garda (Trento) Italy

Description and Objectives

Complex systems are intrinsically expensive to develop because several concerns must be addressed simultaneously. Once the development phase is over, these systems are often hard to reuse and evolve because their concerns are intertwined and making apparently small changes force programmers to modify many parts. Moreover, legacy systems are difficult to evolve due to additional problems, including: lack of a well defined architecture, use of several programming languages and paradigms, etc.

Separation of concerns (SoC) techniques such as computational reflection, aspect-oriented programming and subject-oriented programming have been successfully employed to produce systems whose concerns are well separated, thereby facilitating reuse and evolution of system components or systems as a whole. However, a criticism of techniques such as computational reflection is that they may bring about degraded performance compared with conventional software engineering techniques. Besides, it is difficult to precisely evaluate the degree of flexibility for reuse and evolution of systems provided by the adoption of these SoC techniques. Other serious issues come to mind, such as: is the use of these techniques double-edged? Can these systems suffer a ripple effect, whereby a small change in some part has unexpected and potentially dangerous effects on the whole?

The Programming for Separation of Concerns (PSC) track at the 2012 Symposium on Applied Computing (SAC) aims to bring together researchers to share experiences in using SoC techniques, and explore the practical problems of existing tools, environments, etc. The track will address questions like: Can performance degradation be limited? Are unexpected changes dealt with by reflective or aspect-oriented systems? Is there any experience of long term evolution that shows a higher degree of flexibility of systems developed with such techniques? How such techniques cope with architectural erosion? Are these techniques helpful to deal with evolution of legacy systems?


Authors are invited to submit original papers. Submissions are encouraged, but not limited, to the following topics:

  • Software architectures
  • Configuration management systems
  • Software reuse and evolution
  • Performance issues for metalevel and aspect oriented systems
  • Software engineering tools
  • Consistency, integrity and security
  • Generative approaches
  • Experiences in using reflection, composition filters, aspect- and subject- orientation
  • Evolution of legacy systems
  • Reflective and aspect oriented middleware for distributed systems
  • Modelling of SoC techniques to allow predictable outcomes from their use
  • Formal methods for metalevel systems

Paper Submission

Original papers from the above mentioned or other related areas will be considered. Only full papers about original and unpublished research are sought. Parallel submission to other conferences or tracks is not acceptable.

Papers can be submitted in electronic format via the SAC website ( within 31 August 2011. Please make sure that the authors name and affiliation do not appear on the submitted paper.

Peer groups with expertise in the track focus area will blindly review submissions to the track. At least one author of the accepted paper should register and participate in the PSC track. Accepted papers will be published in the annual conference ACM proceedings.

The camera-ready version of the accepted paper should be prepared using the ACM format (guidelines will be given on the SAC website). The maximum number of pages allowed for the final papers is six (6), with the option, at additional cost, to add two (2) more pages.

A set of papers submitted to the PSC track and not accepted as full papers will be selected as poster papers and published in the ACM proceedings as 2-page papers, with the option, at additional cost, to add one (1) more page.

Important Dates

Paper Due August 31, 2011 Author Notification Oct. 12, 2011 Camera Ready Nov. 2, 2011

Please check the web site for updates:

Saturday, April 30 2011

Receive and Pay... NOT!

ReceiveAndPay doesn't allow you to create your own password. They probably don't trust people to come up with a good one. Fair enough. So they generate a new password for you on an HTTPS page, and then sends it loud and clear to you by email! Good work gentlemen. ;-)

But wait, it gets better. I have sent them an email about this. Here is what I just got back:

Answer to your question: Sir, we have taken good note of your message. The passwords are generated automatically by our system.

Right, thank you very much :-)

So either there is a dumbass at the other end of the line, or (more probably because it is Saturday), that was an automated response. In that case, they should really be putting their time and energy into thinking about their security policy instead of trying to get clever about the contents of their (former ;-) customers messages...

Thursday, June 24 2010

Dynamic typing 30 years later

When the C++ guys announced support for lambda expressions in the upcoming version of the standard (assuming there's one), I refrained from blogging on the "better 30 years late than never" melody.

Now I got big news for you guys. Today, everybody likes dynamic types. They even dare saying so at ECOOP (which means that ECOOP now accepts those papers, yeah things change).

This year, we had a short introduction to an empirical study about the positive (or at least not negative -- one step at a time, this is still ECOOP --) impact of dynamic typing on the development process. And, cherry on the cake, we had this Microsoft guy who presented a paper about... supporting dynamic types in C# !!

In short, the guy said that he wants to be as fashionable and cool as the people doing all sorts of fancy stuff with their scripting languages (he also said that this was a demand from the C# community).

So that's it. A couple years ago, people suddenly realized that functional programming and, in particular, lambda expressions were a good thing. Today, people are also starting to realize that dynamic typing is a good thing.

So after having endured 30 years of sarcasm about our dynamic types, it's only fair that we, the dynamic languages community, get to be sarcastic now.

Sunday, May 2 2010

How to (not) make a good presentation

Based on a recent experience, here is some piece of advice on how to (not) make a good "invited speaker" scientific presentation.

1. Don't think you have been invited because you won a Nygaard price or whatever, but because you have designed a cool language.

2. If you really need to start your talk by showing off your latest book to the audience, at least consider offering one to the lab that has just invited you.

3. Don't spend half of your presentation on your CV (My Life, My Accomplishments etc.), because that's not why you were invited, and because the audience doesn't give a damn.

4. When you have 60 minutes, don't come with the usual 300 slides that you carry everywhere and pick some at random. Your presentation won't make any sense.

5. Before coming, try to take at least 5 minutes to figure out who you're going to talk to, what they know, what they don't. This will help you make more sense out of your presentation, and then, perhaps the audience will actually learn something.

6. Try to understand that when you have an idea, it's not necessarily a good one, and when others have ideas, they're not necessarily bad ones.

7. Try not to be dogmatic because this doesn't look so good to scientists. Show some humility. It is better to have many questions than to have all the answers.

8. If you really want to make people believe that you have actually done some bibliography in your research, try to cite at least one paper more recent than the first OOPSLA in 1986. Otherwise, the picture of your knowledge about other current programming languages is, like, pretty explicit, and a bit sad.

9. Understand that trying to sell your product will never work with researchers.

Well, I guess in summary, try to show some interest for the rest of the world, and especially for your audience, or just don't come. Otherwise, you will look like a fool.

Friday, October 23 2009


On Mac OS X, there are lots of very good reasons why syslogd could start eating 100% of your CPU. Plenty of discussions about this on the net out there.

Well, here's one more (very good) reason:

If all of a sudden, your Time Machine backup process appears to be slower than usual, and if the backup disk is not unmounted after a backup has finished, it could be that Spotlight is trying to index it. Stupid. Mine currently has an ETA of 55 hours :-)

Wednesday, April 29 2009

And what about Erlang ??

Once again, I've been puzzled by Sebesta's "Concepts of Programming languages" book. I've just read the chapter on language-level support for concurrent programming and there's not even a single line on Erlang. I can't figure out how that's possible.

Now waiting to see if Erlang is going to appear in the chapter on functional languages, but for some reason, I have a bad feeling about this...

Wednesday, April 15 2009

Concepts of Programming Languages

These days, I'm reading "Concepts of Programming languages", 8th edition, by Robert W. Sebesta (Addison Wesley). In the category of programming languages comparison books, this is all in all a fair one, especially after having read the crappy "Comparative Programming Languages", 3rd edition, by Clark (Addison Wesley).

As in all those similar books, the room for Lisp is obviously miserable, but that is not very surprising. At least Sebesta seems to know something about it... but wait ! That was until yesterday.

Yesterday, I read chapter 12 (Support for Object Oriented Programming), and this reading pretty much ruined my fun, my evening, and the little consideration I had for the author. On page 508 you can find this:

CLOS, an object-oriented version of Lisp, also supports functional programming.

And there's even a reference to the CLOS specification reference document.

Since the book is suddenly turning the Big Circus way, let's not stop just here. A couple of pages later, there's an interview of Bjarne Stroustrup, for whom having invented C++ is obviously not enough, and so claims that

Currently, C++ is the best language for multi-paradigm programming.

That's it boys. These guys have no clue whatsoever.

Tuesday, January 27 2009

Connaissez-vous le verbe "Setter" ?

L’incorporation de termes anglo-saxons dans le jargon technique français ne me gêne absolument pas. Mais il y a quand même des limites aux bornes des frontières. Dans une copie d’étudiant:

« Les variables ne sont pas dupliqué lors de la création d’un thread par consequent impossible de savoir quel thread a setter errno. »


Le lecteur érudit aura de lui-même reconnu le verbe « Setter », du
premier groupe, équivalent de l’anglais « meytrajoor ».


- page 1 of 2

French Flag English Flag
Copyright (C) 2008 -- 2018 Didier Verna