Успешные доменные языки? Какой из них вы используете? [закрыто]

Я заинтересован в разработке и реализации предметно-ориентированных языков. Многие из известных мне DSL происходят из академического мира.

Можете ли вы дать мне несколько указателей на DSL, которые на самом деле используются в отрасли? и что вы используете ежедневно ... что действительно удобно ..

(Меня тоже интересуют декларативные языки, но не основанные на XML ...) ...

Я хотел бы составить (не исчерпывающий) список языков, развернутых в отрасли ... я знаю, что это огромный ...

Иногда я реализую вещи с использованием языка общего назначения, что можно сделать тривиально с помощью DSL.

EDIT Я в основном заинтересован в DSL, ориентированных на приложения, а не в маленькие встроенные языки. Например, SQL соответствует тому, что я ищу, но SQL, встроенный в Java, меня не интересует. Другой пример типа языка, который я ищу, - это X #

 dfa18 июн. 2009 г., 16:22
Вы хотите внутренний DSL или внешний DSL? однако Мартин Фаулер пишет (бесплатно скачиваемую) книгу о DSL
 Arnis Lapsa18 июн. 2009 г., 16:18
Я слышал о Луа, Бу. Но не пробовал те.
 Sindico30 мая 2013 г., 21:03
Я создаю свой собственный DSl, как описано на этом сайтеlowcoupling.com/dslengineering
 LB4018 июн. 2009 г., 16:25
Я знаю эту работу от Мартина Фаулера ... Вопрос проистекает из X #, который я обнаружил вчера. Я смотрю на этот вид DSL

Ответы на вопрос(16)

которые можно рассматривать как предметно-ориентированные языки. В частности, его язык для определения реляционных таблиц.

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

 18 июн. 2009 г., 23:32
make, sh, cmd.exe, HTML, CSS, PHP (изначально), Perl (изначально), Regexp, LINQ, SQL, XQuery, XPath, XSLT, XML-схема, DTD, JavaDoc. Кроме того, язык ограничений используется в обобщениях .NET (как и в Java). Excel, возможно. Макросы Excel определенно. Черт, даже C: это специфичный для домена язык для написания ядер Unix на машинах DEC PDP. (К сожалению, некоторые люди ошибочно приняли его за язык общего назначения ...) Этот список можно продолжать и продолжать и продолжать
Mak Stealth's language for programming charcter behaviors (Do not think it has a name) Slang - Goldman Sachs language (I've heard of it but never used it) CMS-2 Navy programming language
 02 сент. 2009 г., 01:38
CMS-2 не зависит от домена. Это просто ранняя версия языка для встраиваемого программирования, такого как C. Если вы не думаете, что C является языком, специфичным для домена.

Awk обеспечивает специфичный для предметной области язык для обработки полуструктурированных текстовых данных.
широко используемых, таких как find и grep, могут быть классифицированы как имеющие язык, специфичный для домена (даже если они ограничены только аргументами командной строки)

 19 июн. 2009 г., 13:05
действительно - я просто чувствовал, что они были достаточны сами по себе
 18 июн. 2009 г., 23:33
Кроме того, сама оболочка: это язык потоков данных, специфичный для области управления файлами и процессами.

Репозитории Ruby DSL (Domain Specific Language), примеры

Помимо Ruby DSL, SQL является прекрасным примером очень популярного DSL, как и AWK.

 LB4018 июн. 2009 г., 16:22
спасибо, я не видел твой вопрос ...

который настолько успешен, что получил свой собственный тег SO, - это язык регулярных выражений. Конечно, это относится только к области соответствия строковых шаблонов.

Еще один популярный, но с которым у меня нет опыта VHDL. Популярность VHDL обусловлена тем фактом, что он легко конвертируется для использования в FPGA.

[редактировать] Хотя он определенно не является полным по Тьюрингу, спецификатор формата C printf () может рассматриваться как другой предметно-ориентированный язык.

 LB4018 июн. 2009 г., 17:45
VHDL хороший пример.
 22 июн. 2009 г., 19:19
согласился, regx pwns довольно сложно
 18 июн. 2009 г., 17:04
Ударь меня на 7 минут ... И, да, я бы сказал, что регулярное выражение - это, вероятно, самый успешный / широко используемый DSL.

Википедия предлагает эти формулы таблиц и сценарии оболочки являются языками, специфичными для предметной области. Это сделало бы их, вероятно, самыми распространенными примерами.

 25 июн. 2010 г., 17:01
Формулы электронных таблиц, которые я с вами (и Википедия), на 100%. Я не согласен с сценариями оболочки - они, по сути, являются языком общего назначения, поскольку они довольно легко способны на что угодно.
 18 июн. 2009 г., 22:55
Интересно .. Мне нравится, как в Excel вы должны использовать в основном функциональные обозначения: if (not (and (isblank (A $ 1), isblank (B $ 2))))
 15 мар. 2013 г., 12:19
Я не согласен с тем, что сценарии оболочки не являются DSL. Некоторые из них являются полными по Тьюрингу, но они все еще специфичны для области цепного выполнения программы. Bash является ярким примером. Он даже не имеет арифметики, он вызывает другие инструменты (test, expr) для выполнения самых простых вещей

Erlang Первоначально был языком для телекоммуникаций, хотя сейчас (иногда) используется как язык общего назначения.

EBNF вероятно, является наиболее широко используемым предметно-ориентированным языком в своей области - языком для описания языков.

Tcl это язык, который изначально был разработан как среда для создания DSL & # x2014; обеспечение основных функций, таких как программируемость и ввод-вывод, в то время как специфичные для домена части были созданы заново для каждого приложения & # x2014; и который вырос в общий язык сценариев. Одним из наиболее широко известных DSL на основе Tcl являетсяожидать.

который AutoDesk Maya использует во всем своем проекте. Формат файла Maya Ascii, в котором сцены могут быть сохранены, использует MEL для создания своих сцен. Пользовательский интерфейс в значительной степени построен и управляется с использованием MEL-скриптов. Выражения, которые вы можете использовать для управления каналами и атрибутами объектов - MEL.

Я полагаю, что это моглоtechnically считаться встроенным языком в тех случаях, когда вы просто пишете для него сценарии. Однако без MEL Майя в принципе не существовала бы. Нет формата файла ascii, нет пользовательского интерфейса и т. Д.

которые произвели на меня наибольшее впечатление:

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

Я большой поклонник декларативных DSL. Операционные DSL (например,кленовый, Mathematica а такжер тоже хороши, но ничем не отличаются от обычных языков).

write язык, специфичный для предметной области, в таких языках, как Boo, но я думаю, что само определение предметной области указывает на то, что в большинстве случаев речь идет о конкретной отрасли или даже об одной компании ...

Википедия имеет хорошую вводную статью по этому вопросу.

этообзор есть раздел с примерами хороших ссылок.

 LB4018 июн. 2009 г., 16:23
Я согласен ... Внедрение DSL не так уж сложно, но проблема в том, как нацелиться на правильное сообщество и правильно ответить на его вопросы.

все более изощренная параметризация

Можно утверждать, что это один из наиболее широко используемых DSL, если хотя бы небольшая часть их пользовательской базы когда-либо использует одно из них, а не стандартный список слов.

хотите ли вы также рассмотреть графические DSL. Я бы включил

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

Оба вышеперечисленных были созданы с использованиемDSL Toolkit.

 LB4010 июл. 2009 г., 17:01
Я должен еще раз взглянуть на инструменты DSL ... Я не смотрел на них с тех пор, как Дж. М. Приер дал демо, когда я читал докторскую диссертацию. Это, кажется, действительно зрелый сейчас
 10 июл. 2009 г., 17:05
Очень зрелый. В бета-версии 2010 года даже есть технология, позволяющая моделям ссылаться друг на друга. Смотрите три коротких видео наcode.msdn.microsoft.com/DslTools, Кроме того, если вы не смотрели версии 2005 года, версия 2008 года решает проблемы с вводом путей. Вы получаете хороший Intellisense сейчас.

BPEL which is expressed in XML and is executable BPMN which is a visual language and is used for modeling

Ваш ответ на вопрос