Acceleo

Генератор открытого исходного кода
Acceleo
Разработчик(и)Фонд «Эклипс»
Стабильный релиз
3.7.9 [1]  / 6 ноября 2019 г. ; 5 лет назад ( 6 ноября 2019 )
Репозиторий
  • git.eclipse.org/c/acceleo/org.eclipse.acceleo.git/
Написано вЯва
Платформа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.

Вход в Фонд Eclipse

В 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]

Релизы

  • Первая стабильная версия: Acceleo 1.0.0 доступна с 1 апреля 2006 г.
Легенда:
Предыдущие версииПоследняя стабильная версияСледующий релиз
ВерсияДата выпускаЖурнал релиза
1.01 апреля 2006 г.Первая версия Acceleo доступна по лицензии GPL, генерация кода из моделей на основе EMF .
1.120 октября 2006 г.Совместимость с Eclipse 3.2, поддержка моделей, созданных с помощью GMF, ArgoUML, Poseidon, Umbrello и Rational Rose. [2]
1.25 января 2007 г.Переход на Eclipse Public License (EPL), новый сервис отступов, параметризованный лаунчер, совместимость с Ant. [10]
2.05 июня 2007 г.Улучшения языка, совместимость с XML, экспорт генераторов в виде плагина Eclipse. [11]
2.112 июля 2007 г.Совместимость с Eclipse 3.3, отладчиком генератора кода. [12]
2.27 января 2008 г.Поддержка локализации, поддержка различных кодировок шаблонов, выпуск следующих генераторов: JEE, PHP, Python и WISS. [13]
2.325 июля 2008 г.Совместимость с Eclipse 3.4, возможность вызова стандартных EOperations, определенных в модели, поиск ссылок. [14]
2.425 сентября 2008 г.Возможность экспортировать генератор как автономный модуль или как приложение RCP. [15]
2.53 декабря 2008 г.Генерация профилировщика, действия по контуру. [16]
2.626 июня 2009 г.Совместимость с Eclipse 3.5 Galileo. [17]
2.76 апреля 2010 г.Улучшение профайлера, совместимость с Enterprise Architect. [18]
3.015 июня 2010 г. [19]Новый язык для определения генераторов кода на основе MOFM2T, поддержка запросов на основе OCL, компиляция в реальном времени с обнаружением ошибок. [20]
3.17 июня 2011 г. [19]Поддержка документации для генераторов, обнаружение потенциальных ошибок с предупреждением, поддержка Maven, бинарная компиляция генератора. [21]
3.227 октября 2011 г. [19]Следующий крупный релиз Acceleo с новым представлением «Интерпретатор» для оценки выражения Acceleo на заданном наборе элементов модели. [22]
3.329 мая 2012 г. [19]Следующий крупный релиз Acceleo. [23]
3.410 июня 2013 г. [19]Следующий крупный релиз Acceleo. [24]
3.510 июня 2014 г. [19]Следующий крупный релиз Acceleo. [25]
3.68 июня 2015 г. [19]Следующий крупный релиз Acceleo. [26]
3.715 октября 2016 г. [19]Следующий крупный релиз Acceleo. [27]

Поддерживаемые платформы

Acceleo написан на Java и развернут как плагин в Eclipse IDE. Acceleo поддерживается в средах на базе Java 5+ на следующих платформах:

Язык

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

Функции

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

Acceleo также позволяет:

  • генерация кода из любого типа метамодели, совместимой с EMF, например UML 1, UML 2 и даже пользовательских метамоделей ( DSL )
  • настройка генерации с помощью пользовательских шаблонов
  • генерация любого текстового языка ( C , Java , Python и т. д.)

Редактор

Acceleo содержит редактор модулей генерации кода с подсветкой синтаксиса, автодополнением, обнаружением ошибок в реальном времени и рефакторингом.

Редактор Acceleo

Отладчик

Отладчик Acceleo дает возможность следить за ходом генерации. Он позволяет пользователю приостанавливать генерацию с помощью точки останова, проверять состояние переменных и двигаться пошагово в ходе генерации для выявления проблем.

Отладчик

Профайлер

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

Данные профилирования Acceleo

Прослеживаемость

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

Прослеживаемость в Acceleo

Автономное использование

Парсер и генератор генерации, критические компоненты Acceleo, также могут использоваться "автономно", без развертывания в Eclipse. Acceleo генерирует класс Java для программного запуска генерации, что позволяет интегрировать генератор Acceleo в любое приложение Java. Этот Java-лаунчер также можно вызвать из Ant или Maven.

Совместимость

Последняя версия Acceleo совместима с: [28]

  • Автономная среда выполнения Java 6
  • Затмение 3.7 Индиго
  • Затмение 3.8 Юнона
  • Затмение 4.3 Кеплер
  • Затмение 4.4 Луна
  • Затмение 4.5 Марс
  • Затмение 4.6 Неон

Acceleo основан на моделирующей структуре EMF . Таким образом, он совместим с любым инструментом, который может создавать модели, совместимые с EMF.

Пример

Acceleo может использовать любые совместимые с EMF модели, определенные из любого вида метамодели, например UML или даже пользовательского DSL . Из этой метамодели пользователь может определить генератор кода, который будет производить любой вид текстового языка из модели, используя метамодель.

Простая модель ЭДС
Простая модель ЭДС
Простой модуль Acceleo
Простой модуль Acceleo
Сгенерированный код
Сгенерированный код

Здесь мы используем следующие элементы: EClass, EAttribute и EOperation из EMF . Благодаря простому модулю и этой входной модели Acceleo может генерировать прежний код. Модуль, определенный в этом примере, параметризован для генерации Java, но стандарт MOFM2T независим от сгенерированного кода. Когда генератор создан, пользователь может использовать другую модель для генерации фрагмента кода с похожим внешним видом, но с другим содержанием. Acceleo интегрирует несколько примеров генерации кода для генерации Java и Python.

Награды

Награды, полученные Acceleo
ЗаголовокАвторДатаСвязь
Лучший инструмент разработчика с открытым исходным кодом на базе 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.

ИмяДатаРасположениеНазвание презентации
Конференция по подходу MDA23 ноября 2006 г.Женева
SOA/MDA2006-30-11Люксембург
EclipseCon 20076 марта 2007 г.Лос-Анджелес
Европейский саммит Eclipse 200810 октября 2008 г.Людвигсбург
EclipseCon 200925 марта 2009 г.Лос-АнджелесEclipse MTL: реальная стандартная альтернатива для генерации кода [32]
Европейский саммит Eclipse 200928 августа 2009 г.ЛюдвигсбургОт Acceleo.org до моделирования Eclipse
Конференция Eclipse 201022 марта 2010 г.Лос-АнджелесГенерация кода Acceleo: начнем с примера Android
Eclipse Summit Europe 20103 ноября 2010 г.ЛюдвигсбургСоздание языка для приложений Android с помощью моделирования Eclipse [33]
Дни Topcased 20114 февраля 2011 г.ТулузаАкселео [34]
Генерация кода 201126 мая 2011 г.КембриджА вы думали, что знаете генератор кода на основе шаблонов? [35]

Ссылки

  1. ^ "Aceleo | Скачать" . Получено 19 февраля 2022 г. .
  2. ^ ab (на английском) "Acceleo 1.1.0 release notes" . Получено 2011-08-10 .
  3. ^ (на английском) "Acceleo 1.2.0 release notes" . Получено 2011-08-10 .
  4. ^ (на английском) "Eclipse logo guidelines". Архивировано из оригинала 29 июня 2011 года . Получено 2011-08-10 .
  5. ^ (на английском) "Анализ кода Ohloh". Архивировано из оригинала 2012-03-15 . Получено 2011-08-10 .
  6. ^ (на английском) "Исходный код Acceleo 1 и 2 на OW2 Forge". Архивировано из оригинала 2011-07-17 . Получено 2011-08-10 .
  7. ^ (на английском) "Исходный код Acceleo 3 на CVS (только чтение)". Архивировано из оригинала 2011-09-27 . Получено 2011-08-10 .
  8. ^ (на английском) "Acceleo мигрирует на Git" . Получено 10 августа 2011 г.
  9. ^ (на английском) "Исходный код Acceleo 3 на Github". GitHub . Получено 2011-08-10 .
  10. ^ (на английском) "Acceleo 1.2.0 release notes" . Получено 2011-08-10 .
  11. ^ (на английском) "Acceleo 2.0.0 release notes" . Получено 2011-08-10 .
  12. ^ (на английском) "Acceleo 2.1.0 release notes" . Получено 2011-08-10 .
  13. ^ (на английском) "Acceleo 2.2.0 release notes" . Получено 2011-08-10 .
  14. ^ (на английском) "Acceleo 2.3.0 release notes" . Получено 2011-08-10 .
  15. ^ (на английском) "Acceleo 2.4.0 release notes" . Получено 2011-08-10 .
  16. ^ (на английском) "Acceleo 2.5.0 release notes" . Получено 2011-08-10 .
  17. ^ (на английском) "Acceleo 2.6.0 release notes" . Получено 2011-08-10 .
  18. ^ (на английском) "Acceleo 2.7.0 release notes" . Получено 2011-08-10 .
  19. ^ abcdefgh (на английском) "Acceleo Download" . Получено 2019-07-06 .
  20. ^ (на английском) "Acceleo 3.0.0 release notes" . Получено 2011-08-10 .
  21. ^ (на английском) "Acceleo 3.1.0 release notes" . Получено 2011-08-10 .
  22. ^ (на английском) "Acceleo 3.2.0 release notes" . Получено 2011-10-27 .
  23. ^ (на английском) "Acceleo 3.3.0 release notes" . Получено 2015-03-05 .
  24. ^ (на английском) "Acceleo 3.4.0 release notes" . Получено 2015-03-05 .
  25. ^ (на английском) "Acceleo 3.5.0 release notes" . Получено 2015-03-05 .
  26. ^ (на английском языке) «Примечания к выпуску Acceleo 3.6.0». 10.06.2015.
  27. ^ (на английском языке) «Примечания к выпуску Acceleo 3.7.0». 2016-11-16.
  28. ^ (на английском языке) «План выпуска Acceleo 3.7.0». 2016-11-16.
  29. ^ (на английском) "Acceleo documentation" . Получено 2011-08-10 .
  30. ^ (на английском) "Документация Acceleo в справочном центре Eclipse" . Получено 10 августа 2011 г.
  31. ^ (на английском) "Acceleo wiki" . Получено 2011-08-10 .
  32. ^ (на английском) "EclipseCon 2009 - Eclipse MTL: реальная стандартная альтернатива для генерации кода". Архивировано из оригинала 2011-07-28 . Получено 2011-08-10 .
  33. ^ (на английском языке) "Eclipse Summit Europe 2010 - Creating a Language for Android Apps with Eclipse Modeling". Архивировано из оригинала 2011-10-01 . Получено 2011-08-10 .
  34. ^ (на английском) "Topcased Days 2011 - Acceleo". Архивировано из оригинала 2011-08-19 . Получено 2011-08-10 .
  35. ^ (на английском) «Генерация кода 2011 — А вы думали, что знаете генератор кода на основе шаблонов?». Архивировано из оригинала 2011-09-27 . Получено 2011-08-10 .
  • Официальный сайт (для Acceleo 3+)
Взято с "https://en.wikipedia.org/w/index.php?title=Acceleo&oldid=1176081077"