Short note on syntactic sugar

Bran Selic, during his #models13 tutorial on modeling language design, mentioned the notion of "syntactic sugar" in passing, and he sort of stated, as far as I understood, that he isn't too happy with the term, as it seems to belittle those constructs; they are certainly important presumably for those who want to benefit from these constructs, for as long as we assume that the constructs do indeed capture valuable domain concepts. (Sorry if I am getting him wrong.)

This got me thinking in that I wanted to hypothesize profoundly why this stuff is called "syntactic sugar". I was always assuming (and I think this is not controversial) that it simply classifies a language construct such that it can be eliminated from the language syntax by "desugaring", i.e., by a syntactic translation to core constructs.

Of course, people use the term syntactic sugar in a somewhat more flexible manner. That is, they may also use it for constructs that do require a bit more effort such as some sort of type analysis. This is a slippery slope. Whether or not such extra analysis is needed may also depend on quite technical details regarding type system and semantics.

What I find slightly more interesting here is the fact that the term is maybe usefully deployed in technical discussions among language engineers, but the question arises why the term should leak into the pragmatics or overall end-user picture of the language. This is happens, for example, in much communication aiming at teaching programming languages.

The end user is certainly not meant to fully appreciate the term for as long as the simple, macro-like nature (or feasibility) of these constructs is not transparent to the end user. Arguably, it is useful though for the end user to understand quickly that a given construct is not yet another major concept, but it rather is a simple pattern for using existing constructs.

Thus, better term sought after.



An Annotated and Illustrated Bibliography on Software Language Engineering

I am very happy to provide the keynote of OOPSLE 2013 at WCRE (The first workshop on Open and Original Problems in Software Language Engineering). Here is the title, abstract, etc. Looking forward the meeting in October in Koblenz. Greetings from Neustadt a. d. Weinstrasse.


Ralf Lämmel, University of Koblenz-Landau


An Annotated and Illustrated Bibliography on Software Language Engineering


Given that OOPSLE is about open (and) original problems on software language engineering (SLE), it does make a lot of sense to look back at somewhat closed (and back then) original problems on SLE. Such look into the (rather recent) past will be provided by this talk in the form of an annotated and illustrated bibliography. Annotations take the usual form of a bit of text that is summarizing the work. Illustrations take the form of capturing terms and principle examples in a declarative language such as Prolog or Haskell. The speaker is working on such a bibliography in the context of developing and maintaining courseware on SLE. The assumption is here that SLE courseware should be informed by a good corpus of papers and suitable illustrations of the main concepts of those papers. A number of open research challenges will also be encountered in this manner. Further, a number of folklore SLE notions will be revealed as being insufficiently linked to suitable papers, thereby calling perhaps for a textbook on SLE foundations.