Dynamic Language Embedding With Homogeneous Tool Support



Charla: Dynamic Language Embedding With Homogeneous Tool Support


Charlista: Lukas Renggli


Fecha: 1 de diciembre de 2010
Hora: 12:00 hrs
Lugar: Auditorio DCC, 3er piso, Av. Blanco Encalada 2120, Santiago.



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 presentation we show 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 discuss the design and implementation of Helvetia and Language Boxes, and demonstrate our approach by case studies that show different ways to extend or adapt the host language syntax and semantics.

Bio: Lukas Renggli is an active open-source developer. He is a core developer of Seaside and author of Magritte, Pier, PetitParser, Helvetia, and many other widely adopted libraries and tools. He has received a PhD in Computer Science from the Software Composition Group, University of Bern, Switzerland in October 2010. Lukas Renggli is an independent software engineering consultant and will start to work at Google Zurich in 2011.
Secretaría de Investigación