Введение. Программирование у большинства людей ассоциируется с понятием алгоритма, последовательности действий по достижению результата. Однако это относится к

Программирование у большинства людей ассоциируется с понятием алгоритма, последовательности действий по достижению результата. Однако это относится к традиционному, императивному программированию. Наряду с ним существует другой подход к разработке программ, называемый декларативным программированием, при котором понятие алгоритма отступает на задний план. В декларативном программировании от программиста требуется описывать не последовательность действий для нахождения результата, а Свойства требуемого результата. Считается, что такой подход больше соответствует человеческому мышлению.

Декларативное программирование на протяжении нескольких десятков лет привлекало людей различных категорий, имеющих отношение к разработке программного обеспечения. Это определялось следующими присущими декларативным языкам особенностями:

• выразительностью (программы на декларативных языках оказываются короче императивных программ, выполняющих аналогичные действия);

• ориентированностью на присущий человеку образ мышления (декларативные программы представляют набор предложений, описывающих конкретные свойства требуемого решения);

• параллелизмом (декларативное программирование дает предпосылки к реализации на параллельных ЭВМ).

При этом под декларативным программированием понимается программирование на языках функционального или логического программирования.

Реализуется декларативное программирование средствами двух основных стилей, определяемых как функциональное и логическое программирование, каждый из которых в определенной степени соответствует основным положениям декларативного программирования.

Функциональное и логическое программирование на протяжении десятилетий использовались для решения задач искусственного интеллекта, принимались в качестве базовых архитектур при разработке ЭВМ пятого поколения. В настоящее время функциональное и логическое программирование базируются на строгой математической основе, имеют широкий набор программных инструментов, используемых для решения широкого круга задач, связанных в основном с проблемами искусственного интеллекта и символьными вычислениями.

Декларативное программирование, которое можно назвать «подходом с позиций человека», в отличие от императивного подхода к разработке программ, который можно назвать «подходом с позиций компьютера», имеет значение и с точки зрения новаций, привнесенных в программирование. Достаточно сказать, что только с функциональным языком программирования Лисп связаны многие нововведения, ставшие впоследствии привычными: многооконный графический интерфейс и полноэкранные редакторы, символические отладчики и инспекторы данных, диалоговые системы программирования. Самое главное новшество, которое сейчас вводится во все большее число систем программирования, начиная с Java, – автоматическое управление памятью и "уборка мусора". То же самое можно сказать и о многих других функциональных языках программирования ML, Miranda, Haskell.

Функциональное и логическое программирование являются стилями программирования «сверхвысокого» уровня по отношению к языкам программирования высокого уровня.

Функциональное и логическое программирование ориентированы на решение задач, которые можно отнести к проблеме искусственного интеллекта. Задачи искусственного интеллекта относятся к трудноформализуемым задачам, которые можно описать в терминах «что надо получить», но, зачастую, довольно сложно определить в терминах «как получить результат».


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: