《程序是怎樣跑起來的》第八章讀后感
第八章深入講解了源代碼和計算機程序的編譯過程,讓我們對編程有了更細致的理解。所謂源代碼,其實就是我們用諸如C、Java等高級編程語言編寫的原始程序代碼。在實際操作中,當我們按照教材編寫練習題時,那些敲擊鍵盤完成的代碼就是源代碼。
在這一章節里,提到了源代碼與源文件(包含了源代碼的文本文件)、目標文件(經過編譯器初步處理后的中間結果)以及本地代碼(即機器語言,是CPU能直接識別和執行的語言)之間的關系。之前提到過,CPU只能運行本地代碼,而源代碼需要經過編譯器的轉換才能成為本地代碼,這個轉換過程至關重要。
編譯器在此扮演了核心角色,它是一個專門用于將高級編程語言編寫的源代碼轉換為對應CPU能夠理解并執行的本地代碼的工具。每種編程語言都有其對應的編譯器,它們負責讀取源代碼并進行翻譯工作。
此外,我們也接觸到了可執行文件,通常以.exe擴展名結尾,這是經過編譯和鏈接之后形成的可以直接運行的文件。BIOS作為一個引導程序,在計算機啟動過程中起到關鍵作用,但此處主要關注的是源代碼如何通過編譯生成可執行文件的過程。
編譯完成后,會產生目標文件,但這些文件還不能獨立運行,還需要通過鏈接器進行下一步處理。鏈接器的工作是將多個目標文件整合起來,并且可能引用庫文件中的部分代碼,最終生成一個完整的可執行文件(.exe)。庫文件則包含了預先編譯好的函數和變量組,可以被多個程序共享使用。
當可執行文件加載到內存后,程序會在運行時劃分出棧和堆兩個內存區域。棧主要用來存儲函數內部臨時變量、函數調用參數等;而堆則是動態分配內存的地方,用于存放程序運行過程中創建的對象和數據結構。
總結來說,第八章詳細闡述了從源代碼到最終可執行文件的完整生命周期,包括編譯器轉換源代碼為本地代碼,鏈接器將目標文件組合成可執行文件,以及程序在內存中運行時棧和堆的作用等內容。

浙公網安備 33010602011771號