admin / 02.09.2018

Предметно ориентированное программирование

Содержание

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

Скачать

Название Предметно-ориентированный язык программирования (domain-specific programming language, dsl)
Дата 11.12.2012
Размер 236.33 Kb.
Тип Презентации

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

DSL

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

DSL

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

Примеры DSL

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

  • Файлы XML, используемые в современных проектах для конфигураций программных каркасов.

Примеры DSL

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

Классификация

  • Предметно-ориентированные языки разделяют на внешние и внутренние.

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

Процесс создания предметно-ориентированного языка

  • Определение абстрактного синтаксиса.

  • Определение конкретного синтаксиса.

  • Определение правил трансформации.

Абстрактный синтаксис

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

Конкретный синтаксис

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

Правила трансформации

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

ЯП поддерживающие DSL

  • Lisp — первый язык программирования общего назначения с встроенными возможностями разработки DSL-ей (макросистемой).

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

Eclipse Modeling Project – новый высокоуровневый проект Eclipse.

  • Eclipse Modeling Project – новый высокоуровневый проект Eclipse.

  • Ядро проекта, EMF (Eclipse Modeling Framework) существовало с самого рождения платформы Eclipse.

  • Eclipse Modeling Project внес вклад в развитие Model Driven Software Development – технологии разработки ПО с помощью моделирования.

  • Amalgamation Eclipse – начало DSL-ориентированной среды разработки, хотя он разрабатывался долгое время, ему все еще далеко до того уровня, когда «mainstream»-разработчики смогут его использовать, в частности, из-за недостатка документации.

  • В Eclipse так же разрабатываются средства для работы с моделями, такие как Model Development Tools для поддержки стандартных моделей, инструменты для преобразования модели в модель, генерации моделей, преобразования модели в текст.

EMF

  • Ядром DSL является его абстрактный синтаксис, который используется при разработке почти любого артефакта , модели, трансформации. Обычно первым элементом DSL является его абстрактный синтаксис, в качестве него служит Eclipse

  • Modeling Framework (EMF).

  • Основной моделью EMF является EMF Ecore, которая является метамоделью для определения нашего DSL.

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

Базовые возможности EMF

  • EMF позволяет производить такие операции с моделями:

  • — Транзакции моделей, которые позволяют нескольким пользователям одновременно смотреть/редактировать модели.

  • — Проверка моделей, которая используется для поддержания целостности модели с помощью встроенных и пользовательских ограничений (заданных в Java или OCL)

— Запрос данных о модели (с помощью SQL-подобного синтаксиса или OCL)

  • — Запрос данных о модели (с помощью SQL-подобного синтаксиса или OCL)

  • — Поиск модели, который может проводиться как на основе регулярных выражений, так и на OCL, является графическим инструментом (стандартный поиск Eclipse)

  • — Сравнение моделей, используется для слияния моделей при групповой разработке.

Представления синтаксиса

  • Абстрактный синтаксис DSL может быть представлен в графическом и текстовом виде. Этим занимаются два проекта Eclipse – GMF и TMF

  • GMF – призван обеспечить разработчика графическими инструментами для описания модели, а так же превращать графическое изображение модели в абстрактный синтаксис DSL и обратно

  • TMF – позволяет использовать для представления моделей удобные для разработчика текстовые языки представления объектов (XML, SOAP, JSON, итд)

Превращение моделей Eclipse

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

  • Превращение моделей являются неотъемлемой частью инструментария DSL

Model-to-Model Transformation Project

  • Используя абстрактный синтаксис, можно задать некоторые превращения моделей и использовать их для создания новых моделей.

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

Model-to-Text Transformation (M2T) Project

  • Для превращения модели в текст EMF использует Java Emitter Templates (JET),

  • так же набирает популярность Xpand

  • Используя эти технологии, можно задать шаблоны, по которым данные модели будут преобразованы в текст.

Model Development Tools Project

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

XML Schema (XSD)

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

UML2

  • Данный компонент является реализацией метамодели UML2 от OMG.

  • Хотя этот компонент фокусируется на реализации метамодели, он предоставляет расширенную версию EMF-редактора.

  • Редактирование же UML2 диаграм является частью функциональности UML2 Tools

Object Constraint Language (OCL)

  • OCL используется для задания моделям специфических ограничений.

  • OCL может быть использован в пользовательских шаблонах, чтобы управлять поведением времени исполнения, определять модель аудита, метрики и служить в качестве основы преобразования и выражения в языках.


Похожие:

Разместите кнопку на своём сайте:

rpp.nashaucheba.ru

rpp.nashaucheba.ru

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

Приложения общего назначения, как правило, не имеют различных узкоспециализированных инструментов для решения профессиональных задач в конкретных определенных областях деятельности и не имеют возможности работы со сложными специализированными устройствами на производстве и в других сферах профессиональной деятельности. Приложения общего назначения в свою очередь имеют лишь тот набор инструментов, который может пригодиться любому пользователю ЭВМ для решения его задач с использованием только самого ЭВМ или устройств, находящихся в массовом производстве и возможности приобретения в обычной розничной продаже. В силу ограничения инструментария приложений общего назначения узкими потребностями массового потребления простейшие приложения общего назначения имеют слишком ограниченный функционал, что в свою очередь влечет за собой постоянное появление большого числа расширений, дополнений и более полных на инструментарий приложений общего назначения, которые достаточно сильно приближается по своему функционалу к полупрофессиональному и даже профессиональному программному обеспечению.

Приложения общего назначения используются как инструмент решения задач домашнего потребления и применения ЭВМ, так и большим числом организаций и предприятий, чья деятельность не требует сложных технических решений.

Среди приложений общего назначения можно выделить следующие классы приложений, объединяющих их в группы по признаку решения основных задач:

  • средства просмотра информации.

    Предметно — ориентированное программирование Степулёнок Денис Олегович 1. — презентация

    Как правило, это файловые навигаторы, веб-браузеры и средства воспроизведения текстовой, графической и мультимедийной информации;

  • текстовые редакторы и текстовые процессоры. Редакторы текстовой информации в зависимости от потребностей пользователя существуют как простейшие редакторы, так и целые системы работы с текстовой информацией больших объемов или функциональной обработки;
  • средства обработки электронных таблиц. Данная категория решает задачи структурированных данных в, как правило, двумерной форме представления информации и служит хорошим средством учета;
  • графические редакторы. Редакторы графической информации нацелены на создание и редактирование визуальной информации различной сложности и могут существовать различных уровней сложности и архитектуры.
  • видео и аудио редакторы. Редакторы видео и аудио информации существуют не только полупрофессиональные и профессиональные, но и простые программные средства, позволяющие создать простейшие мультимедийные файлы или же внести незначительные коррективы в существующий;
  • Системы управления базами данных. К данной категории программных средств общего назначения относятся приложения, позволяющие считывать, создавать и редактировать данные, объединенные в определенные базы для более удобного и структурированного их хранения.

В книге «Предметно-ориентированные языки программирования» известный эксперт в области программного обеспечения Мартин Фаулер предоставляет информацию, которая поможет вам определиться, следует ли использовать предметно-ориентированные языки для решения стоящих перед вами задач.

Предметно-ориентированный язык

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

Методы, описанные в данной книге, могут использоваться в большинстве современных объектно-ориентированных языков программирования. В основном примеры в книге написаны на Java и C#, но в некоторых из них использован Ruby. Все главы по возможности организованы в виде самодостаточных частей, а большинство справочных разделов — в знакомом читателю формате описания шаблонов программирования.

При правильном выборе и применении предметно-ориентированные языки могут существенно упростить сложный код, обеспечить эффективное общение с пользователями, повысить производительность и устранить узкие места разработки. В этой книге известный эксперт в области программного обеспечения Мартин Фаулер предоставляет информацию, которая поможет вам определиться, следует ли использовать предметно-ориентированные языки для решения стоящих перед вами задач.

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

Данная книга, по сути, представляет две книги под одной обложкой. Фаулер начинает с обзора общих принципов и концепций, лежащих в основе предметно-ориентированных языков программирования. Читатели узнают, как работают предметно-ориентированные языки, как добиться, чтобы с пользовательским синтаксисом предметно-ориентированного языка было проще работать, чем с синтаксисом таких альтернатив, как XML. Затем автор переходит к подробному рассмотрению примеров, которые помогут разработчикам лучше понять, когда и как использовать ту или иную методику. Фаулер рассматривает как внутренние, так и внешние предметно-ориентированные языки, а также альтернативные вычислительные модели, генерацию кода и другие темы.

Методы, описанные в данной книге, могут использоваться в большинстве современных объектно-ориентированных языков программирования. В основном примеры в книге написаны на Java и C#, но в некоторых из них использован Ruby. Все главы по возможности организованы в виде самодостаточных частей, а большинство справочных разделов — в знакомом читателю формате описания шаблонов программирования.

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

В книге освещены следующие темы.

  • Сравнение предметно-ориентированных языков с различными схемами и библиотеками, а также решение вопроса о достаточных альтернативах
  • Применение синтаксических анализаторов и генераторов синтаксических анализаторов, синтаксический анализ внешних предметно-ориентированных языков
  • Изучение, сравнение и выбор языковых конструкций предметно-ориентированных языков
  • Применение генерации кода и сравнение стратегий генерации кода
  • Языковые инструментальные средства для создания предметно-ориентированных языков

Книга предназначена, в первую очередь, для профессионалов в области разработки программного обеспечения, но будет интересна и полезна и начинающим программистам. Особо следует отметить, что большая часть описываемых методик применима не только для создания предметно-ориентированных языков, хотя все эти технологии рассматриваются именно в данном контексте. Книга снабжена массой перекрестных ссылок, что упрощает поиск необходимого материала.

Об авторе
Мартин Фаулер — ведущий научный сотрудник ThoughtWorks. Сам о себе он пишет так: «Автор, консультант, лектор и просто крикун в области разработки программного обеспечения. Сферой моих интересов является разработка крупномасштабного программного обеспечения, где особую роль играет хорошее проектирование». Фаулер — автор таких бестселлеров, как Шаблоны корпоративных приложений, UML Distilled, а также (в соавторстве) Refactoring: Improving the Design of Existing Code.

576, c ил стр., с ил.; ISBN 978-5-8459-1738-6, 978-0-321-71294-3; формат 70×100/16; твердый переплет; тип бумаги: офсетная; серия Signature Series; 10.10.2017; Вильямс.


Понравилась книга? Порекомендуйте её друзьям и коллегам:

Твитнуть

Похожие главы из других работ:

Автоматизация работы фирмы по продаже квартир

2. РЕАЛИЗАЦИЯ ИНФОРМАЦИОННОЙ СИСТЕМЫ СРЕДСТВАМИ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ЯЗЫКА DELPHI

Автоматизация работы фотоателье

2. Реализация информационной системы средствами объектно-ориентированного языка Delphi

Ассемблер для платформы Java

Синтаксис языка ассемблера для платформы Java (языка JASM).

Файл исходного текста на языке ассемблера для платформы Java (языке JASM) представляет собой текстовый файл, строки которого разделены последовательностью символов с кодами 13 и 10. Имя файла исходного текста и его расширение могут быть любыми…

Определение сферы применения Microsoft Access и круга решаемых ею задач

1.6 Понятие языка SQL

SQL является инструментом, предназначенным для обработки и чтения данных, содержащихся в компьютерной базе данных. SQL — это сокращенное название структурированного языка запросов (Structured Query Language). Как следует из названия…

Основы программирования в C++

2. Основы объектно-ориентированного программирования:

Объектно-ориентированное программирование — это самый высокоуровневый вид программирования в настоящее время.

Здесь поддерживаются достижения предыдущих поколений и добавлены новые свойства…

Особенности организации контроля знаний учащихся в условиях компетентностно-ориентированного обучения

1.2 Понятие компетентностно-ориентированного обучения.

Адаптивность системы образования требует определения соответствия деятельности конкретной педагогической системы возможностям и образовательным потребностям конкретного учащегося…

Понятие алгоритма и его свойства. Блок-схема алгоритма. Технология Robson

5. ПОНЯТИЕ АЛГОРИТМИЧЕСКОГО ЯЗЫКА

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

Отметим…

Программирование в Delphi математических процессов

1.1.1 Концепция объектно-ориентированного программирования

Концепцию ООП характеризует следующее: 1. В качестве строительных блоков разрабатываемых приложений используются объекты. 2. Каждому классу соответствует некоторый объектный тип…

Программирование портала

1.4 Обзор существующих предметно-ориентированных языков для web-приложений

Существуют различные способы проектирования динамичных web-приложений, различного уровня сложности посредством технологии HTML5. Такие приложения могут быть основаны как на front-end языках (JavaScript, Node. js, jQuery)…

Проектирование базы данных «Справочник покупателя» в среде Turbo Pascal

2.2 Обзор элементов языка программирования.

Предметно-ориентированные языки (DSL): Кто-то уже разрабатывал их для своих специфичных задач?

Выбор методов решения. Алфавит, семантика языка

Язык программирования Turbo Pascal используется для решения простейших задач. Данный язык программирования имеет достаточный набор процедур и функций для работы с текстовым режимом экрана. Для этого имеется модуль Crt…

Разработка базы данных автозаправочной станции

1.1 Обзор языка элементов языка программирования Delphi

Delphi — это среда разработки программ, ориентированных на работу в операционных системах семейства Windows. Программы в Delphi создаются на основе современной технологии визуального проектирования которая, в свою очередь…

Разработка информационных систем на базе мобильных интерфейсов

1.4 Предметно ориентированные ГИС

Зачастую имеющие статус государственных, региональные ГИС (regional gis), субрегиональные ГИС и локальные, или местные ГИС (local gis). Гис различаются предметной областью информационного моделирования, к примеру, городские ГИС, или муниципальные ГИС…

Теория языков программирования и методы трансляции

1.1.2 Понятие языка. Способы задания языков

В общем случае язык — это заданный набор символов и правил, устанавливающих способы комбинации этих символов между собой для записи осмысленных текстов. Основой любого языка является алфавит, определяющий набор допустимых символов…

Унифицированный язык моделирования UML и сущность объектно-ориентированного подхода

1. Сущность объектно-ориентированного подхода

Модульность — это свойство системы, связанное с возможностью ее декомпозиции на ряд внутренне связных, но слабо связанных между собой модулей. Инкапсуляция и модульность создают барьеры между абстракциями…

Язык предметных рубрик: состав и области применения

1. Понятие информационно-поискового языка

Как было указано выше информационно-поисковый язык (ИПЯ) — это знаковая система, предназначенная для описания (путем индексирования) основного смыслового содержания текстов (документов) или их частей…

FILED UNDER : IT

Submit a Comment

Must be required * marked fields.

:*
:*