On Sun, 28 May 2006, Konstantin Savenkov wrote:
...
Чем это принципиально, кроме имен и деталей, отличается от того, что ты предлагаешь ?
Тем, что то, что предлагаю я, компилируется g++, а не mmt ...
И в предыдущем письме:
и набор макросов, разворачивающих MM-style описание
В том то и дело, что mmt как раз и разворачивает "MM-style описание" в С++, с использованием в отображении базовых классов, которые я приводил. При этом он выполняет еще несколько полезных функций.
Собственно, что делает mmt: 1. Отображение ММ на C++, при этом: - скрываются всякие "нагромождения" С++ (то, что Анатолий называл "ритуальными плясками") и детали интерфейсов библиотеки моделирования; - добавляется полезная информация, например, о номерах строк и номерах операторов в тексте; 2. Выпоняется _полный_ синтаксический и семантический анализ операторов ММ, что сделать "на макросах" достаточно затруднительно. (не вполне удачный опыт - язык описания моделей СММ КБО). 3. Диагностика формируется в терминах ММ-языка. Не соглашусь, что она плоха. Если кто-то заметил там ошибки в сообщениях - пишите bug report-ы, это легко пофиксеть. Решать задачу "фильтрации" и "русификации" диагностики g++ - это криво и очень громоздко. (неудачный опыт - см. тот же СММ) 4. Строится синтаксическре дерево, которое может быть очень полезно для решения задач анализа, трансляции, оптимизации и т.д. 5. На исходное множество возможностей С (С++) накладывается ряд ограничений, что еще никому не было вредно.
Короче, по моему опыту, "хороший" транслятор ММ никому не помешает. Сейчас можно обсуждать, что он _как он есть_ не очень хорош, деревом разбора пользоваться невозможно и т.д., но это, imho, не аргумент чтобы заменить его на C++.
Какой транслятор MM->C ?
mmt: MM -> C++
Ты о чем вообще ?!
Я о том, по каким причинам нужно лишнее звено в виде транслятора ММ-языка?
По-моему это явная провокация со стороны Кости :)
Я не предлагаю всё заменить на что-то другое или, упаси боже, переписать заново. Вопрос -- почему не использовать чистый С++ (ну ладно, грязный, с макросами). Take it easy.
Вот именно, что "грязный" и "с макросами". Как это не странно может звучать, "неповоротливость" схемы Язык + отображение на С++ оказывает хорошую услугу при развитии средства.
В ЛВК уже пережили несколько проектов с "самопальными" библиотеками моделирования. Так вот, легкость и бессистемность их модификации + "личные заглюки" их авторов сделали их гораздо менее прозрачными и, в итоге, менее востребованными, чем ММ.
ММ (и любой специальный язык) по определению будет более минималистичен и более консервативен, чем любая библиотека. Оказывается, что это - хорошо.
Я голосую за Язык + Транслятор.
Макс