Здравствуйте, Adopt, Вы писали:
A>Что такое Декларативное программирование?
A>В чем различие от ООП допустим или от функционального?
Попробую ответить... хотя плохо во всём этом разбираюсь
Есть программирование
императивное и программирование
декларативное. В императивном программировании программа представлена в виде набора действий, которые должны быть выполнены (т.е. эдакий ассемблер высокого уровня). Т.е. код описывает
решение задачи. Типичные представители императивных языков — C, Pascal, BASIC.
В идеале декларативного программировании код описывает саму задачу (а не один из способов её решения, как в императивном). Например, атрибуты в C# — это элемент декларативного программирования. Применяя к методу атрибут DllImport[], мы декларируем тот факт, что должна быть использована библиотечная функция, а в какой машинный код это в итоге превратится — нас не волнует. Представители декларативных языков: Lisp, ML, Prolog, Haskell...
Часто декларативные языки содержат элементы императивных (OCaml, например) и наоборот (всё тот же C#).
Вот так вот... может, немного расплывчато — но как смог.
А ООП — это вообще методика, т.е. нечто из другой оперы. Принципы ООП можно использовать как в императивном (C++, Java, Object Pascal), так и в декларативном (OCaml, Haskell [imho то, что есть в Хаскеле, тоже имеет отношение к ООП]) программировании.
PS: функциональное программирование — это подвид декларативного (как и логическое). Т.е. Haskell — это чисто функциональный язык декларативного программирования
PPS: ссылок не подкину, но в форуме должны быть.