Slimming Languages by Reducing Sugar: A Case for Semantics-Altering Transformations

Junsong Li, Justin Pombrio, Joe Gibbs Politz, Shriram Krishnamurthi

SPLASH Onward!, 2015


Splitting a language into a core language and a desugaring function makes it possible to produce tractable semantics for real-world languages. It does so by pushing much of the language’s complexity into desugaring. This, however, produces large and unwieldy core programs, which has proven to be a significant obstacle to actual use of these semantics.

In this paper we analyze this problem for a semantics of JavaScript. We show that much of the bloat is semantic bloat: a consequence of the language’s rich semantics. We demonstrate how assumptions about language use can confine this bloat, and codify these through several transformations that, in general, do not preserve the language’s semantics. We experimentally demonstrate the effectiveness of these transformations. Finally, we discuss the implications of this work on language design and structure.


See our 30 second advertising blurb for the work!



These papers may differ in formatting from the versions that appear in print. They are made available only to support the rapid dissemination of results; the printed versions, not these, should be considered definitive. The copyrights belong to their respective owners.