書本上關于綜合屬性與繼承屬性的定義是:
- 對關聯產生式A-> α \alpha α的語意動作b:=f(c1,c2,c3,…,ck),如果b是A的某個屬性,則稱b是A的一個綜合屬性,從分析樹的角度來看,計算綜合屬性是對父結點的屬性賦值,所以是自底向上傳遞資訊,
- 對關聯產生式A-> α \alpha α的語意動作b:=f(c1,c2,c3,…,ck),如果b是產生式右部某個文法符號X的某個屬性,則稱b是文法符號X的一個繼承屬性,從分析樹的角度來看,計算繼承屬性是對子結點的屬性賦值,所以是自頂向下傳遞資訊,
那么從字面意思理解,b是A的某個屬性,那么非終結符肯定有綜合屬性了;而終結符是不可能出現在產生式左邊的,所以終結符是沒有綜合屬性的;X在產生式右部,X可能是終結符,所以終結符是有繼承屬性的,
從另一個角度理解:綜合屬性用于自底向上傳遞資訊,一個結點的綜合屬性應該是由它的子結點決定,但是在語法樹中終結符是沒有子結點的,所以終結符不該有綜合屬性只能有繼承屬性,
查遍了網上的所有資料,只有這么一句話:終結符只有綜合屬性,它由詞法分析器提供,
這樣理解:兩種屬性的定義是從語法樹的角度來說的,如果某個屬性是它的子結點屬性計算得到的,那么這個屬性就是綜合屬性;如果某個屬性是它的父結點或其兄弟結點計算得到的,那么這個屬性就是繼承屬性,特殊情況是終結符的屬性都是由詞法分析器提供的,也叫做內在屬性,被認為是綜合屬性,這是定義的特例,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/226852.html
標籤:其他
上一篇:計算機網路五層模型(ing)
