搜尋樹一種更有效的符號表組織技術是在每個記錄中新增兩個連結欄位 LEFT 和 RIGHT。我們使用這些欄位將記錄連結到二叉搜尋樹中。這棵樹具有這樣的特性:所有透過跟隨連結 LEFT (i),然後跟隨任何連結序列從 NAME (i) 可訪問的名稱 NAME (j) 在字母順序中都位於 NAME (i) 之前(象徵性地,NAME (j) < NAME (i))。類似地,所有從 RIGHT (i) 開始訪問的名稱 NAME (k) 都具有 NAME (i) < NAME (k) 的屬性。因此,如果我們正在搜尋 NAME 並…… 閱讀更多
表示作用域資訊是一個概念,其中每個變數名的作用域都儲存在符號表中,以便我們可以在不同的塊和不同的位置使用相同的名稱。表示作用域資訊包括:變數在特定塊中的生命週期。在符號表中表示名稱以及它出現的塊的指示符。假設我們在塊 A 中有一個變數名 'a',在塊 B 中也有相同的變數。假設我們將 'a' 儲存在符號表中而沒有塊資訊。在這種情況下,它只會保留遇到的第一個 'a'…… 閱讀更多
控制語句是更改語句執行流程的語句。考慮語法 S → if E then S1 | if E then S1 else S2 | while E do S1 在此語法中,E 是布林表示式,根據其值執行 S1 或 S2。以下表示顯示了 if-then、if-then-else 和 while do 指令的執行順序。 𝐒 → 𝐢𝐟 𝐄 𝐭𝐡𝐞𝐧 𝐒𝟏 E.CODE 和 S.CODE 是生成三地址程式碼的一系列語句。E.TRUE 是 E 為真時控制流跳轉到的標籤。E.FALSE 是…… 閱讀更多