Комментарии 27
Хорошая статья, но местами слишком быстро, не хватает примеров. Те что есть попали в точку, но может их немного деталировать, чтобы читателю не приходилось долго соображать выстраивая связи. Например почему Регулярные выражения и XML являются внешними DSL.
Надеюсь увидеть в следущих статьях:
1. Один или Два конкретных примера,
2. Теорию или просто ваши соображения о том как же выявить части проекта, которые желательно вынести в DSL,
3. Теорию или ваши соображения о этапах разработки своих DSL,
4. Инструменты позволяющие работать со своими DSL.
Спасибо!
Надеюсь увидеть в следущих статьях:
1. Один или Два конкретных примера,
2. Теорию или просто ваши соображения о том как же выявить части проекта, которые желательно вынести в DSL,
3. Теорию или ваши соображения о этапах разработки своих DSL,
4. Инструменты позволяющие работать со своими DSL.
Спасибо!
+1
Спасибо.
Все это будет, я выношу на обсуждение по частям записку диплома магистра по ИТ. Тема как раз «Исследование информационных технологий для создания языков описания предметной области»
Впереди и примеры, и матмодель, и тулзы, и описание выбора их и т.д.
Все это будет, я выношу на обсуждение по частям записку диплома магистра по ИТ. Тема как раз «Исследование информационных технологий для создания языков описания предметной области»
Впереди и примеры, и матмодель, и тулзы, и описание выбора их и т.д.
0
Я бы, на самом деле, предпочёл бы начать с конца. Т.е. для решения какой задачи вы решили применить DSL, как оцениваете результат данного применения (например: всё замечательно, буду везде сам применять и другим рекомендую или теория хорошая, но инструменты разработки ещё в процессе). Ну, и собственно список тулзов.
А после статьи с таким содержанием народ сам вам в комментариях напишет, про что ещё рассказать.
А после статьи с таким содержанием народ сам вам в комментариях напишет, про что ещё рассказать.
0
В нашей предметной области определён некий язык для описания устройств. На базе него мы сделали свой DSL, компилируемый. Сделали хорошо — разработка пошла куда быстрее. Учить там нечего — спецификация на пятидесяти страницах. По опыту, основная трудность с DSL возникает у людей, привыкших часто менять работу не вникая в предметную область. Многие уж лучше напишут кучу строк на языке общего назначения чем будут учить что-то, что не пригодится на следующей работе.
+1
Тема интересная, но написано уж очень сухо.
+1
да чел видимо просто решил своим курсовиком похвастаться. куча высосанных из пальца слов и ни одного по делу.
-1
Аргументируйте.
З.Ы. В конце статьи (если вы ее читали) написано, что это вводная. А в заголовке фигурирует Часть 1
З.Ы. В конце статьи (если вы ее читали) написано, что это вводная. А в заголовке фигурирует Часть 1
0
Читается как фрагмент из диплома. Уж очень информативно и компактно, этот пост можно было бы разбавить примерами и разбить на два-три отдельных поста. Тема очень сложная и глубокая, без примеров «на пальцах» сложно объяснить неподготовленному человеку все прелести DSL.
Ну и ещё мелкая придирка: я бы не стал DSL называть языком программирования.
Ну и ещё мелкая придирка: я бы не стал DSL называть языком программирования.
+2
НЛО прилетело и опубликовало эту надпись здесь
Но DSL может быть вовсе не описывать процессы, а описывать, например, структуру данных и ничего больше. Никакой последовательностью действий это не является.
+1
Это не последний пост, это только начало, но на будущее постараюсь чуть подразбавить академический стиль.
>Ну и ещё мелкая придирка: я бы не стал DSL называть языком программирования.
Предметно-ориентированный язык программирования (англ. domain-specific programming language, domain-specific language, DSL) — язык программирования, специально разработанный для решения определённого круга задач, в отличие от языков программирования общего назначения, таких, как Си, или языков моделирования общего назначения наподобие UML, Postscript, SQL и др. (русская вики)
In software development and domain engineering, a domain-specific language (DSL) is a programming language or specification language dedicated to a particular problem domain, a particular problem representation technique, and/or a particular solution technique. (английская вики)
Фаулер в DSL-WIP несколько раз приводит пример DSL, как языка, но языка вспомогательного (" You couldn't write a whole application in this language — all you can do is describe one small aspect of an application.")
>Ну и ещё мелкая придирка: я бы не стал DSL называть языком программирования.
Предметно-ориентированный язык программирования (англ. domain-specific programming language, domain-specific language, DSL) — язык программирования, специально разработанный для решения определённого круга задач, в отличие от языков программирования общего назначения, таких, как Си, или языков моделирования общего назначения наподобие UML, Postscript, SQL и др. (русская вики)
In software development and domain engineering, a domain-specific language (DSL) is a programming language or specification language dedicated to a particular problem domain, a particular problem representation technique, and/or a particular solution technique. (английская вики)
Фаулер в DSL-WIP несколько раз приводит пример DSL, как языка, но языка вспомогательного (" You couldn't write a whole application in this language — all you can do is describe one small aspect of an application.")
0
А вот скажите, пожалуйста, каким образом DSL решает проблемы, описанные вами в самом первом списке («проблемы традиционного подхода»)?
0
Видно, что текст писался, чтобы написать, а не чтобы его кто-то понимал.
«Онтология — представление любой области знаний или части реального мира, который используется для семантического анализа текстов.». Кто этот «который»? Реальный мир используется для семантического анализа текста? Больше там, вроде, нет слов мужского рода.
И так весь текст. Несогласованные предложения, использование в определениях терминов, которые также следует предварительно определить, и многое другое. Если пытаться разбираться, не разбираясь изначально — ничего не поймёшь.
Не получилось у вас полезной статьи, хотя тема действительно интересная.
«Онтология — представление любой области знаний или части реального мира, который используется для семантического анализа текстов.». Кто этот «который»? Реальный мир используется для семантического анализа текста? Больше там, вроде, нет слов мужского рода.
И так весь текст. Несогласованные предложения, использование в определениях терминов, которые также следует предварительно определить, и многое другое. Если пытаться разбираться, не разбираясь изначально — ничего не поймёшь.
Не получилось у вас полезной статьи, хотя тема действительно интересная.
+1
Что-то подобное уже существует в виде связки «UML (архитекторы)» + «генерация кода (программисты)», здесь предлагается более «размазанный» вариант создания приложений. Если UML не всегда себя окупает за счет высокого порога вхождения, то за DSL и подавно не уверен.
0
>UML не всегда себя окупает за счет высокого порога вхождения
Пожалуйста, скажите что вы это так шутите!
УМЛ (как и ГОСТ блок-схемы) может читать неподготовленный человек. Факт.
ЗЫ а DSL он кагбе не для проектирования. А для того чтоб вместо кучи java/C++ кода писать на своем лаконичном и компактном мета-языке.
Пожалуйста, скажите что вы это так шутите!
УМЛ (как и ГОСТ блок-схемы) может читать неподготовленный человек. Факт.
ЗЫ а DSL он кагбе не для проектирования. А для того чтоб вместо кучи java/C++ кода писать на своем лаконичном и компактном мета-языке.
0
1. Читать и понимать — это разные вещи. UML — это немного больше, чем просто структурированный текст.
2. На вскидку могу вспомнить JDeveloper, в котором можно «вместо кучи java/C++ кода писать на своем лаконичном и компактном мета-языке», т.е. на UML :)
2. На вскидку могу вспомнить JDeveloper, в котором можно «вместо кучи java/C++ кода писать на своем лаконичном и компактном мета-языке», т.е. на UML :)
0
На UML писать не получится :) Идея о том что UML может что-то заменить ошибочна и провальна, как собственно и идея MDA (Model-Driven Architecture). Не работает это.
0
Я тоже не знаю и одной успешной реализации проекта, где в качестве основного средства разработки использовался UML. В частности:
1. Высокий порог вхождения в UML. Необходимо, чтобы все участники проектирования умели на нем говорить.
2. На маленьких проектах UML не выгоден.
3. На больших проектах UML теряет необходимую гибкость.
Думаю с DSL будет тоже самое.
1. Высокий порог вхождения в UML. Необходимо, чтобы все участники проектирования умели на нем говорить.
2. На маленьких проектах UML не выгоден.
3. На больших проектах UML теряет необходимую гибкость.
Думаю с DSL будет тоже самое.
0
UML — это проектирование
DSL — реализация.
Вы путаете мух с котлетами
DSL — реализация.
Вы путаете мух с котлетами
0
Качество статьи, мягко говоря, невысокое. Много откровенно не относящегося к делу текста. Часть информации относящейся к делу является косметически-подправленной цитатой с википедии, при этом без ссылки на первоисточник (статья в википедии). Статья содержит множество деклараций без аргументации.
На мой взгляд, ценность этой статьи близка к нулю. С тем же успехом можно прочитать статью из википедии.
На мой взгляд, ценность этой статьи близка к нулю. С тем же успехом можно прочитать статью из википедии.
0
Да, статья в англоязычной википедии в сто раз информативное, последовательнее и интереснее. Лучше бы было ее перевести.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Введение в DSL. Часть 1 — Проблематика проектирования и кодирования