
【計】 Backus-Naur form; BNF
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
【計】 normal form
巴科斯範式(Backus-Naur Form,BNF)是一種用于精确描述編程語言、數據格式或協議語法結構的元語言,由約翰·巴科斯(John Backus)和彼得·諾爾(Peter Naur)在20世紀50年代提出,并首次應用于ALGOL 60編程語言規範。該範式通過遞歸規則定義符號的組合方式,其核心結構包含三個要素:
在權威技術文檔中,BNF被廣泛應用于國際标準定義。例如,ISO/IEC 14977标準對擴展巴科斯範式(EBNF)的規範化描述,以及互聯網工程任務組(IETF)在RFC文檔中對協議語法的正式說明。現代編程語言如Python和XML規範也采用BNF變體來确保語法無二義性。
值得注意的演進版本包括:
該形式化方法對編譯原理發展具有裡程碑意義,其數學基礎源自諾姆·喬姆斯基的上下文無關文法理論。通過BNF,語言設計者能實現從自然語言描述到機器可解析語法的跨越,這一特性使其成為計算機科學教育中的核心教學内容。
巴科斯範式(Backus-Naur Form,BNF)是一種用于描述上下文無關文法的形式化符號系統,主要用于定義編程語言、指令集和通信協議的語法規則。以下是其核心要點:
基本概念
BNF通過符號和表達式構建字符串生成規則,屬于上下文無關文法。它用非終結符(如<digit>
)和終結符(如數字0-9)的組合來定義語言結構。
曆史背景
由約翰·巴科斯(John Backus)和彼得·諾爾(Peter Naur)在20世紀50年代提出,最初用于描述ALGOL 60編程語言的語法。
BNF的語法規則包含以下符號:
::=
:表示“被定義為”,如 <digit> ::= 0|1|2|...|9
。|
:表示“或”,用于分隔多個可選選項。<非終結符>
:用尖括號包裹,需通過其他規則進一步定義(如<title>
可被替換為Mr、Mrs等)。以定義“數字”為例:
<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<digit>
需通過右側規則展開。EBNF在BNF基礎上增加了簡化符號:
[]
:表示可選項(0或1次)。{}
:表示可重複項(0到多次)。
例如:<name> ::= Dr. { <middle-name> } <last-name>
。BNF通過簡潔的符號系統,為複雜語法提供了一種标準化的描述方式,是計算機語言理論的重要工具。如需更完整的符號說明,可參考和中的詳細規則。
焙幹程式塊重發出示電話呼喚線電位降電子的範黑耳蒙提氏鏡輻射生物化學共轭對稱序列功能分布式計算機系統工業結構灌氣器古布累氏征海商保險人即時付款庫雷拉氏散劑鍊環關系法邏輯相連的地址空間螺旋狀聚щ花序脈沖傅裡葉變換核磁共振儀毛細張力木炭飽和時間奴态嘁嘁喳喳的入局機架束腹水火特有重複率未償資本