Scala规范中使用的元语法是什么



我正在阅读Scala规范,链接到2.13。用于表示Spec的元语法(我认为这是术语(是什么?我相信这是巴克斯-诺尔形式的一个扩展,但我不能完全弄清楚每个组成部分。

注意:我不是编程理论专家,所以如果我使用了一些错误的术语,我希望你道歉,我的目标只是了解规范是如何定义的。

我相信这是Backus Naur Form 的扩展

我相信"Backus Naur形式的扩展";是你能得到的最接近的。

BNF的各种扩展、扩充、变体和修改在编程语言规范中得到了广泛的使用,以至于大多数作者都不愿意指定它们,因为每个人都习惯于一直阅读它们,从而直观地理解它们。

第13章-语法摘要,第13.1节-Lexical Syntax说了以下[boldemphasis mine]:

Scala的词法语法由以下语法以EBNF形式给出

但这仍然是模棱两可的。最初,EBNF是由Niklaus Wirth设计的,Martin Odersky使用它是有道理的,因为他师从Wirth。

然而,Wirth的EBNF在广泛使用中有许多细微的变化,另外还有其他";扩展版本";BNF的也被称为";EBNF";,所以这也不能真正告诉你什么。

最新更新