格式与语言

问题描述 投票:0回答:2

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

格式何时演变成特定于领域的语言?或者,我如何决定是否需要人类可读格式或领域特定语言。 PostScript 是我想到的引发这个问题的原因。

PS:请原谅序言; mod-down/close(如果已经被问过的话)。 PPS: 当我说语言时,我真正指的是具有条件、循环等的编程语言。

programming-languages binary
2个回答
2
投票

实际上取决于人们为什么想要阅读它。

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

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

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


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

  • 文本(可能是人类可读的)还是二进制(对于人类读者来说非常困难)更好(其中包含整个不可操作性方面)。
  • 某种格式何时成为 DSL。

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

这让我认为真正的问题是:什么使某种格式成为 DSL。这里的问题是“DSL 性”很大程度上取决于旁观者的眼睛和上下文。

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

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

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

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


1
投票

格式何时演变成特定于领域的语言?或者,我如何决定需要 > HRF 还是 DSL。 PostScript 是我想到的引发这个问题的原因。

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

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

我使用了以下定义:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.