paip. dsl 编程语言优点以及 常见的dsl
paip. dsl 编程语言优点以及 常见的dsl
作者Attilax 艾龙, EMAIL:1466519819@qq.com
来源:attilax的专栏
地址:http://blog.csdn.net/attilax
DSL主要分为三类:外部DSL、内部DSL,以及语言工作台。
//////////////规则
2.DSL = 整洁的代码
3.DSL必须以文本代码的形式出现
4.DSL的语法应该尽可能地接近英语或者其他自然语言
///////////常见的dsl
正则表达式
sql linq css ,html.业务api.通用模块。工作流语言。。图形化编程.ant
shell..Java 6注解,attilax c#..xml..json..yaml
//////DSL应用的优点
高级别的重用:如果仅适用通用编程语言,则每次只能解决一个问题,但如果应用特定领域开发方法设计并实现一些特殊语言,每个特殊语言可以高效地解决一类相似的问题
java DSL的优点是你使用的IDE可以在你开始编写时,智能的实例代码,而不需要在大量的XML上浪费时间。Java DSL非常有表现能力,因为你可以在语言中混合搭配你自己的代码,来进行表达式或断言评估,或容易地添加自定义的处理模块。
paip. dsl 编程语言优点以及 常见的dsl的更多相关文章
- react的优点:兼容了dsl语法与UI的组件化管理
react的优点:兼容了dsl语法与UI的组件化管理. 组件化管理的dsl描述 UI: 虚拟dom:
- Atitit.常见的4gl 第四代编程语言 与 dsl
Atitit.常见的4gl 第四代编程语言 与 dsl 1. 4gl dsl发展历史1 2. 4gl dsl的特点1 3. 常见的4gl 第四代编程语言 dsl2 4. 未来趋势与标准2 4.1.1 ...
- Atitit. 提升开发效率与质量DSL ( 3) ----实现DSL的方式总结
Atitit. 提升开发效率与质量DSL ( 3) ----实现DSL的方式总结 1. 管道抽象 1 2. 层次结构抽象(json,xml etc) 1 3. 异步抽象promise 1 4. Ide ...
- Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓 O725
Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓 O725 1. DSL主要分为三类:外部DSL.内部DSL,以及语言工作台. 1 2. DSL ...
- Paip.声明式编程以及DSL 总结
Paip.声明式编程以及DSL 总结 1.1 声明式编程DSL 1.2 声明式语言) 1.3 声明式编程框架AOP实现 1.4 应用场合 1.5 ...
- DSL简介(转)
DSL编程:有人将DSL编程称之为声明式(Declarative)编程.DSL是在模型之上建立的一种更加灵活的对 模型化的理解和使用方式.语义模型是DSL的核心.内部DSL:用通用语言的语法表示DSL ...
- 使用Antlr实现简单的DSL
为什么要使用DSL DSL是领域专用语言,常见的DSL有SQL,CSS,Shell等等,这些DSL语言有别于其他通用语言如:C++,Java,C#,DSL常在特殊的场景或领域中使用.如下图: 领域专用 ...
- 简述 Ruby 与 DSL 在 iOS 开发中的运用
阅读本文不需要预先掌握 Ruby 与 DSL 相关的知识 何为 DSL DSL(Domain Specific Language) 翻译成中文就是:"领域特定语言".首先,从定义就 ...
- Java DSL简介(收集整理)
一.领域特定语言(DSL) 领域特定语言(DSL)通常被定义为一种特别针对某类特殊问题的计算机语言,它不打算解决其领域外的问题.对于DSL的正式研究已经持续很多年,直 到最近,在程序员试图采用最易读并 ...
随机推荐
- nginx反向代理编译异常
cc1: warnings being treated as errors /root/nginx_tcp_proxy_module/ngx_tcp.c: 在函数‘ngx_tcp_add_addrs’ ...
- SQL Server 【CTE + FOR XML PATH】使用笔记~
CREATE FUNCTION [dbo].[Getxxxxxxxxx] ( @productCategoryId INT, @SplitChar varchar ) RETURNS NVARCHAR ...
- eclipse Juno Indigo Helios Galileo 版本
Galileo Ganymede Europa 这些名字代表eclipse不同的版本 2001年11月7日 ,Eclipse 1.0发布 半年之后,2002年6月27日Eclipse进入了2.0时代 ...
- 自己随意写了个简单的依赖jquery的轮播图
//轮播图 function Switcher(obj){ this.box = $(obj.box); this.width = this.box.width(); this.banner = $( ...
- Longest Palindromic Substring
题目:https://leetcode.com/problems/longest-palindromic-substring/ 算法分析 这道题的解法有三种:暴力法.动态规划.Manacher算法.三 ...
- oracle删除数据恢复
分为两种方法:scn和时间戳两种方法恢复. 一.通过scn恢复删除且已提交的数据 1.获得当前数据库的scn号 select current_scn from v$database; (切换到sys用 ...
- nodeJS分层
一.nodeJS分层 分为三层: - 表现层:接受用户数据,并封装 - 服务层:与公司业务有关的东西,处理判断呀什么的 - 持久层:与数据库有关的 表现层:page与表现层的数据传递,route ...
- vnc 登录后只有终端 没有桌面 黑屏
1, start vnc server: vncserver :1 issue: connect it with pc and only display one terminal. 2, stop v ...
- 《深入理解Spark:核心思想与源码分析》一书正式出版上市
自己牺牲了7个月的周末和下班空闲时间,通过研究Spark源码和原理,总结整理的<深入理解Spark:核心思想与源码分析>一书现在已经正式出版上市,目前亚马逊.京东.当当.天猫等网站均有销售 ...
- C# 常见面试题1
1.WinForm遍历控件 foreach (System.Windows.Forms.Control control in this.Controls) { if (control is Syste ...