Title: Language Extensibility with SugarJ: Desugar Safely

Speaker: Sebastian Erdweg (University of Marburg, Germany)

Host: Ralf Lämmel, Inst. for Software Technology and CS

Date/Time: 4 Oct 2011 (Tuesday), 11am (ct)

Room: B 017


SugarJ is a programming language that supports language extensions through the
definition of libraries, which are like conventional programming libraries but
export an extension to SugarJ's syntax, static analyses or IDE support.
Extensions in SugarJ inherit many attributes from conventional programming
libraries: simple activation and composition with import statements, and
self-applicability for using a library in the development of another library.

Here we focus on syntactic extensions, which consist of two parts: a grammar
that stipulates the extended syntax and a transformation - called desugaring -
that removes the extended syntax again. Our experience shows that the
implementation of desugarings is a source of many errors. Essentially, a
desugaring needs to fulfill two requirements: it needs to accept all programs of
the extended syntax and it needs to produce syntactically valid programs that do
not contain the extended syntax anymore. To this end, we currently explore a
type system that uses a variant of regular tree grammars for typing program


Sebastian Erdweg is a Ph.D. student in the programming language and software
engineering research group, lead by Klaus Ostermann, at University of
Marburg. Sebastian is the main contributor of the SugarJ project and co-authored
the award-wining SugarJ OOPSLA paper. His current focus is on a type-safe
program transformation facility and a library-based (meta)modeling environment.