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 |
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.
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
Related articles
- Xtext ~ A Language Development Framework (clean-clouds.com)










