Seeking artricle on syntax sugar and comparing programming languages

I recall there was an article on LtU that defined term syntax sugar. IIRC the generic idea was that syntax sugar requires only the local transformation. And language features that require non-local program rewrites cannot be called syntax sugar and it can be core of argument that one language is higher-level then another.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

coined by Ser Peter of House Landin

Are you trying to win a beer bet? Sorry, that was facetious. I really mean to ask what issue you want to analyze and why. Syntactic sugar is an informal idea, apparently coined by Peter Landin in the 60's to discuss the difference between basic expressive primitives and layers of shallow convenient interface one can build on top. I seem to recall hearing Scheme folks argue more about the idea than anyone else. So if you're looking for arguments, that might be where to search (Scheme macro syntax wars).

The idea of interface comes up a lot in programming languages. You can think of sugar as a syntax level instance.

You came this close to getting a Game of Thrones parody out of me, where some fool tells Tywin Lannister "that's just syntactic sugar" about a feature in the programming language used at Casterly Rock, and then suffers an epic punishment as consequence.

cognitive development and programming languages

Below is the refrence to article that I'm seeking. I'm looking about correlations between Piaget and Commons congnitive development theories and what could be defined as generations of programming languages.

Transition from FORTRAN66-like languages to structured programming looks like adoption of cogntive instruments generally developed on concrete opertions stage in area of programming languages. Object-oriented languages and functional languages looks like the adoption of congitive instruments from formal operations stage. The question is not whether the programmer uses these congnitive instruments, but whether they are directly reflected in the syntax of programming langauge or programmer should perform a global rewrite in the mind to express them in the code.

The theories looks like a good starting point to formally define generation of programming langues and to predict the vector of programming language development in general or in the specific area (for example data processing).

cognitive dimensions

While your OP description would have also had me reaching for Felleisen's expressiveness (if gasche had not beat me to it), your interest in cognitive aspects of syntactic sugar has me reaching instead for Thomas Green's cognitive dimensions of notation.

Snapshot analysis

Thanks. The article and analysis framework is interesting, despite the fact that the authors discuss snapshot state of the languages rather than evolutionary vector, and they do not discuss meta-complexity dimension that I'm interested in.


Your description strongly reminds me of Matthias Felleisen's 90 work: On the Expressive Power of Programming Languages.

I don't really know of follow-up work in this direction. I think the idea of "local transformation" was nicely captured in Felleisen's article, but there is a much wilder zoo of non-locality and it's unclear whether we could say interesting things about it.

LtU long-time user John Shutt has discussed the related notion of Abstractive Power which you may also be interested in.

Thank you. This is the

Thank you. This is the article I'm seeking.