Domain Specific Languages

YAKINDU SCT - Domain-Specific Statecharts

Session Type: 
Standard [35 minutes]
Speakers

The Yakindu open-source project, hosted at EclipseLabs (see http://www.yakindu.org and http://code.google.com/a/eclipselabs.org/p/yakindu/), aims at providing a modular workbench for the model-based development of embedded systems. It so far supports the modeling of state chart and block diagrams in terms of its SCT (Statechart Tools) and DAMOS (Dynamical Systems Modeler) modules. Additional tool modules are under development and may be expected in the near future.

Within this talk we will present Yakindu SCT, which provides support for modeling and simulation of state charts, as well as code generation for C, C++, and Java. While it is already quite nice to have an end-user ready open-source modeling tool right out of the box, the major innovation behind Yakindu SCT may be seen in the fact that it is dedicated to domain-specific state charts. That is, it allows domain experts to model state charts based on well known abstractions like states, transitions, triggers, and guards, which are concretized by domain concepts (e.g. menu states in the domain of user interface specifications). This enables the seamless integration of Yakindu SCT in larger domain-specific modeling workbenches.

In order to enable this approach, the definition of Yakindu SCT is based on two formalisms, sgraph as well as stext, where the former defines the abstract graph-like structures of every state machine (i.e. states, transitions, etc.), while the latter defines a textual expression language that is used to specify all details beyond (i.e. trigger, guard, and action expressions). Customization may be performed by deriving domain-specific concretizations from those concepts defined by sgraph on the one hand, and by extending or replacing stext by a domain-specific expression language on the other. From the tooling perspective, Yakindu SCT provides reusable base implementations for a graphical editor, a simulation environment, as well as a code generation infrastructure that is based on sgraph and may thus be easily reused.

We will demonstrate both usage scenarios by presenting the default configuration of Yakindu SCT compared to a customized domain-specific solution derived from it.

Schedule info

Time slot: 
29 March 13:30 - 14:15
Room: 
Lake Thoreau

Audience

Track: 
Domain Specific Language
Experience level: 
Intermediate
Slides: 

Light-weight IDE extensibility for custom DSLs in Groovy

Session Type: 
Standard [35 minutes]
Speakers

Domain specific languages (DSLs) are a great tool for solving certain kinds of problems. Many JVM languages, such as Groovy, make it easy to create DSLs. However, providing proper IDE support for these mini-languages is hard, especially for dynamically typed languages since type information is not provided by the compiler.

Schedule info

Audience

Track: 
Domain Specific Language
Experience level: 
Intermediate

Domain Specific Languages

Session Type: 
Standard [35 minutes]
Speakers

In this talk you will learn what a domain specific language (DSL) is and what they are used for. You'll get an overview of different implementation techniques and their respective pros and cons.

Schedule info

Audience

Track: 
Domain Specific Language
Experience level: 
Beginner

Xcore: Ecore Meets Xtext

Session Type: 
Standard [35 minutes]
Speakers

Ecore's success stems from its power to describe deep semantic structure more concisely than Java. The downside are the tools. Certainly Ecore's structured editor is simple and effective and its graphical editor is rich and elegant but both are cumbersome compared to traditional text-based tools. The Xtext framework beckons with a solution: a textual syntax for Ecore. Going one step further, we leverage Xbase to define a concise textual notation for describing behavior and exploit it to implement constraints, derived features, operations, and data type conversion. We call this new language Xcore.

Schedule info

Audience

Track: 
Domain Specific Language
Experience level: 
Beginner
Slides: 

DSLs for Java Developers With Xtext

Session Type: 
Tutorial [3 hours]
Speakers

Programming is great fun. Doing so in your own programming language even more so! Seriously, inventing yet another general purpose programming language is rarely a good idea. However, as you can imagine, Java isn't the best choice in every case either. A small language well-suited to solve a specialized task concisely can improve the productivity of a whole team by orders of magnitude.

Schedule info

Audience

Track: 
Domain Specific Language
Experience level: 
Beginner
Syndicate content