Какой пример небольшого специального DSL для интернет-рекламы? - PullRequest
0 голосов
/ 16 июня 2009

Я только изучаю DSL и пытаюсь представить их в контексте, который я могу понять.

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

Кроме того, какие технические шаги высокого уровня вам понадобятся для реализации этого?

Ответы [ 3 ]

1 голос
/ 29 июня 2009

Я использую DSL Tools для VS2005 в течение прошлого года.

Чтобы выучить это, вы должны прочитать «Специфичная для домена разработка с помощью инструментов Visual Studio DSL» Стив Кук, Гарет Джонс, Стюарт Кент и Алан Кэмерон Уиллс.

Это должно быть вашей отправной точкой, и оно охватывает все аспекты технологии, включая некоторые сложные темы.

1 голос
/ 27 июня 2009

Специфичные для домена языки по определению являются языком, разработанным для использования экспертами в области.

Тема довольно обширна и может быть разбита на следующие сегменты:

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

Большое подмножество DSL (включая приведенное ниже) можно описать как правила, которые оцениваются одновременно с помощью правил или механизма вывода

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

if page.popularity is high then use ads of account[valuable]

if page.topic is not NSFW then use ads of topic[not NSFW]

if browser does not support flash then use ads of capability[javascript]

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

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

0 голосов
/ 12 июня 2011

Немного опоздал на игру, но ...

У Google есть такие DSL, в которых указана реклама, которую может разместить рекламодатель Google. Он состоит из обычных поисковых запросов Google (широкое соответствие [текст без кавычек], совпадение фраз [последовательность символов в кавычках] и точное совпадение [последовательность символов в скобках]), а также "минус-слова", которые представляют собой поисковые запросы Google, используемые для устранения совпадения. , Он вводится через набор форм и поэтому не выглядит как программирование, но в итоге вводятся довольно лаконичные текстовые строки. Это не очень умный DSL, ИМХО (на самом деле я должен был его использовать, я хотел бы, чтобы он включал регулярные выражения в нижнем конце и синтаксический анализ естественного языка в верхнем конце), но он очень реален и используется миллионами "непрограммистов ».

Существует два шага для реализации DSL: его разбор (чтобы понять, что он говорит) и механизация его значения. Разбор довольно хорошо понят; см. любой из вопросов о разборе, плавающем вокруг переполнения стека. Механизация намного сложнее; то, что мы называем «Google» , является в значительной степени механизацией этого DSL.

...