以生成規則定義文法
接下來,我們來學習程式語言的語法記法。程式語言的語法大部份是以「生成規則」(production rule)定義出來的。生成規則的規則是以遞迴方式來定義文法。
我們先用自然語言思考一下:(日文的)文法的巢狀結構。(譯註:這段用別的自然語言也通用,如中文。)舉例來說,「花很漂亮」這個句子中「花」這個名詞可以換成「紅色的花」也是正確的句子。把「紅色的」再延伸變成「淡紅色的」也還是正確的句子。這個句子也可以放進別的句子,像「我認為淡紅色的花很漂亮」。
這類文法,可以想成是根據「『句子』由『主語』和『述語』構成」或「『名詞詞組』是在『名詞』或『形容詞』後接上『名詞詞組』構成」這類規則定義出來的。所以,從「句子」出發,根據規則延伸,就可以造出無數符合定義的文法的句子。
或是我們反過來說,對於已經存在的句子,考慮符合該句子的延伸步驟,就可以考慮其文字列背後的結構。
原本上述的概念是為了自然語言而建立的,但是非常適合電腦處理的資料,所以生成規則以程式語言為首,也應用在電腦的各個領域中。
Last updated