查字典图书网
当前位置: 查字典 > 图书网 > 编程 > 领域特定语言 > 试读

领域特定语言[试读]

写书初衷

在我开始编程之前,DSL(Domain–Specific Language,领域特定语言)就已经成了程序世界中的一员。随便找个UNIX或者Lisp老手问问,他一定会跟你滔滔不绝地谈起DSL是怎么成为他的镇宅之宝的,直到你被烦得痛不欲生为止。但即便这样,DSL却从未成为计算领域的一大亮点。大多数人都是... 查看全部[ 写书初衷 ]

为什么现在写这本书

DSL已问世很长时间,但近些年来,它们掀起了一股流行风潮。与此同时,我决定用几年的时间写这本书。为什么呢?虽然我并不知道自己能否给这股风潮下一个权威的定义,但是可以分享一下自己的观点。 在千禧年到来的时候,编程语言界─至少在我的企业软件世界里─隐约出现了一种颇具统治性的标准。先是 Java,它在几... 查看全部[ 为什么现在写这本书 ]

为什么DSL很重要

本书2.2节会讲述更多细节,不过我觉得需要学习DSL(以及本书中提到的其他技术)的原因主要有两个。 第一个原因是提升程序员的生产力。先看下面这段代码: input =~ /d{3}-d{3}-d{4}/ 你会认出这是个正则表达式匹配,也许你还知道它匹配的是什么。正则表达式常常由于过于费解而遭受... 查看全部[ 为什么DSL很重要 ]

别畏惧这本大厚书

看到这本书这么厚,你可能会吓一跳;我自己发现要写这么多内容的时候都忍不住倒吸一口冷气。我对大厚书的态度总是小心翼翼,因为我们用来阅读的时间是有限的,一本厚书就意味着时间上的大量投资。因此在这种情况下我更倾向于使用“姊妹篇”的方式。 姊妹篇实际上是关于一个主题的两本书。第一本是叙述性质的书,需要仔细... 查看全部[ 别畏惧这本大厚书 ]

本书主要内容

本书旨在全面介绍各种DSL及其构造方式。当人们尝试DSL的时候,经常就只选一种技术。你可以在本书里看到对多种技术的介绍,真正用的时候就可以做出最合适的选择。本书还提供了很多DSL技术的实现细节和例子。当然,我无法把所有的细节都写下来,但也足以使读者入门,在早期决策时起到辅助作用。 前3章讲述什么是... 查看全部[ 本书主要内容 ]

本书读者对象

本书的理想读者是那些正在思考构建DSL的职业软件程序员。我觉得这种类型的读者都应该有多年的工作经验,认同软件设计的基本思想。 如果你深入研究过语言设计的话题,那这本书里大概不会有什么你没有接触过的资料。我倒是希望我在书中整理并表述信息的方式对你有所帮助。虽然人们在语言设计方面做了大量的工作─尤其是... 查看全部[ 本书读者对象 ]

这是本Java书或者C#书吗

本书和我曾写过的大部分书一样,与编程语言没有多大关系。我最想做的事情是揭示一些与编程语言无关的通用原则和模式。因此,不管你用的是哪种流行的面向对象语言,本书里的思想都会为你提供帮助。 函数式语言可能会是一条代沟。虽然我觉得很多内容依然对函数式语言适用,但我在函数式编程中的经验并不足以让我做出判断,... 查看全部[ 这是本Java书或者C#书吗 ]

本书缺少什么

在写这样一本书的过程中,要说什么时候最让人垂头丧气、濒临崩溃,莫过于自己意识到必须停笔的那一刻了。我为这本书花费了几年的时间,我相信这里面有很多值得你阅读的内容。但我也知道我留了很多疏漏之处。我本来想弥补这些疏漏,可这得占用大量时间。我的信念是,宁可出版一本未完成的书,也不要再等上几年把书写完─即便... 查看全部[ 本书缺少什么 ]

章节引用

虽然本书的结构比较普通,但引用章节的结构还是需要稍稍介绍一下的。我把引用章节分成一系列主题,按照相似性组成不同的章节。我的想法是每个主题都可以独立成篇,于是你读完第一部分以后,就可以任选一个主题深入了解,无须再涉及其他章节。如果有例外情况的话,我会在对应主题的开篇提到。 大部分主题都以模式的形式呈... 查看全部[ 章节引用 ]

模式结构

大多数作者在写模式的时候都用了一些标准模板。我也不例外,既用了一个标准模板,又与别人用的不一样。我所用的模板,或称模式形态,是我第一次用在企业应用架构模式(P of EAA,[Fowler PoEAA])中的模式。它的形式如下。 模板中最重要的元素大概要数名字。我喜欢用模式来描述各个引用主题... 查看全部[ 模式结构 ]

致谢

当我每次写书的时候,很多人都为我提供了大量帮助。虽然作者那里写的是我的名字,但许多朋友都为提升本书的质量作出了巨大的贡献。 我首先要感谢的是我的同事Rebecca Parsons。我对DSL这个主题曾有很多顾虑,例如,它会涉及很多学术背景的知识,而那些是我所不熟悉的。Rebecca有深厚的语言理... 查看全部[ 致谢 ]