Разница между декларативным и процедурным программированием?
Во время одного из моих интервью они задали мне разницу между типами Declarative Programming и процедурным программированием.
В чем разница между ними с примерами?
P.S: Не могли бы вы сказать мне, кроме этих двух и объектно-ориентированных программ, какие языки программирования существуют? Потому что они могут задавать разницу между другими языками программирования. И есть похожие вопросы, подобные этому, но слишком разбросанные.
Ответы
Ответ 1
декларативного
Опишите результат и получите его через черный ящик. Противоположность императиву. Примеры:
- Yacc
- Treetop
- SQL
- Регулярные выражения
- закон
- XSLT
- markup, troff, CSS, VHDL
Процедурный или императивный
Опишите алгоритм и шаги процесса при различных степенях абстракции.
- C, большинство устаревших языков
- PHP, в основном
- в некотором смысле все основные языки
Объектно-ориентированный
- Как правило, он относится к процедурной категории, как правило, относится к языкам, которые имеют иерархию типов, которые наследуют как методы, так и состояние от базовых типов к производным типам, но также включают необычный JavaScript на основе прототипов. Отдельное измерение из других категорий здесь.
Functional
Ты оставил это. Функциональное программирование подчеркивает применение функций без побочных эффектов и без изменчивого состояния. Вышеупомянутые декларативные системы демонстрируют определенные аспекты функционального программирования.
- Схема
- Erlang
- OCaml
- Haskell
- Lisp, в зависимости. (Lisp, возможно, заслуживает своей уникальной категории)
- Clojure, несколько
- Ruby, несколько меньше
- F #
- Scala
Ответ 2
Декларативное программирование - это то, где вы говорите, что хотите, не говоря о том, как это сделать. С процедурным программированием вы должны указать точные шаги для получения результата.
Например, SQL более декларативный, чем процедурный, поскольку в запросах не указаны шаги для получения результата.
Ответ 3
Простыми словами, у меня есть пример реального мира, в котором мне нужна чашка чая.
Процедурный:
- Перейти на кухню.
- Получить сахар, молоко и чай,
- Смешайте их и нагрейте огонь, пока он не закипит
- Поместите это в чашку и принесите мне.
декларативный:
В процедурном языке вы определяете весь процесс и указываете, как это сделать. Вы просто предоставляете заказы и определяете, как будет выполняться этот процесс.
В декларативном языке вы просто устанавливаете команду или заказ, и пусть это будет в системе, как выполнить этот порядок. Вам просто нужен ваш результат, не копаясь в том, как это должно быть сделано.
Привет,
Ответ 4
Процедурное программирование:
В процедурном программировании, когда программа запускается, он следует набору инструкций. Инструкции могут изменяться в зависимости от содержимого какого-либо файла или памяти, но в целом он не сильно различается. вход в программу, как правило, не от пользовательского ввода в режиме реального времени, а от заранее собранного набора данных.
Декларативное программирование:
В Программе, управляемой декларативным событием, централизуется вокруг совокупности данных с дополнительными действиями, которые программа может взять на себя. Например, каждое "событие" в текстовом процессоре представляет собой изменения мыши или клавиатуры (или файла), которые влияют на данные, документы (документы). Они не должны выполняться в любом порядке. Программирование, управляемое событиями, принимает форму небольших программ (обработчиков событий), которые все работают на общем наборе данных, поэтому каждая небольшая программа может использовать одни и те же данные, документ в этом примере.
Ответ 5
В процедурном подходе вы кодируете свою инструкцию для достижения результата. В декларативном подходе вы определяете, что нужно решать, как знание решения проблемы. Посмотрите Пример процедуры или декларативный подход, который я реализовал в обоих подходах.
Как вы видели в примере, в декларативном подходе вам не нужно указывать, КАК решить проблему.