【问题标题】:Name of the notation that goes like /<command> [arg0|arg1]类似于 /<command> [arg0|arg1] 的符号的名称
【发布时间】:2021-04-24 04:49:12
【问题描述】:

我知道有一个符号或约定,例如描述命令的用法(例如在 shell 中)。

/<command> [arg0|arg1]

表示以下是表达/使用命令的正确方式:/TheNameOfTheCommand arg0/TheNameOfTheCommand arg1。 它有点像 RegEx 或正式语言。 Minecraft 也使用这种表示法来描述其命令的语法。我曾经在一次编程讲座中从一位教授那里听说过。这就是我认为它必须是一个真正的公约的原因。 你知道这个约定的名称还是根本存在?

【问题讨论】:

  • 像 UNIX 手册一样,当您在 shell 中键入 man ls 时?
  • @kissu 是的,但就像正确记录如何使用这样一个命令的方式。

标签: command minecraft notation formal-languages


【解决方案1】:

这是一个约定,但不是标准。或者更准确地说,它是从一系列细节上不同的标准改编而来的约定,除了标准源自传统用途,而且除了严格应用标准之外,更常见的是找到其他变体。

使用尖括号来分隔语法变量可以追溯到 Peter Backus 的符号来描述最初的 Algol (1959);在 Pascal (1974) 的定义中使用了括号来提供可选性,使用竖线来列出备选方案,并由 Niklaus Wirth 在 1977 年发表的一份说明中推广(“我们能做些什么关于 不必要的符号多样性 句法定义”)。

在帕斯卡报告中,它被称为“扩展巴科斯瑙尔形式”,它是许多类似的符号之一。我认为这很不幸,因为它没有承认 Wirth 的贡献,但如果你称它为 WBNF,人们可能会认为你在谈论一个广播电台。

(Wirth 并不总是使用尖括号。在帕斯卡报告的出版版本中,语法变量以斜体字打印,但在广泛分发的打字手稿中,使用尖括号。同样,文字标记有时会排版粗体字,有时用引号括起来。)

【讨论】:

  • 非常有帮助!非常感谢!
猜你喜欢
  • 2014-01-03
  • 2011-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
相关资源
最近更新 更多