2013-03-29 2 views
0

В Eclipse Modeling Framework (EMF) есть файлы ecore для определения модели. Из этого кода модели (и других вещей) может быть сгенерирован. Эта стадия генерации описывается «Моделью генератора ЭДС». Теперь мой вопрос: почему этот файл называется «модель» вместо «конфигурации» или что-то в этом роде. На мой взгляд, он ничего не моделирует, но описывает шаг генерации ...Почему это называется «Генератор EMF _Model_»?

ответ

3

В то время как другие ответы совершенно правильно, есть еще одно отличие между «моделью» и «конфигурации». Все модели EMF (включая эту модель генератора) могут быть изменены, преобразованы и т. Д. На каждый уже доступный инструмент EMF (поскольку все они используют одну и ту же метамодель).

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

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

2

На самом деле genmodel, а также файлы ecore также являются техническими характеристиками моделей EMF. Поэтому не удивительно, что это называется так.

Фактически вы должны понимать, что EMF позволяет описывать любую структурированную информацию. Таким образом, его можно использовать для описания вашей собственной семантики, а также описания конфигураций генерации кода или даже описания себя (ecore).

3

Текущая реализация EMF была создана с использованием метода начальной загрузки. Сначала модель, которая описывает данные, хранящиеся в ecore и genmodel, была написана вручную. Как только EMF была достаточно стабильной, они были смоделированы и сгенерированы с помощью EMF. Это означает, что ecore и genmodel во всех отношениях являются моделью EMF.

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

От создателя EMF, Ed Merks:

В конце концов, модель генератора EMF генерирует как модель Ecore и себя, так что мы на самом деле не в состоянии удалить наш сгенерированный код. Мы нуждаемся в этом, чтобы загрузить среду. Это колючие проблемы. http://ed-merks.blogspot.de/2008/10/hand-written-and-generated-code-never.html

+0

Спасибо за цитату, интересное понимание! – parasietje