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

蹲街弑〆低调 提交于 2019-11-30 11:09:56

问题


I'm interested in Domain Specific Languagess design and implementation. Much of the DSLs that I know stem from the academic world.

Can you give me some pointers to DSLs that are actually used in the industry ? and that you use on a daily-basis...which are really convenient..

(I'm interested in declarative languages too, but not really xml-based ones...)...

I'd like to establish a (non-exhaustive) list of industry-deployed languages...i know this is huge...

Sometimes, I'm implementing using a General Purpose Language things that could be trivially done using a DSL.

EDIT I'm mainly interested in application-directed DSLs, not small-embedded languages. For instance, SQL matches what I'm looking for but SQL embedded in java does not interest me. Another example of the kind of language i'm looking for is X#


回答1:


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.




回答2:


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




回答3:


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




回答4:


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




回答5:


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)




回答6:


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.




回答7:


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.




回答8:


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.




回答9:


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.




回答10:


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




回答11:


  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



回答12:


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.




回答13:


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




回答14:


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

  • OpenSCAD for solid 3D modelling
  • TaskJuggler for project management (!)

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).




回答15:


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.




回答16:


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


来源:https://stackoverflow.com/questions/1012886/successful-domain-specific-languages-which-one-do-you-use

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!