Bratko I. (1985). Symbolic derivation of chess patterns. In:
Bratko I. and Michie D. (1980a). A representation of pattern-knowledge in chess end-games. In:
Bratko I. and Michie D. (1980b). An advice program for a complex chess programming task.
Frey P. W. (1983, ed.).
Knuth D. E. and Moore R. W. (1975). An analysis of alpha-beta pruning.
Pearl J. (1984). Heuristics: Intelligent Search Strategies for Computer Problem Solving. Addison-Wesley.
Pitrat J. (1977). A chess combination program which uses plans
Shannon C.E. (1950). Programming a computer for playing chess.
van Emden M. (1982). Chess end-game advice: a case study in computer utilisation of knowledge. In:
Wilkins D.E. (1980). Using patterns and plans in chess.
Глава 16
Программирование в терминах типовых конфигураций
В этой главе мы будем заниматься системами, ориентированными на типовые конфигурации ("образцы"), рассматривая их как некоторый специальный подход к программированию. Языком, ориентированным на образцы, можно считать и сам Пролог. Мы реализуем небольшой интерпретатор для простых программ этого типа и постараемся передать дух такого "конфигурационной" программирования на нескольких примерах.
16.1. Архитектура, ориентированная на типовые конфигурации
16.1.1. Основные понятия
Под
В противоположность этому организация, ориентированная на образцы, не предполагает прямого обращения из одних модулей к другим. Модули запускаются
(1) образцом, соответствующим предварительному условию запуска, и
(2) тем действием, которое следует выполнить, если информационная среда согласуется с заданным образцом.
Запуск модулей на выполнение происходит при появлении тех или иных конфигураций в информационной среде системы. Такую информационную среду обычно называют
Рис. 16.1. Система, управляемая типовыми конфигурациями (образцами)
Следует сделать несколько важных замечаний относительно рис. 16.1. Совокупность модулей не имеет иерархической структуры. Отсутствуют явные указания на то, какие модули могут обращаться к каким-либо другим модулям. Модули связаны скорее с базой данных, чем непосредственно друг с другом. В принципе такая структура допускает параллельное выполнение сразу нескольких модулей, поскольку текущее состояние базы данных может прийти в соответствие сразу с несколькими предварительными условиями, а следовательно, в принципе могут запуститься несколько модулей одновременно. В связи с этим, подобную организацию можно рассматривать как естественную модель параллельных вычислений, имея в виду, что каждый модуль физически реализован на отдельном процессоре.