• 编译系统中BNF: Backus-Naur Form


      巴科斯范式(BNF: Backus-Naur Form 的缩写)是由 John Backus 和 Peter Naur 首次引入一种形式化符号来描述给定语言的语法。

      简称为:BNF符号。

      现在,几乎每一位新编程语言书籍的作者都使用巴科斯范式来定义编程语言的语法规则。

    巴科斯范式的内容

    双引号中的字("word")代表着这些字符本身。而double_quote用来代表双引号。
    双引号外的字(有可能有下划线)代表着语法部分。
    尖括号( < > )内包含的为必选项。
    方括号( [ ] )内包含的为可选项
    大括号( { } )内包含的为可重复0至无数次的项
    竖线( | )表示在其左右两边任选一项,相当于"OR"的意思
    ::= 是“被定义为”的意思。
    巴科斯范式示例
    这是用BNF来定义的Java语言中的For语句的实例:
    FOR_STATEMENT ::=
    "for" "(" ( variable_declaration |
    ( expression ";" ) | ";" )
    [ expression ] ";"
    [ expression ]
    ")" statement

    扩展的巴科斯范式 Augmented BNF

    RFC2234 定义了扩展的巴科斯范式(ABNF)。近年来在Internet的定义中ABNF被广泛使用。ABNF做了更多的改进,比如说,在ABNF中,尖括号不再需要。
     
    endl;
  • 相关阅读:
    shutil使用
    python解压压缩包
    python配置主机名
    ansible加速不管用
    重启sshd服务
    shell脚本安装python、pip-----非交互式的--批量执行函数
    查看日志
    etcd安全集群三节点扩容至四个节点
    ssh免密登录
    行为型模式之状态模式
  • 原文地址:https://www.cnblogs.com/icmzn/p/5981652.html
Copyright © 2020-2023  润新知