编译原理:L属性、S属性语法制导
1 基本概念
Definition (語法制導定義 (Syntax-Directed Definition; SDD))
SDD 是一個上下文無關文法和屬性及規則的結合。
Definition (語法制導的翻譯方案 (Syntax-Directed Translation Scheme; SDT))
SDT 是在其產生式體中嵌入語義動作的上下文無關文法。
2 S屬性
Definition (綜合屬性 (Synthesized Attribute))
節點 N 上的綜合屬性只能通過 N 的子節點或 N 本身的屬性來定義。
Definition (S 屬性定義 (S-Attributed Definition))
如果一個 SDD 的每個屬性都是綜合屬性, 則它是 S 屬性定義。
S 屬性定義的依賴圖描述了屬性實例之間自底向上的信息流
當 LR 語法分析器進行歸約時, 計算相應節點的綜合屬性值
在 LL 語法分析器中, 遞歸下降函數 A返回時, 計算相應節點 A 的綜合屬性值
2.1 例子
3 L屬性
Definition (繼承屬性 (Inherited Attribute))
節點 N 上的繼承屬性只能通過N 的父節點、N 本身和 N 的兄弟節 點上的屬性來定義。
Definition (L 屬性定義 (L-Attributed Definition))
如果一個 SDD 的每個屬性
要么是綜合屬性,
要么是繼承屬性, 但是它的規則滿足如下限制: 對于產生式 A → X1X2 . . . Xn 及其對應規則定義的繼承屬性 Xi .a, 則這個規則只能使用
(a) 和產生式頭 A關聯的繼承屬性;
(b) 位于Xi 左邊的文法符號實例 X1、X2、. . . 、Xi?1 相關的繼承屬性或綜合屬性;
(c) 和這個 Xi 的實例本身相關的繼承屬性或綜合屬性, 但是在由這個 Xi 的全部屬性組成的依賴圖中不存在環。
則它是 L 屬性定義。
3.1 例子
4 轉換
5 SDT
Definition (語法制導的翻譯方案 (Syntax-Directed Translation Scheme; SDT))
SDT 是在其產生式體中嵌入語義動作的上下文無關文法。
語義動作可以嵌入在產生式體中的任何位置
總結
以上是生活随笔為你收集整理的编译原理:L属性、S属性语法制导的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 刘备三顾茅庐请的是谁?(刘备三顾茅庐)
- 下一篇: 建筑密度计算公式图解(建筑密度计算公式)