领域特定语言指南

域特定语言(DSL)是已定位到特定类型的问题,而不是说的目的是在任何一种软件问题的通用语言的计算机语言。领域特定语言已经谈到了,并用于几乎只要计算已经完成。

DSL的是在计算很常见:例子包括CSS,正则表达式,化妆,蚂蚁,SQL,Rails的许多位,预期在JMock的,graphviz的的点语言,支杆的配置文件....

一个重要的和有益的区别我做的内部和外部DSL之间。内部DSL使用一台主机的语言给宿主语言的特定语言的感觉的特殊方式。这种做法早已在Lisp的传统的一部分,并在过去十年得到了由Ruby社区咸鱼翻身。虽然在低仪式的语言,如这通常更容易,您可以在更多的主流语言,如Java和C#做有效的内部DSL。内部DSL也称为嵌入式的DSL或流利的接口

外部DSL有自己的自定义语法和你写一个完整的解析器来处理它们。有在Unix社区这样的一个优良传统。这方面的一个变体是编码在数据结构中表示,例如XML或YAML的DSL。

如今在野外这是最普通的DSL是文本的,但你可以有图形化的DSL过。图形化的DSL需要沿的线条工具语言工作台。语言工作台是不太常见的,但有些人认为他们必须深刻地提高我们编程的方式的潜力。

DSL的可以通过解释或代码生成来实现。解释(阅读在DSL脚本,并在运行时执行它)是最简单的,通常的,但代码生成有时是必要的。通常所生成的代码本身是一个高级语言,例如Java或C

的指南材料上www.hdxh168.com关于特定领域的语言。

领域特定语言

在过去的几年中00的我在DSL的复苏得到了非常感兴趣的,在Ruby社区,打造流畅接口的渴望,以及诱人的努力推动,如果语言工作台的朦胧,前景。我看到一个公平的几个项目中使用的想法来自DSL的,但大多数人没有自己的建设和使用它们以及选择一个良好的感觉。所以我决定写一本书的模式来使用简单的内部和外部的文本DSL来解决这个。虽然多,利息在几年间已大大减少,我还是觉得这本书确实捕捉到这些技术的一个好工作。特别是,它照在使用自适应模型捕捉替代的计算模型,如规则引擎,决策表和状态机光。

由Ma188bet足球充值rtin Fowler

2010

阅读更多…

DSL Q&A

有人问我放在一起非技术类型的DSL的讨论。也许我一直在读太多斯蒂芬,但我觉得一个不可抗拒的冲动,做一个Q和A的方式。所以在这里说到。

由Ma188bet足球充值rtin Fowler

2008年9月9日

阅读更多…

bliki

领域特定语言

DSL边界

当话题DomainSpecificLanguage出现,常见的难题之一就是究竟什么是或不是一个DSL。麻烦的是,有一个DSL没有确切的定义并没有的DSL和其他事物之间的大的灰色地带。

由Ma188bet足球充值rtin Fowler

2006年8月1日

阅读更多…

bliki

领域特定语言

语言工作台:该杀手锏应用的领域特定语言?

在软件开发的大多数新的想法是对旧观念真正的新变化。本文介绍了其中的一个,一类的工具,我称之为语言工作台日益增长的想法 - 其中的例子包括故意软件,JetBrains公司的元编程系统和微软的软件工厂。这些工具把发展的一个古老的风格 - 我称之为面向语言编程和使用IDE工具的投标,使语言面向对象程序设计一种可行的方法。虽然我不是够预言者说他们是否会在他们的野心得逞的,我认为这些工具是一些最有趣的事情在软件开发的视野。有趣的足够写这篇文章试图解释,至少在外形,它们是如何工作的,并围绕他们的未来有用的主要问题。

由Ma188bet足球充值rtin Fowler

2005年6月12日

阅读更多…

文章

语言工作台

188足球比分直播到重构的自适应模型

我们的大多数软件逻辑是写在我们的编程语言,这给我们写了最好的环境和发展这样的逻辑。但是,有一些情况是非常有用的是逻辑移动到数据结构,我们的当务之急代码可以解释 - 我称之为自适应模型。在这里,我将展示在JavaScript的一些产品的选择逻辑,并显示它如何进行重构,以用JSON编码的简单生产规则系统。这JSON数据允许我们使用不同的编程语言在设备之间共享这个选择逻辑和不更新这些设备上的代码来更新这个逻辑。

由Ma188bet足球充值rtin Fowler

2015年11月19日

阅读更多…

文章

188足球比分直播领域特定语言

商务可读DSL

将DSL的让业务人员写软件的规则,而不涉及程序员?

当人们谈论的DSL很常见,以提高业务人员自己编写代码的问题。我喜欢的COBOL推理适用于这样的思路。这是COBOL的原始目的之一是让人们编写软件的程序员没有,我们知道如何制定出。因此,当任何计划被孵出来写代码,而无需程序员,我要问有什么特殊的这段时间,将使其成功,而COBOL(和许多其他的事情)都失败了。

由Ma188bet足球充值rtin Fowler

2008年12月15日

阅读更多…

bliki

领域特定语言

句法噪音

多数民众赞成到处传说说起当关于常见的词组DomainSpecificLanguages(或任何计算机语言)是一个嘈杂的语法。人们可能会说,Ruby是比Java嘈杂少,或者说外部DSL比内部DSL噪音更小。通过句法噪音,什么人的意思是多余的字符是不是我们真正需要说的部分,但是否有满足语言定义。因为他们混淆了程序的意义,迫使我们解出它在做什么噪音字符是不好的。

由Ma188bet足球充值rtin Fowler

2008年6月9日

阅读更多…

bliki

语言功能领域特定语言

DSL目录

我的领域特定语言本书使用的图案结构,我用它来形容DSL的组织概念。该目录是在那本书的模式的列表。每一个被链接到每个模式的页面。虽然网页中不包含非常多的细节,他们为每个图案的参考URI。

由Ma188bet足球充值rtin Fowler

阅读更多…