找到 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 語句中標籤的地址。在一遍中分配這些標籤語句的位置非常困難,因此使用了兩遍。在第一遍中,它可以將這些地址保留為未指定,在下一遍中,它可以填充這些地址。因此,不完整轉換的填充稱為後端補丁。使用後端補丁的一遍程式碼生成後端補丁可用於為布林表示式和控制流語句生成單遍程式。在這個程式中,非終端的綜合屬性 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、if-then-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 語句。在程式語言中,布林表示式用於更改控制流 - 布林表示式用作更改控制流的語句中的條件表示式。此類布林表示式的值隱含在程式中達到的位置。例如,if (E) S,如果到達語句 S,則表示式 E 應該為真。計算邏輯值 - 布林表示式可以定義真或假值。此類布林表示式可以與算術表示式平行計算…… 閱讀更多

廣告
© . All rights reserved.