![]() | |
Разработчик(и) | Фонд «Эклипс» |
---|---|
Стабильный релиз | 3.7.9 [1] / 6 ноября 2019 г. ( 6 ноября 2019 ) |
Репозиторий |
|
Написано в | Ява |
Платформа | Linux , macOS , Microsoft Windows |
Тип | Генератор кода |
Лицензия | Публичная лицензия Eclipse |
Веб-сайт | www.eclipse.dev/acceleo |
Acceleo — это генератор кода с открытым исходным кодом от Eclipse Foundation , который позволяет людям использовать подход на основе моделей для создания приложений. Это реализация стандарта « MOFM2T » от Object Management Group (OMG) для выполнения преобразования модели в текст.
Проект Acceleo родился в 2006 году с веб-сайтом Acceleo.org. Acceleo 1.0 был лицензирован по GNU Public Licence (GPL) и был совместим с Eclipse 3.0, 3.1 и несколькими моделлерами на основе EMF и UML 1.2. Несколько недель спустя Acceleo 1.1 [2] обеспечил совместимость с Eclipse 3.2 и UML 1.3. Acceleo изменил свою лицензию с выпуском Acceleo 1.2, чтобы принять Eclipse Public Licence (EPL), используемую проектами Eclipse Foundation. Acceleo 2 [3] был доступен 5 июня 2007 года после запуска веб-сайта planet.acceleo.org, который включает статьи, созданные членами сообщества Acceleo, и репозитория модулей Acceleo, который содержит генераторы кода на основе Acceleo 2.
В 2009 году при переходе на Acceleo 3 проект был принят в Eclipse Foundation. Во время этого перехода язык, используемый Acceleo для определения генератора кода, был изменен на использование нового стандарта от OMG для преобразования модели в текст, MOFM2T. С выпуском Eclipse 3.6 Helios Acceleo включен в одновременный выпуск Eclipse как официальный проект Eclipse Foundation. Acceleo является плагином Eclipse и, как таковой, интегрирован в Eclipse IDE. Acceleo построен на основе нескольких ключевых технологий Eclipse, таких как EMF , и, с момента выпуска Acceleo 3, реализации OCL в Eclipse. OCL является стандартным языком от OMG для навигации по моделям и определения ограничений на элементы модели.
Хотя исходный код Acceleo является открытым, торговая марка Acceleo и ее логотип, интегрированный в Acceleo, не являются открытыми. Они были торговой маркой компании Obeo, создателя Acceleo, и они были переданы в Eclipse Foundation, когда Acceleo был принят в качестве официального проекта. [4]
Acceleo — проект Eclipse, в основном разработанный на Java [5] и доступный по лицензии Eclipse Public Licence (EPL). Исходный код Acceleo 1.x и 2.x доступен в SVN на веб-сайте консорциума OW2. [6] После вступления в Eclipse Foundation в 2009 году исходный код Acceleo 3 был перенесен из SVN в репозиторий на основе CVS на серверах Eclipse Foundation. [7] После выпуска Eclipse 3.7 Indigo в 2011 году проект Acceleo мигрировал на Git [8] вслед за миграцией, начатой несколькими официальными проектами Eclipse Foundation, и с июля 2011 года исходный код Acceleo доступен на GitHub. [9]
Легенда: | ||||
---|---|---|---|---|
Предыдущие версии | Последняя стабильная версия | Следующий релиз |
Версия | Дата выпуска | Журнал релиза |
---|---|---|
1.0 | 1 апреля 2006 г. | Первая версия Acceleo доступна по лицензии GPL, генерация кода из моделей на основе EMF . |
1.1 | 20 октября 2006 г. | Совместимость с Eclipse 3.2, поддержка моделей, созданных с помощью GMF, ArgoUML, Poseidon, Umbrello и Rational Rose. [2] |
1.2 | 5 января 2007 г. | Переход на Eclipse Public License (EPL), новый сервис отступов, параметризованный лаунчер, совместимость с Ant. [10] |
2.0 | 5 июня 2007 г. | Улучшения языка, совместимость с XML, экспорт генераторов в виде плагина Eclipse. [11] |
2.1 | 12 июля 2007 г. | Совместимость с Eclipse 3.3, отладчиком генератора кода. [12] |
2.2 | 7 января 2008 г. | Поддержка локализации, поддержка различных кодировок шаблонов, выпуск следующих генераторов: JEE, PHP, Python и WISS. [13] |
2.3 | 25 июля 2008 г. | Совместимость с Eclipse 3.4, возможность вызова стандартных EOperations, определенных в модели, поиск ссылок. [14] |
2.4 | 25 сентября 2008 г. | Возможность экспортировать генератор как автономный модуль или как приложение RCP. [15] |
2.5 | 3 декабря 2008 г. | Генерация профилировщика, действия по контуру. [16] |
2.6 | 26 июня 2009 г. | Совместимость с Eclipse 3.5 Galileo. [17] |
2.7 | 6 апреля 2010 г. | Улучшение профайлера, совместимость с Enterprise Architect. [18] |
3.0 | 15 июня 2010 г. [19] | Новый язык для определения генераторов кода на основе MOFM2T, поддержка запросов на основе OCL, компиляция в реальном времени с обнаружением ошибок. [20] |
3.1 | 7 июня 2011 г. [19] | Поддержка документации для генераторов, обнаружение потенциальных ошибок с предупреждением, поддержка Maven, бинарная компиляция генератора. [21] |
3.2 | 27 октября 2011 г. [19] | Следующий крупный релиз Acceleo с новым представлением «Интерпретатор» для оценки выражения Acceleo на заданном наборе элементов модели. [22] |
3.3 | 29 мая 2012 г. [19] | Следующий крупный релиз Acceleo. [23] |
3.4 | 10 июня 2013 г. [19] | Следующий крупный релиз Acceleo. [24] |
3.5 | 10 июня 2014 г. [19] | Следующий крупный релиз Acceleo. [25] |
3.6 | 8 июня 2015 г. [19] | Следующий крупный релиз Acceleo. [26] |
3.7 | 15 октября 2016 г. [19] | Следующий крупный релиз Acceleo. [27] |
Acceleo написан на Java и развернут как плагин в Eclipse IDE. Acceleo поддерживается в средах на базе Java 5+ на следующих платформах:
Начиная с Acceleo 3, язык, используемый для определения генератора кода Acceleo, является реализацией стандарта MOFM2T. Этот язык генерации кода использует подход на основе шаблонов. При таком подходе шаблон представляет собой текст, содержащий выделенную часть, где текст будет вычисляться из элементов, предоставленных моделями входных данных. Эти выделенные части в большинстве случаев являются выражениями, указанными в сущности моделей входных данных, используемых для выбора и извлечения информации из этих моделей. В Acceleo эти выражения основаны на реализации Eclipse языка OCL.
Acceleo предоставляет инструменты для генерации кода из моделей на основе EMF . Благодаря этим инструментам Acceleo позволяет, например, производить инкрементальную генерацию. Инкрементальная генерация дает людям возможность генерировать фрагмент кода, а затем изменять сгенерированный код и, наконец, повторно генерировать код без потери предыдущих изменений.
Acceleo также позволяет:
Acceleo содержит редактор модулей генерации кода с подсветкой синтаксиса, автодополнением, обнаружением ошибок в реальном времени и рефакторингом.
Отладчик Acceleo дает возможность следить за ходом генерации. Он позволяет пользователю приостанавливать генерацию с помощью точки останова, проверять состояние переменных и двигаться пошагово в ходе генерации для выявления проблем.
Профилировщик позволяет пользователю вычислить все инструкции, выполненные во время генерации, количество раз, когда эти инструкции были выполнены, и время, затраченное на каждую из этих инструкций. Данные профилирования доступны в моделях EMF после генерации, запущенной с помощью профайлера. Это дает пользователю возможность найти узкое место в созданном генераторе кода.
Движок Acceleo может вычислять информацию о трассируемости всех элементов, участвующих в создании файла. Эта система позволяет, например, определить элементы из входных моделей, которые были использованы для создания определенного фрагмента текста, и часть генератора кода, которая была задействована.
Парсер и генератор генерации, критические компоненты Acceleo, также могут использоваться "автономно", без развертывания в Eclipse. Acceleo генерирует класс Java для программного запуска генерации, что позволяет интегрировать генератор Acceleo в любое приложение Java. Этот Java-лаунчер также можно вызвать из Ant или Maven.
Последняя версия Acceleo совместима с: [28]
Acceleo основан на моделирующей структуре EMF . Таким образом, он совместим с любым инструментом, который может создавать модели, совместимые с EMF.
Acceleo может использовать любые совместимые с EMF модели, определенные из любого вида метамодели, например UML или даже пользовательского DSL . Из этой метамодели пользователь может определить генератор кода, который будет производить любой вид текстового языка из модели, используя метамодель.
![]() | ![]() | ![]() |
Здесь мы используем следующие элементы: EClass, EAttribute и EOperation из EMF . Благодаря простому модулю и этой входной модели Acceleo может генерировать прежний код. Модуль, определенный в этом примере, параметризован для генерации Java, но стандарт MOFM2T независим от сгенерированного кода. Когда генератор создан, пользователь может использовать другую модель для генерации фрагмента кода с похожим внешним видом, но с другим содержанием. Acceleo интегрирует несколько примеров генерации кода для генерации Java и Python.
Заголовок | Автор | Дата | Связь |
---|---|---|---|
Лучший инструмент разработчика с открытым исходным кодом на базе Eclipse 2009 г. | Фонд «Эклипс» | 1 марта 2009 г. | (на английском языке) Объявлены победители конкурса Eclipse Community Awards |
Премия «Открытые инновации» 2010 г. | Форум «Открытый мир» | 1 ноября 2010 г. | (на английском языке) Премия Форума Открытого Мира |
Сообщество Acceleo объединяется вокруг раздела Acceleo веб-сайта Eclipse Foundation. Документация Acceleo [29] доступна онлайн в Eclipse Help Center [30] и на вики проекта Acceleo. [31]
Разработчики Acceleo также общаются с сообществом посредством презентаций, реализуемых на конференциях MDA или Eclipse.
Имя | Дата | Расположение | Название презентации |
---|---|---|---|
Конференция по подходу MDA | 23 ноября 2006 г. | Женева | |
SOA/MDA | 2006-30-11 | Люксембург | |
EclipseCon 2007 | 6 марта 2007 г. | Лос-Анджелес | |
Европейский саммит Eclipse 2008 | 10 октября 2008 г. | Людвигсбург | |
EclipseCon 2009 | 25 марта 2009 г. | Лос-Анджелес | Eclipse MTL: реальная стандартная альтернатива для генерации кода [32] |
Европейский саммит Eclipse 2009 | 28 августа 2009 г. | Людвигсбург | От Acceleo.org до моделирования Eclipse |
Конференция Eclipse 2010 | 22 марта 2010 г. | Лос-Анджелес | Генерация кода Acceleo: начнем с примера Android |
Eclipse Summit Europe 2010 | 3 ноября 2010 г. | Людвигсбург | Создание языка для приложений Android с помощью моделирования Eclipse [33] |
Дни Topcased 2011 | 4 февраля 2011 г. | Тулуза | Акселео [34] |
Генерация кода 2011 | 26 мая 2011 г. | Кембридж | А вы думали, что знаете генератор кода на основе шаблонов? [35] |