編譯系統中BNF: Backus-Naur Form

  巴科斯範式(BNF: Backus-Naur Form 的縮寫)是由 John Backus 和 Peter Naur 首次引入一種形式化符號來描述給定語言的語法。express

  簡稱爲: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;
相關文章
相關標籤/搜索