1

在 SO 宇宙的其他地方,一场风暴已经肆虐了一段时间。关于人类是否应该更喜欢他们可以阅读的东西而不是他们不能阅读的东西。这让我在长时间的中断后摘下思考帽,向开明的人提出一个问题:

格式何时演变为特定领域的语言?或者,我如何决定是否需要人类可读格式或领域特定语言。PostScript 是引发这一切的想法。

PS:请原谅开场白;mod-down/close 如果这已经被问过了。 PPS:当我说语言时,我的真正意思是一种带有条件、循环等的编程语言。

4

2 回答 2

2

真的取决于为什么人类可能想要阅读它。

许多潜在可读的格式(例如 HTML)在机器生成时可能非常难以阅读。

无论如何,真正的程序员会在早餐时阅读核心转储:-)

至于语言问题,这将取决于定义(并且“DSL”没有明确定义)。我会说需要一个执行元素(多么模糊),如果它只是数据的二进制序列化,那么我不会称它为一种语言(例如许多光栅格式)。


进一步考虑这一点,这里似乎有两个潜在的相互关联的问题:

  • 文本(可能人类可读)或二进制(对人类读者来说很难)更好(其中包含整个不可操作性方面)。
  • 格式什么时候变成 DSL。

虽然第一个问题在其他地方有所涉及,但它不能与后者完全分开。毕竟有以二进制格式保存的 DSL(例如 Word 宏)和可以编译的 DSL(例如 .NET SDK 包含将 XSLT 转换为程序集的工具)。

这使我认为提出的真正问题是:是什么使格式成为 DSL。这里的问题是“DSL-ness”在旁观者眼中非常依赖于上下文。

HTML 是 DSL 吗?具有事件处理程序属性和 JavaScript 的 HTML 是 DSL 吗?第一个是有争议的,后者很难说不,因为肯定使用了程序代码。

我对这个问题的最初反应是认为 DSL 需要某种形式的定向执行。即在处理DSL 应用程序修改它的操作。进一步思考,这是一个过于宽泛的定义。考虑一个没有宏的文字处理应用程序。加载的文档明显支配应用程序的状态并驱动其性能。

这导致了基于人工创作的第二个潜在定义,以直接用语言指定指令以指导一个(或一类)应用程序。然而,这很模糊。但至少避免了 WP 文档成为 DSL。

因此,我目前的回答是:重要吗?DSL 或格式是让计算机做事的工具,学术定义并没有真正推动这项活动。

于 2009-02-20T11:39:35.880 回答
1

格式何时演变为特定领域的语言?或者,我如何决定我想要 > HRF 还是 DSL。PostScript 是引发这一切的想法。

每种格式都可以看作是一种语言。因为它需要规则来理解消息。需要完全指定计算机可读语言,不能有任何误解。

所以你可以说它们不需要进化,因为它们已经是语言了。

我使用了以下定义:

  • HRF(人类可读格式),几乎任何书面格式。
  • DSL(域特定语言),用于单一目的的语言。

如果您将语言的定义限制为仅包括包含循环和分支的编程语言。故事变了。简单的 INI 文件不需要这些结构。但是宏语言可以。所以你可以说,只有描述行为(序列、基于数据的决策)的语言才有可能演变成一种语言。

于 2009-02-20T11:35:35.907 回答