勵志

勵志人生知識庫

ebnf範式

EBNF,即擴展的巴科斯範式(Extended Backus-Naur Form),是一種用來定義程式語言的形式句法和語義規則的元語法符號表示法。它是基本巴科斯範式(BNF)的一種擴展,最初由尼古拉斯·沃斯開發。EBNF被廣泛用於描述計算機程式語言和形式語言,是一種上下文無關文法的正規表達方式。

在EBNF中,非終端符號用於描述語法的變數,它們必須出現在某個production的左式中。終端符號則是語法中的具體元素,如可視字元、數字、標點符號等。EBNF使用特定的操作符和符號來表示語法規則,例如「|」表示選擇,「?」表示可選,「{...}」表示可以重複的表達式,「[...]」表示可選項。EBNF的每個元標識符通常由連字元連線的單詞組成,以「-symbol」結尾的元標識符是EBNF的終端符號。

EBNF的定義遵循一定的結構,例如:

左式(LeftHandSide) = 右式(RightHandSide)。

左式也被稱作非終端符號,而右式描述了其組成。

非終端符號必須被定義在一個production中。

EBNF的語法規則可以包括一系列終結符或非終結符,它們之間用逗號分隔。例如,一個產生規則可以定義一個非終結符,如digit,它可以是0或1到9之間的任意數字。此外,EBNF還允許使用花括弧「{...}」來表示可以重複零次或多次的表達式,以及方括弧「[...]」來表示可選的元素。

EBNF的定義遵循ISO/IEC 14977標準,該標準推薦了EBNF中使用的符號和它們的表示方式。幾乎所有新程式語言書籍的作者都使用EBNF來定義程式語言的語法規則。