Xtext - это программная среда с открытым исходным кодом для разработки языков программирования и предметно-ориентированных языков (DSL). В отличие от стандартных генераторов парсеров , Xtext генерирует не только парсер , но и модель классов для абстрактного синтаксического дерева , а также предоставляет полнофункциональную настраиваемую IDE на основе Eclipse. [2]
Стабильный выпуск | 2.25.0 / 2 марта 2021 г . [1] |
---|---|
Репозиторий | github |
Тип | Программный фреймворк |
Лицензия | Общественная лицензия Eclipse |
Веб-сайт | xtext |
Xtext разрабатывается в рамках проекта Eclipse Project как часть проекта Eclipse Modeling Framework и распространяется по лицензии Eclipse Public License . [ необходима цитата ]
История
Первая версия Xtext была опубликована в 2006 году в проекте openArchitectureWare. Последней версией, выпущенной в рамках проекта oAW, была версия 4.3. С начала 2008 года Xtext разрабатывался в Eclipse в рамках проекта моделирования Eclipse. [3]
Присоединяясь к ежегодному одновременному выпуску Eclipse , Xtext выпустил версии 0.7.0 (июнь 2009 г.), 1.0 (июнь 2010 г.), 2.0 (июнь 2011 г.), 2.3 (июнь 2012 г.), 2.5 (декабрь 2013 г.), 2.6 (май 2014 г.) и 2.7 (сентябрь 2014). Фреймворк в основном разработан немецкой компанией Itemis. [4]
Функциональность
Чтобы указать язык, разработчик должен написать грамматику на языке грамматики Xtext. Эта грамматика описывает, как модель Ecore получается из текстовой нотации. Из этого определения генератор кода выводит анализатор ANTLR и классы для объектной модели. Оба могут использоваться независимо от Eclipse.
Xtext включает функции, которые хорошо интегрируются с IDE на основе Eclipse:
- Раскраска синтаксиса
- Автозавершение кода
- Статический анализ
- Наброски
- Исходный код навигации
- Индексирование
- Сравнить вид
- Зависает
- Сворачивание кода
- Переименовать рефакторинг
Языки Xtext и IDE легко настраиваются, поскольку языковая инфраструктура и IDE связаны с помощью внедрения зависимостей и Guice . Компоненты по умолчанию можно легко заменить, привязав вместо них индивидуальные.
Начиная с версии 2.0, Xtext облегчил разработку предметно-ориентированных языков для виртуальной машины Java , ссылаясь и компилируя артефакты Java с тесной интеграцией с Eclipse's Java Development Toolkit. Библиотека языков выражений многократного использования обеспечивает расширенное поведение в рамках DSL.
Генератор кода написанный в Xtend может зацепиться в для любого языка. Для языков JVM достаточно сопоставить концепции DSL с артефактами Java, чтобы получить целостную интеграцию с Java. Также доступен альтернативный переводчик . [ требуется разъяснение ]
Использует
На момент написания этой статьи [ когда? ] , на домашней странице Xtext перечислено около 40 коммерческих и некоммерческих проектов из нескольких прикладных областей, использующих Xtext. [5]
Универсальный язык Xtend также построен с использованием Xtext. [ необходима цитата ]
Награды
Смотрите также
Рекомендации
- ^ «Xtext - Примечания к выпуску» . eclipse.org . Проверено 5 апреля 2021 .
- ^ github / xtext , Eclipse Foundation, 04.02.2021 , получено 08.02.2021
- ^ Efftinge, Sven. "Xtext - языковая инженерия стала проще!" . www.eclipse.org . Проверено 16 февраля 2018 .
- ^ itemis. Получено с http://www.itemis.com .
- ^ Получено с http://www.eclipse.org/Xtext/community.html .
- ^ Гайовски, Линн. «Объявлены победители конкурса Eclipse Community Awards» . www.eclipse.org . Проверено 16 февраля 2018 .
- ^ Скерретт, Ян. «Объявлены победители конкурса Eclipse Community Awards» . www.eclipse.org . Проверено 16 февраля 2018 .
- ^ Гуиндон, Кристофер. «Объявлены победители премии сообщества Eclipse» . www.eclipse.org . Проверено 16 февраля 2018 .
Библиография
- Свен Эффтинге; Ян Кёнляйн; Питер Фризе. «Создайте свой собственный текстовый DSL с помощью инструментов из проекта моделирования Eclipse» . Фонд Затмения . Проверено 3 июля 2012 .
- Свен Эффтинг. «Пример DSL Фаулера с Xtext» . Блог sven efftinge . Проверено 3 июля 2012 .