Раздел 45 · Python backend: Тарбадель

Tree-walk интерпретатор

middle-senior~30 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Рулон с деревом лежит на верстаке у стойки Оракула. Узор свернулся над ним кольцом и светится ровным бирюзовым: с утра он пишет одно и то же двумя способами и стирает оба.

У Оракула уже есть всё, кроме движения: слова (лексер), дерево (парсер и узлы из урока 77), адреса имён (таблица символов из прошлого урока). Сегодня дерево начнёт исполняться. Самый прямой способ это пройти по нему рекурсией и в каждом узле сделать то, что он значит. Так ты уже делал в Lisp, только там узлы были списками. Здесь узлы это dataclass, и обход выглядит иначе: через match или через посетителя. Выбирать будешь, сравнив оба.

урок из курса

Урок из курса «Python backend: Тарбадель». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.