dsl

Domain Specific Language resources

I was just listening to some older .Net Rocks! episodes, and I found #329 on DSLs to be interesting. My problem is that I can't find any good online resources for people trying to learn this technology. I get the basics of the creating new designers, but the MS docs on the T4 engine used by the DSL tools and then how to integrate the tem...

DSL in Finance

Hello all, does anyone here have ever worked with DSLs (Domain Specific Languages) in the finance domain ? I am planning to introduce some kind of DSL support in the application i'm working on and would like to share some ideas. I am in a stage of identifying which are the most stable domain elements and selecting the feature which wou...

What is a DSL and where should I use it?

I'm hearing more and more about domain specific languages being thrown about and how they change the way you treat business logic, and I've seen Ayende's blog posts and things, but I've never really gotten exactly why I would take my business logic away from the methods and situations I'm using in my provider. If you've got some backgro...

Good references / tips for designing rule systems?

I often need to implement some sort of rule system that is user-editable -- the requirements are generally different enough that the same system isn't directly applicable, so I frequently run into the same problem--how do I design a rule system that is maintainable properly balances expressiveness with ease of use is easily extended (i...

How to add a display name for a decorator in Visual Studio DSL (Domain Specific Language) Tools?

In my DSL project I have a shape with a number of decorators that are linked to properties on my domain class. But even though ieach decorator has a DisplayName property (set to a meaningfull value) it does not appear in the generated DSL project. (I have not forgtten to use regenerate the t4 files.) Do I have to create another decorato...

How do I reference a diagram in a DSL T4 template?

Google's not coming to my rescue, here, and I just know this is the perfect place to ask. I'm writing a custom DirectiveProcessor for a DSL and I want to be able to access a diagram from within my T4 template. Within my DirectiveProcessor, I've loaded the domain model and my diagram using (wait for it...) LoadModelAndDiagram(...). So,...

Building effective external DSLs

What tools are there for me to build a real, honest to goodness external DSL. And no, I'm not talking about abusing Ruby, Boo, XML or another existing language or syntax, I mean a REAL external DSL -- my own language for my own purposes. I know that there are a few language workbenches being developed and I've heard about things like "I...

Compartment items not displayed in DSL diagram

OK, so things have progressed significantly with my DSL since I asked this question a few days ago. As soon as I've refactored my code, I'll post my own answer to that one, but for now, I'm having another problem. I'm dynamically generating sub-diagrams from a DSL-created model, saving those diagrams as images and then generating a Wor...

Implementing IntelliSense-like behavior in custom editors for domain-specific languages

I'm creating a DSL with a template-like editor, much like the rule systems in Alice. Users will be able to select relationships from a list as well as the objects to apply the relation to. These two lists should be filtered based on the acceptable types -- for instance, if the relationship is "greater than" then the available objects m...

Writing a Domain Specific Language for selecting rows from a table

I'm writing a server that I expect to be run by many different people, not all of whom I will have direct contact with. The servers will communicate with each other in a cluster. Part of the server's functionality involves selecting a small subset of rows from a potentially very large table. The exact choice of what rows are selected wil...

What would the best tool to create a natural DSL in Java?

A couple of days ago, I read a blog entry (http://ayende.com/Blog/archive/2008/09/08/Implementing-generic-natural-language-DSL.aspx) where the author discuss the idea of a generic natural language DSL parser using .NET. The brilliant part of his idea, in my opinion, is that the text is parsed and matched against classes using the same n...

DSL Tools: Create a new Diagram in custom code

Hello, I am using DSL Tools for Visual Studio 2005. I have a DSL where at a certain point i would like to create a new Diagram using custom code. So far, i was able to create a new Diagram by overwriting the current, already opened diagram. Code follows: FEGeneratorDiagram diag = new FEGeneratorDiagram(ThisElem.Store); diag.Asso...

Need help improving a Ruby DSL for controlling an Arduino controlled drink dispenser (bar monkey)

I'm writing a DSL in Ruby to control an Arduino project I'm working on; Bardino. It's a bar monkey that will be software controlled to serve drinks. The Arduino takes commands via the serial port to tell the Arduino what pumps to turn on and for how long. It currently reads a recipe (see below) and prints it back out. The code for se...

Language features to implement relational algebra

I've been trying to encode a relational algebra in Scala (which to my knowlege has one of the most advanced type systems) and just don't seem to find a way to get where I want. As I'm not that experienced with the academic field of programming language design I don't really know what feature to look for. So what language features would...

Books on Domain Specific Languages (DSL) for C# .net

I'm looking for good literature(web, podcasts or books) on DSL's in .net and C#. ...

What is the general complexity of building a canonical language representation?

It is often handy to have a canonical representation of a language (in my case they are usually domain specific languages); however, I believe there are strict limits on the expressiveness of the languages involved that determine whether a canonical form can be determined and/or created for an arbitrary program in that language. Unfortu...

Is transforming internal DSL to external DSL anti-pattern?

In our legacy system, we wrote our own VM to execute our internal DSL at run time. The in-house VM was designed to run our internal DSL only. We are in the process of rewriting our legacy application. One of the idea we are considering is, to transform our internal DSL to external DSL (C# or Java) and take advantage of their VM. There ...

Infix format for Nemerle macro

Say I need some very special multiplication operator. It may be implemented in following macro: macro @<<!(op1, op2) { <[ ( $op1 * $op2 ) ]> } And I can use it like def val = 2 <<! 3 And its work. But what I really want is some 'english'-like operator for the DSL Im developing now: macro @multiply(op1, op2) { <[ ( $op1 * ...

Tools (Best Practices?) for model driven development?

Model Driven Software Development. As I understand it it raises the abstraction level of the design to better reflect the domain the software will attempt to run in. That's alot to say in just one sentence. The communication between the domain experts (customer) and the developers is crucial to make this methodology work. What I want...

C# Create a hidden transaction

Hello, I am using C# and DSL Tools for VS2005. I need to create Transactions to change some data but i want them to be hidden from the user, that means, to not show in the UNDO list in VS2005. I tried by disabling the UndoManager store.UndoManager.UndoState = UndoState.Disabled; But by disabling it all existing previous actions in...