• 声明式编程


    首先在声明式编程里面有2大家族,那就是函数式编程和数据流编程,数据流编程下面就是响应式编程,而函数响应式编程是”继承”于函数式编程和响应式编程的

     

    声明式编程(英语:Declarative programming)是一种编程范式,与命令式编程相对立。它描述目标的性质,让计算机明白目标,而非流程。声明式编程不用告诉计算机问题领域,从而避免随之而来的副作用。而命令式编程则需要用算法来明确的指出每一步该怎么做。

    声明式编程通常被看做是形式逻辑的理论,把计算看做推导。声明式编程因大幅简化了并行计算的编写难度,自2009起备受关注。

    声明式语言包包括数据库查询语言(SQLXQuery),正则表达式,逻辑编程,函数式编程和组态管理系统。

    声明式编程透过函数、推论规则或项重写(term-rewriting)规则,来描述变量之间的关系。它的语言运行器(编译器解释器)采用了一个固定的算法,以从这些关系产生结果。

    声明式编程语言通常用作解决人工智能约束满足问题

     

    定义

     
    声明式编程通常被定义为除命令式以外的编程范式。同时存在一些其他的定义,这些定义不是简单的将声明式编程和命令式编程做对比,例如:
    • 声明式编程是告诉计算机需要计算“什么”而不是“如何”去计算
    • 任何没有副作用的编程语言,或者更确切一点,任何引用透明的编程语言
    • 任何有严格计算逻辑的编程语言
    这些定义有一些是重合的。
     

    子编程范式

     
    声明式编程是一个大的概念,其下包含一些有名的子编程范式。

    约束式编程

    在约束式编程中,变量之间的关系是在约束中说明的,定义了问题的解的范围。这些约束然后被应用程序来求解,以使得每个变量获得一个值,并让最多的约束得到满足。
    约束式编程经常被用作函数式编程、逻辑编程甚至命令式编程的补充。

    领域专属语言

    一些著名的声明式领域专属语言(DSLs)包括yacc语法分析器,编译说明语言MakePuppet管理配置语言,正则表达式SQL的一些子集(例如Select queries等)。DSLs有时非常有用,并且不需要是图灵完全的,这往往让其很容易以一种纯声明式的方式来表达。
    很多文本标记语言例如HTMLMXMLXAMLXSLT往往是声明式的[1]。

    函数式编程

    函数式编程,特别是纯函数式编程,尝试最小化状态带来的副作用,因此被认为是声明式的。大多数函数式编程语言,例如SchemeClojureHaskellOCaml、Standard ML和Unlambda,允许副作用的存在。

    逻辑式编程

    逻辑式编程语言如Prolog声明关系并且对关系进行提问。同函数式编程一样,许多逻辑编程语言允许副作用的存在。
     

    参见

     

    https://wapbaike.baidu.com/item/声明式编程

  • 相关阅读:
    接口测试小结
    UI自动化例子
    SQL Server 索引结构及其使用(二)
    SQL Server 索引结构及其使用(一)
    SQL Server 索引结构及其使用(四)
    SQL Server 索引结构及其使用(三)
    SQL Server 索引和视图
    Nginx 代理配置
    Java常见框架和工具
    MYSQL 存储过程 范例
  • 原文地址:https://www.cnblogs.com/feng9exe/p/10064569.html
Copyright © 2020-2023  润新知