2010-03-16 112 views

回答

12

L-attributed grammar

L-歸因語法是一種特殊類型的屬性語法。它們允許在抽象語法樹的一個從左到右的遍歷中評估屬性。結果,L屬性語法中的屬性評估可以方便地在自頂向下的語法分析中引入。許多編程語言都屬於L屬性。特殊類型的編譯器,狹窄的編譯器,基於某種形式的L語法。這些與S屬性語法相當。用於代碼合成。

S-attributed grammar

S-歸因文法是一類屬性的語法,其特徵在於不具有繼承的屬性。在解析過程的語義分析過程中,必須從抽象語法樹的父節點傳遞給子節點的繼承屬性是自下而上解析的問題,因爲在自下而上的解析中,抽象語法的父節點樹是在創建他們所有的孩子後創建的。 S屬性語法中的屬性評估可以方便地在自頂向下解析和自下而上解析中引入。 Yacc基於S屬性方法。

任何S屬性語法也是一個L屬性語法。

在L屬性語法中,屬性評估可以在從左到右的遍歷中執行。由於S屬性語法中的屬性不會被繼承,所以它不會阻止你這樣做。因此,您可以說S屬性語法符合L語法的特徵。

1

簡單的S-屬性文法是誰一直嚴格合成文法的類型意味着只有其在整個解析樹

,其中作爲L-屬性文法可以有兩條合成以及與一些繼承語法Value屬性語法像繼承權總是從左向右轉移的規則。 我認爲這會幫助你。

相關問題