Scala:一种统治DSL的语言(II)

/**
 * 谨献给我最爱的Yoyo
 *
 * 原文出处:https://scalerablog.wordpress.com/2016/05/30/scala-one-language-to-rule-them-all-ii/
 * @author dogstar.huang <chanzonghuang@gmail.com> 2017-02-10
 */

你不会让一个门外汉来控制全新的380空中客车。如此一个强大的工具要求使用它的人员是有经过培训的;当Scala用于铸造新的能量环时,我的意思是,领域特定语言,Scala也类似是这样。经过前面的一些理论和大量动手的学习(learning by doing)我们已经掌握了一些理论,现在是时候通过从头开始构造一个DSL来进一步学习。

我们领域特定语言的目标

我们全新的DSL打算用于服务教学练习。然而,除了这个目的这外,它还需要有一个目标。那就是(或者是其中一个):

  • 一个治理的过程或系统。
  • 作为另一种语言的代理。

在我们的示例里,将采用第二种。

AWK简介

你是在开玩笑吗?这还需要介绍吗


继续阅读»»»

Scala:一种统治DSL的语言(I)

/**
 * 谨献给我最爱的Yoyo
 *
 * 原文出处:https://scalerablog.wordpress.com/2016/04/18/scala-one-language-to-rule-them-all-i/
 * @author dogstar.huang <chanzonghuang@gmail.com> 2017-02-07
 */

一开始,没有编程语言,只有机器代码。通过铸造能量环(即:编程语言)来统治机器,自动化编程拯救了我们所有人。他们多元化,启发了新的语言,构成了一个富生态系统。在它们中间涌现了一种高度有用的计算机语言:领域特定语言。

领域特定语言(DSL)

领域特定(计算机)语言已经存在有一段很长的时间了。对于这种语言,学术界的描述宣称它们是中心化的并且用于某一特定应用领域。领域特定语言简单而又简练,这意味着在描述动作、实体和应用领域内的关系过程中,它们会引导用户。更为重要的是,为了适配目标而制作它们。

如果我是从事统计研究的,为什么需要担心内存管理?

一点也不惊讶的是,这些迷你语言的整个王国已经进化并且接手了


继续阅读»»»