Программирование в Логике. Чанышев О.Г. - 5 стр.

UptoLike

Составители: 

9
при поиске решения). Пролог заставляет Вас сконцентрироваться
на осознании задачи и описании предметной области, а не на де-
талях программной реализации. Языки же типа Си представляют
все возможности, чтобы забыть о цели и заставить думать о себе.
Признаюсь, когда в 1992 г. я начал программировать на
Turbo Prolog’е v.2.0., то писал во вполне "
императивном" стиле.
Но простота конструкций экономила массу времени. И только по-
сле полутора лет работы с Прологом я как-то вдруг осознал воз-
можности решения плохо формализованных задач, задач распо-
знавания образов, кластеризации и т. п., скрывающиеся за терми-
ном "бэктрекинг". По критерию минимума количества деталей
реализации, которые нужно держать в
голове при программирова-
нии "с листа", Пролог не знает себе равных. (Отмечу, правда, что в
последнее время мне понравился Icon по той же причине. Но
Visual Prolog v.5.2 существенно технологичнее.)
Прологязык быстрого прототипирования. Это означает, в
частности, что вы можете в течение какого-нибудь часа написать и
отладить программу для экспериментальной проверки положений
вашей концепции. Это означает, что вы можете подойти к реше-
нию задачи, как физик-экспериментатор: быстро разработать про-
граммный продукт для исследовательских целей, проанализиро-
вать экспериментально исследуемое явление, внести в модель по-
правки и перейти к следующей серии опытов. В теории эксперт-
ных систем это называется инкрементальным методом.
"Поскольку для
достижения высокого качества работы не-
обходимо экспериментирование, то экспертная система развивает-
ся постепенно. Такой эволюционный или инкрементальный метод
создания стал доминирующим в области экспертных систем" [4].
10
1. История Пролога
С точки зрения математических оснований языка историю
Пролога можно начать с 1930 г., когда Эрбран "предложил ориги-
нальный метод доказательства теорем в формальных системах
первого порядка" [5]. Идея заключается в том, что для того, чтобы
доказать теорему
H1
H2
Hn
C,
проще доказать противоречивость формулы F
H1
H2
Hn
¬
C.
Доказательство базируется на теореме о резулюциях [5,
с. 163].
В 1973 г. исследователи из Марсельского университета под
руководством Алана Колмероэ (Colmerauer), опираясь на работы
Джона Робинсона, посвященные методу резолюций, создали про-
грамму на Фортране для доказательства теорем. Программа полу-
чила название Пролог (Programmation en Logique).
Существенный вклад в развитие теории логического про-
граммирования внесла работа Р. Ковальского "
Логика предикатов
как язык программирования". В 1976 г. Ковальский и М. ван Эм-
ден предложили два подхода к прочтению текстов логических
программпроцедурный и декларативный.
В 1977 г. Д. Уоррен и Ф. Перейра создают в университете
Эдинбурга интерпретатор/компилятор языка Пролог для ЭВМ
DEC-10, тем самым переведя методы логического программиро-
вания в практичекую
плоскость. В 1980 г. К. Кларк и Ф. Маккейб
в Великобритании разработали версию Пролога для персональных
ЭВМ.
В основу методологии разработки программных средств
японского проекта создания ЭВМ пятого поколения (1981 г.) было
положено логическое программирование. Целью проекта деклари-
ровалось создание систем обработки информации, базирующихся
на знаниях, а главным средством реализации должен был стать
язык Пролог. В это же время появляется множество коммерческих
реализаций Пролога практически для всех типов компьютеров. К
наиболее известным можно отнести CProlog, Quintus Prolog,
при поиске решения). Пролог заставляет Вас сконцентрироваться                             1. История Пролога
на осознании задачи и описании предметной области, а не на де-
талях программной реализации. Языки же типа Си представляют                С точки зрения математических оснований языка историю
все возможности, чтобы забыть о цели и заставить думать о себе.      Пролога можно начать с 1930 г., когда Эрбран "предложил ориги-
      Признаюсь, когда в 1992 г. я начал программировать на          нальный метод доказательства теорем в формальных системах
Turbo Prolog’е v.2.0., то писал во вполне "императивном" стиле.      первого порядка" [5]. Идея заключается в том, что для того, чтобы
Но простота конструкций экономила массу времени. И только по-        доказать теорему
сле полутора лет работы с Прологом я как-то вдруг осознал воз-             H1 ∧ H2 ∧ … ∧ Hn ⊃ C,
можности решения плохо формализованных задач, задач распо-                 проще доказать противоречивость формулы F
знавания образов, кластеризации и т. п., скрывающиеся за терми-            H1 ∧ H2 ∧ … ∧ Hn ∧ ¬ C.
ном "бэктрекинг". По критерию минимума количества деталей                  Доказательство базируется на теореме о резулюциях [5,
реализации, которые нужно держать в голове при программирова-        с. 163].
нии "с листа", Пролог не знает себе равных. (Отмечу, правда, что в         В 1973 г. исследователи из Марсельского университета под
последнее время мне понравился Icon по той же причине. Но            руководством Алана Колмероэ (Colmerauer), опираясь на работы
Visual Prolog v.5.2 существенно технологичнее.)                      Джона Робинсона, посвященные методу резолюций, создали про-
      Пролог – язык быстрого прототипирования. Это означает, в       грамму на Фортране для доказательства теорем. Программа полу-
частности, что вы можете в течение какого-нибудь часа написать и     чила название Пролог (Programmation en Logique).
отладить программу для экспериментальной проверки положений                Существенный вклад в развитие теории логического про-
вашей концепции. Это означает, что вы можете подойти к реше-         граммирования внесла работа Р. Ковальского "Логика предикатов
нию задачи, как физик-экспериментатор: быстро разработать про-       как язык программирования". В 1976 г. Ковальский и М. ван Эм-
граммный продукт для исследовательских целей, проанализиро-          ден предложили два подхода к прочтению текстов логических
вать экспериментально исследуемое явление, внести в модель по-       программ – процедурный и декларативный.
правки и перейти к следующей серии опытов. В теории эксперт-               В 1977 г. Д. Уоррен и Ф. Перейра создают в университете
ных систем это называется инкрементальным методом.                   Эдинбурга интерпретатор/компилятор языка Пролог для ЭВМ
      "Поскольку для достижения высокого качества работы не-         DEC-10, тем самым переведя методы логического программиро-
обходимо экспериментирование, то экспертная система развивает-       вания в практичекую плоскость. В 1980 г. К. Кларк и Ф. Маккейб
ся постепенно. Такой эволюционный или инкрементальный метод          в Великобритании разработали версию Пролога для персональных
создания стал доминирующим в области экспертных систем" [4].         ЭВМ.
                                                                           В основу методологии разработки программных средств
                                                                     японского проекта создания ЭВМ пятого поколения (1981 г.) было
                                                                     положено логическое программирование. Целью проекта деклари-
                                                                     ровалось создание систем обработки информации, базирующихся
                                                                     на знаниях, а главным средством реализации должен был стать
                                                                     язык Пролог. В это же время появляется множество коммерческих
                                                                     реализаций Пролога практически для всех типов компьютеров. К
                                                                     наиболее известным можно отнести CProlog, Quintus Prolog,


                                9                                                                   10