在遞迴副程式呼叫時,需要以下三者中的「動態活動紀錄」(DAR:Dynamic Activation Record)來完成。讓我們詳細說明原因。
動態活動紀錄是用來保存每次副程式呼叫時的執行環境和相關資訊的數據結構。它包括了返回地址、參數、局部變數和其他上下文資訊。在遞迴呼叫中,每次呼叫都會創建一個新的動態活動紀錄,以保存該次呼叫的上下文。這是遞迴呼叫能夠正確返回和維持各層呼叫狀態的關鍵。
當前環境指標通常指向當前活動紀錄或環境塊,用於變數查找和上下文管理。在遞迴呼叫中,當前環境指標需要動態更新以指向新創建的動態活動紀錄。
當前指令指標指向正在執行的指令地址。每次副程式呼叫時,當前指令指標需要保存到動態活動紀錄中,以便在副程式返回時恢復。
在遞迴呼叫中,動態活動紀錄是核心,因為它:
雖然當前環境指標和當前指令指標在遞迴呼叫中也很重要,但它們都是存儲在動態活動紀錄中的。動態活動紀錄的存在是遞迴呼叫能夠正確運作的關鍵,因為它負責管理和保存所有必要的上下文信息。因此,**動態活動紀錄(DAR)**是遞迴副程式呼叫能夠完成的必要條件。