【正文】
L屬性文法和自頂向下翻譯 翻譯模式 自頂向下翻譯 遞歸下降翻譯器的設(shè)計(jì) 自頂向下翻譯 ? 為了構(gòu)造不帶回溯的自頂向下語法分析,必須消除文法中的左遞歸。 ? 現(xiàn)在我們把前面討論過的消除左遞歸的算法加以擴(kuò)充,當(dāng)消除一個(gè)翻譯模式的基本文法的左遞歸時(shí)同時(shí)考慮屬性。 這種方法適合帶綜合屬性的翻譯模式 。這樣,許多屬性文法可以使用自頂向下分析來實(shí)現(xiàn)。 算術(shù)表達(dá)式的左遞歸文法相應(yīng)的翻譯模式 E →E 1+T {E. val := E1. val + T. val } E →E 1T {E. val := E1. val T. val } E →T {E. val := T. val } T →(E) {T. val := E. val } T →num {T. val := num. val } 圖 帶左遞歸的文法的翻譯模式 消除左遞歸,構(gòu)造新的翻譯模式 E ? T { := } R {E. val := } R ? + T { := + T. val} R1 { := } R ? - T { := - T. val} R1 { := } R ? ? { := } T ? ( E ) { := E. val } T ? num {T. val := num. val} 圖 消除左遞歸后的翻譯模式 圖 計(jì)算表達(dá)式 9 – 5 + 2 ? 對(duì)于自頂向下分析,我們假定動(dòng)作