不要使用 ISO/IEC 14977 扩展巴科斯-诺尔范式(EBNF)

  • 主要观点:不应使用 ISO/IEC 14977:1996 作为扩展巴科斯范式(EBNF),因其存在诸多问题,如无法表示国际/Unicode 字符、字符范围,逗号过多致语法难读,未基于常用正则表达式符号,有怪异且易误解的“一次或多次”符号表示,理解困难且关键术语未定义等,且 ISO 自身也不都使用该标准,其收费政策不合理,相比之下 W3C 的 EBNF 记号更好。
  • 关键信息

    • ISO/IEC 14977:1996 仅支持 ISO/IEC 646:1991 字符,无法直接表示 Unicode 全字符范围,处理二进制格式也不足。
    • 无标准表示字符范围的方式,语法冗长难读,如表示字母或数字需罗列大量字符。
    • 要求每个连接使用逗号,使语法更难读,而 W3C 用空格。
    • 未基于常用正则表达式符号,与软件开发人员常用语法不兼容。
    • “一次或多次”符号表示怪异易误解,W3C 用“+”后缀。
    • ISO 和 IEC 不是神,很多 ISO 标准未公开,如 ISO/IEC 14977 虽公开但获取流程复杂,而 IETF、W3C 等现代标准组织免费公开标准。
    • 其他论文也指出语法符号多样性问题及 14977 未被广泛使用等情况。
  • 重要细节

    • 技术层面,如区分不同的连字符需明确代码点值,而 14977 无法做到。
    • 以字母或数字范围为例,说明 14977 表示的冗长与 W3C 表示的简洁明了。
    • 解释 ISO 与 Unicode 的关系及为何应使用 Unicode 而非 ISO/IEC 10646。
    • 提及不同组织的标准及收费政策差异,如 ISO 收费不合理,IETF、W3C 免费公开。
    • 举例说明 ISO 标准的具体情况,如 Ada 编程语言标准不使用 14977 符号。
    • 强调不应盲目服从 ISO,应根据实际情况选择合适标准,如 W3C 标准更易被软件开发人员理解。
阅读 14
0 条评论