Dear STS (Software transformation systems) mail-list subscribers,
I wanted to make subscribers to the STS mail-list aware of a couple of tutorials that I am running at GPCE in September and OOPSLA in October that may be of interest to members of this community.
These tutorials provide an introduction to our extensible Java translator, ableJ, that allows programmers to easily import domain specific language extensions into their programming language (in this case, Java). These extensions add new language constructs (new syntax) and new semantic analyses to Java.
For example, one extension adds SQL to Java so that database queries can be written in a more natural syntax and the extended compiler can detect syntax and type errors in these queries. Other extensions add regular expressions (as found in scripting languages) and type-checking of numeric unit-of-measurement types (feet, meters, acceleration, etc.).
What may be of particular interest to the STS community is that the extensible Java translator and the language extensions are specified as attribute grammars. A significant amount of each tutorial will be devoted to the Silver attribute grammar system that is used to implement these attribute grammar specifications.
Details about the tutorials follow below. More information on Silver and ableJ can be found at www.melt.cs.umn.edu.
Best Regards, Eric ______________________________________________________________________ Eric Van Wyk Dept. Computer Science & Engin. Assistant Professor University of Minnesota email: evw@cs.umn.edu 4-192 EE/CSci Building web: www.cs.umn.edu/~evw/ 200 Union Street SE ph: +1 (612) 625-0329 Minneapolis, MN 55455, USA
GPCE Tutorial ------------- Tutorial GPCE2: Building Composable, Domain-specific and General Purpose Extensions to Java
When: Sunday, September 30 at 13:30
Web site: http://www.hope.cs.rice.edu/twiki/bin/view/GPCE07/TutorialGPCE2
Abstract:
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.
OOPSLA Tutorial --------------- Tutorial 22: Building Embedded and Stand-alone Domain Specific Languages: Principles and Practise
When: Monday, October 21 at 13:30
Web site: http://www.oopsla.org/oopsla2007/index.php?page=sub/&id=61
Abstract:
This tutorial provides an introduction to the principles and practice of building domain-specific languages (DSLs). We consider DSLs as stand-alone languages and as language fragments that can be embedded into general purpose languages such as Java. The tutorial covers the fundamental aspects of any DSL design: concrete syntax, abstract syntax, semantics, and code generation. It discusses in more detail techniques for generating scanners and parsers from specifications. A significant portion of the tutorial covers embedded DSLs and a tool, ableJ, that allows programmers to import DSLs as language extensions into an extensible specification of Java. For example, one extension embeds the SQL database query language into Java and statically checks for syntax and type errors in SQL queries; another adds types for physical units such as meters, feet/second, etc and type rules to ensure that values of such types are not used incorrectly. Finally, the tutorial highlights the distinguishing characteristics of many open source tools that one may use to build DSLs and considers visual DSLs that can be constructed using the Eclipse MDD tools and the Microsoft DSL Toolkit. Further information is available at www.melt.cs.umn.edu.