Инструментальные средства Технологии разработки программного обеспечения Tools Software development technologies ПРИКЛАДНАЯ ИНФОРМАТИКА / JOURNAL OF APPLIED INFORMATICS [ Том 12. <...> 2017 ] П. П. Кейно, преподаватель кафедры «Системное моделирование и инженерная графика» ФГБОУ ВО «Московский авиационный институт (национальный исследовательский университет)», science@blockset.ru Ф. Ф. Ярмухаметов, магистрант кафедры «Системное моделирование и инженерная графика» ФГБОУ ВО «Московский авиационный институт (национальный исследовательский университет)», science@blockset.ru Использование паттерна «абстрактная фабрика» в реализации модуля валидации и преобразования данных интерпретатора BlockSet В работе показана архитектура модуля обработки данных, используемого в интерпретаторе декларативного языка моделирования BML. <...> В статье дается теоретическое обоснование и рассматривается практическое применение элемента «Block» в рамках языка BML. <...> В работе также описывается архитектура класса элемента и его дочерних классов, дается детальное обоснование использования паттерна «абстрактная фабрика». <...> Ключевые слова: web, интерпретатор, декларативное программирование, абстрактная фабрика, паттерны проектирования, C, C++, декларативное программирование, DSL, предметно-специфичные языки, GPL, BML, BlockSet. <...> Введение В рамках реализации методологии BlockSet [1], представляющей собой единую концепцию создания динамических web-узлов, был разработан язык BML (BlockSet Modeling Language) [2]. <...> Данный язык предназначен для разработки динамических веб-приложений путем декларативного программирования и представляет собой XML-подобную структуру с ограниченным набором элементов, каждый из которых выполняет определенные функции. <...> Всего в языке BML есть четыре элемента: Model, Location, Set, Block. <...> Элемент Model записывается в виде двойного тега и предназначен для определения структуры проекта, общих параметров других элементов и контроля их типов. <...> Элемент Location (локация) — также двойной тег, определяет отдельную страницу <...>