zoukankan      html  css  js  c++  java
  • 编译系统中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;
  • 相关阅读:
    django-day3 Ajax
    django ORM 一对多, 多对多 查询 以及 结合Tamplate
    work-python 脚本 每日发送数据查询
    day16- django
    day15 Jquery
    day 14 JS 练习
    day14 JS-DOM 对象
    day14 JS-BOM
    day14 JS 对象 Function
    day14 js
  • 原文地址:https://www.cnblogs.com/icmzn/p/5981652.html
Copyright © 2011-2022 走看看