讀《編譯原理》第五章,語法制導的翻譯

2021-08-08 16:51:01 字數 769 閱讀 7344

194頁/ 共631 頁

使用上下文無關文法來引導對語言的翻譯。

用於型別檢查和中間**生成。

5.1 語法制導定義(syntax-directed definition sdd)

是乙個上下文無關文法和屬性及規則的結合。

5.1.1 繼承屬性和綜合屬性

綜合屬性:在分析樹結點 n 上的非終結符號 a 的結合屬性是由 n 上的產生式所關聯的語義規則來定義的。

繼承屬性:在分析樹結點 n 上的非終結符號 b 的繼承屬性是由 n 的父結點上的產生式所關聯的語義規則來定義的。

5.1.2 在一棵語法分析樹的結點上對 sdd 求值

注釋語法分析樹(annotated parse tree)

5.2 sdd 的求值順序

依賴圖乙個工具,確定一棵給定的語法分析樹中各個屬性例項的求值順序。

屬性求值的順序

s- 屬性定義

如果乙個 sdd 的每個屬性都是綜合屬性,它就是 s 屬性的。

l- 屬性定義

具有受控***的語義規則

5.3 語法制導翻譯的應用

抽象語法樹的構造

型別的結構

5.4 語法制導的翻譯方案

字尾翻譯方案

字尾 sdt 的語法分析實現

產生式內容帶有語義動作的 sdt

從 sdt 中消除左遞迴

l- 屬性定義的 sdt

5.5 實現 l- 屬性的 sdd

5.6 總結

此章對我來說不容易理解。看了一遍基本沒懂。

編譯原理 語法制導翻譯

子問題 在語法分析基礎上邊分析邊翻譯 語法制導的翻譯方案syntax directed translation scheme sdt 決定於翻譯的目的,例如 產生什麼樣的中間 在對sdd的求值過程中,如果結點n的屬性a依賴於結點m1的屬性a1,m2的屬性a2,那麼我們必須先計算出mi的屬性,才能計算...

編譯原理屬性文法和語法制導翻譯

屬性文法 是在上下文無關文法的基礎上為每個文法符號 終結符或非終結符 配備若干個相關的 值 稱為屬性 屬性分類 綜合屬性和繼承屬性 綜合屬性 用於 自上而下 傳遞資訊 在語法樹中,乙個結點的綜合屬性的值,由其子結點的屬性值決定 s 屬性文法 僅僅使用綜合屬性的屬性文法 繼承屬性 用於 自上而下 傳遞...

編譯原理第六章 屬性文法和語法制導翻譯

第六章主要講了屬性文法 語義規則 基於屬性文法的處理 s屬性的自下而上計算 l 屬性文法的自頂向下翻譯等內容。一些基本的概念 屬性文法 是在上下文無關文法的基礎上為每個文法符號 終結符或非終結符 配備若干個相關的 值 稱為屬性 屬性 代表與文法符號相關的資訊,和變數一樣,可以進行計算和傳遞。綜合屬性...