Visitor Pattern, что он делает? Читаю сейчас книгу дракона и параллельно другие разные статьи и книги по компиляторам. Понял что Visitor Pattern это то что используют сейчас. В данный момент я на стадии lexser, parser и в сейчас начинаю курить AST. Мне нужно понять как тут используются визиторы и почему мне лучше делать через визиторы. Смотрел примеры Visitor Pattern так и не понял какие удобства они предосталяют, и какие проблемы решают. До меня бывает долго доходят очевидные вещи. Спасибо.

11 Мая 2022 в 19:53
266 +1
0
Ответы
1

Visitor Pattern - это поведенческий паттерн проектирования, который позволяет добавлять новые операции к коллекции объектов без изменения самих объектов.

В контексте компиляторов и абстрактного синтаксического дерева (AST), Visitor Pattern позволяет обходить AST и выполнять определенные действия над узлами дерева, не изменяя саму структуру AST. Это очень удобно, так как позволяет добавлять новые операции (например, проверка типов, оптимизация кода и т.д.) без изменения самих классов AST.

Преимущества использования Visitor Pattern в вашем случае:

Разделение логики обхода дерева (visitor) от классов узлов AST, что делает код более модульным и поддерживаемым.Возможность добавления новых операций над узлами AST без изменения самих классов узлов.Удобство обработки различных типов узлов дерева, так как для каждого типа узла можно определить свой visitor.

Если у вас есть конкретные примеры кода, где вы не понимаете, как применять Visitor Pattern, можете поделиться ими, и я постараюсь помочь разобраться.

16 Апр в 18:34
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 93 003 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир