What's new in Xtext and Xtend 2.14: The journey of Tina Toolsmith
Tina Toolsmith is one of those typical developers. She loves to code in the office, on the train, during a long flight or even while sitting on her sunny terrace during her vacation. Tina takes great pleasure in using the latest programming languages, frameworks, and IDEs for manufacturing innovative solutions. Essential parts of her toolbox are Xtext and Xtend which she uses to tailor domain-specific languages for a wide variety of usage scenarios.
New Project Wizard: einfach mit Xtext 2.14 generieren
Wer DSLs mit Eclipse Xtext umsetzt, profitiert davon, dass die notwendige Infrastruktur automatisiert aus der Grammatik erzeugt wird. Mit minimalem Aufwand entsteht somit eine Umgebung, in der alles gegeben ist, um direkt mit der eigenen DSL durchzustarten. Eine Grammatik und zwei Knöpfe später startet man voller Vorfreude Eclipse und fragt sich zunächst, welche Art von Projekt zu erstellen ist. Diese Frage beantwortet Xtext bisher nicht und der Entwickler hat die Wahl.
The Business DSL: Zurich Insurance
Insurance products are complicated. They involve sophisticated math and lots of interacting rules. They exhibit significant variability between different markets. They change over time, for example, driven by changes in law or updated risk assessments from the company. In addition, once consumers sign an insurance contract, they must not be affected by changes to that product (or at least they must not be worse off), which means that “old” contracts must continue to be executed with the “old” logic.
Building Domain-specific Languages with Xtext and Xtend
Specifying the requirements of a software system and converting such a specification into executable source code is difficult and error-prone. Requirements specifications written in prose are often ambiguous and hard to understand for developers. Therefore, the process of turning this documents into software is slow and prone to error. Domain-specific languages (DSL) challenge this problem by defining a semantically rich notation to describe domain concepts clear and concise.
Pro Tip: Visualizing Xtext Grammar with Eclipse GEF
The Xtext grammar is the central component when developing DSL workbenches based on the Xtext framework. In case of complex DSLs, analyzing the graphical representation of *.xtext files can be useful to understand the structure of the defined grammar rules.
Testing Languages, Generators and Runtimes in a Safety-Critical System
Last year we ran a project with Voluntis in which we built DSLs for use in the healthcare domain. The benefits of the approach are readily obvious: the domain experts can much more easily review, test, explore, or even write the application logic. The overall development process will be streamlined, and ultimately, Voluntis will be able to create more products in a shorter time, which is good for business.
Debugging DSLs in Xtext and Eclipse
If you build your Xtext DSL using Xbase for your expressions and implementing a JvmModelInferrer for the Java Mapping you get Debugging in Eclipse for free. But what about if your DSL is not using Xbase but maps to Java anyway? With the Tracing Code Generator in Xtext 2.12 and its debugging extensions in Xtext 2.13 and a few lines of Gluecode you can achieve this as well.
Xtext and Controlled Natural Languages for Software Requirements (Part 1)
Stakeholders usually document requirements informally, i.e. in natural language. Often using text processing programs which do not provide any input assistance related to the requirements and do not allow their automated validation or post-processing. This leads either to higher efforts for cost intensive and time consuming human review processes or to reduced quality which can have a negative impact on subsequent development phases. To compensate these disadvantages of the usage of natural language in requirements documentation, various approaches exist. One of these approaches is to control the use of natural language by using templates in order to create acceptable requirements as they are written. This series shows how to create a controlled natural language based on sentence templates (we call them 'boilerplates') using Xtext.