声明式和程序式编程之间的区别?

在我的一次采访中,他们问我声明性编程程序编程类型之间的区别。

他们与例子有什么区别?

PS:除了这两个面向对象的编程外,你能告诉我哪些类型的编程语言? 因为他们也可能会问其他编程语言的区别。 还有类似这样的问题,但太分散了。


陈述

描述一个结果并通过一个黑匣子获取它。 当务之急是相反的。 例子:

  • YACC
  • 树冠
  • SQL
  • 常用表达
  • XSLT
  • 标记,troff,CSS,VHDL
  • 程序或命令

    在不同的抽象程度上描述算法和流程步骤。

  • C,大多数传统语言
  • PHP,大多数
  • 在某些意义上说,所有主要语言
  • 面向对象

  • 趋于处于过程类别中,通常指的是表现出从基本类型到派生类型都继承方法和状态的类型层次结构的语言,但也包括不寻常的基于原型的JavaScript。 与其他类别不同的​​维度。
  • 实用

    你离开了这个。 函数式编程强调应用没有副作用和不可变状态的函数。 上面的声明系统展示了函数式编程的某些方面。

  • 方案
  • 二郎神
  • OCaml的
  • 哈斯克尔
  • Lisp,取决于。 (Lisp或许值得拥有自己独特的类别)
  • Clojure,有点
  • Ruby,有点少
  • F#
  • 斯卡拉

  • 声明式编程就是在你说出你想要的而不必说出如何去做的地方。 通过程序编程,您必须指定确切的步骤来获得结果。

    例如,SQL比过程更具说明性,因为查询没有指定产生结果的步骤。


    简而言之,我有一个真实世界的例子,我需要一杯茶。

    程序:

  • 去厨房
  • 得到糖,牛奶和茶,
  • 将它们混合并加热至沸腾
  • 把它放在一个杯子里拿给我
  • 声明:

  • 给我一杯茶。
  • 在过程语言中,你定义了整个过程并提供了如何执行的步骤。 您只需提供订单并定义过程将如何提供。

    在声明性语言中,您只需设置命令或顺序,然后让系统如何完成该顺序。 你只需要你的结果,而不需要深入了解它应该如何完成。

    问候,

    链接地址: http://www.djcxy.com/p/22873.html

    上一篇: Difference between Declarative and Procedural Programming?

    下一篇: Why do browsers match CSS selectors from right to left?