【问题标题】:Oldest / First Domain specific language最早/第一个领域特定语言
【发布时间】:2017-06-05 17:21:51
【问题描述】:

我在学校有一个作业,但我一直无法找到任何信息。我们目前正在与 java 一起编程和使用内部和外部 DSL。我们正在尝试为外部 DSL 制作自己的解析器,例如:

entity [ Room "bedroom"
         item "lamp",
         item "bed",
         item "sheets"
]

但是。 我的任务是找到 OLDESTFIRST 领域特定语言,因此我们可以尝试对其进行分析和重构它。它不必与编程相关。但它可以是人类之间的一种语言,甚至是史前的。我只需要找到一些证明它是 DOMAIN-SPECIFIC 的,它是为了交流特定的东西而创建的,因此它更容易理解。我用谷歌搜索了几个小时,但一无所获。不知道有没有人是语言专业的或者学语言的。

【问题讨论】:

  • 多么有趣的问题。为什么投反对票?
  • 我也不明白。但是你知道的。 “人们”。 :)

标签: dsl


【解决方案1】:

只要有人存在,特定领域的语言就已经存在。第一批候选人会被说出来——比如在星巴克或 Subway 订购的 DSL——但我们有记录的第一个将是书面的。我不需要 DSL 有单独的机械或计算解释器。这是相对较新的东西,不必要地限制了搜索,并且不是 DSL 标准定义的一部分。 DSL 不需要生成任何东西;它可以简单地用于记录和交流某些东西。我也不要求广泛使用 DSL:今天的许多计算 DSL 仅适用于少数人,并且仅限于单个公司或项目中。我想我会排除最简单或最直接的表示,比如记分棒:如果有人能理解它,即使脱离上下文,它也可能不会形成自己的语言。

  • Knitting patterns 是一个明确的 DSL,包含它们的第一本书至少可以追溯到公元 1524 年(在此之前印刷的书不多!)。

  • 更古老的是musical notation,最早可追溯到公元前2000年。

  • Astronomical records 是真正古老的,最早的是以追踪月相的方式标记的骨棒,可能早在公元前 35,000 年。一个相当清晰的example of a moon phase DSL 存在于公元前 32,000 年左右:

【讨论】:

    【解决方案2】:

    我会建议Jacquard loom,或者至少 它处理的孔的图案。

    织布机是一种特殊用途(机械)解释器,用于解释包含编织图案的卡片。因此,人们通过在卡片上打孔(孔图案是 DSL)在卡片上“写入”编织,然后织机将卡片解释为“编译”编织文档。

    来自维基百科:

    “每张卡片上打了多排孔,一张完整的卡片对应一排设计”

    它具有DSL的所有属性:

    • 问题领域的专家使用和共享(实际上,广泛)的特殊符号
    • 一种比其他可用符号更容易表达问题/解决方案的符号
    • 独立于阅读者的精确解释/含义
    • 自动口译员

    我没有任何证据,但我认为有一些关于配置和操作的说明;如果不出意外,织机上的patent。那将是参考手册和用户指南:-}

    这甚至早于巴贝奇的机械引擎。

    比这更古老的是Napiers Bones,一组用于执行乘法的标记棒。

    【讨论】:

    • 谢谢!!!这太棒了:) 我不会将此标记为答案,只是因为我想要更多答案,但这非常有帮助,我认为应该足够了。
    猜你喜欢
    • 2019-01-05
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多