編譯原理—語義分析、文法制導翻譯、翻譯模式、數組元素的翻譯、中間代碼生成
- 文法制導翻譯
-
- 文法制導定義(屬性文法)
- 翻譯模式
-
- 字尾式
- 圖示表示法
- 建構表達式的文法樹
- 中間代碼的種類
-
- 三位址碼
- 四位址碼
- 對比
- 舉例
- 中間代碼産生的場景
-
- 說明語句的翻譯
- 舉例
- 嵌套說明語句的翻譯方案
-
- 相關定義
- 舉例
- 過程嵌套聲明
- 記錄的說明
-
- 記錄說明的翻譯
- 記錄域的偏移
- 舉例
- 指派語句的翻譯
-
- 含簡單變量的指派語句的翻譯
- 舉例
- 數組元素的翻譯
-
- 數組類型的聲明
- 數組元素的位址計算
- 舉例
- 輸入串的分析樹
- 翻譯方案
- 舉例
文法制導翻譯
- L屬性文法包含S屬性文法
- S屬性:sythesis綜合屬性
- L屬性:left to right繼承屬性
- LL屬性一定是LR屬性的 ,LL文法一定是LR文法的,可以用LL自頂向下的方法分析L屬性文法,L屬性文法中有一些是可以自下而上分析的,是以LR不一定能夠解決L屬性文法,LL可以解決的問題LR不一定能夠解決
編譯原理—語義分析、文法制導翻譯、翻譯模式、數組元素的翻譯、中間代碼生成文法制導翻譯中間代碼的種類中間代碼産生的場景嵌套說明語句的翻譯方案記錄的說明指派語句的翻譯數組元素的翻譯
- 文法分析中進行靜态語義檢查和中間代碼生成的技術稱為文法制導翻譯技術;
文法制導定義(屬性文法)
- 引入文法制導定義的目的:
- 為了将語義屬性關聯到文法符号:
- 為了将語義規則關聯到産生式:
- 有效地将文法和語義關聯起來。
- 為相應的文法成分設定表示語義的屬性,屬性的值是可以計算的。
- 根據屬性值計算的關聯關系,将其分成綜合屬性和繼承屬性;
- 根據屬性文法中所含的屬性将屬性文法分成:
- S-屬性文法和L-屬性文法;
翻譯模式
- 不僅将語義屬性關聯到文法符号、将語義規則關聯到産生式,而且還通過将語義動作嵌入到産生式的适當位置來表達該語義動作的執行時機。
- 翻譯模式給語義分析的實作提供了更好的支援。
-
編譯原理—語義分析、文法制導翻譯、翻譯模式、數組元素的翻譯、中間代碼生成文法制導翻譯中間代碼的種類中間代碼産生的場景嵌套說明語句的翻譯方案記錄的說明指派語句的翻譯數組元素的翻譯