Partilhar via


Martin Fowler on DSLs and Language Workbenches

Martin Fowler just recently posted an article on DSLs and his concept of Language Workbenches.

There is no generally accepted definition of what makes a language workbench. This isn't surprising as I've just made up the term for this article! But it strikes me that to avoid the rampant ambiguity that surrounds so many topics in the software business (eg components, Service Oriented Architecture), I should try to make a first stab of the essential characteristics of a language workbench, which I now can do briefly as I've provided the necessary background.

  • Users can freely define new languages which are fully integrated with each other.
  • The primary source of information is a persistent abstract representation.
  • Language designers define a DSL in three main parts: schema, editor(s), and generator(s).
  • Language users manipulate a DSL through a projectional editor.
  • A language workbench can persist incomplete or contradictory information in its abstract representation.

It's a very interesting read for anyone doing or interested in DSLs. I think the DSL toolkit that we're working on delivers on quite a few of Martin's requirements for the the DSL portions. And, Software Factories goes even further in providing features on his list. It's quite exciting to see so many people getting interested in DSL...

Comments