Questions tagged [dsl]

A domain-specific language (DSL) is a programming language or specification language dedicated to a particular problem

In software development and domain engineering, a domain-specific language (DSL) is a programming language or specification language dedicated to a particular problem domain, a particular problem representation technique, and/or a particular solution technique. The concept isn't new—special-purpose programming languages and all kinds of modeling/specification languages have always existed, but the term has become more popular due to the rise of domain-specific modeling.

For more info: http://en.wikipedia.org/wiki/Domain-specific_language

46 questions
102
votes
2 answers

What is the "Free Monad + Interpreter" pattern?

I've seen people talking about Free Monad with Interpreter, particularly in the context of data-access. What is this pattern? When might I want to use it? How does it work, and how would I implement it? I understand (from posts such as this) that…
Benjamin Hodgson
  • 4,488
  • 2
  • 25
  • 34
50
votes
28 answers

When is it reasonable to create my own programming language?

Are there types of killer applications, classes of algorithmic problems, etc., where it is better, in the long run, to create my own language? PS: Just to be sure, I mean a new programming language and a compiler, not a new compiler for an existing…
Daniel Rikowski
  • 449
  • 1
  • 6
  • 9
24
votes
3 answers

In what area is LISP's macro better than Ruby's "ability" to create DSL

One of things that makes Ruby shine is the ability to create Domain Specific Languages better, like Sinatra Rspec Rake Ruby on Rails' ActiveRecord Though one can duplicate these libraries in LISP through macro, I think Ruby's implementation is…
OnesimusUnbound
  • 755
  • 8
  • 16
18
votes
4 answers

Database abstraction -- is it being overdone?

After being exposed to numerous database abstraction layers, I'm starting to wonder what the point is of every library inventing their own different paradigm to access data. Picking up a new DAL feels like learning a new language all over again,…
18
votes
5 answers

Is there anything in .NET that allows me to define a grammar and generate a programming language?

I have a course in which the proffesor has asked us to create a DSL for a our final project. He presented us in the first courses xText with Eclipse. This being a new course, I am still a bit fuzzy on what Domain Specific Languages means. This is…
user1525474
  • 341
  • 2
  • 6
16
votes
4 answers

Are (basic) SQL queries semantically equivalent to Higher Order Functions?

Is SQL basically a domain specific instance of map + fold + filter? It seems to me that the following SQL: SELECT name FROM fruits WHERE calories < 100 is just syntactic sugar for the following map + filter + fold operation: var fruits = [{id : 1,…
Sridhar Sarnobat
  • 282
  • 1
  • 10
13
votes
5 answers

When is an API considered to be an embedded DSL?

What is the difference between an API and an embedded Domain Specific Language (DSL)? Is it just syntax? Consider an API like OpenGL. How is that different from a graphics DSL? In other words, if an API is sufficiently complex, can it be considered…
Phyllostachys
  • 287
  • 2
  • 10
10
votes
5 answers

Building a DSL: Scripted atop a general-purpose language or stand-alone?

I'm debating designing a domain specific language to simplify a given, obscure programming model. Part of the debate is whether to build it (as a script) atop an existing language/runtime (e.g. Java) or to make it stand-alone (own compiler,…
Jé Queue
  • 3,937
  • 2
  • 29
  • 37
7
votes
3 answers

Are custom DSLs still viable?

Are custom DSLs in JavaScript still viable, Specifically ones written with Antler, Boo, or the former Microsoft Oslo? With the proliferation of open source JavaScript/ECMAScript engines (V8, IronJS, etc.), does it make more sense to write the…
Daniel A. White
  • 705
  • 4
  • 15
6
votes
2 answers

Using a rules engine to manage client and server side validation of business rules?

Has anyone managed to use a common rules system between their frontend and backend? Similar to this question: Managing client-side and server-side validations in one place, I'm trying to find a way to have consistent business rules applied on the…
Sherman
  • 163
  • 1
  • 5
6
votes
2 answers

Which books or references cover design of domain specific languages?

There are a lot of books on domain specific languages (DSLs). Such books talk about compilers, interpreters, parsing, lexing, semantic analysis, and other various bits someone needs to implement a DSL. I already know how to implement a DSL; I've…
Billy ONeal
  • 8,073
  • 6
  • 43
  • 57
5
votes
8 answers

Can CSS be considered a DSL?

According to Wikipedia, CSS is a style sheet language. However, it's pretty much the only such type of language in use (at least from a web developer's perspective). When trying to categorize CSS as a language or technology (e.g. for a résumé),…
arussell84
  • 161
  • 1
  • 11
5
votes
1 answer

How to implement efficient heterogeneous microservice data queries?

Our team has an idea of implementing a simple declarative DSL that would let users query the enterprise's domain model via a single interface without caring which specific microservices to call to get specific portions of data and how to then relate…
Den
  • 4,827
  • 2
  • 32
  • 48
5
votes
2 answers

Need overview of concepts and tools to translate a DSL to regular expressions

I'm looking for a little guidance. Until this morning, this was all over my head. After spending today researching Wikipedia, StackOverflow, etc., I'd say I've got my nose above the water. I'm tasked with researching a project that, as I understand…
Mario
  • 151
  • 4
5
votes
2 answers

Good resources for language design

There are lots of books about good web design, UI design, etc. With the advent of Xtext, it's very simple to write your own language. What are good books and resources about language design? I'm not looking for a book about compiler building (like…
Aaron Digulla
  • 2,865
  • 21
  • 22
1
2 3 4