Dear all,
I would like to invite you to my PhD defense titled "Dynamic Language Embedding With
Homogeneous Tool Support". The abstract of the thesis is provided below.
The defense will take place on
Wednesday, October 20, 2010 at 16h15
in
Room 001, Engehaldenstrasse 8, Bern.
For directions please see <http://www.iam.unibe.ch/en/contact>.
After the defense, there will be an apéro.
Everybody is cordially invited to the defense and the apéro.
Lukas Renggli
Software Composition Group
University of Bern, Switzerland
------------------------------------------------------
Dynamic Language Embedding With Homogeneous Tool Support
Domain-specific languages (DSLs) are increasingly used as embedded languages within
general-purpose host languages. DSLs provide a compact, dedicated syntax for specifying
parts of an application related to specialized domains. Unfortunately, such language
extensions typically do not integrate well with existing development tools. Editors,
compilers and debuggers are either unaware of the extensions, or must be adapted at a
non-trivial cost. Furthermore, these embedded languages typically conflict with the
grammar of the host language and make it difficult to write hybrid code; few mechanisms
exist to control the scope and usage of multiple tightly interconnected embedded
languages.
In this dissertation we present Helvetia, a novel approach to embed languages into an
existing host language by leveraging the underlying representation of the host language
used by these tools. We introduce Language Boxes, an approach that offers a simple,
modular mechanism to encapsulate (i) compositional changes to the host language, (ii)
transformations to address various concerns such as compilation and syntax highlighting,
and (iii) scoping rules to control visibility of fine-grained language changes. We
describe the design and implementation of Helvetia and Language Boxes, discuss the
required infrastructure of a host language enabling language embedding, and validate our
approach by case studies that demonstrate different ways to extend or adapt the host
language syntax and semantics.
------------------------------------------------------