巴科斯范式

巴科斯范式英语:Backus Normal Form,縮寫為 BNF),又称为巴科斯-诺尔范式英语:Backus-Naur Form,縮寫同樣為 BNF,也譯为巴科斯-瑙尔范式巴克斯-诺尔范式),是一种用于表示上下文无关文法的语言,上下文无关文法描述了一类形式语言。它是由约翰·巴科斯(John Backus)和彼得·诺尔(Peter Naur)首先引入的用来描述计算机语言语法的符号集。

尽管巴科斯范式也能表示一部分自然语言语法,它还是更广泛地使用于程序设计语言指令集通信协议的语法表示中。大多数程序设计语言或者形式语义方面的教科书都采用巴科斯范式。在各种文献中还存在巴科斯范式的一些变体,如扩展巴科斯范式 EBNF 或扩充巴科斯范式 ABNF。

發展歷史

約翰·巴科斯首次在ALGOL 58中实现巴科斯範式。彼得·諾爾ALGOL 60之中,進一步發展它的概念並將它的符號加以簡化,稱其為巴科斯範式(Backus Normal Form)。但高德納主張應稱為巴科斯-諾爾範式(Backus–Naur Form),因為它不算是一種 正規形式(Normal form)。

其他语言