Научная статья на тему 'МЕТАМОДЕЛЬ НА PHP С ИСПОЛЬЗОВАНИЕМ ФРЕЙМВОРКА XTEXT'

МЕТАМОДЕЛЬ НА PHP С ИСПОЛЬЗОВАНИЕМ ФРЕЙМВОРКА XTEXT Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
47
8
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АРХИТЕКТУРА / XTEXT / МОДЕЛЬНО-ОРИЕНТИРОВАННАЯ ИНЖЕНЕРИЯ / ВЕБ-ПРИЛОЖЕНИЯ / PHP

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Дзидзава Э.Т., Ахмедов К.М.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «МЕТАМОДЕЛЬ НА PHP С ИСПОЛЬЗОВАНИЕМ ФРЕЙМВОРКА XTEXT»

Вестник магистратуры. 2021. № 1-1(112)

ISSN 2223-4047

УДК 62

Э.Т. Дзидзава, К.М. Ахмедов

МЕТАМОДЕЛЬ НА PHP С ИСПОЛЬЗОВАНИЕМ ФРЕЙМВОРКА XTEXT

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

Ключевые слова: архитектура, управляемая моделями; Xtext; мо-дельно-ориентированная инженерия; веб-приложения; PHP

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

Мы определили подход к получению метамодели PHP и парсера PHP для обработки исходного кода PHP. Этот подход воспользовался потенциалом Xtext фреймворка.

Модельно-ориентированная инженерия

Модельная инженерия - это парадигма программной инженерии. Модельная инженерия ввела в программную инженерию подходы, основанные на моделях, а не на коде.

Архитектура, управляемая моделями

Архитектура, управляемая моделями, - это концепция OMG, которая предлагает основывать разработку программного обеспечения на конкретных моделях с использованием стандартов. С помощью этих моделей мы можем сосредоточиться на логической концепции программы, и с их помощью можно реализовать преобразования, которые генерируют код или другие модели для конкретной технологии или с более высоким абстрактным уровнем. Модельно-ориентированная инженерия определяет основу для реализации этих моделей. Модели являются экземпляром метамоделей. Мета-модель - это определение набора понятий и их взаимосвязи с помощью диаграммы классов. Сама по себе структура метамодели обеспечивается мета-метамоделью. Мета-метамодель определяется языком MOF. Архитектура, управляемая моделями основана на трех уровнях моделирования: модель, не зависящая от вычислений, модель, независимая от платформы и модель, зависящая от платформы. Чтобы получить модель на уровне (целевая модель) из другой модели с другого уровня (исходная модель), можно использовать преобразования модели.

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

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

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

Синтаксис PHP EBNF

В минималистский синтаксис PHP был написан на EBNF. Этот синтаксис EBNF должен быть переведен в грамматическую форму Xtext, чтобы использовать его в Xtext.

Переход от EBNF к Xtex

Метод перехода следует определенным правилам, которые, как показано на рисунке 1, сопоставляют элементы грамматики EBNF с элементами Xtext.

XText

Сопостав л ени е

EBNF нотация Xtext нотация

Определение

Конкатенация

Прекращение

(Непосредственно объединить)

Рис. 1. Полученный синтаксис PHP Xtext

© Дзидзава Э.Т., Ахмедов К.М., 2021.

ISSN 2223-4047

Вестник магистратуры. 2021. № 1-1(112)

С полученным Xtext-кодом Xtext помогает нам сгенерировать метамодель и IDE DSL, которая может анализировать язык DSL.

Два сгенерированных артефакта - это PHP-парсер и PHP-метамодель.

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

• Модельный подход для моделирования и генерации приложений на основе PHP Codelgniter;

• Проект MoDisco.

Модельный подход для моделирования и генерации приложений на основе PHP Codeigniter: применялся модельный подход к моделированию PHP-фреймворка Codelgniter и созданию CRUD-приложений на его основе.

MoDisco

Фреймворк Modisco предоставляет возможность извлечения информации из программных артефактов Java. Полученная модель будет соответствовать метамодели, включенной в Modisco. Модель Java, например, может быть получена из исходного кода (на основе метамодели java). Извлеченные модели Modisco - это модели Ecore. Modisco - один из инструментов, позволивших применить принципы архитектуры, управляемая моделями в реальной жизни. К сожалению, текущая версия Modisco не включает в себя никакой конкретной поддержки PHP-кода.

По данным соответствующих работ можно сделать вывод, что проекты, дающие PHP метамодель, встречаются редко. Как, например, Modisco проект, который работает только с Java язык метамодели.

Xtext фреймворк, который позволяет получить метамодель языка PHP и синтаксический анализатор из синтаксиса языка PHP. Этот подход состоит из двух этапов:

1. Определение элементов языка PHP и написание синтаксиса языка PHP с использованием языка EBNF и преобразование EBNF в язык Xtext;

2. Генерация метамодели языка PHP и парсера. Для реализации обоих этапов мы использовали Xtext фреймворк, который позволил нам написать синтаксис языка PHP и генерировать метамодель языка PHP и парсер.

Библиографический список

1.Model Driven Architecture (MDA). Available: http://www.omg.org/mda/

2.Xtext project. [URL]: http://www.eclipse.org/Xtext

3.Kent. (2002) "Model driven engineering." Integrated Formal Methods volume 2335 of Lecture Notes in Computer Science Springer: 286-298.

4.Meta-ObjectFacility specification of the OMG. [Online]. [URL]: http://www.omg.org/spec/MOF/2.0/

5.Rhazali, Hadi, Mouloudi. (2016). "Model Transformation with ATL into MDA from CIM to PIM Structured through MVC. " Procedia Computer Science 83 : 1096-1101.

6.Rhazali, Hadi, Mouloudi. (2015). "A methodology for transforming CIM to PIM through UML: From business view to information system view." Third World Conference on Complex Systems (WCCS), Marrakech, Morocco : 1-6.

7.Rhazali, Hadi, Mouloudi. (2015). "Transformation approach CIM to PIM: from business processes models to state machine and package models." Open Source Software Computing (OSSCOM) International Conference on, Amman: 1-6.

8.Salsi. "PHP EBNF Syntax." [Online]. Available: http://www.icosaedro.it/articoli/php-syntax.html

9. Yue. (2014) "Transition from EBNF to Xtext." MODELS-PSRC 1258 : 75-80. [10] Arrhioui, Mbarki, Betari, Roubi, Erramdani. (2017) "A Model Driven Approach for Modeling and Generating PHP CodeIgniter based Applications." Transactions on Machine Learning and Artificial Intelligence (TMLAI) 5 (4) : 259-266.

10.Modisco project. [URL]: https://eclipse.org/MoDisco/

ДЗИДЗАВА ЭВЕЛИНА ТИМУРОВАНА - бакалавр, Мытищинский филиал Московский государственный технический университет им Н.Э. Баумана. Россия.

АХМЕДОВ КАЗБЕКМЕЖВЕДИНОВИЧ- магистрант, Мытищинский филиал Московский государственный технический университет им Н.Э. Баумана. Россия.

i Надоели баннеры? Вы всегда можете отключить рекламу.