Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Применимость

Читайте также:
  1. IV. Применимость теории Хорни
  2. Применимость
  3. Применимость
  4. Применимость
  5. Применимость различных формулировок

Используйте паттерн интерпретатор, когда есть язык для интерпретации, предложения которого можно представить в виде абстрактных синтаксических деревьев. Лучше всего этот паттерн работает, когда:


 

Паттерн Interpreter

а грамматика проста. Для сложных грамматик иерархия классов становится слишком громоздкой и неуправляемой. В таких случаях лучше применять генераторы синтаксических анализаторов, поскольку они могут интерпре­тировать выражения, не строя абстрактных синтаксических деревьев, что экономит память, а возможно, и время;

а эффективность не является главным критерием. Наиболее эффективные интерпретаторы обычно не работают непосредственно с деревьями, а снача­ла транслируют их в другую форму. Так, регулярное выражение часто пре­образуют в конечный автомат. Но даже в этом случае сам транслятор мож­но реализовать с помощью паттерна интерпретатор.


Структура

Участники

a AbstractExpression (RegularExpression) - абстрактное выражение:

- объявляет абстрактную операцию Interpret, общую для всех узлов в аб­
страктном синтаксическом дереве;

a TerminalExpression (LiteralExpression) - терминальное выражение:

- реализует операцию Interpret для терминальных символов грамматики;

- необходим отдельный экземпляр для каждого терминального символа
в предложении;

Q NonterminaIExpression(AlternationExpression,RepetitionExpression, SequenceExpressions) - нетерминальное выражение:

- по одному такому классу требуется для каждого грамматического прави­
ла R:: = Rl R2... Rп;

- хранит переменные экземпляра типа AbstractExpression для каждо­
го символа от Rl до Rп;

- реализует операцию Interpret для нетерминальных символов грамма­
тики. Эта операция рекурсивно вызывает себя же для переменных, пред­
ставляющих./?,,... /?п;

р Context - контекст:

- содержит информацию, глобальную по отношению к интерпретатору;





Дата добавления: 2015-09-11; просмотров: 69 | Поможем написать вашу работу | Нарушение авторских прав

Паттерн Proxy | Адаптер и мост | Обсуждение структурных паттернов | Глава 5. Паттерны поведения | Мотивация | Паттерны поведения | Паттерн Chain of Responsibility | Паттерн Command | Паттерны поведения | Результаты |


lektsii.net - Лекции.Нет - 2014-2025 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав