これは、Yacc で使用される BNF の変種です。yacc は通常、構文の一部として を持っていますが、それを変更すること自体が非常に重要;
な C# や C++ のような言語では物事が単純になります。;
ほとんどの BNF バリアントとは異なり、:
BNF が頻繁に使用する場所があります=
(Van Wijngaarden grammar も参照してください。すぐに、この答えが得られたわずかな知識以上のものを知ることができます)。
ISO には、標準でどの文法を使用する必要があるかについての規則がないため、他の組織は BNF、ABNF、EBNF、Wirth 構文などを使用します。
ISO 規格は、多くの場合、国家規格またはその他の規格として作成され、その後 ISO によって採用されます。異なる標準化団体は異なる文法を使用しているため (IETF は RFC で ABNF を使用し [RFC 5234 で定義されています]、BSI と W3C は EBNF の異なるバリアントを使用するなど)、ISO の文法はしばしばその起源を反映しています。
これはここに当てはまります。Kernigan と Ritchie は、この形式を著書The C Programming Languageで使用しました。ANSI 標準とその後の ISO 標準は文法自体が異なりますが、同じ形式を使用しており、それ以来、他の C ライクな言語で使用されています。