SICP第2.2.4节描述了一种小型的图片语言"构建复杂的图像模式。该语言定义了单个基元painter
以在给定框架内绘制图像,并用于转换和合并painters
以创建新的painter
。
我喜欢这个例子,希望看到更多这类语言的例子(最好是Scheme
)。我会更喜欢系统/业务领域的语言。你知道这些小语言吗?
答案 0 :(得分:2)
这些“小”语言也称为Domain-specific languages或DSL。它是一种广泛使用的编程范式,但它有其优点和缺点。
例如,有一个名为Zillions of Games的商业通用游戏系统。它使用S-expressions,因此如果你知道Lisp,它的语法看起来非常熟悉。事实上,任何游戏脚本语言都是DSL。
如果您是Web开发人员,则经常处理模板语言。您也可以将模板语言视为特定于域的语言。其中一些可以通过自定义模板标记进行扩展,例如Django template language。
目前的一些通用编程语言最初是作为领域特定语言开发的。例如,Erlang最初是由爱立信为电话应用程序设计的。
答案 1 :(得分:1)
任何规模的精心设计的程序都会有一种或多种图片语言'在里面。要查找示例,请尝试MIT Scheme或Schemers.org