Skip to main content

Что такое пролог?

Пролог - это язык программирования, основанный на логике. Большинство компьютерных языков основаны на шагах, необходимых для решения проблемы. Язык Пролог, с другой стороны, является «декларативным» языком, который указывает на логические отношения между сущностями. Способ решения проблемы остается за компьютером. Название Prolog происходит от французского PROgrammation en LOGique, то есть от PROgramming LOGic.

Ниже приводится простая программа Prolog:

предок (F, C): - отец (F, C)
предок (P, Q): - отец (P, R), предок (R, Q)
Отец (Джон, Джим).
Отец (Джим, Джерри).
Отец (Джерри, Джейсон).
Отец (Джерри, Джефф).
Отец (Джейсон, Иисус Навин).

Вышеуказанная программа указывает на трюизмы. Если F является отцом C, то F является предком C. Если P является отцом некоторого человека R, который является предком Q, то P является предком Q. Затем приводится ряд истинных фактов, таких как Джон был отцом Джима. Если тогда возникает вопрос о том, является ли Джон предком Джеффа, мы получаем ответ «Да», как показано ниже:

? - предок (Джон, Джефф).
да

Если предки Иисуса Навина представляют интерес, тогда программа отображает всех предков следующим образом:

? - предок (А, Иисус Навин)
A = Джейсон
A = Джерри
A = Джим
А = Джон

Обратите внимание, что в обоих вышеупомянутых случаях программа не указала, как выполнить оценку. Например, в нем не указывалось, начинать ли с пожилого человека и переходить к более молодому человеку или наоборот. Также поменять местами, как показано ниже:

предок (P, Q): - предок (R, Q), отец (P, R)

Это не имеет значения для программы, поскольку обе эти части на правой стороне должны быть истинными, чтобы левая сторона была истинной.

Таким образом, язык Пролог сосредотачивается на отношениях, а не на том, как решить проблему. Во время выполнения программы Prolog создает ряд истинных утверждений, создавая базу знаний. В приведенном выше примере база знаний, в произвольном порядке, будет иметь предка (Джон, Джим), предка (Джим, Джерри), предка (Джон, Джерри), предка (Джим, Джейсон), предка (Джон, Джейсон), и так далее. Эта база знаний может продолжать наращиваться по мере выполнения программы, и ее можно эффективно искать для поиска решений. Выполнение может использовать параллельную обработку, одновременное выполнение несколькими компьютерами.

Язык Пролог используется в ряде областей. Это началось в системах, предназначенных для естественных языков, таких как английский; естественный язык является одной из областей искусственного интеллекта. Язык Пролог также используется в символической математике, включая алгебру. Он используется в доказательстве теорем, в экспертных системах и в системах управления, а также во многих других приложениях.