В чем разница между декларативной и процедурной парадигм программирования?
в чем разница между декларативный и процедурные парадигмы программирования? Не могли бы вы привести несколько примеров?
какие существуют другие парадигмы программирования?
5 ответов
важно
существует несколько субпарадигм парадигмы императивного программирования, таких как - процессуального или объектно-ориентированное парадигмы программирования.
в парадигме императивного программирования вы описываете алгоритм шаг за шагом, при различных степенях абстракции.
примеры языков программирования, поддерживающих процедурную парадигму:
- C (и большинство других наследия языки)
- PHP, в основном
- в некотором смысле, все основные языки
Объектно-Ориентированное
обычно это относится к языкам, которые показывают иерархия типов которые наследуют как методы, так и состояние от базовых типов к производным типам, но также включают необычный JavaScript на основе прототипов.
примеры языков программирования, которые поддерживают OO парадигма:
- Java
декларативный
существует несколько субпарадигм парадигмы декларативного программирования, таких как функциональная или логическая парадигмы программирования.
в парадигме декларативного программирования вы описываете результат или цель, и вы получаете его через "черный ящик". Противоположность императив.
примеры языков программирования, которые поддерживают декларативная парадигма программирования:
- yacc
- деревьев
- среда SQL
- Регулярные Выражения
- Лекс
- XSLT
- разметка, troff, CSS, VHDL
функциональное
функциональное программирование отмечает применении функций без побочных эффектов и без изменяемого состояния. Описательные системы выше демонстрируют определенные аспекты функционального программирования.
примеры языков программирования, поддерживающих декларативную функциональную парадигму:
- Хаскелл
- вида OCaml
- схемы
- Эрланг
- F#
- Скала
декларативное программирование-это то, где вы говорите, что хотите, без необходимости говорить, как это сделать. При процедурном программировании необходимо указать точные шаги для получения результата.
например, SQL является более декларативным, чем процедурным, поскольку запросы не указывают шаги для получения результата.
позвольте мне дать вам реальный пример: мне нужна чашка чая.
процессуальные:
- пойти на кухню
- получить сахар, молоко и чай,
- смешайте их и нагревайте над огнем, пока он не закипит
- положите это в чашку и принесите мне
декларативный:
- принеси мне чашку чая.
на процедурном языке вы определяете весь процесс и как это сделать. Вы просто предоставляете заказы и определяете, как будет обслуживаться процесс.
на декларативном языке вы просто устанавливаете команду или порядок, и пусть это будет в системе, как выполнить этот порядок. Вам просто нужен ваш результат, не копаясь в том, как это должно быть сделано.
Процедурное Программирование :
в процедурном программировании, когда программа запускается, она следует набору инструкций. Инструкции могут меняться в зависимости от содержимого файла или памяти, но в целом они не сильно различаются. входные данные в программу обычно поступают не от пользователя в режиме реального времени, а от предварительно собранного набора данных.
Декларативное Программирование:
в декларативном событийном программировании централизует вокруг тела данных с дополнительными действиями, которые программа может предпринять. Например, каждое "событие" в текстовом процессоре-это любые изменения мыши или клавиатуры (или файла), которые влияют на данные, документ(ы). Их не нужно выполнять ни в каком порядке. Event driven programming принимает форму небольших программ (обработчиков событий), которые работают над общим набором данных, так что каждая небольшая программа может использовать одни и те же данные, документ в этом примере.
в процедурном подходе вы кодируете свою инструкцию для достижения результата. В декларативном подходе вы определяете, что необходимо решить, как знание решения проблемы. Взгляните на процедурный и декларативный подход пример I реализован в обоих подходах.
Как вы могли бы видеть в Примере, в декларативном подходе вам не нужно инструктировать, как решить проблему.