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