Подтвердить что ты не робот

Разница между декларативным и процедурным программированием?

Во время одного из моих интервью они задали мне разницу между типами Declarative Programming и процедурным программированием.

В чем разница между ними с примерами?

P.S: Не могли бы вы сказать мне, кроме этих двух и объектно-ориентированных программ, какие языки программирования существуют? Потому что они могут задавать разницу между другими языками программирования. И есть похожие вопросы, подобные этому, но слишком разбросанные.

4b9b3361

Ответ 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

В процедурном подходе вы кодируете свою инструкцию для достижения результата. В декларативном подходе вы определяете, что нужно решать, как знание решения проблемы. Посмотрите Пример процедуры или декларативный подход, который я реализовал в обоих подходах.

Как вы видели в примере, в декларативном подходе вам не нужно указывать, КАК решить проблему.