Alan Cameron Wills - Domain Specific Languages

Models, domain-specific languages, code generation, ....

End-to-end DSL samples available

We’ve just published an updated set of samples for the DSL Tools. As well as updates to the previous examples, which show how to customize your DSL, there’s now a complete small end-to-end showing how a DSL can be used to generate the code of a project, and work as part of a larger solution. The scenario… Read more

partial classes

We use partial classes a lot in the DSL Tools. We need them to help compose code that’s generated from different places, and generated with handwritten code. If you’re not familiar with it, a partial class definition is just a set of methods, properties etc that gets combined with another partial definition at link time,… Read more

Constraints and Restrictions in MS DSL Tools

I do get irritated by over-officious tools. “You can’t use that name, you’ve used it already over there.” Well, I know, but I’m going to change that in a moment, and it’ll be alright in the end, really. In the DSL Tools Customization Samples & Guide, there is a section showing you how to prevent… Read more

Rules in the DSL Tools

In the DSL Tools  Customization Samples & Guide there’s some examples that use MDF rules to spot a change and react to it. (1) In the class diagram sample, attributes are displayed as a string like “aName : SomeType”, and in the properties grid, the name and type are in separate properties. All three forms are accessible… Read more

Customizing the MS Domain Specific Language Tools

One of the features of the DSL Tools is extensibility. With the language definition files, you can define a wide range of thing-and-link style graphical notations. The current version of the Tools comes with a set of templates for creating class, use case and activities diagrams; but the idea is that you adapt the language definitions to… Read more

Composing DSLs in our tools

Susan says:  1. Composing languages: a DSL can also be categorized based on whether it an encapsulated DSL that represents an application domain (e.g. finance, medical, etc) or an aspectual DSL that represents a concern that cuts across the application (concurrency, exception management, etc). Aspectual DSL are more difficult to compose and integrate as they… Read more

Model Taxonomy

At the excellent SPA conference ( John Daniels led a workshop session “A Taxonomy of Models”. Defining “model” as including any kind of language, he made a table of how models are used; or rather, he wrote the outer headings and we (working in an interesting process) filled in the content:   Conceptual S/W Specification… Read more

Domain Specific Languages

At OT2004, I ran a workshop on domain specific languages. OT is where the UK experts in software development gather each year, and so the people attending a workshop generally know more than whoever is running it. It’s a great way to get some good ideas about a topic you’re working on. So here’s a brief intro… Read more