Questions tagged [domain-specific-languages]

a set of symbols and means of using them which allows solutions to be expressed in terms most closely related to the problem space. Example: HTML was designed to structure web page content, even non-programmers can use it.

Domain-Specific Language is a design method with a very long history. It means to create a system of reusable parts and a means of connecting them which requires no programming, or very minimal programming (meaning: to edit source code). The elements of the "language" are parts that express the concepts of the problem, from a user's point of view.

Martin Fowler has written extensively on this idea, including a book titled "Domain Specific Languages".

Domain Specific Languages usually include tools for assembling the parts, and a run-time environment for interpreting the language.

11 questions
112
votes
22 answers

Automatic programming: write code that writes code

After reading the book The Pragmatic Programmer, one of the arguments I found most interesting was "write code that writes code". I tried searching over the net for some more explanations or articles about it, and while I found some good articles on…
10
votes
2 answers

Ubiquitous Language - conflict between correctness and usability

A core part of Domain Driven Design is the consistent use of a ubiquitous language across the system - in conversations, code, database schema, UI, tests, etc. I'm involved in a project in which there is a well-established domain language already,…
Andy Waite
  • 510
  • 2
  • 9
7
votes
3 answers

Is there such thing as an example driven parser generator or ad-hoc DSL development?

I'm intrested to know if there exists a tool that lets you input examples of valid documents and lets you then generalize from that to a reusable parser. I can imagine this, but everytime i start learning about parsers it gets to the granularity of…
Aaron Anodide
  • 5,463
  • 5
  • 28
  • 37
5
votes
2 answers

Example of time-saving usage of compile-time meta-programming?

The webpage of Converge states that: Converge has a macro-like facility that can embed domain specific languages with arbitrary syntaxes into source files. I am most intrigued by the possibility to create domain specific languages. My…
David
  • 4,449
  • 6
  • 35
  • 48
4
votes
1 answer

Can Fluent DSL's exist in big data environments?

The way I understand Fluent Domain Specific Languages I am able to use method chaining to have a conversation with the code. For example, if the business requirement is to call the database in order to "Get all customers with InActive accounts" I…
P.Brian.Mackey
  • 11,123
  • 8
  • 48
  • 87
4
votes
6 answers

Why would I write a DSL instead of a form based RIA?

I've been reading some papers recently on domain specific languages (DSL), but none of them appear to address the advantages of a DSL over a rich internet application (RIA). In an RIA, instead of learning the domain language, the user is provided…
user9483
3
votes
6 answers

Language Design: skipping occurrences of an identifier instead of accessing enclosing scope

No idea how to write a good title for this question. I'm thinking about introducing an operator in a DSL that makes hidden identifiers (like variables) accessible. Think this.foo in Java or C# to access a member that was hidden by a local foo. Or…
3
votes
2 answers

Creating abstraction over API

I'm trying to figure out how to create abstraction over different APIs, which have common things. For example let's take the mobile platforms you have Android, Windows Phone and IOS. Let's say I want to create and API or program or domain-specific…
nameLess
  • 129
  • 1
  • 5
2
votes
2 answers

Adding dynamic business logic/business process checks to a system

I'm wondering if there is a good extant pattern (language here is Python/Django but also interested on the more abstract level) for creating a business logic layer that can be created without coding. For example, suppose that a house rental should…
1
vote
2 answers

How to link domain specifications with the code implementation without forcing domain expert to adopt any particular practice

Our current business process is that the domain experts will write down the business logic in a Word document, and developers will try to reflect those logic as closely as possible with the implementation. This process violates the DRY (do not…
1
vote
2 answers

Embedding extremely basic scripts in application

I need to program a C++ application which will basically work as a script interpreter, but with extremely basic and limited scripts. The scripts will have a format like this: processedA = doProcessA(source) processedB =…