一、屬性文法
1.屬性文法
是在上下文無關文法的基礎上為每個文法符號(終結符或非終結符)配備若干個相關的「值」(稱為屬性)
2.屬性的分類
綜合屬性
繼承屬性
3.語義規則
屬性計算的過程即是語義處理的過程
對於文法的每乙個產生式配備一組屬性的計算規則,則稱為語義規則
二、基於屬性文法的處理方法
1.基於屬性文法的處理過程
輸入串語法樹依賴圖語義規則計算次序計算結果
這種由源程式的語法結構所驅動的處理辦法就是語法制導翻譯法。
2.依賴圖
三、樹遍歷的屬性計算方法
最常用的遍歷方法是深度優先,從左到右的遍歷方法
如果需要,可使用多次遍歷
四、一遍掃瞄的處理方法
因為一遍掃瞄的處理方法與語法分析器的相互作用,它與下面兩個因素密切相關:
所採用的語法分析方法
屬性的計算次序
五、抽象語法樹
在抽象語法樹中,操作符和關鍵字都不作為葉結點出現,而是把它們作為內部結點,即這些葉結點的父結點。
s-屬性文法的自下而上計算
l-屬性文法的自頂向下翻譯
六、翻譯模式
1.定義:翻譯模式是語法制導定義的一種便於翻譯的書寫形式。其中屬性與文法符號相對應,語義規則或語義動作用花括號{ }括起來,可被插入到產生式右部的任何合適的位置上
2.設計翻譯模式(根據語法制導定義)
條件:語法制導定義是l-屬性定義
保證語義動作不會引用還沒有計算的屬性值。
(1)只需要綜合屬性的情況
(2)既有綜合屬性又有繼承屬性
心得體會:
學完這一章,感覺理解的東西好多,還有很多不明白,而且這一章的**很多,比如表示式建立語法樹的翻譯模式,就需要很多的**,但是我感覺這一章需要用到的就是抽象語法樹,因為它和下一章節的dag圖有關係,能由抽象語法樹畫出dag圖。
編譯原理第六章
a 知識點總計 一 屬性文法 1.屬性文法 是在上下文無關文法的基礎上為每個文法符號 終結符或非終結符 配備若干個相關的 值 稱為屬性 屬性 代表與文法符號相關的資訊,和變數一樣,可以進行計算和傳遞。例 型別 值 序列 符號表內容等 2.屬性的分類 綜合屬性 繼承屬性 2 繼承屬性 用於 自上而下 ...
編譯原理第六章
1.屬性文法分為 綜合屬性 繼承屬性。出現在產生式左邊的的繼承屬性和出現在產生式右邊的綜合屬性不由所給的產生式的屬性規則進行計算,他由其他產生式的屬性規則計算或者由屬性計算器的引數提供。綜合屬性 在語法樹種,乙個結點的綜合屬性的值由其子結點的屬性值確定,因此使用自底向上的文法在每乙個結點出使用語義規...
第六章總結
6.1 使用滑鼠 6.1.1 滑鼠時間和滑鼠訊息 根據使用者操作滑鼠時滑鼠的位置,滑鼠訊息分為兩類 客戶區滑鼠訊息和非客戶區滑鼠訊息。1.客戶去滑鼠訊息 2.當滑鼠游標位於視窗的使用者區時,將生成客戶滑鼠訊息。滑鼠訊息和鍵盤訊息有所不同,windows 只將鍵盤有訊息傳送給具有輸入極點的視窗,但滑鼠...