Персональные инструменты
 

Domain Specific Languages, теория и практика (семинар 2011-06-23, для студентов) — различия между версиями

Материал из CustisWiki

Перейти к: навигация, поиск
м
м
 
(не показаны 4 промежуточные версии 2 участников)
Строка 1: Строка 1:
 
== Аннотация ==
 
== Аннотация ==
;Докладчик: [mailto:konkov@custis.ru Сева Коньков] <!--Желательно задать ссылку на публичный профиль, ну или на худой конец mailto:-ссылку-->
+
;Докладчик: [http://www.facebook.com/profile.php?id=100002652492324 Всеволод Коньков]
  
 
<blockquote>
 
<blockquote>
Строка 7: Строка 7:
 
'''«Domain Specific Languages: теория и практика»'''
 
'''«Domain Specific Languages: теория и практика»'''
  
* Семинар для желающих разрушить завесу тайны над языково-ориентированным программированием.
+
Данный семинар рассказывает о том, что такое предметно-ориентированные языки и зачем они нужны. Кроме этого, на примере одной из предметных областей достаточно подробно иллюстрируются различные способы создания предметно-ориентированных языков, описываются внутренние механизмы различных реализаций их работы. Показано как, используя возможности языков программирования общего назначения, таких как C# и Ruby можно создавать внутренние предметно-ориентированные языки. И как с помощью дополнительных инструментальных средств можно создавать внешние предметно-ориентированные языки. Среди инструментальных средств рассматриваются:
* Ты не знаешь зачем нужны языки специфичные для предметной области (''Domain Specific Language'', DSL)?
+
* Понятия не имеешь, какие задачи позволяет решать внедрение DSL?
+
* Тебе покоя не дает вопрос, какие подходы используются для создания DSL?
+
* Устал гадать, что за проблемы возникают при внедрении DSL и как эти проблемы разрешать?
+
  
На семинаре разобраны примеры создания DSL на динамических языках общего назначения, таких как <tt>Ruby</tt> и <tt>Boo</tt>.
+
* XML
Для самых бесстрашных будут освещены теоретические вопросы связи языково-ориентированного программирования с ''Domain Driven Development'' (DDD) и ''Model Driven Development'' (MDD).
+
* XSLT
 +
* ANTLR
 +
* Jet Brains Meta Programming System
 +
* Microsoft SQL Server Modeling (Oslo)
  
Кроме этого Сева будет вещать о реальных практиках внедрения DSL в работающих проектах. Сделает обзор средств для создания DSL, таких как:
+
Также обсуждается связь предметно-ориентированных языков с такими современными парадигмами как Domain Driven Design (DDD)  и Model Driven Development (MDD).
  
* <tt>XML</tt>, <tt>XSLT</tt>
 
* <tt>Microsoft SQL Modeling Services</tt> (в частности язык «<tt>M</tt>»)
 
* <tt>Microsoft Visual Modeling SDK</tt>
 
* <tt>JetBrains Meta Programming System</tt> (MPS)
 
* <tt>ANTLR</tt>
 
 
</blockquote>
 
</blockquote>
  
Строка 34: Строка 28:
  
 
  -->
 
  -->
 +
 +
== Презентация ==
 +
[[Файл:SeminarDSL.pdf|center|640px]]
 +
 +
== Исходные коды примеров ==
 +
 +
Ссылка: [[Файл:DSL Examples.zip]]
 +
 +
Для работы всех примеров необходимо:
 +
 +
* [http://www.microsoft.com/visualstudio/ru-ru Microsoft Visual Studio 2010]
 +
 +
Для KitchenBot:
 +
 +
* [http://ironruby.codeplex.com/releases/view/60511#DownloadId=217152 IronRuby]
 +
 +
Для VMSDK
 +
 +
* [http://www.microsoft.com/download/en/details.aspx?id=2680 Visual Studio 2010 SDK]
 +
* [http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=23025 Microsoft Visual Studio 2010 Visualization & Modeling SDK]
 +
 +
Для OSLO
 +
 +
* [http://www.microsoft.com/download/en/details.aspx?id=24113 SQL Server Modeling CTP - Nov 2009 Release 3]
  
 
== Примечания и отзывы ==
 
== Примечания и отзывы ==
Строка 39: Строка 57:
 
;Domain Specific Languages:
 
;Domain Specific Languages:
 
* [[Language Oriented Programming (LOP) в действии (Максим Мазин, ADD-2011)]]
 
* [[Language Oriented Programming (LOP) в действии (Максим Мазин, ADD-2011)]]
 +
* [http://www.williamspublishing.com/Books/978-5-8459-1738-6.html Книга Фаулера "Предметно-ориентированные языки программирования"]
 +
* [http://www.antlr.org ANTLR]
 +
* [http://www.jetbrains.com/mps/ Meta Programming System]
 +
* [http://archive.msdn.microsoft.com/vsvmsdk Visual Studio Visualization and Modeling SDK]
 +
* [http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=24113 SQL Server Modeling (OSLO)]
  
 
;Domain Driven Design:
 
;Domain Driven Design:
 
* [[Тренинг Андрея Бибичева по «DDD» (2010-03-03)]]
 
* [[Тренинг Андрея Бибичева по «DDD» (2010-03-03)]]
 
* [[Domain Driven Design — как, почему и зачем? (Николай Гребнев, ADD-2011)]]
 
* [[Domain Driven Design — как, почему и зачем? (Николай Гребнев, ADD-2011)]]
 +
* [http://www.williamspublishing.com/Books/978-5-8459-1597-9.html Книга Эрика Эванса (Библия DDD)]
  
 
<!-- Если будут отзывы —  <blockquote>[©]</blockquote> -->
 
<!-- Если будут отзывы —  <blockquote>[©]</blockquote> -->
 
{{replicate-from-custiswiki-to-lib}}
 
{{replicate-from-custiswiki-to-lib}}
 
[[Категория:Семинары для студентов]]
 
[[Категория:Семинары для студентов]]
 +
[[Категория:DSL-языки (доклады)]]

Текущая версия на 01:04, 16 ноября 2011

Аннотация

Докладчик
Всеволод Коньков

«Domain Specific Languages: теория и практика»

Данный семинар рассказывает о том, что такое предметно-ориентированные языки и зачем они нужны. Кроме этого, на примере одной из предметных областей достаточно подробно иллюстрируются различные способы создания предметно-ориентированных языков, описываются внутренние механизмы различных реализаций их работы. Показано как, используя возможности языков программирования общего назначения, таких как C# и Ruby можно создавать внутренние предметно-ориентированные языки. И как с помощью дополнительных инструментальных средств можно создавать внешние предметно-ориентированные языки. Среди инструментальных средств рассматриваются:

  • XML
  • XSLT
  • ANTLR
  • Jet Brains Meta Programming System
  • Microsoft SQL Server Modeling (Oslo)

Также обсуждается связь предметно-ориентированных языков с такими современными парадигмами как Domain Driven Design (DDD) и Model Driven Development (MDD).

Видео


Презентация

SeminarDSL.pdf

Исходные коды примеров

Ссылка: Файл:DSL Examples.zip

Для работы всех примеров необходимо:

Для KitchenBot:

Для VMSDK

Для OSLO

Примечания и отзывы

Domain Specific Languages
Domain Driven Design



Внимание! Эта статья была создана путем автоматического реплицирования из внутренней базы знаний компании Заказные Информ Системы. Любые правки этой статьи могут быть перезаписаны при следующем сеансе репликации. Если у вас есть серьезное замечание по тексту статьи, запишите его в раздел «discussion».