Xtext ~ A Language Development Framework


Xtext ~ A Language Development Framework
Objective

To make simple things simple and complex things possible.

Xtext is a framework/tool for development of external textual DSLs. Just describe your very own DSL using Xtext’s simple EBNF grammar language and the generator will create a parser, an AST-meta model (implemented in EMF) as well as a full-featured Eclipse Text Editor from that.

What is domain-specific language (DSL)?
In software development and domain engineering, a domain-specific language (DSL) is a programming language or specification language dedicated to a particular problem domain, a particular problem representation technique, and/or a particular solution technique.

Examples:

  • HTML, Logo for children,
  • Verilog and VHSIC hardware description languages,
  • R and S languages for statistics,
  • Mata for matrix programming,
  • SQL for relational database queries,
  • YACC grammars for creating parsers,
  • Regular expressions for specifying lexers,

Java™ Application Development on Linux® – Free 599 Page eBook

Enterprise Java Virtualization:

Understanding the TCO Implications

InfoWorld’s Java IDE Comparison Strategy Guide:

Java Essential Training

Apache Jakarta Commons: Reusable Java™ Components

Enabling Rapid ROI: With Java™ – Based Business Intelligence Applications:

What is Xtext?
No matter if you want to create a small textual domain-specific language (DSL) or you want to implement a full-blown general purpose programming language.

With Xtext you can create your very own languages in a snap.

Use Xtext to create a sophisticated Eclipse-based development environment providing editing experience known from modern Java IDEs in a surprisingly short amount of time.
How Does It Work?

  • Xtext provides you with a set of domain-specific languages and modern APIs to describe the different aspects of your programming language.
  • Based on that information it gives you a full implementation of that language running on the JVM.
  • The compiler components of your language are independent of Eclipse or OSGi and can be used in any Java environment.
  • They include such things as the parser, the type-safe abstract syntax tree (AST), the serializer and code formatter, the scoping framework and the linking, compiler checks and static analysis aka validation and last but not least a code generator or interpreter.
  • These runtime components integrate with and are based on the Eclipse Modeling Framework (EMF), which effectively allows you to use Xtext together with other EMF frameworks like for instance the Graphical Modeling Project GMF.
  • In addition to this nice runtime architecture, you will get a full blown Eclipse-IDE specifically tailored for your language.

Where Xtext is used?

Mobile devices

Automotive development

Embedded systems or Java enterprise software projects and

Game development

Why Xtext is used?
People use Xtext-based languages to drive code generators that target Java, C, C++, C#, Objective C, Python, or Ruby code.

Although the language infrastructure itself runs on the JVM, you can compile Xtext languages to any existing platform. Xtext-based languages are developed for well known Open-Source projects such as Maven, Eclipse B3, the Eclipse Webtools platform or Google’s Protocol Buffers and the framework is also widely used in research projects.

Single Sign-On for Java and Web Applications

Bulletproof Java Code: A Practical Strategy for Developing Functional, Reliable, and Secure Java Code

Transforming a Generic Java IDE to Your Application Specific IDE:

The Java Virtual Appliance—No OS Required

BEA WebLogic® Operations Control: Application Virtualization for Enterprise Java

Enabling Rapid ROI: With Java™ – Based Business Intelligence Applications:

References

http://www.eclipse.org/Xtext/documentation/2_0_0/000-introduction.php


http://www.eclipse.org/Xtext/documentation/2_0_0/005-installation.php


http://www.eclipse.org/Xtext/documentation/2_0_0/010-xtext-in-5-minutes.php


http://www.eclipse.org/Xtext/documentation/2_0_0/020-domainmodel-step-by-step.php


http://www.eclipse.org/Xtext/documentation/2_0_0/030-tutorial-next-steps.php


http://www.eclipse.org/Xtext/documentation/2_0_0/020-grammar-language.php


http://www.eclipse.org/Xtext/documentation/2_0_0/030-generator.php


http://www.eclipse.org/Xtext/documentation/2_0_0/050-heading-runtime.php


http://www.eclipse.org/Xtext/documentation/2_0_0/120-heading-UI.php


http://www.eclipse.org/Xtext/documentation/2_0_0/118-mwe-in-depth.php

http://eclipse.dzone.com/articles/getting-started-xtext

About these ads