Archive for the ‘Domain-Specific Languages’ Category

Domain-Specific Languages:
An Annotated Bibliography

Saturday, March 19th, 2011

Domain-Specific Languages: An Annotated Bibliography

Interesting but a decade old.

Anyone have a suggestion for a more recent bibliography of DSLs?

For Java I have seen: DSLs in Java from Pure Danger Tech Alex Miller’s technical blog.

DSLs are important for two reasons:

  1. Their use in creating topic map authoring languages for particular domains.
  2. The use of topic maps to map between DSLs, topic map kind and otherwise.

From the topic map side of the house, any suggestion for subjects that would merit a DSL for authoring topic maps?

PS: To what extent would you include defaulting subjects for later insertion in the construction of a DSL for topic maps?

Such as entry of say baseball players in a baseball DSL defaults a player association with their last known team unless otherwise specified?

Hammurabi

Tuesday, March 15th, 2011

Hammurabi

From the website:

Hammurabi is a rule engine written in Scala that tries to leverage the features of this language making it particularly suitable to implement extremely readable internal Domain Specific Languages. Indeed, what actually makes Hammurabi different from all other rule engines is that it is possible to write and compile its rules directly in the host language. Anyway the Hammurabi’s rules also have the important property of being readable even by non technical person. As usual a practical example worth more than a thousand words.

I have to admit that my heart leaped at seeing a name from Ancient Near Eastern studies!

Then to discover it was for a rule engine written in Scala.

Well, still looks quite interesting, even if not ready for prime time project.

Not for any time soon, but it would be interesting to write a set of rules in Akkadian for use in constructing a topic map of Akkadian grammar.

That would be way cool.

And a nice way to brush up on my Akkadian.

Which I must admit has gotten rusty as I have worked on technical standards far a field from ancient language studies.

Groovy

Monday, March 14th, 2011

Groovy

I am particularly interested in Groovy’s support for Domain-Specific Languages.

It occurs to me that providing users with a domain-specific language is very close to issues that surround the design of interfaces for users.

That is you don’t write a “domain-specific language” and then expect others to use it. Well, you could but uptake might be iffy.

Rather the development of a “domain-specific language” is done with subject matter experts and their views are incorporated into the language.

Sounds like that might be an interesting approach to authoring topic maps in some contexts.

From the website:

  • is an agile and dynamic language for the Java Virtual Machine
  • builds upon the strengths of Java but has additional power features inspired by languages like Python, Ruby and Smalltalk
  • makes modern programming features available to Java developers with almost-zero learning curve
  • supports Domain-Specific Languages and other compact syntax so your code becomes easy to read and maintain
  • makes writing shell and build scripts easy with its powerful processing primitives, OO abilities and an Ant DSL
  • increases developer productivity by reducing scaffolding code when developing web, GUI, database or console applications
  • simplifies testing by supporting unit testing and mocking out-of-the-box
  • seamlessly integrates with all existing Java classes and libraries
  • compiles straight to Java bytecode so you can use it anywhere you can use Java

Questions:

  1. What areas of library activity already have Domain-Specific Languages, albeit not in executable computer syntaxes?
  2. Which ones do you think would benefit from the creation of an executable Domain-Specific Language?
  3. How would you use topic maps to document such a Domain-Specific Language?
  4. How would your topic map record changing interpretations over time for apparently constant terms?