1 / 25

Предметно-ориентированный язык программирования ( domain-specific programming language, DSL ) 

Предметно-ориентированный язык программирования ( domain-specific programming language, DSL ) . DSL.

Download Presentation

Предметно-ориентированный язык программирования ( domain-specific programming language, DSL ) 

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Предметно-ориентированный язык программирования(domain-specific programming language, DSL) 

  2. DSL • Предметно-ориентированный язык программирования - язык программирования, специально разработанный для решения определённого круга задач, в отличие от языков программирования общего назначения, таких, как Си, или языков моделирования общего назначения наподобие UML и др.

  3. DSL • Языки программирования предметной области, дополненные технологиями метапрограммирования, являются эффективным средством автоматизации разработки программного обеспечения и в настоящий момент находят широкое применение в области информационных технологий.

  4. Примеры DSL • Адаптивные объектные модели — это модели, которые строятся специально для определённой предметной области на объектно-ориентированных языках общего назначения. • Файлы XML, используемые в современных проектах для конфигураций программных каркасов.

  5. Примеры DSL • Электронные документы с формальным описанием логики работы приложения.

  6. Классификация • Предметно-ориентированные языки разделяют на внешние и внутренние. • Внешние — это языки, написанные на языке, отличном от основного языка программирования. Примерами такого типа могут служить конфигурационные XML-файлы. • Внутренние языки, напротив, реализованы на языке программирования общего назначения. В качестве примера можно назвать адаптивные объектные модели.

  7. Процесс создания предметно-ориентированного языка • Определение абстрактного синтаксиса. • Определение конкретного синтаксиса. • Определение правил трансформации.

  8. Абстрактный синтаксис • Абстрактный синтаксис описывает понятия, используемые в языке, в виде, пригодном для машинной обработки. Существует два способа задания абстрактного синтаксиса — в виде метамодели и в виде КС-грамматики.

  9. Конкретный синтаксис • Конкретный синтаксис — это представление понятий абстрактного синтаксиса, которыми может манипулировать пользователь. Представление может быть текстовым, графическим или симбиозом двух первых.

  10. Правила трансформации • Правила трансформаций — это правила, по которым абстрактное представление транслируется в исполнимое. Различают два типа трансформаций — горизонтальные и вертикальные. Примером горизонтальной трансформации может служить автоматический рефакторинг, предоставляемый современными средствами разработки. Примером вертикальной трансформации может служить генерация байт-кода Java из исходного кода программ на Java.

  11. ЯП поддерживающие DSL • Lisp — первый язык программирования общего назначения с встроенными возможностями разработки DSL-ей (макросистемой). • Nemerle — современный мульти-парадигменныйязык со встроенной поддержкой разработки DSL-ей (макросистемой).

  12. Eclipse Modeling Project

  13. Eclipse Modeling Project – новый высокоуровневый проект Eclipse. • Ядро проекта, EMF (Eclipse Modeling Framework) существовало с самого рождения платформы Eclipse. • Eclipse Modeling Project внес вклад в развитие Model Driven Software Development – технологииразработки ПО с помощью моделирования. • Amalgamation Eclipse – начало DSL-ориентированной среды разработки, хотя он разрабатывался долгое время, ему все еще далеко до того уровня, когда «mainstream»-разработчики смогут его использовать, в частности, из-за недостатка документации. • В Eclipse так же разрабатываются средства для работы с моделями, такие как Model Development Tools для поддержки стандартных моделей, инструменты для преобразования модели в модель, генерации моделей, преобразования модели в текст.

  14. Схематическое изображение Eclipse Modeling Project

  15. EMF • Ядром DSL является его абстрактный синтаксис, который используется при разработке почти любого артефакта , модели, трансформации. Обычно первым элементом DSL является его абстрактный синтаксис, в качестве него служит Eclipse • Modeling Framework (EMF). • Основной моделью EMF является EMF Ecore, которая является метамоделью для определения нашего DSL. • На более высоких уровнях можно уточнить семантику и структуру нашего DSL с помощью ObjectConstraintLanguage (OCL), а так же добавить поддержку транзакций, запросов и валидаций.

  16. Базовые возможности EMF • EMF позволяет производить такие операции с моделями: • - Транзакции моделей, которые позволяют нескольким пользователям одновременно смотреть/редактировать модели. • - Проверка моделей, которая используется для поддержания целостности модели с помощью встроенных и пользовательских ограничений (заданных в Java или OCL)

  17. - Запрос данных о модели (с помощью SQL-подобного синтаксиса или OCL) • - Поиск модели, который может проводиться как на основе регулярных выражений, так и на OCL, являетсяграфическиминструментом (стандартный поиск Eclipse) • - Сравнение моделей, используется для слияния моделей при групповой разработке.

  18. Представления синтаксиса • Абстрактный синтаксис DSL может быть представлен в графическом и текстовом виде. Этим занимаются два проекта Eclipse – GMF и TMF • GMF – призван обеспечить разработчика графическими инструментами для описания модели, а так же превращать графическое изображение модели в абстрактный синтаксис DSL и обратно • TMF – позволяет использовать для представления моделей удобные для разработчика текстовые языки представления объектов (XML, SOAP, JSON, итд)

  19. Превращение моделей Eclipse • Eclipse modeling project также позволяет переводить свои модели в текст и другие модели. Такими превращениями занимаются отдельные проекты Eclipse. • Превращение моделей являются неотъемлемой частью инструментария DSL

  20. Model-to-Model Transformation Project • Используя абстрактный синтаксис, можно задать некоторые превращения моделей и использовать их для создания новых моделей. • Для этих целей Eclipse предоставляет QVT-OML – язык отображения операций, соответствующий стандарту Object Management Group

  21. Model-to-Text Transformation (M2T) Project • Для превращениямодели в текст EMF использует Java Emitter Templates (JET), • так же набирает популярность Xpand • Используя эти технологии, можно задать шаблоны, по которым данные модели будут преобразованы в текст.

  22. Model Development Tools Project • Данный проект используется для работы со стандартными, уже существующими моделями, заданных стандартом. Для работы с ними в MDT имеется большое количество компонентов.

  23. XML Schema (XSD) • Является важным компонентом MDT, используется при импорте готовых моделей в EMF, что повышает совместимость с уже существующими решениями. EMF полностью совместим с XML и при сериализации создает правильный XML-документ, который смогут понять и другие средства разработки.

  24. UML2 • Данный компонент является реализацией метамодели UML2 от OMG. • Хотя этот компонент фокусируется на реализации метамодели, он предоставляет расширенную версию EMF-редактора. • Редактирование же UML2 диаграм является частью функциональности UML2 Tools

  25. Object Constraint Language (OCL) • OCL используется для задания моделям специфических ограничений. • OCL может быть использован в пользовательских шаблонах, чтобы управлять поведением времени исполнения, определять модель аудита, метрики и служить в качестве основы преобразования и выражения в языках.

More Related