Re: Транслятор на ANTLR. Идеологические проблемы
От: System Goose Россия  
Дата: 19.10.05 13:46
Оценка:
Иногда семантику можно проверять по ходу разбора (т.е. построения дерева), иногда можно, но сложно,
а иногда просто нельзя. Если нельзя или сложно, то можно устроить отдельный рекурсивный обход по дереву
только для семантики.

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

Недостаток --- потеря производительности и увеличение общего объема текста.
(Даже если использовать нечто вроде паттерна Visitor).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.