Комментарии 6
когда нужно разработать язык для описания операций или поведения;
Вот эта тема не раскрыта. Ещё один парсер математических выражений, скорее всего, не нужен. Ну, разве что для обучения.
А вот ситуация, когда у нас настолько разнообразный круг задач (в рамках одной области!), что стоит переходить от простой цепочки ветвлений или "стратегии" к "интерпретатору"...
Сам паттерн только про интерпретацию набора команд для достижения вариативности результата путём предоставления различного набора команд, лексический разбор и даже AST не обязательны.
К примеру PNG формат состоит из команд, которые обрабатываются интерпретатором для построения изображения.
Другой пример-любая GUI программа содержит в себе интерпретатор, т.к. ОС в Event Loop присылает команды на которые программа должна реагировать (нажатия кнопок, действия мышью итд)
Примерно по такой же схеме я недавно делал на Расте разборщик химических формул, а так же растовский аналог lambdify из python sympy - по сути парсер символьных выражений в нормальную функцию. Очень хорошо что кто-то сподобился обобщить этот подход и описать его.
Паттерн «Интерпретатор»: что такое и как использовать