Изучение языка Prolog
Поскольку истоки языка Prolog лежат в области математической логики, преподавание этого языка часто начинают с изучения логики. Но, как оказалось, подобный вводный курс, насыщенный математическими дисциплинами, не очень эффективен, если цель состоит в изучении Prolog как инструмента практического программирования. Поэтому в данной книге меньше всего внимания уделяется математическим аспектам, а изложение основывается на изучении искусства использования нескольких базовых механизмов Prolog для решения интересных задач. Обычные языки программирования — процедурно ориентированны, a Prolog является представителем нового поколения программных средств, основанных на применении описательного, или декларативного, подхода. Для его освоения требуется во многом изменить свое представление о способах решения задач, овладеть намного более продуктивными подходами, поэтому обучение программированию на языке Prolog становится увлекательной интеллектуальной деятельностью. Многие полагают, что каждый, кто проходит обучение в области информатики, должен на определенном этапе получить хотя бы некоторое представление о языке Prolog, поскольку этот язык требует использования иного принципа решения задач и позволяет по-другому взглянуть на традиционные языки программирования.
Содержание книги
В части I приведены вводные сведения о языке Prolog и показан процесс разработки программ Prolog. Кроме того, в нее включено описание методов обработки таких важных структур данных, как деревья и графы, поскольку эти методы находят широкое распространение, В части II показано применение языка Prolog во многих областях искусственного интеллекта, включая решение задач и эвристический поиск, программирование в ограничениях, представление знаний и экспертные системы, планирование, машинное обучение, качественные рассуждения, обработка текста на различных языках и ведение игр. Методы искусственного интеллекта описываются и разрабатываются до такой степени детализации, которая позволяет успешно реализовать их на языке Prolog и получить законченные программы. Затем эти программы могут использоваться в качестве структурных блоков для сложных приложений. В заключительной главе, посвященной мета программированию, показано, как можно применять Prolog для реализации других языков и принципов программирования, включая объектно-ориентированное программирование, программирова-
Предюовие
ние, управляемое шаблонами, а также написание интерпретаторов Prolog на языке Prolog. Во всей книге акцент делается на создание наиболее удобных для понимания программ; в этих программах исключены все затрудняющие понимание "программистские трюки", которые основаны на средствах системы, зависящих от конкретной реализации.