Я изучаю шаблоны GoF и пример шаблона интерпретатора из статьи в Википедии, привлек мое внимание: http://en.wikipedia.org/wiki/Interpreter_pattern (Я специально изучаю фрагмент кода Java). Это похоже на абстрактное синтаксическое дерево для простого выражения! Итак, шаблон интерпретатора о внедрении обработки данных в форме АСТ?Является интерпретатором шаблона формы абстрактного дерева синтаксиса
ответ
Структурно шаблон интерпретатора GoF (и почти никакого другого использования интерпретатора в CS) аналогичен AST.
У шаблона интерпретатора обычно есть только одно действие, которое оценивает выражение, представленное АСТ, тогда как многие реализации АСТ предоставляют другие средства для перемещения по дереву. Часто в реализации OO AST обход объединяет шаблон посетителя и двойную отправку. В LISP AST проходит через операторы списка. Обычно AST ничего не делает, но шаблон интерпретатора GoF имеет некоторое «интерпретируемое» действие, которое оценивает дерево.
Модель GoF сочетает в себе комбайны и AST и переводчик в одно и то же, что менее гибко, чем более распространенные подходы AST, но иногда это все, что вам нужно.
«Expression Tree» - это то, что он обычно называется, как до, так и после того, как GoF записал его с плохо выбранным именем - шаблон является самооцензирующим деревом, в интерпретаторе GoF интерпретатора нет интерпретатора.
Отлично. Возьмите известные идеи, сузите их, чтобы быть менее эффективными, чем оригинал, а затем дать результат другим именем, чем оригинал. Это прогресс? –
Итак, в основном идея состоит в том, чтобы определить простой язык, специфичный для домена? Любой хороший пример правильного применения шаблона интерпретатора? – ig12115
Я использовал деревья выражений несколько раз для оценки выражений, где полномасштабный интерпретатор не требуется. Им требуется интерфейс синтаксического анализатора/свободного интерфейса, чтобы создать их, чтобы стать внешним/внутренним DSL. Мне не нравится называть их «шаблоном интерпретатора». –
- 1. Перемещение абстрактного дерева синтаксиса
- 2. Печать абстрактного дерева синтаксиса
- 3. Разработка абстрактного дерева синтаксиса
- 4. строка для абстрактного дерева синтаксиса
- 5. Представление абстрактного дерева синтаксиса в C
- 6. Создание абстрактного дерева синтаксиса из стека
- 7. Оценка выражения из абстрактного дерева синтаксиса
- 8. Как создать части абстрактного дерева синтаксиса?
- 9. Печать абстрактного дерева синтаксиса с использованием ppx_deriving
- 10. Расширение встроенного абстрактного абстрактного шаблона Класс шаблона
- 11. Какие моменты следует учитывать при создании абстрактного дерева синтаксиса
- 12. Изменение символов букв на математические символы из абстрактного дерева синтаксиса
- 13. Как использовать Monad Reader при обходе абстрактного дерева синтаксиса
- 14. Создайте исходный код Java для абстрактного дерева синтаксиса
- 15. Создание и реализация абстрактного дерева синтаксиса в сборке 86x
- 16. Как написать шаблон посетителя для абстрактного дерева синтаксиса в C#?
- 17. Трассировка типизированного абстрактного дерева синтаксиса в компиляторе Haskell
- 18. Создание абстрактного дерева синтаксиса для кода с несколькими строками
- 19. Поиск ссылок на переменные/методы из абстрактного дерева синтаксиса
- 20. Ошибка выполнения с использованием абстрактного дерева синтаксиса Eclipse
- 21. Создание регистра байт-кода из абстрактного дерева синтаксиса?
- 22. Обход абстрактного дерева синтаксиса json для построения логического выражения
- 23. Ошибка синтаксиса шаблона при рендеринге хрустящей формы
- 24. Является ли безопасным синтаксический анализ абстрактного синтаксиса Деревья ненадежного кода?
- 25. XML - язык для абстрактного синтаксиса?
- 26. Является ли JVM компилятором или интерпретатором?
- 27. Является ли .NET VM компилятором или интерпретатором?
- 28. Наследование абстрактного класса шаблона C#
- 29. шаблона определение соответствия синтаксиса
- 30. Генерирование выражение префикс из абстрактного синтаксического дерева
Похож на это. Еще раз: «Давайте изобретать новый словарь для описания известных идей». Устные переводчики существуют с начала 1950-х годов. –
@IraBaxter всей цели книги GoF было каталогизировать известные идеи и дать им новые имена –