
【計】 Backus-Naur formalism
bar; be close to; cling to; hope earnestly
【化】 bar
【醫】 bar
a branch of academic study; family; pass a sentence; section
【化】 family
【醫】 department; family; family systematic
【經】 accountant's department; division head; section
this
【化】 geepound
a; an; each; one; per; same; single; whole; wholehearted
【醫】 mon-; mono-; uni-
promise; yes
like so; you
【計】 normal form
巴科斯-諾爾範式(Backus-Naur Form,簡稱BNF)是一種用于描述計算機編程語言或形式語言語法規則的元語言,由約翰·巴科斯(John Backus)和彼得·諾爾(Peter Naur)于20世紀60年代提出。其核心功能是通過遞歸規則定義符號的組合結構,為編譯器設計、協議規範等領域提供精确的語法描述框架。
BNF由三部分組成:非終結符(用尖括號包裹,如
BNF廣泛應用于編程語言規範(如ALGOL 60報告)、數據格式定義(如XML Schema)和網絡協議描述。計算機科學經典著作《編譯原理》(Alfred V. Aho等著)中詳細闡釋了其在詞法分析中的應用機制。
為提升表達能力,學界衍生出擴展巴科斯範式(EBNF),新增可選符([ ])、重複符({ })等語法糖。萬維網聯盟(W3C)在XML規範中采用EBNF描述文檔類型定義。
根據《ACM計算分類系統》,BNF屬于形式語言理論中的上下文無關文法範疇,其數學基礎被圖靈獎得主高德納(Donald Knuth)在《計算機程式設計藝術》中深入探讨。劍橋大學計算機實驗室公開課資料顯示,現代語言解析器生成器(如Yacc)仍以BNF為底層描述語言。
巴科斯-諾爾範式(Backus-Naur Form,簡稱BNF)是一種用于描述上下文無關文法的形式化表示方法,主要應用于計算機語言、指令集和通信協議的語法定義。以下是其核心要點:
由約翰·巴科斯(John Backus)和彼得·諾爾(Peter Naur)在20世紀50年代提出,最初用于定義ALGOL 60編程語言的語法。BNF通過符號規則描述語言結構,其中:
<digit>
),需通過其他規則進一步定義。0
、+
)。<符號> ::= 表達式
,其中 ::=
表示“定義為”,|
表示“或”。基本規則示例
<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
表示 <digit>
可以是0到9中的任意一個數字,|
提供多個選擇。
組合規則
<fullname> ::= <title> <name> <name>
<title> ::= Mr | Mrs | Ms | Miss | Dr
此處 <title>
是終結符的集合,而 <fullname>
由非終結符組合而成。
{}
表示重複)和可選符號(如 []
)。%d65
表示ASCII字符A)。如需更完整的語法示例或變體細節,可參考權威編程語言理論教材或RFC文檔。
【别人正在浏覽】