Skip to content

Commit

Permalink
理順
Browse files Browse the repository at this point in the history
  • Loading branch information
MROS committed Sep 29, 2024
1 parent 4a33d9e commit c32258a
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions book/零.一版/剖析(語法分析).md
Original file line number Diff line number Diff line change
Expand Up @@ -254,10 +254,10 @@

![變數宣告式具體語法樹](../image/變數宣告式具體語法樹.png)

這種嚴格按照語法規則展開的語法樹,吾人稱其為「具體語法樹」,然而,具體語法樹中,某些節點含有的資訊對接下來的編譯器後端毫無用處,例如``````這些協助詞法分隔的符號,在任何`變數宣告式`裡都有,所以沒有紀錄的意義。另外,以如此深的樹來紀錄`(1)`這個`算式`也是極度冗餘的。
這種嚴格按照語法規則展開的語法樹,吾人稱其為「具體語法樹」,然而,具體語法樹中,某些節點含有的資訊對接下來的編譯器後端毫無用處,例如``````這些協助詞法分隔的符號,在任何`變數宣告式`裡都有,所以沒有紀錄的意義。另外,以如此深的樹來紀錄`(1)`這個`算式`也是極度冗餘的`原子式``重複原子式`...這些玩意兒完全是為了消除左遞迴跟歧義才製造出來的,語義上僅需知道它是數字1就夠了

真正有意義的內容只有
省略不重要的資訊後,可以得到

![變數宣告式抽象語法樹](../image/變數宣告式抽象語法樹.png)

這種精簡後,但在語義上沒有損失的語法樹,又被稱為抽象語法樹。在明確的語境中,也可能直接叫語法樹
這種精簡後,但在語義上沒有損失的語法樹,被稱為抽象語法樹。若語境明確,也可以直接叫語法樹

0 comments on commit c32258a

Please sign in to comment.