Re[4]: Транслятор на ANTLR. Идеологические проблемы
От: Graf Alex Украина http://grafalex.oberon.kiev.ua
Дата: 20.10.05 19:58
Оценка:
Здравствуйте, System Goose, Вы писали:
SG>Сопоставлять с образцом собственно дерево бывает полезно в кодогенераторах,
SG>но мне кажется, что там так легко не отделаться и придется свой
SG>алгоритм писать (во многих кодогенераторах ищется оптимальное
SG>покрытие дерева паттернами, соответственно приходится нечто вроде
SG>динамического программирования использовать, иначе перебор будет
SG>неприемлемо долгим).
А можно с этого места поподробнее?
Что значит покрытие дерева паттернами и где возникает перебор?

Ведь у нас все данные уже распаршены и находятся в некотором дереве, что нам из него мешает писать прямо выходной код?
Или может мы говорим о разных видах входных данных?

Для пирмера сузим задачу до следующей: входной язык — паскаль, выходной — С.

Как должна действовать схема транслятора?
предположим во входном языке нет синтаксических ошибок. В варианте без использования парсера дерева я получил пачку классов, которые описывают Типы юзерских данных, описание глобальных переменных их инициализация если есть. Попути я ругал пользователя, за то что он некорректно объявил некоторые куски. В принципе этой информации вполне достаточно, что бы тем же визитором выписать код на С. (процедуры и функции меня пока не волнуют)

Что я смогу выиграть, если в эту схему я включу парсер дерева?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.