`
touchmm
  • 浏览: 1037833 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

DSL:下一个浪头?

阅读更多
首先是MartinFowler的一则blog(::URL::http://martinfowler.com/bliki/):

元编程系统(MetaProgrammingSystem)

SergeyDmitriev是JetBrains的领导之一,JetBrains给我们提供了诸如IntelliJIdea和ReSharper等众多优秀的工具。Sergey在最近发表的一篇文章中提到了他在元编程系统上的探索。他认为这是范围更广的面向语言编程(LanguageOrientedProgramming)的一个例子。

Martin的blog中DomainSpecificLanguage是有关DSL的他的blog。

其实DSL的兴起一点都不意外。个人觉得这时MDA迅速发展的一个必然产物。MDA发展的一个基础是OMG意外地发现了UML的兴隆,想当年OMG可是一心扑在CORBA上的,结果这个亲生儿子不争气,从Rational过来的UML这个遗腹子反而受欢迎得不得了。因此OMG要基于UML作为建模的基础,来作为和中间技术平台无关的建模语言。
但OMG很快明智地发现,任何一个试图大而全的举动都是危险的。CORBA如是,UML也如是,因此OMG开始协调UML和MOF之间的关系,MOF起初是以UML和CORBA之间的桥梁身份出现的,但这个身份很快过时了。现在的MOF是MDA的基础,是所有元模型的定义语言。什么是元模型呢?就是基于MOF为各个领域的特定建模需求所定义的领域建模语言,就是DSL。

其实说来,目前流行的意图编程(IntentionalProgramming)、软件生产线等都有DSL的思想。微软雄心勃勃的白马计划更是如此。看看VSTS的KeithShort的blog就知道了。
分享到:
评论

相关推荐

    state-machine-dsl:具有自定义执行器的状态机DSL

    intelliJ IntelliJ中DSL的可视编辑器/执行器plugin-netbeans Netbeans中DSL的可视编辑器/执行器参考DSL: : 图: : Scala: : Intellij插件: ://bjorn.tipling.com/how-to-make-an-intellij-idea-plugin-in-30...

    dsl-1.2.7-API文档-中文版.zip

    Maven坐标:cn.tenmg:dsl:1.2.7; 标签:tenmg、dsl、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释...

    spl2dsl:使用Peg.js将Splunk SPL转换为Elasticsearch DSL

    Splunk-SPL-to-ElasticSearch-DSL 基于 Splunk 的 SPL 查询语言转换成 ElasticSearch 的 DSL。 转换结果和 对齐。 可以配置 进行表达式搜索。 Usage const converter = require("./lib/converter") try { const { ...

    context-mapper-dsl:ContextMapper DSL:用于上下文映射和服务分解的特定于域的语言

    ContextMapper是一个开放源代码工具,提供基于域驱动设计(DDD)模式的特定于域的语言,用于上下文映射和服务分解。 使用ContextMapper DSL语言,您可以表达DDD上下文映射。 使用该语言对系统建模之后,就可以使用...

    groovy 一个不错的文档 实现dsl

    - **标题**: "groovy 一个不错的文档 实现dsl" - **描述**: "groovy 一个不错的文档 实现dsl" 标题与描述均指向了一个关于如何使用Groovy语言实现领域特定语言(Domain-Specific Language, DSL)的文档。这表明文档...

    Simple-DSL:用Java编写简单的DSL的实用程序

    一个简单的在交易所下订单的测试用例可能看起来像: package com.lmax.exchange.acceptance.test.api; import com.lmax.exchange.acceptance.dsl.DslTestCase; import org.junit.Before; import o

    kotlin-ssml-dsl:适用于SSML的Kotlin DSL,支持Google Actions-on-Google

    一个提供DSL来构建SSML的kotlin库。 支持对Google元素的操作。 开始吧 这进入到build.gradle 。 dependencies { compile ' com.mirego.dsl:ssml:1.1 ' } 用法 val ssml = speak { + " Here are " ; sayAs...

    bupt期末DSL设计:一种领域特定脚本语言的解释器的设计与实现(java版本,代码加报告加用户说明)

    在这个项目中,我们聚焦于一个使用Java实现的DSL解释器的设计与实现,这是一份面向北京邮电大学(BUPU)学生的期末课程设计。 首先,我们要理解DSL的概念。DSL可以分为内部DSL和外部DSL。内部DSL通常嵌入到一个更大...

    groovy-dsl:创建Groovy DSL

    例如,一个构建XML的DSL可能允许你这样写: ```groovy xml { element1 'value1' element2 { subElement 'value2' } } ``` 这样的DSL清晰易读,而且与XML结构对应。 2. **使用方法名映射**: Groovy支持...

    css-dsl:生成用于scalatags和scala-js-reactCSS框架的DSL

    css-dsl :用于CSS框架的DSL 而不是像这样的字符串式,嘈杂的代码, < .div( ^.cls : = ( " panel hidden-xs panel- " + ( if (success) " success " else " default " )), < .div( ^.cls : = " panel-...

    options-dsl:选项 DSL - 用于定义命令行选项的小型 ruby​​ dsl

    DSL 可以从一个目录中的单个文件或多个文件加载; OptionsDSL 类需要以下内容 config = { :directory => '/my/directory/of/rules', # the full path to the directory, :extensions => '*.ddl' # the regex to ...

    scala-cypher-dsl:一种用于Scala的类型安全的密码查询语言DSL

    标题"scala-cypher-dsl:一种用于Scala的类型安全的密码查询语言DSL"表明我们正在讨论一个项目或库,它允许使用Scala编程语言编写类型安全的Cypher查询。Cypher是一种专门用于Neo4j图形数据库的查询语言,用于处理...

    dsl:用于构建验证的DSL

    在本案例中,"dsl:用于构建验证的DSL"指的是一个专为构建验证逻辑定制的语言。通常,DSL可以简化复杂操作,使得非程序员或者领域专家也能理解和使用。 DSLs分为内部DSL和外部DSL。内部DSL是嵌入在一种通用编程语言...

    DSL论坛-DSL介绍

    #### 一、DSL技术简介 DSL(Digital Subscriber Line,数字用户线路)是一种通过传统电话线提供高速数据传输的技术。它利用现有的铜线电话网络,在不干扰普通电话服务的情况下,实现宽带互联网接入。DSL技术在世界...

    cypher-dsl:密码查询语言的Java DSL

    Neo4j Cypher-DSL 当前形式的Neo4j Cypher-DSL是Spring Data Neo4j的衍生产品 :high_voltage: RX,用于生成所有...入门添加必要的依赖关系首先,在以下坐标下包含对Neo4j Cypher-DSL的依赖关系: org.neo4j:neo4j-cyp

    rest-test-dsl:它是一个基于moco和dispatch的restful client和server的测试dsl。 (Scala)

    休息-测试-dsl 它是一个基于 moco 和 dispatch 的用于 restful 客户端和服务器的测试 DSL。 (从 scala2.10.4 开始) 它还支持actor模式(稍后将支持Akka actor)使scalacheck风格的测试用例更快使用 DSL 测试 REST ...

    glagol-dsl:利用领域驱动设计的领域特定语言

    《Glagol DSL:借助领域驱动设计的力量》 在IT行业中,领域驱动设计(Domain-Driven Design,简称DDD)是一种先进的软件开发方法论,旨在通过深入理解业务领域,以领域模型为核心来指导软件的设计和开发。Glagol ...

    linear-dsl:用于构建自定义DSL

    用于构建自定义DSL。 设置 $ npm install --save linear-dsl 用法 解析自定义DSL查询。 const dsl = require ( 'linear-dsl' ) ; let data = dsl . parse ( 'a(foo) AND b(2 bars) OR c(4)' ) ; 验证查询映射。 ...

    android-gradle-dsl:针对Gradle的Android插件的DSL参考

    《Android-Gradle-DSL:Gradle Android 插件的领域特定语言详解》 在现代Android开发中,Gradle已成为构建、编译和管理项目的主要工具。Gradle的灵活性和强大的功能,很大程度上得益于它的领域特定语言(DSL),即...

    Dexter-DSL:具有 Kotlin DSL 风格的 Dexter

    compile ' com.github.babedev.dexter.dsl:dsl:1.0.3 ' .. } 样本 runtimePermission { permission( Manifest .permission. READ_EXTERNAL_STORAGE ) { granted { toast( " Permission granted " ) } denied ...

Global site tag (gtag.js) - Google Analytics