TutorialGPCE2
Generative Programming and Component Engineering
Building Composable, Domain-specific and General Purpose Extensions to Java
Note: Despite low registration in all tutorials, this tutorial will be
held. But it is running informally, without any charges to the
participants. The tutorial will take place Sunday 9:00-12:30 in
NH Hotel Salzburg in the "Club" meeting room. To attend the tutorial, please send an email to
Ulrik Schultz.
Eric Van Wyk, University of Minnesota
This tutorial provides an introduction to building domain-specific and general
purpose language extensions to Java. This is illustrated using ableJ, an attribute grammar-based
extensible language framework for Java. Language extensions may define the syntax, semantic
analysis, and optimizations of new language features. We describe several language extensions
and their implementation in the framework. For example, one embeds the SQL database query
language into Java and statically checks for syntax and type errors in SQL queries. AbleJ supports
the modular specification of composable language extensions so that programmers can import into
Java the unique set of extensions that they desire.
The tutorial introduces Silver, a feature-rich attribute grammar specification language that
also supports local and composable global transformations. It also covers the ableJ framework; a
specification of Java written in Silver. We cover various aspects of this specification to show how
one can build new language extensions to Java.
Duration: Half-day
Level: Introductory
Required Knowledge:
Although a basic understanding of compilers, context free grammars
and abstract syntax trees is helpful it is not required. These basic concepts will be discussed in the
context of Silver. Basic understanding of Java is assumed.
Speaker Profile
Dr. Eric Van Wyk is an assistant professor at the University of
Minnesota and is a McKnight Land-Grant professor. His research interests include techniques for
the declarative specification and implementation of languages and language extensions.