Paip.声明式编程以及DSL 总结

 

 

1.1     
声明式编程DSL

1.2     
声明式语言)

1.3     
声明式编程框架AOP实现

1.4     
应用场合

1.5     
Java c#中的声明式编程

 

作者Attilax 艾龙,  EMAIL:1466519819@qq.com

来源:attilax的专栏

地址:http://blog.csdn.net/attila

1.1  声明式编程DSL

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

1.2  声明式语言

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

正则表达式

sql linq css ,html.业务api.通用模块。工作流语言。。图形化编程.ant

shell..Java 6注解,attilaxc#..xml..json..yaml

常见的DSL还有规则引擎(Rule Engine)语言、工作流(Workflow)语言等。

1.3  声明式编程框架AOP实现

AOP实现

1.4  应用场合

另外一个能体现出声明式编程的真正强大之处地方是用户界面、图形、动画编程。

通用工作处理,比如日志管理、权限管理、事务管理等。

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

1.5  Java c#中的声明式编程

通过使用特性(attribute),我们也可以在C#中实现声明式编程。我们可以将特性应用在类、属性、数据成员或者方法上,.NET运行时则会为我们添加适当的行为。声明式编程更易于实现、阅读和维护。



PS:

听说过声明式编程和命令式编程,没有听说过编程式

Paip.声明式编程以及DSL 总结的更多相关文章

  1. Atitit. 提升开发效率与质量DSL ( 3) ----实现DSL的方式总结

    Atitit. 提升开发效率与质量DSL ( 3) ----实现DSL的方式总结 1. 管道抽象 1 2. 层次结构抽象(json,xml etc) 1 3. 异步抽象promise 1 4. Ide ...

  2. Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓 O725

    Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓  O725 1. DSL主要分为三类:外部DSL.内部DSL,以及语言工作台. 1 2. DSL ...

  3. Flink入门-第一篇:Flink基础概念以及竞品对比

    Flink入门-第一篇:Flink基础概念以及竞品对比 Flink介绍 截止2021年10月Flink最新的稳定版本已经发展到1.14.0 Flink起源于一个名为Stratosphere的研究项目主 ...

  4. paip. dsl 编程语言优点以及 常见的dsl

    paip. dsl 编程语言优点以及  常见的dsl 作者Attilax 艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn. ...

  5. paip.提升效率--数据绑定到table原理和流程Angular js jquery实现

    paip.提升效率--数据绑定到table原理和流程Angular js  jquery实现 html #--keyword 1 #---原理和流程 1 #----jq实现的代码 1 #-----An ...

  6. paip.提升效率---filter map reduce 的java 函数式编程实现

    #paip.提升效率---filter map reduce 的java 函数式编程实现 ======================================================= ...

  7. 第一篇:groovy对DSL的语法支持

    引子 我们用一段gradle的脚本做引子,理解这一段脚本与一般的groovy代码是怎么联系起来的 buildscript { repositories { jcenter() mavenLocal() ...

  8. paip.提高工作效率--数据绑定到table原则和过程Angular js jquery实现

    paip.提高工作效率--数据绑定到table原理和流程Angular js  jquery实现 html #--keyword 1 #---原理和流程 1 #----jq实现的代码 1 #----- ...

  9. 声明式编程:程序=数据+逻辑(what)+算法(控制+计算)

    接口:what: 实现:算法:指令: 编程语言中,凡是不涉及到算法的部分,都可以认为是声明式编程. 命令式编程可以与算法划等号:算法要求严格的计算逻辑和控制,是实施细节的精准描述: 命令式编程与声明式 ...

随机推荐

  1. Spring Framework------>Class RestTemplate----->

    org.springframework.web.client.RestTemplate 官方文档 学习心得: class RESTTemplate用于管理与客户端的HTTP连接

  2. RPC应用的java实现(转)

    一.RPC介绍 什么是RPC?Remote Procedure Call,远程过程调用.也就是说,调用过程代码并不是在调用者本地运行,而是要实现调用者与被调用者二地之间的连接与通信.比较严格的定义是: ...

  3. C#版SQLHelper.cs类

    using System; using System.Data; using System.Xml; using System.Data.SqlClient; using System.Collect ...

  4. POJ 1742 Coins DP 01背包

    dp[i][j]表示前i种硬币中取总价值为j时第i种硬币最多剩下多少个,-1表示无法到达该状态. a.当dp[i-1][j]>=0时,dp[i][j]=ci; b.当j-ai>=0& ...

  5. C4.5算法

    C4.5算法是对ID3算法的改进,在决策树的生成过程中,使用了信息增益率作为属性选择的方法,其具体的算法步骤如下: 输入:训练数据集D,特征集A,阈值e 输出:决策树T 1.如果D中所有实例属于同一类 ...

  6. poi管道流的导入导出

    /** * 导入学生信息 * * @param classid * @param uploadFilePath * @return */ public boolean uploadStudentFil ...

  7. OOP

    class Worker(object): def __init__(self,name,bu,score,sex,age): self.__name = name self.__bu = bu se ...

  8. 编译jsoncpp库以及要注意的问题

    原创文章,转载请注明原作者与本文原始URL. 版本:jsoncpp-src-0.5.0.zip简介:jsoncpp是用cpp实现的json库,可以拼装,解析,生成json串.我们要把他编译成动态库.这 ...

  9. Divide Two Integers leetcode

    题目:Divide Two Integers Divide two integers without using multiplication, division and mod operator. ...

  10. 解决hibernate中的懒加载(延迟加载)问题

    解决hibernate中的懒加载(延迟加载)问题   我们在开发的时候经常会遇到延迟加载问题,在实体映射时,多对一和多对多中,多的一样的属性默认是lazy="true"(即,默认是 ...