Successful Domain-Specific Languages ? Which one do you use? [closed]

旧城冷巷雨未停 提交于 2019-11-29 23:19:49

A DSL that's so succesful that it got its own SO tag is the regex language. Specific to the domain of string pattern matching, of course.

Another popular one, but with which I have no experience is VHDL. VHDLs popularity stems from the fact that it's easily converted for use in an FPGA.

[edit] While it's certainly not Turing complete, C's printf() format specifier can be considered as another domain-specific language.

NMake, MSBuild, lex, yacc, bison, flex, TeX, PostScript, XAML, SSIS, Wix

EBNF is probably the most widely-used domain specific language within its domain - a language to describe languages.

Wikipedia suggests that spreadsheet formulas and shell scripts are both domain specific languages. This would make them probably the most wide spread examples.

Awk provides is a domain specific language for the processing of semi structured textual data.
Many of the more powerful unix command line tools in wide spread use such as find and grep could be classed as having a domain specific language (even when limited solely to command line arguments)

I don't know if you want to consider graphical DSLs as well. I'd include

  • NORMA, a DSL for conceptual domain modeling, based on Object-Role Modeling notation (ORM2)
  • Web Service Software Factory, which uses three DSLs to model web services

Both of the above were created using the DSL Toolkit.

Demi

Here is a question I had asked about DSLs written in Ruby: Ruby DSL (Domain Specific Language) repositories, examples

Aside from Ruby DSLs, SQL is a fine example of a very popular DSL, as is AWK.

MEL (Maya Expression Language) is a command line-esque language that AutoDesk Maya uses throughout its entire design. The Maya Ascii file format that scenes can be saved in uses MEL to compose its scenes. The user interface is largely built and controlled using MEL scripts. The expressions you can use to drive channels and attributes on objects are MEL.

I suppose it could technically be considered an embedded language in cases where you're just writing scripts for it. However, without MEL, Maya basically wouldn't exist. No ascii file format, no user interface, etc.

You can write a domain specific language in languages like Boo, but I think the very definition of domain specific indicates that most of the time it will be in a specific industry or even just a single company...

Wikipedia has a good introductory article on this.

This overview has an examples section with some good links.

There are parts of ruby on rails that can be considered domain-specific languages. In particular its language for specifying relational tables.

  1. Mak Stealth's language for programming charcter behaviors (Do not think it has a name)
  2. Slang - Goldman Sachs language (I've heard of it but never used it)
  3. CMS-2 Navy programming language

Google's web search supports some increasingly sophisticated parametrization

You could argue that this is one of the most widely used DSL's if even a small fraction of their userbase ever uses one of them as opposed to the standard list of words.

Erlang was originally a telecom-specific language, although it is now (occasionally) used as a general-purpose language.

The two (not already mentionned) which have impressed me most are:

I'm a big fan of declarative DSLs. Operational DSLs (like Maple, Mathematica and R are nice too, but not that different from conventional langauges).

Tcl is a language that was originally designed to be a framework for building DSLs — providing basic functionality like programmability and I/O while the domain-specific parts were created fresh for each application — and which grew up into a generic scripting language. One of the more widely known Tcl-based DSLs is Expect.

For business processes we have e.g.

  • BPEL which is expressed in XML and is executable
  • BPMN which is a visual language and is used for modeling
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!