什麼是抽象語法樹(AST)
以運算與敘述作為節點的樹來表示程式的結構。省略括號或分隔符號等沒有意義的資訊,運算子的優先順序以樹的形狀表示。
日文名稱: 抽象構文木(AST)
「抽象語法樹(AST)」出現在1領域的2道練習題中(編譯器等)。
這個名詞所屬的領域: 編譯器
以運算與敘述作為節點的樹來表示程式的結構。省略括號或分隔符號等沒有意義的資訊,運算子的優先順序以樹的形狀表示。
日文名稱: 抽象構文木(AST)
「抽象語法樹(AST)」出現在1領域的2道練習題中(編譯器等)。
這個名詞所屬的領域: 編譯器
正確答案:A. 根節點是 + 的節點,其右子節點是表示 3 * 4 的 * 節點
乘法的優先順序高於加法,所以此運算式會被解釋為 2 + (3 * 4)。在抽象語法樹中,越先計算的運算會放在越下面,所以根節點是 +,其左子節點是2,右子節點是以3和4為子節點的 * 節點。若由下往上對樹求值,會先計算 3 * 4 = 12,再得到 2 + 12 = 14。根節點成為 * 的是寫成 (2 + 3) * 4 的情況,而把全部並列在根節點之下,則無法表示計算的順序。
抽象語法樹則是只將程式語意所需的運算與敘述作為節點的樹,例如在(a + b) * c中,加法節點位於乘法節點之下,因此即使沒有括號也能得知運算的順序。
關於抽象語法樹(AST)的特徵,下列何者正確?在抽象語法樹中,越先計算的運算會放在越下面,所以根節點是 +,其左子節點是2,右子節點是以3和4為子節點的 * 節點。
運算式 2 + 3 * 4 的抽象語法樹之形狀,下列何者正確?