找到 138 篇文章 關於編譯器設計

什麼是搜尋樹和雜湊表在編譯器設計中的作用?

Ginni
更新於 2021年11月8日 10:03:11

2K+ 瀏覽量

搜尋樹組織符號表的一種更有效的方法是在每個記錄中新增兩個連結欄位 LEFT 和 RIGHT。我們使用這些欄位將記錄連結到二叉搜尋樹中。這棵樹具有這樣的性質:透過遵循連結 LEFT (i),然後遵循任何連結序列,從 NAME (i) 可訪問的所有名稱 NAME (j) 將在字母順序中先於 NAME (i)(符號表示為 NAME (j) < NAME (i))。類似地,從 RIGHT (i) 開始訪問的所有名稱 NAME (k) 將具有 NAME (i) < NAME (k) 的性質。因此,如果我們正在搜尋 NAME 並... 閱讀更多

什麼是代表作用域資訊的型別?

Ginni
更新於 2021年11月8日 09:57:25

1K+ 瀏覽量

表示作用域資訊是一個概念,其中每個變數名的作用域都儲存在符號表中,以便我們可以在不同的塊和不同的位置使用相同的名稱。在符號表中表示名稱以及它出現的塊的指示符。假設我們在塊 A 中有一個變數名 'a',在塊 B 中有相同的變數。假設它可以在沒有塊資訊的情況下將 'a' 儲存在符號表中。在這種情況下,它只會保留遇到的第一個 'a' 例項,因此為了克服這個問題,名稱將... 閱讀更多

什麼是表示作用域資訊?

Ginni
更新於 2021年11月8日 09:54:11

2K+ 瀏覽量

表示作用域資訊是一個概念,其中每個變數名的作用域都儲存在符號表中,以便我們可以在不同的塊和不同的位置使用相同的名稱。表示作用域資訊涉及特定塊中變數的生命週期。在符號表中表示名稱以及它出現的塊的指示符。假設我們在塊 A 中有一個變數名 'a',在塊 B 中有相同的變數。假設我們將 'a' 儲存在符號表中而沒有塊資訊。在這種情況下,它只會保留遇到的第一個 'a' 例項,因此... 閱讀更多

不同資料結構在編譯器設計中的作用是什麼?

Ginni
更新於 2021年11月8日 09:51:18

3K+ 瀏覽量

在編譯過程中,每次遇到識別符號時都會搜尋符號表。如果找到新的名稱或有關現有名稱的新資訊,則新增資料。因此,在設計符號表結構時,希望有一種方案能夠有效地將新條目插入表中並識別當前條目。資料結構中使用了四個符號表,如下所示:列表 - 對於符號,最簡單且易於實現的資料結構是線性記錄列表,如圖所示。它可以使用單個數組或多個... 閱讀更多

什麼是符號表中的陣列名稱表示?

Ginni
更新於 2021年11月8日 09:48:48

454 瀏覽量

它是一種資料結構,包括每個識別符號的資料、識別符號屬性的欄位。該資料結構使我們能夠快速找到每個識別符號的資料,並快速儲存或檢索該記錄的資訊。每次在源文字中遇到名稱時都會搜尋符號表。當找到新的名稱或有關現有名稱的新資料時,符號表的內容會修改。因此,符號表應該具有有效的結構來建立表中儲存的資料,以及將新條目插入到符號... 閱讀更多

什麼是編譯器設計中布林表示式和控制語句的後向填充?

Ginni
更新於 2021年11月8日 09:43:57

3K+ 瀏覽量

執行語法制導翻譯的最簡單方法是使用兩遍。首先,為輸入構造語法樹,然後以深度優先順序遍歷樹,完成定義中給出的翻譯。在單遍中生成布林表示式和控制流語句程式碼的主要問題是,在單遍中,我們無法理解在生成跳轉語句時控制應該跳轉到的標籤。它可以透過製作一系列分支語句來解決這個問題,這些語句的跳轉目標暫時未定義。每個這樣的語句... 閱讀更多

什麼是符號表中定長和變長陣列表示?

Ginni
更新於 2021年11月8日 04:37:11

1K+ 瀏覽量

符號表是一種資料結構,它支援一種有效且高效的方式來儲存有關原始碼中出現的各種名稱的資料。這些名稱用於原始碼中標識不同的程式元素,例如變數、常量、過程和語句的標籤。每次在源文字中遇到名稱時都會搜尋符號表。當找到新的名稱或有關現有名稱的新資料時,符號表的內容會修改。因此,符號表應該具有有效的結構來建立表中儲存的資料,以及... 閱讀更多

什麼是後向填充?

Ginni
更新於 2021年11月5日 12:07:24

14K+ 瀏覽量

在為給定表示式生成三地址碼時,它可以指定 goto 語句中 Label 的地址。在一次遍歷中分配這些標籤語句的位置非常困難,因此使用兩次遍歷。在第一次遍歷中,它可以將這些地址保留為未指定,在下一遍中,它可以填充這些地址。因此,不完整轉換的填充稱為後向填充。使用後向填充的一遍程式碼生成後向填充可用於為布林表示式和控制流語句生成程式。在此,非終結符的綜合屬性 truelist 和 falselist... 閱讀更多

什麼是編譯器設計中控制語句的翻譯?

Ginni
更新於 2021年11月5日 12:04:39

13K+ 瀏覽量

控制語句是改變語句執行流程的語句。考慮語法S → if E then S1        |if E then S1 else S2         |while E do S1在此語法中,E 是布林表示式,根據它將執行 S1 或 S2。以下表示顯示了 if-then、ifthen-else 和 while do 指令的執行順序。𝐒 → 𝐢𝐟 𝐄 𝐭𝐡𝐞𝐧 𝐒𝟏E.CODE 和 S.CODE 是生成三地址程式碼的一系列語句。E.TRUE 是如果 E 為真則控制流到的標籤。E.FALSE 是如果... 閱讀更多

什麼是控制語句?

Ginni
更新於 2021年11月5日 11:57:20

18K+ 瀏覽量

控制語句是改變語句執行流程的語句。例如,If、If-else、Switch-Case、while-do 語句。在程式語言中,布林表示式用於更改控制流 - 布林表示式用作語句中的條件表示式,這些表示式更改控制流。此類布林表示式的值隱含在程式中達到的位置。例如,如果 (E) S,則如果到達語句 S,則表示式 E 應該為真。計算邏輯值 - 布林表示式可以定義真或假值。此類布林表示式可以與算術平行計算... 閱讀更多

廣告