Здравствуйте, Adopt, Вы писали:

A>Что такое Декларативное программирование?

A>В чем различие от ООП допустим или от функционального?

Попробую ответить... хотя плохо во всём этом разбираюсь

Есть программирование императивное и программирование декларативное. В императивном программировании программа представлена в виде набора действий, которые должны быть выполнены (т.е. эдакий ассемблер высокого уровня). Т.е. код описывает решение задачи. Типичные представители императивных языков — C, Pascal, BASIC.

В идеале декларативного программировании код описывает саму задачу (а не один из способов её решения, как в императивном). Например, атрибуты в C# — это элемент декларативного программирования. Применяя к методу атрибут DllImport[], мы декларируем тот факт, что должна быть использована библиотечная функция, а в какой машинный код это в итоге превратится — нас не волнует. Представители декларативных языков: Lisp, ML, Prolog, Haskell...

Часто декларативные языки содержат элементы императивных (OCaml, например) и наоборот (всё тот же C#).

Вот так вот... может, немного расплывчато — но как смог.

А ООП — это вообще методика, т.е. нечто из другой оперы. Принципы ООП можно использовать как в императивном (C++, Java, Object Pascal), так и в декларативном (OCaml, Haskell [imho то, что есть в Хаскеле, тоже имеет отношение к ООП]) программировании.

PS: функциональное программирование — это подвид декларативного (как и логическое). Т.е. Haskell — это чисто функциональный язык декларативного программирования

PPS: ссылок не подкину, но в форуме должны быть.
Автор: Oyster    Оценить