符号的名称,如 /<command> [arg0|arg1]

Name of the notation that goes like /<command> [arg0|arg1]

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

/<command> [arg0|arg1]

表示以下是expressing/using命令的正确用法:/TheNameOfTheCommand arg0/TheNameOfTheCommand arg1。 它有点像 RegEx 或形式语言。 Minecraft 也使用这个符号来描述他们命令的语法。我曾经在编程讲座中从一位教授那里听说过它。这就是我认为这一定是一个真正的大会的原因。 您知道这个公约的名称还是根本不存在?

这是约定,但不是标准。或者更准确地说,它是从细节上不同的标准集合改编而来的约定,除了标准源自约定俗成的使用之外,找到其他变体比严格应用标准更常见。

使用尖括号来分隔语法变量可以追溯到 Peter Backus 描述原始 Algol (1959) 的符号; Pascal (1974) 的定义中使用括号表示可选性,使用竖线表示备选方案,尼克劳斯·沃思 (Niklaus Wirth) 在 1977 年发表的一篇文章中对此进行了推广(“我们能做些什么? 不必要的符号多样性 句法定义”).

在 Pascal 报告中,它被称为“扩展巴科斯诺尔范式”,它是许多以该名称命名的类似符号之一。我认为这很不幸,因为它没有承认 Wirth 的贡献,但如果您将其称为 WBNF,人们可能会认为您在谈论广播电台。

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