4K+ 次瀏覽
編譯器需要作業系統分配一塊記憶體。編譯器使用這塊記憶體來實現編譯後的程式。這塊記憶體被稱為儲存管理。編譯器應該執行的任務是分配目標機器的資源來定義原始碼正在操作的資料物件。儲存管理主要分為三個階段:初始分配 - 最初,每塊儲存空間要麼是空閒的,要麼是正在使用的。如果是空閒的,則在執行過程中可用於動態分配。儲存管理系統需要幾種方法……閱讀更多
6K+ 次瀏覽
順序控制順序控制定義了語句按順序執行的逐行實現方式,順序與它們在程式中出現的順序相同。它可以移動一系列讀寫操作、算術運算或變數賦值。順序控制結構可以是隱式的或顯式的。隱式順序控制 - 隱式順序控制結構是由語言表示的。隱式順序控制由原始碼中語句的順序或內建實現模型決定。除被…轉換外,隱式順序控制結構往往…閱讀更多
2K+ 次瀏覽
子程式子程式定義為一組語句,可以在程式中需要時重複使用多次。這種重複使用可以帶來多種型別的節省,從記憶體空間到編碼時間。這種重複使用也是一種抽象,因為子程式計算的分析是在程式中透過呼叫子程式的語句來恢復的。子程式的特性子程式的特性如下:子程式只有一個入口點。在被呼叫子程式的執行過程中,呼叫者處於暫停狀態。當被呼叫子程式的執行結束時,控制權會返回給呼叫者。子程式的優點以下列出了…閱讀更多
11K+ 次瀏覽
子程式定義為一組語句,可以在程式中需要時重複使用多次。這種重複使用可以帶來多種型別的節省,從記憶體空間到編碼時間。這種重複使用也是一種抽象,因為子程式計算的分析是在程式中透過呼叫子程式的語句來恢復的。子程式的特性子程式的特性如下:子程式只有一個入口點。在被呼叫子程式的執行過程中,呼叫者處於暫停狀態。當被呼叫子程式的執行結束時,控制權會重複返回給呼叫者。子程式的型別有兩種…閱讀更多
3K+ 次瀏覽
順序檔案的主要操作如下:建立檔案 - 檔案的主要建立也定義為檔案的載入。在某些實現中,首先為檔案分配空間,然後將資料載入到該框架中。開啟檔案 - 在程式可以訪問檔案進行輸入或輸出之前,必須開啟該檔案。開啟操作給出檔名和訪問模式(讀取或寫入)。在 Pascal 中,過程 reset 以讀取模式開啟檔案,過程 rewrite 以…模式開啟檔案閱讀更多
805 次瀏覽
指定資料結構的主要屬性包括以下內容:元件數量 - 如果資料結構在其生命週期內元件數量始終不變,則其大小是固定的;如果元件數量動態變化,則其大小是可變的。可變大小的資料結構型別通常定義從結構中插入和刪除元素的操作。陣列和記錄是固定大小資料結構型別的示例。堆疊、列表、集合、表和檔案是可變大小資料型別的示例。可變大小的資料物件使用指標資料型別,使固定大小的資料物件能夠顯式地…閱讀更多
142 次瀏覽
為資料型別定義的操作集決定了如何操作該型別的資料物件。操作可以是基本操作,這意味著它們在語言定義中被宣告為一個元素,也可以是程式設計師定義的操作,作為類定義的一個元素。操作是一個數學函式,對於給定的輸入引數,它具有清晰且一致的結果。每個操作都有一個域(它可以產生的一組可能的結果)。操作的動作表示為任何給定引數集產生的結果。組合的元素…閱讀更多
型別檢查是確保運算子的運算元型別相容的過程。相容型別是指對運算子來說是合法的型別,或者根據語言規則允許透過編譯器生成的程式碼隱式轉換為合法型別。這種自動轉換稱為強制轉換。如果語言中所有變數到型別的繫結都是動態的,那麼型別檢查實際上可以不斷地動態完成。動態型別檢查在程式執行期間進行。動態型別檢查通常透過在每個資料物件中儲存一個型別標記來執行,該標記表示…閱讀更多
程式語言是一種人工語言,可以控制機器的行為,尤其是在計算機中。像自然語言一樣,程式語言由語法和語義規則定義,分別定義它們的結構和含義。程式語言的層次結構如下:程式 - 計算機程式是計算機的指令。計算機需要程式才能執行,通常在主處理器中執行程式的指令。程式具有計算機可以直接使用的可執行形式來執行指令。等效程式以其人類可讀的源程式形式存在,從中可以生成可執行程式…閱讀更多
14K+ 次瀏覽
單遍編譯器單遍編譯器只讀取程式碼一次,然後將其翻譯。單遍編譯器只遍歷每個編譯單元的部分。它可以將每一部分翻譯成最終的機器程式。在單遍編譯器中,當處理原始碼行時,它會掃描並提取標記。這與多遍編譯器形成對比,多遍編譯器會逐步將程式修改為一個或多箇中間表示,在源程式和機器程式之間,並且在每個順序遍中轉換整個編譯單元。單遍編譯器速度很快,因為所有編譯器程式碼…閱讀更多