BNF的歷史如下:
1950年左右,第一種高階語言 Fortran 被開發出來。大約在同一時期,語言學家喬姆斯基﹝Noam Chomsky﹞發明了 context-free grammar (CFG),用來描述其自然語言理論中的深層結構。1960年,Fortran 的開發者 John Backus 被邀請參加 ALGOL 程式語言的開發,Backus 發現 CFG 的衍生語法很適合用來描述高階程式語言的 statements,在那篇著名的 ALGOL60 Report 中,他稍微修改了了 CFG 的衍生語法,用來描述 ALGOL60 的語言結構以及 statement 的衍生方式。該篇報告的負責編輯是 Peter Naur,所以 ALGOL60 的 CFG 衍生語法就被稱為 Backus-Naur Form﹝BNF﹞。CFG 所描述的是英文的階層結構與衍生方式,BNF 則是 CFG 的程式語言版本。CFG 的例子如下:
sentence -> NP VP (NP = noun phrase, VP = verb phrase)
NP -> article adjective noun | article noun
VP -> verb NP
noun -> house | boy | gurl
verb -> likes | hits

文章標籤

pcorz 發表在 痞客邦 PIXNET 留言(0) 人氣()