Каковы шаги для создания предметно-ориентированного языка запросов? - PullRequest
0 голосов
/ 12 декабря 2011
  1. я хочу создать язык запросов для конкретного домена
  2. мне нужны шаги для его создания и как перейти с созданного языка запросов, специфичного для домена на нормальный запрос SQL , чтобы выполнить его.
  3. и любые рекомендуемые инструменты ??

1 Ответ

4 голосов
/ 12 декабря 2011

DSL не очень связаны с SQL.

Сначала вам нужно указать свой DSL на бумаге. Я настоятельно рекомендую при этом читать хорошие книги о языках программирования. (например, Лисп в маленьких кусочках от C.Queinnec).

Тогда вам нужно внедрить ваш DSL в качестве переводчика. Вы будете использовать стандартные lexing , синтаксический анализ и интерпретаторы (или, возможно, компилятор ). Очень вероятно, что вам нужно будет использовать или внедрить сборщик мусора (или использовать Boehm's GC ). Генераторы парсеров, такие как ANTLR , могут вам помочь.

Совместное проектирование и параллельная реализация DSL - это, как правило, хороший способ работы.

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

Практический способ сделать это - встроить существующий интерпретатор как Lua в ваше приложение или встроить ваше приложение в интерпретатор как ocaml или python

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

Помимо книги К. Куиннека, вы также можете прочитать Языки программирования: принципы и парадигмы (автор Маурицио Габриелли и Симоне Мартини) & Семь языков за семь недель: прагматическое руководство по обучению Языки программирования (по Тейт) & Прагматика языков программирования (по М. Скотту)

...