Рекомендуемая литература. Упражнения.
Упражнение 6
Постарайтесь задокументировать процесс освоения новой для вас инструментальной среды. Попробуйте классифицировать те трудности, с которыми вам довелось столкнуться. Например, можно начать с выделения проблем следующих видов.
- Проблема управления режимами работы среды – насколько болезненным был процесс освоения пользовательского интерфейса таких компонентов, как редактор, отладчик, интерпретатор и т.п.
- Проблемы освоения синтаксиса языка – как быстро вы освоились с правилами расстановки скобок, знаков препинания и т.п.
- Концептуальные проблемы. Сложности в освоении процедурных или декларативных конструкций. Например, методики работы с демонами, контекстами и т.п.
Упражнение 7
В этом примере демонстрируется, как в языке CLIPS организована интеграция правил и объектов. Основной механизм взаимодействия правил и объектов состоит в том, что действия, специфицированные в правилах, посылают сообщения экземпляру класса.
Предположим, например, что мы имеем дело с экспертной системой, которая дает пользователю советы, касающиеся покупки музыкальных инструментов. Пусть это будет гитара, причем ее характеристики представлены содержимым слотов. Тогда в этой экспертной системе должны быть правила, подобные приведенному ниже.
(defrule describe-guitar (option?guitar) › (send (symbol-to-instance-name?guitar) show))
В этом правиле show – метод класса guitar, который выводит на экран содержимое слота экземпляра класса в нужном формате. Определение класса guitar может иметь следующий вид:
(defclass guitar (is-a USER) (slot make) (slot model) (slot wood) (slot pickups))
Метод show этого класса можно представить следующим образом:
(definessage-handler guitar show () (printout t "The "?self:make " "?self:model " is a "?self:wood " guitar with "?selfspickups " pickups.") ;;?self:make " "?self:model " это " ;;?self:wood " гитара с " ;;?self:pickups " звукоснимателем.") )
Для экземпляра этого класса:
(GibSG of guitar (make Gibson) (model SG) (wood mahogany) (pickups humbucking)) метод выведет сообщение "The Gibson SG is a mahogany guitar with humbucking pickups."
Включите подобную функцию в одну из программ-советчиков, которые предлагалось разработать в упражнениях предыдущих глав, в частности в упр. 7 главы 14 и в упр. 4 главы 16.
Упражнение 8
Разработайте два правила, которые будут удалять все действия и факты, связанные с "отравленным" контекстом, в примере, представленном в разделе 17.3.5. Почему таких правил должно быть два?