Tuesday, September 23, 2008

DSL - forever!

I'm amazed. I've been dreaming and struggling with (visual) domain representation and how to turn that into executable code...

Now DSL seems to be the answer. Check out some links:
- A 1 h video about DSL (here)
- and a shorter version of the same material: here
- An article about the Domain Workbench (here)
- the MetaCase tool (with a domain workbench): here
- download the Domain Workbench 2.15 here it seems to be broken... :(
- A paper about intentional software: here (at ACM, you need to be member to read it)
- Martin Fowler's page about language workbenches (here)
- and the JetBrains MetaProgrammingSystem(here, and here to download it, 4free!)

The general idea is this:

and it reminds me of using an interpreter pattern in an OO language, together with an MVC design, to create a 2-way editor to alter the syntax tree.

In fact the domain experts are supposed to manipulate (via specific editors) a kind of syntax tree, so they can describe their domain without programming.
Then the programmers can re-write (via a generator) the syntax tree into high-level code, the actual program that the domain experts and users will work with.

The generator to me looks like an improvement on the interpreter pattern idea: some kind of "compiler pattern" if you want :D
And the net outcome is that programmers and domain experts can work "within their own world" and in a much parallel way.

Cool stuff indeed. I really look forward to play with some of these DSL tools!

No comments:

Post a Comment