→ Пошук по сайту       Увійти / Зареєструватися
Знання Пролог

Недостатки

Пролог критикуется в первую очередь за свою недостаточную гибкость, отчего решения на обычных языках программирования (типа C++, Java) в сочетании с базами данных оказываются более технологичными, чем аналогичные решения на Прологе. Негибкость заключается в трудности изучения языка, более высоких требований к квалификации программиста на Прологе, трудности отладки программы, неразвитости технологии программирования, плохой контролируемости промежуточных результатов.
В отличие от других языков, описанных на этом сайте, Prolog не является универсальным языком программирования. Он ориентирован на решение задач с использованием исчисления предикатов.
Целью разработки языка Prolog было предоставить возможность задания спецификаций решения и позволить компьютеру вывести из них последовательность выполнения для этого решения, а не задание алгоритма решения задачи, как в большинстве изученных нами языков. Например, если информация об авиарейсах представлена в следующей форме:
flight (номep_peйсa. пункт_отправления, пункт_назначения. время_отправления. время_прибытия)
тогда все рейсы из Лос-Анджелеса в Балтимор можно задать либо в виде прямых рейсов через оператор
flight(номер_рейса,Лос-Анджелес. Балтимор. время_отправления, время_прибытия)
либо в виде рейсов с промежуточной посадкой
flight (номер_рейса1, Лос-Анджелес, X, Время_отправления1, время_прибытия1)
flight (номер_рейса2, X, Балтимор, время_отправления2, время_прибытия2)
время_отправления2 >= время_прибытия+ЗО

Это означает, что вы определяете город X, в который можно попасть рейсом из Лос-Анджелеса и откуда можно улететь в Балтимор, причем самолет в Балтимор вылетает по крайней мере, через 30 минут после прилета рейса из Лос-Анджелеса, чтобы осталось время на пересадку. Здесь не задан никакой алгоритм, заданы только условия для получения правильного решения. Если мы сможем задать подобный набор условий, язык сформирует последовательность действий, необходимую для выбора подходящего рейса.

загрузка...
Сторінки, близькі за змістом