Xactium -- "lightweight language engineering" ??!?


There's a lot of marketing wrapped around their technical ideas, but this appears to be a model-driven architecture (MDA) tool with domain-specific language capabilities. Not sure what they mean by "lightweight language engineering" -- macros are too heavy? -- and I'm not sure I want to install their preview release.

MDAs and DSLs always seemed to be competing approaches, although you might have a specialized language for defining the models themselves. They both share the notion of defining the "problem" at a relatively high level and then magically creating the end solution, but I suppose that description is vague enough to apply to every tool since FORTRAN was first implemented.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Incremental improvement over existing products

By "lightweight language engineering", it appears that they mean inheritance and "domain specific" constraints on the metamodel.

The constraints seem to be the only novelty of this product. The flash demos give the impression that it is just another UML/simulation program. Simulation seems like a wimpy way out, I'd be more impressed if they would model check the specifications.

They also seem to use an imperative OOish language to specify the behavior of the entities being modeled. Why not something nice and declarative?

[Edit: Googling around a bit, the constraint metamodel appears to be an implementation of the Object Constraint Language. There are other UML tools with support for this e.g. there is a plugin for Rational Rose. The authors of their book (free plug for James!), , have done previous work specifying the semantics, [1],[2]. of UML]


I'll state from the outset that I work for Xactium.

The lightweight language engineering is one form of language
engineering supported by XMF-Mosaic. It is primarily used in
domains where users quickly want to define languages without
building them from scratch. The lightweight mechanism supports
the definition of new meta-class to reflect domain concepts, all
diagramming and tree browsing (and other associated tools required
to interact with the language) are derived for free. The term
"light-weight" is intended to indicate the effort required rather
than the resulting language - because the user is defining new
meta-classes the language can be incredibly rich. This is a very
popular approach among our users because with little or no
language engineering background they can create full blown domain
oriented languages and tools in a very short space of time.

You may also be interested to know about one of our alternative
approach to specifying DSLs which is detailed in the following
whitepaper released today (the examples are at the back of the

Xactium white paper on Language Driven Development and XMF-Mosaic

This describes how a Language Driven Development approach (LDD)
can be used to builds DSLs. Compared to the lightweight approach
it is more expensive, but the results are very focused languages
and tools that are customized precisely for domain requirements.