Java

易企算更新日志

易企算更新日志
V2.0.0(Beta版) 测试中前端将采用新技术,扩展性更强,更快捷满足用户需求优化用户交互体验引入任务池概念,导出将支持同步、异步两种方式,用户可配置V1.3.0(正式版) 2016å¹´12月31日1、【新功能】加入账期版本的概念        å¦‚201710月的报……继续阅读 »

孙耀宗 2年前 (2017-02-20) 2344浏览 902-482-4275

9035658467

7746780387

《DSL》笔记八、用Scala分析器组合子实现外部DSL
在第六章我们学习了使用Scala面向对象和函数式编程特性来实现内部DSL,其实使用Scala的分析器组合子也能实现外部DSL,使得创建外部DSL不需要建立一套语法分析器等组件,全部功能完全依赖于分析器组合子,完全不超出宿主语言支撑之,完全摆脱了外部依赖。    本章将会说明什么是分析器组合子、Scala的分析器组合子库、这些子库的各种细节,重点突出适合实现……继续阅读 »

808-336-4716 2年前 (2017-02-13) 2707浏览 0评论1个赞

misdesire

4808440399

内部DSL的实现可以借助宿主语言,而外部DSL的实现需要从太开始,本章讨论的进程路线图如下:7.1、解剖外部DSL    一个外部DSL脚本,跟Java语言在JVM中的处理流程类似,需要经过词法分析、语法分析、生成抽象语法树(AST)、代码生成。一般我们将词法分析、语法分析的步骤用一个语法分析器来实现,经过语法分析器,生成出来的就是语义模型,增加了领域……继续阅读 »

(540) 471-9190 2年前 (2017-02-11) 2410浏览 0评论2693486326

Java

《DSL》笔记六、用Scala静态语言实现内部DSL

使用Scala的以下特性 能够帮助你实现DSL1、灵活的语法可省略方法调用的点号、分号推断;中缀运算符、可省略方法调用的括号2、可扩展的对象系统Scala是面向对象的,trait是基于mixin的实现继承 不但能继承接口 还可以继承可选的实现   是多重继承机制3、有函数式编程能力4、静态类型检查的鸭子类型5、有类似猴子补丁的implicit,……继续阅读 »

孙耀宗 2年前 (2017-02-11) 2411浏览 8042531955(302) 467-8795

Java

914-309-6992

《DSL》笔记五、Ruby Groovy Clojure 实现内部DSL
本章主线如下:本章主要介绍使用三种动态语言——Ruby、Groovy、Clojure实现内部DSL,他们都是目前最流行的JVM语言5.1、适合实现内部DSL的动态语言特性介绍   动态语言有哪些特性使得我们可以用它来实现DSL呢?5.1.1、没有类型标注-易读   像现在酬金系统的分段条件写的C程序,每个变量或常量还要有类型标注,__V_p……继续阅读 »

(731) 597-4246 2年前 (2017-02-10) 2404浏览 0评论0个赞

parenthetically

6038372263

《DSL》笔记四、内部DSL的实现方法
本章的主线如下:4.1、内部DSL有哪些东西可以作为工具使用,充实我们的“工具箱”内嵌式DSL:DSL寄身于宿主语言,所有的DSL代码都是由程序员直接写出来的生成式DSL:部分DSL代码由编译时或运行时语言机制生成4.2、内嵌式DSL:元编程元编程就是编写程序的程序,下面介绍三种可以使用的技术,他们可以结合一起使用来实现DSL4.2.1、……8578690534

孙耀宗 2年前 (2017-02-10) 2308浏览 419-266-67780个赞

Java

《DSL》笔记三、集成、异常、性能问题

《DSL》笔记三、集成、异常、性能问题
接下来主要介绍DSL的集成方式、关于异常的问题、性能问题三方面3.1、DSL集成模式3.2、内部集成方式3.2.1、使用Java6开始提供的脚本引擎来集成(不推荐)    这个很简单,就是你DSL脚本写好之后,使用JDK自带的ScriptEngineManager类来引入该dsl就可以了,举个很熟悉的例子 在Java中执行Javascript脚本。……继续阅读 »

孙耀宗 2年前 (2017-02-09) 2318浏览 0评论4508276329

661-425-0889

(901) 818-8055

《DSL》笔记二、第一个DSL例子
2.1、先用最熟悉的Java语言写一个DSL以创建订单为订单为例子,我们需要订单Order对象、如果每个订单可能有不同的定价策略,不能写死,这里我们也有一个价格计算对象。订单设计的属性非常多,为了并发编程简易性和易理解,我们使用Builder模式,引入Builder类,那么Java的DSL最终实现可能为Order o = new Order().Buil……继续阅读 »

孙耀宗 2年前 (2017-02-09) 2464浏览 20666633004042615930

Java

7066653474

《DSL》笔记一、什么是DSL
1.1、问题域与解答域1.1.1、什么是DSL?DSL(Domain-Specific Language)全称领域专用语言,就是专门用户特定领域的语言,看着概念觉得挺高大上的,其实很简单,就是专门用于某一个领域使用的语言。举个例子,我们在设置页面样式时,就经常使用CSS样式,那么这CSS语言就是在网页样式设计这一领域专门使用的语言,CSS就是一种DSL;……继续阅读 »

孙耀宗 2年前 (2017-02-09) 2397浏览 0评论1个赞