BNF正規化(巴科斯正規化)到底是什麼?

時間 2021-05-05 19:22:38

1樓:不是Zoe

讓我來試著說幾句人話...

BNF是John Backus 在20世紀90年代提出的用以簡潔描述一種程式語言的語言。

基本結構為:

::=non-terminal意為非終止符,就是說我們還沒有定義完的東西,還可以繼續由右邊的replacement,也就是代替物來進一步解釋、定義。

舉個例子:

在中文語法裡,乙個句子一般由「主語」、「謂語」和「賓語」組成,主語可以是名詞或者代詞,謂語一般是動詞,賓語可以使形容詞,名詞或者代詞。那麼「主語」、「謂語」和「賓語」就是非終止符,因為還可以繼續由「名詞」、「代詞」、「動詞」、「形容詞」等替代。

例1. 《句子》 ::= 《主語》《謂語》《賓語》

例2. 《主語》 ::= 《名詞》|《代詞》

例3. 《謂語》::=《動詞》

例4. 《賓語》::=《形容詞》|《名詞》|《代詞》

例5. 《代詞》::=《我》

例6. 《動詞》::=《吃》

例7. 《動詞》::=《喜歡》

例8. 《名詞》::=《車》

例9. 《名詞》::=《肉》

如上,在::=左邊的就是non-terminal非終止符,右邊的就是replacement,可以是一系列的非終止符,如例1中的replacement便是後面例234左邊的非終止符,也可以是終止符,如例56789的右邊,找不到別的符號來進一步代替。

因此,終止符永遠不會出現在左邊。一旦我們看到了終止符,這個描述過程就結束了。

2樓:Ryan FZY

BNF是描述程式語言的文法。自然語言存在不同程度的二義性。這種模糊、不確定的方式無法精確定義一門程式語言。

必須設計一種準確無誤地描述程式語言的語法結構,這種嚴謹、簡潔、易讀的形式規則描述的語言結構模型稱為文法。最著名的文法描述形式是由Backus定義Algol60語言時提出的Backus-Naur正規化(Backus-Naur Form, BNF)及其擴充套件形式EBNF。BNF能以一種簡潔、靈活的方式描述語言的語法。

具體內容可參考針對編譯原理的書。

曼巴精神到底是什麼精神?

臥聽瀾 個人英雄主義的極致 輕傷不下火線 即使只有一對一的實力 也要有一對五的勇氣一對八的魄力!寧可戰死絕不放棄的大無畏精神. 就是中國的勾股定理,國外叫畢達哥拉斯定理,現在有些國人覺得畢達哥拉斯這個名字很diao很cool所以一部分人喜歡這個說法 口說天地 絕境下的頑強,孤獨中的堅持,面對強者毫不...

到底是什麼造成了斯嘉丽的愛情悲劇?

劉劉劉 斯嘉丽,攻略遊戲裡的高手,感情上的低能兒。原書中說過,斯嘉丽她明白她這樣這樣做,別人就會那樣那樣做,但她完全不明白背後的原因。她一直在把一些她想勾搭的物件當成NPC,艾希禮是她很好奇同時有挑戰性的NPC,白瑞德是幾乎無法攻略的NPC。而他們的愛情則是她勝利的果實。但她連愛情是什麼都不明白,也...

《月亮與六便士》斯特里克蘭追求的到底是什麼?

Jennist 我只看了一遍淺讀個人觀點 我覺得他是乙個拋棄七情六慾只追求理想精神世界的人我覺得他看不起這個世界我一開始搞不懂他為什麼要拋棄舒適的生活後來我覺得這就跟孔子為什麼要周遊列國去拯救周禮這個問題一樣他們都有強大的精神世界而且我看書的時候覺得他對女性有深深的歧視但看到施特羅夫我認為他是對愛情...