dsl
dsl
PHODAL

查看标签 dsl

去年,我们在那篇《编程语言的 IDE 支持》详细讨论了在不同 IDE、编辑器里,它们是如何提供对于编程语言的支持。在这一篇文章里,我们将不那么详细地讨论一下:不同的编程语言如何提供文档支持?如此一来,也能在未来为 Datum Lang 提供相关的理论体系支持。这里所指的编程语言的文档体系,主要是指语言标准库中的文档。

最近的一些日子里,又陷入了平凡、无聊、繁琐的业务代码开发中,生活变得无比的枯燥。每天面对着大量重复、而又没有办法得胜的代码,总会陷入忧虑之中。

而在实现几个重复的业务代码时,我发现了一个更好的方式,使用领域特定语言。

上个月将关注点放在了DSL上面,也就是DSL三步曲的第一步,一个简单的自然语言时间解析。

在计划着写一个NLP程序的时候,发现Firefox上有一个方法叫__noSuchMethod__,看上去就是元编程的味道,接着继续往下搜索的时候发现,利用ES6的Proxy可以实现元编程。

在过去的两星期里,一直在尝试了解如何从头开始设计一个系统的构架。虽然过去的那些岁月里,做过一些小的系统、小的软件,也尝试性的做过一些架构的设计。但是毕竟都是比较简单的系统,没有设计过一些复杂点的案例。暂时看不到有趣的新技术的出现,想着深入一些系统思想的同时,也想着自己设计一个复杂点的系统,然后实现。

之所以说轻量的原因是他是拿命令行测试的,还有DSL,还有Python。

在看JavaScript Template源码的时候,发现有一个很有意思的用法用来生成函数,想到这不就是元编程么?

认真研究了一会DSL,发现了这么几件有趣的事,JavaScript用得最多的一个东西怕是链式调用 (方法链,即Method Chaining)。 有意思的是Martin Flower指出:

DSL(domain-specific languages)即领域特定语言,唯一能够确定DSL边界的方法是考虑“一门语言的一种特定用法”和“该语言的设计者或使用者的意图。在试图设计一个DSL的时候,发现了一些有意思的简单的示例。

Feeds

RSS / Atom

最近文章

关于作者

Phodal Huang

Engineer, Consultant, Writer, Designer

ThoughtWorks 技术专家

工程师 / 咨询师 / 作家 / 设计学徒

开源深度爱好者

出版有《前端架构:从入门到微前端》、《自己动手设计物联网》、《全栈应用开发:精益实践》

联系我: h@phodal.com

微信公众号: 最新技术分享

存档

分类

标签

作者