複製鏈接
請複製以下鏈接發送給好友

二義性

鎖定
如果文法G中的某個句子存在不只一棵語法樹,則稱該句子是二義性的。如果文法含有二義性的句子,則稱該文法是二義性的。
中文名
二義性
定    義
文法含有二義性的句子
解    釋
一種語言語法的不完善説明
處理方法
應避免它
二義性文法認為是一種語言語法的不完善説明,而且也應避免它。幸運的是,二義性文法在後面將介紹到的標準分析算法的測試中總是失敗的,而且也開發出了標準技術體系來解決在程序設計語言中遇到的典型二義性。
有兩個解決二義性的基本方法。其一是:設置一個規則,該規則可在每個二義性情況下指出哪一個分析樹(或語法樹)是正確的。這樣的規則稱作消除二義性規則(disambiguating rule)。這樣的規則的用處在於:它無需修改文法(可能會很複雜)就可消除二義性;另一種方法是將文法改變成一個強制正確分析樹的構造的格式,這樣就可以解決二義性了。當然在這兩種辦法中,都必須確定在二義性情況下哪一個樹是正確的。這就再一次涉及到語法制導翻譯原則了。我們所需的分析(或語法)樹應能夠正確地反映將來應用到構造的意義,以便將其翻譯成目標代碼。