- •Дж. Малпас
- •Предисловие редактора перевода
- •Предисловие Круг читателей, для которого предназначена данная книга
- •Темы, освещаемые в книге
- •Примеры текстов программ
- •Показательный пример
- •Как ориентироваться в материале данной книги
- •Введение Зачем нужно изучать Пролог?
- •Взгляд на мир, навязываемый языком программирования
- •Выражения признательности
Примеры текстов программ
На протяжении всей книги автор старался представить достаточное количество конкретных примеров, чтобы проиллюстрировать новый материал. Однако число примеров не столь велико, чтобы читатель "потонул" в море программ. Примеры программ, приведенные в семи главах книги, часто специально сделаны достаточно простыми, чтобы читатель смог с максимальной легкостью разобраться в них. В приложении II содержатся тексты, дополнительных программ, предназначенных для выполнения экранного ввода-вывода, для сбора множества ответов и т. д.
Совместимые версии языка Пролог
Во всех примерах, приведенных в данной книге, автор придерживался высоко портабельного подмножества версии языка Пролог для ЭВМ DEC-10, которое полностью совместимо с тем, что Клоксин и Меллиш называют "ядром Пролога". Говоря конкретно, приведенные программы будут работать в следующих версиях языка Пролог: CProlog, Ouintus, Arity, - Prolog-1 и Prolog-2 фирмы Expert Systems International, UNSW Prolog, Prolog-86, Chalcedony Prolog, IF/Prolog, micro-Prolog и Sigma Prolog для ЭВМ DEC-10 и т. д. Многие программы будут работоспособны и при их выполнении в системе Turbo Prolog. Фактически же все программы данной книги первоначально разрабатывались на диалекте CProlog, а затем были перенесены на некоторые другие версии языка. Автор пытался избегать использования каких-либо средств или конструкций языка Пролог, являющихся особенностями конкретных версий этого языка. В приложении IV обсуждаются различия между версиями Пролога. Оно может оказаться полезным справочным пособием при переносе программ с одной версии языка Пролог на другую.
Показательный пример
В приложении III приведен показательный пример, связанный с планированием работы в промышленном производстве. В этой прикладной области требуется воспользоваться, некоторыми усложненными методами решения задач. Здесь вполне естественным образом употребляются многие методы программирования и представления задач, описанные в данной книге. И хотя в показательном примере применяется сильно упрощенная модель производственного процесса, этот пример показывает общий подход к решению данной задачи. В рамках этого подхода можно представить и реальные производственные процессы, если описать их с необходимым уровнем сложности. Данный показательный пример призван проиллюстрировать, как с помощью средств языка Пролог можно решать достаточно сложную задачу.
Существует, однако", некоторая "опасность" во включении в книгу всего лишь одного показательного примера. Если сфера применения, иллюстрируемая примером, окажется понятной лишь узкому кругу специалистов, то читатели, не знакомые с обсуждаемым предметом, останутся равнодушными к такому примеру. Если же прикладная область будет слишком широко известна, то предлагаемая программа не будет выполнять сколь-либо важных действий, а это может разочаровать некоторых читателей. Сфера промышленного производства выбрана потому, что она находится где-то между этими двумя категориями прикладных областей. Она должна быть доступна даже тем, кто никогда не был связан с промышленным производством. В то же время многие методы, используемые в показательном примере, пригодятся и в других областях.
Существует и еще одна причина, по которой был выбран показательный пример из сферы промышленного производства: У многих людей создается впечатление, что Пролог - это "академический" язык, непригодный для практических целей. Они спрашивают: "Что же можно реально сделать при помощи этого языка?" Ответом — хотя и не слишком убедительным — могло бы стать перечисление всех тех вещей, которые можно было бы реализовать на Прологе, упоминание академических исследовательских проектов или намек на то, что значительная часть действительно серьезных работ, выполненных при помощи языка Пролог, является засекреченной. Однако гораздо более убедительно звучало бы перечисление реальных, коммерческих программных систем, построенных на Прологе, а ведь именно в области промышленного производства и существует несколько таких систем.
