There's an invasion of Xtext presentations and demos about to overrun the world during the next couple of weeks. And all of them are free of charge!
Xtext is a framework for development of textual domain specific languages (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.
The Framework integrates with technology from Eclipse Modeling such as EMF, GMF, M2T and parts of EMFT. Development with Xtext is optimized for short turn-arounds, so that adding new features to an existing DSL is a matter of minutes. Still sophisticated programming languages can be implemented.
Xtext can read and write textual models into Ecore meta models be they dynamic or static.
When loading textual models Xtext establishes crosslinks where needed. Doing so your objects build an interconnected domain model.
As part of openArchitectureWare Xtext integrates with EMF-based code generator frameworks and is fully supported by Xpand.
Editors created with Xtext support the author of textual models with features like content assist and template proposals in a way you know from modern IDEs. Semantic syntax highlighting, an outline view or hyperlinks simplify the navigation effort and make working with text files great fun. Constraint violations will show up as markers in the editor and in the Eclipse problems view as you type.
Read the documentation and join the discussion at the newsgroup to understand how powerful Xtext is.
Developing Domain Specific Languages
Sven and Heiko (supported by Sebastian and Moritz via the chat) explain what DSLs are and how you can benefit from them in today's software development projects.
Language development is no longer rocket science.
To prove this, they demonstrate how to implement a DSL for Chess. They continue with technical details.
The webinar closes with some more advanced show cases to give a glimpse of what Xtext is able to do.
Xtext implements an EMF Resource that can read your textual models into a given or an inferred Ecore meta model that matches your grammar. And it can link these objects with other resources, too. When modifying loaded objects and saving back such resources Xtext will produce the textual representation according to your language again.
Together with optional configuration data you grammar will be transformed into a fully-blown editor similar to those of programing languages. It integrates seamlessly into the workbench and can be deployed as a stand-alone solution as well.
Xtext follows a loosely coupled architecture that is wired by the dependency injection framework Google Guice. This allows you to replace virtually any aspect of the runtime behavior with your own implementation without duplicating an unmanageable amount of code.