我在学校有一份作业,但我一直有找到任何信息的问题。我们目前正在使用java编程和使用内部和外部DSL。我们正在尝试为外部DSL创建自己的解析器,例如:
entity [ Room "bedroom"
item "lamp",
item "bed",
item "sheets"
]
BUT。我的任务是找到 OLDEST 或 FIRST 特定于域的语言,因此我们可以尝试分析它并重建它。它不必与编程相关。但它可能是人类甚至史前的语言。我只需要找到一些证据,它是DOMAIN-SPECIFIC,它是为了特定的东西而创建的,因此它更容易理解。我用谷歌搜索了几个小时但没有。我不知道是否有人像语言专业人士或学习语言一样。
答案 0 :(得分:6)
只要有人,就会存在特定于域的语言。第一批候选人会被说出来 - 就像在星巴克或者地铁站订购的DSL一样 - 但是我们记录的第一批候选人将是书面的。我不会要求DSL有一个单独的机械或计算解释器。这是一个相对较新的东西,不必要地限制了搜索,并且不属于DSL的标准定义。 DSL不需要生成任何东西;它可以简单地用于记录和传达某些东西。我也不会要求DSL被广泛使用:如今许多计算DSL仅适用于少数人,并且仅限于单个公司或项目。我想我会排除最简单或直接的表示,如理货棒:如果有人能理解它,即使脱离背景,它也可能不会形成自己的语言。
Knitting patterns是一个清晰的DSL,第一本包含它们的书可以追溯到至少公元1524年(之前印刷的书不多!)。
更老的是musical notation,其最早发现可以追溯到公元前2000年。
Astronomical records是真正古老的,最早的是用跟踪月相的方式标记的骨棍,可能早在公元前35000年。公元前32,000年左右存在一个相当清晰的example of a moon phase DSL:
答案 1 :(得分:4)
我会建议Jacquard loom,或者至少 它处理的洞的图案。
织机是包含编织图案的卡片的特殊用途(机械)翻译。因此,通过在卡片上打孔(孔图案是DSL),可以在卡片上“编写”编织,并且织机解释卡片以“编译”编织文档。
来自维基百科:
“每张卡上都有多排孔,一张完整的卡片对应于设计的一行”
它具有DSL的所有属性:
我没有任何证据,但我认为有一些关于配置和操作的指示;如果不出意外,织机上的patent。这将是参考手册和用户指南: - }
这甚至优于巴贝奇的机械发动机。
甚至比Napiers Bones更老,用于执行乘法的一组标记杆。